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

Sprout from master 2007-11-13 01:42:18 UTC Jeff McAffer <jeff> 'add JarDelta optimizer, some tests and refactor all of the above'
Cherrypick from master 2007-10-26 21:54:11 UTC Dave Stevenson <dstevenso> 'Initial delivery of SAX XML Writer/Parser framework for XStream replacement. The metadata and artifact repository writers/parsers are included, but not currently used.':
    bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch
    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.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/src/org/apache/tools/bzip2/test/Activator.java
    bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/CBZip2OutputStreamTest.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.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/ie.wombat.jbdiff/src/org/apache/tools/bzip2/BZip2Constants.java
    bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2InputStream.java
    bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2OutputStream.java
    bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CRC.java
    bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/LICENSE
    bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/readme-more.txt
    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/internal/test/AbstractFwkAdminTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/Activator.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/Bug196525.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/CleanupTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/FwkAdminAndSimpleConfiguratorTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/OSGiVersionChange.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/RelativePathTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorComingAndGoing.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorTest.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/configuratormanipulator/ConfiguratorManipulator.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulatorFactory.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ExtendedFrameworkAdminFactory.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundleInfo.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundlesState.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/ConfigData.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdmin.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminFactory.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminRuntimeException.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/LauncherData.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/Manipulator.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/test/org/eclipse/incubator/configurator/util/UtilsTest.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.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/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.processors/.classpath
    bundles/org.eclipse.equinox.p2.artifact.processors/.project
    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.directorywatcher/.classpath
    bundles/org.eclipse.equinox.p2.directorywatcher/.project
    bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.directorywatcher/about.html
    bundles/org.eclipse.equinox.p2.directorywatcher/build.properties
    bundles/org.eclipse.equinox.p2.directorywatcher/plugin.properties
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/Activator.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ConfigFileListener.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/JARFileListener.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ProvisioningListener.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/DirectoryWatcher.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/IDirectoryChangeListener.java
    bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/RepositoryListener.java
    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/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/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.installer/testInstall.properties
    bundles/org.eclipse.equinox.p2.sar/.classpath
    bundles/org.eclipse.equinox.p2.sar/.project
    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/p2/sar/DirectByteArrayOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarConstants.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarEntry.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarInputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/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/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/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/JarURLRepositoryTest.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/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/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/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/RepositoryListenerTest.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/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/InstallRegistryTest.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/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/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/MultipleIUAndFragmentTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RecommendationTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ResolutionHelperTest.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/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/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/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.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/utils/SimpleConfiguratorConstants.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/Activator.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorFactoryImpl.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorImpl.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/configurator/Configurator.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/Utils.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/Activator.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/ConfigApplier.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/SimpleConfiguratorImpl.java
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.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/src/org/apache/tools/bzip2/test/Activator.java b/bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/Activator.java
deleted file mode 100644
index b393a96..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/Activator.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
- *******************************************************************************/
-package org.apache.tools.bzip2.test;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/CBZip2OutputStreamTest.java b/bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/CBZip2OutputStreamTest.java
deleted file mode 100644
index 7cfc8be..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/org/apache/tools/bzip2/test/CBZip2OutputStreamTest.java
+++ /dev/null
@@ -1,180 +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.apache.tools.bzip2.test;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.apache.tools.bzip2.CBZip2InputStream;
-import org.apache.tools.bzip2.CBZip2OutputStream;
-
-public class CBZip2OutputStreamTest extends TestCase {
-
-	/**
-	 * @throws IOException
-	 */
-	public void testEmtpyOutputShouldNotFail() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.close();
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(-1, inputStream.read());
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testOneByteOutputAndOneByteIn() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.write(42);
-		outputStream.close();
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(42, inputStream.read());
-		assertEquals(-1, inputStream.read());
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testWriteFinishAndClose() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.flush();
-		int len = byteArrayOutputStream.toByteArray().length;
-
-		outputStream.write(42);
-		outputStream.finish();
-
-		int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
-		assertTrue(len != lenAfterWrite);
-
-		outputStream.close();
-		int lenAfterClose = byteArrayOutputStream.toByteArray().length;
-		assertTrue(lenAfterWrite == lenAfterClose);
-
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(42, inputStream.read());
-		assertEquals(-1, inputStream.read());
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testWriteFinishFinishAndClose() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.flush();
-		int len = byteArrayOutputStream.toByteArray().length;
-
-		outputStream.write(42);
-		outputStream.finish();
-		outputStream.finish();
-
-		int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
-		assertTrue(len != lenAfterWrite);
-
-		outputStream.close();
-		int lenAfterClose = byteArrayOutputStream.toByteArray().length;
-		assertTrue(lenAfterWrite == lenAfterClose);
-
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(42, inputStream.read());
-		assertEquals(-1, inputStream.read());
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testWriteFinishAndCloseClose() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.flush();
-		int len = byteArrayOutputStream.toByteArray().length;
-
-		outputStream.write(42);
-		outputStream.finish();
-
-		int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
-		assertTrue(len != lenAfterWrite);
-
-		outputStream.close();
-		int lenAfterClose1 = byteArrayOutputStream.toByteArray().length;
-		assertTrue(lenAfterWrite == lenAfterClose1);
-		outputStream.close();
-		int lenAfterClose2 = byteArrayOutputStream.toByteArray().length;
-		assertTrue(lenAfterWrite == lenAfterClose2);
-
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(42, inputStream.read());
-		assertEquals(-1, inputStream.read());
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testWriteFinishWriteClose() throws IOException {
-		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-		CBZip2OutputStream outputStream = new CBZip2OutputStream(
-				byteArrayOutputStream);
-		outputStream.flush();
-		int len = byteArrayOutputStream.toByteArray().length;
-
-		outputStream.write(42);
-		outputStream.finish();
-		outputStream.write(21);
-		outputStream.finish();
-
-		int lenAfterWrite = byteArrayOutputStream.toByteArray().length;
-		assertTrue(len != lenAfterWrite);
-
-		outputStream.close();
-		int lenAfterClose = byteArrayOutputStream.toByteArray().length;
-		assertTrue(lenAfterWrite == lenAfterClose);
-
-		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
-				byteArrayOutputStream.toByteArray());
-
-		CBZip2InputStream inputStream = new CBZip2InputStream(
-				byteArrayInputStream);
-		assertEquals(42, inputStream.read());
-		assertEquals(-1, inputStream.read());
-	}
-
-}
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.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 2cf65e1..0000000
--- a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +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,
- org.apache.tools.bzip2
-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 ee5da2d..0000000
--- a/bundles/ie.wombat.jbdiff/about.html
+++ /dev/null
@@ -1,40 +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>
-<h4>org.apache.tools.bzip2</h4>
-<p>The library org.apache.tools.bzip2 is a library version based on the package org.apache.tools.bzip2<br />
-of the Apache Ant 1.7 which is under the Apache License Version 2.0,
-January 2004, http://www.apache.org/licenses. The original source can
-be obtained from&nbsp;<a href="http://www.apache.org/dist/ant/source/apache-ant-1.7.0-src.zip">http://www.apache.org/dist/ant/source/apache-ant-1.7.0-src.zip</a><br />
-<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 e8eaf2c..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
+++ /dev/null
@@ -1,614 +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 org.apache.tools.bzip2.CBZip2OutputStream;
-
-/**
- * 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 an extended version of the org.apache.tools.bzip2 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";
-
-	// 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();
-
-		CBZip2OutputStream bzip2Out = new CBZip2OutputStream(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 CBZip2OutputStream(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 CBZip2OutputStream(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 20087d7..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
+++ /dev/null
@@ -1,243 +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 org.apache.tools.bzip2.CBZip2InputStream;
-
-/**
- * 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 an extended version of the org.apache.tools.bzip2 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 CBZip2InputStream(in));
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream diffBlockIn = new CBZip2InputStream(in);
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(diffBlockLen + ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream extraBlockIn = new CBZip2InputStream(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 5cc2e10..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
+++ /dev/null
@@ -1,10 +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
-
-This library uses a modified version of the package org.apache.tools.bzip2
-of the Apache Ant project 1.7.
-
-Version 0.1.0.1
- - Extended interface so that it is not only file based and uses the extended CBZip2 as compressor.
-
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/BZip2Constants.java b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/BZip2Constants.java
deleted file mode 100644
index 0dbba0b..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/BZip2Constants.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-/*
- * This package is based on the work done by Keiron Liddle, Aftex Software
- * <keiron@aftexsw.com> to whom the Ant project is very grateful for his
- * great code.
- */
-
-package org.apache.tools.bzip2;
-
-/**
- * Base class for both the compress and decompress classes.
- * Holds common arrays, and static data.
- * <p>
- * This interface is public for historical purposes.
- * You should have no need to use it.
- * </p>
- */
-public interface BZip2Constants {
-
-	int baseBlockSize = 100000;
-	int MAX_ALPHA_SIZE = 258;
-	int MAX_CODE_LEN = 23;
-	int RUNA = 0;
-	int RUNB = 1;
-	int N_GROUPS = 6;
-	int G_SIZE = 50;
-	int N_ITERS = 4;
-	int MAX_SELECTORS = ( 2 + ( 900000 / G_SIZE ) );
-	int NUM_OVERSHOOT_BYTES = 20;
-
-	/**
-	 * This array really shouldn't be here.
-	 * Again, for historical purposes it is.
-	 *
-	 * <p>FIXME: This array should be in a private or package private
-	 * location, since it could be modified by malicious code.</p>
-	 */
-	int[] rNums = { 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 733, 859, 335, 708, 621, 574, 73, 654,
-		730, 472, 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 862, 687, 507, 283, 482, 129, 807, 591,
-		733, 623, 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 73, 122, 335, 530, 442, 853, 695, 249,
-		445, 515, 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 161, 604, 958, 533, 221, 400, 386, 867,
-		600, 782, 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 227, 730, 475, 186, 263, 647, 537, 686,
-		600, 224, 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 715, 67, 618, 276, 204, 918, 873, 777,
-		604, 560, 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 645, 863, 803, 350, 139, 93, 354, 99, 820,
-		908, 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
-		170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
-		944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
-		433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
-		978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
-		297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 140,
-		206, 73, 263, 980, 736, 876, 478, 430, 305, 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 804,
-		378, 215, 828, 592, 281, 565, 555, 710, 82, 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 768,
-		550, 608, 933, 378, 286, 215, 979, 792, 961, 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 780,
-		773, 635, 389, 707, 100, 626, 958, 165, 504, 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 936,
-		638 };
-}
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2InputStream.java b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2InputStream.java
deleted file mode 100644
index 2881a81..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2InputStream.java
+++ /dev/null
@@ -1,953 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-/*
- * This package is based on the work done by Keiron Liddle, Aftex Software
- * <keiron@aftexsw.com> to whom the Ant project is very grateful for his
- * great code.
- */
-package org.apache.tools.bzip2;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * An input stream that decompresses from the BZip2 format (without the file
- * header chars) to be read as any other stream.
- *
- * <p>The decompression requires large amounts of memory. Thus you
- * should call the {@link #close() close()} method as soon as
- * possible, to force <tt>CBZip2InputStream</tt> to release the
- * allocated memory.  See {@link CBZip2OutputStream
- * CBZip2OutputStream} for information about memory usage.</p>
- *
- * <p><tt>CBZip2InputStream</tt> reads bytes from the compressed
- * source stream via the single byte {@link java.io.InputStream#read()
- * read()} method exclusively. Thus you should consider to use a
- * buffered source stream.</p>
- * 
- * <p>Instances of this class are not threadsafe.</p>
- */
-public class CBZip2InputStream extends InputStream implements BZip2Constants {
-
-	private static void reportCRCError() throws IOException {
-		// The clean way would be to throw an exception.
-		//throw new IOException("crc error");
-
-		// Just print a message, like the previous versions of this class did
-		System.err.println( "BZip2 CRC error" );
-	}
-
-	private void makeMaps() {
-		final boolean[] inUse = this.data.inUse;
-		final byte[] seqToUnseq = this.data.seqToUnseq;
-
-		int nInUseShadow = 0;
-
-		for ( int i = 0; i < 256; i++ ) {
-			if ( inUse[i] )
-				seqToUnseq[nInUseShadow++] = (byte) i;
-		}
-
-		this.nInUse = nInUseShadow;
-	}
-
-	/**
-	 * Index of the last char in the block, so the block size == last + 1.
-	 */
-	private int last;
-
-	/**
-	 * Index in zptr[] of original string after sorting.
-	 */
-	private int origPtr;
-
-	/**
-	 * always: in the range 0 .. 9.
-	 * The current block size is 100000 * this number.
-	 */
-	private int blockSize100k;
-
-	private boolean blockRandomised;
-
-	private int bsBuff;
-	private int bsLive;
-	private final CRC crc = new CRC();
-
-	private int nInUse;
-
-	private InputStream in;
-
-	private int currentChar = -1;
-
-	private static final int EOF = 0;
-	private static final int START_BLOCK_STATE = 1;
-	private static final int RAND_PART_A_STATE = 2;
-	private static final int RAND_PART_B_STATE = 3;
-	private static final int RAND_PART_C_STATE = 4;
-	private static final int NO_RAND_PART_A_STATE = 5;
-	private static final int NO_RAND_PART_B_STATE = 6;
-	private static final int NO_RAND_PART_C_STATE = 7;
-
-	private int currentState = START_BLOCK_STATE;
-
-	private int storedBlockCRC, storedCombinedCRC;
-	private int computedBlockCRC, computedCombinedCRC;
-
-	// Variables used by setup* methods exclusively
-
-	private int su_count;
-	private int su_ch2;
-	private int su_chPrev;
-	private int su_i2;
-	private int su_j2;
-	private int su_rNToGo;
-	private int su_rTPos;
-	private int su_tPos;
-	private char su_z;
-
-	/**
-	 * All memory intensive stuff.
-	 * This field is initialized by initBlock().
-	 */
-	private CBZip2InputStream.Data data;
-
-	/**
-	 * Constructs a new CBZip2InputStream which decompresses bytes read from
-	 * the specified stream.
-	 *
-	 * <p>Although BZip2 headers are marked with the magic
-	 * <tt>"Bz"</tt> this constructor expects the next byte in the
-	 * stream to be the first one after the magic.  Thus callers have
-	 * to skip the first two bytes. Otherwise this constructor will
-	 * throw an exception. </p>
-	 *
-	 * @throws IOException
-	 *  if the stream content is malformed or an I/O error occurs.
-	 * @throws NullPointerException
-	 *  if <tt>in == null</tt>
-	 */
-	public CBZip2InputStream( final InputStream in ) throws IOException {
-		super();
-
-		this.in = in;
-		init();
-	}
-
-	public int read() throws IOException {
-		if ( this.in != null ) {
-			return read0();
-		} else {
-			throw new IOException( "stream closed" );
-		}
-	}
-
-	public int read( final byte[] dest, final int offs, final int len ) throws IOException {
-		if ( offs < 0 ) {
-			throw new IndexOutOfBoundsException( "offs(" + offs + ") < 0." );
-		}
-		if ( len < 0 ) {
-			throw new IndexOutOfBoundsException( "len(" + len + ") < 0." );
-		}
-		if ( offs + len > dest.length ) {
-			throw new IndexOutOfBoundsException( "offs(" + offs + ") + len(" + len + ") > dest.length(" + dest.length + ")." );
-		}
-		if ( this.in == null ) {
-			throw new IOException( "stream closed" );
-		}
-
-		final int hi = offs + len;
-		int destOffs = offs;
-		for ( int b; ( destOffs < hi ) && ( ( b = read0() ) >= 0 ); ) {
-			dest[destOffs++] = (byte) b;
-		}
-
-		return ( destOffs == offs ) ? -1 : ( destOffs - offs );
-	}
-
-	private int read0() throws IOException {
-		final int retChar = this.currentChar;
-
-		switch ( this.currentState ) {
-			case EOF:
-				return -1;
-
-			case START_BLOCK_STATE:
-				throw new IllegalStateException();
-
-			case RAND_PART_A_STATE:
-				throw new IllegalStateException();
-
-			case RAND_PART_B_STATE:
-				setupRandPartB();
-				break;
-
-			case RAND_PART_C_STATE:
-				setupRandPartC();
-				break;
-
-			case NO_RAND_PART_A_STATE:
-				throw new IllegalStateException();
-
-			case NO_RAND_PART_B_STATE:
-				setupNoRandPartB();
-				break;
-
-			case NO_RAND_PART_C_STATE:
-				setupNoRandPartC();
-				break;
-
-			default:
-				throw new IllegalStateException();
-		}
-
-		return retChar;
-	}
-
-	private void init() throws IOException {
-		int magic2 = this.in.read();
-		if ( magic2 != 'h' ) {
-			throw new IOException( "Stream is not BZip2 formatted: expected 'h'" + " as first byte but got '" + (char) magic2 + "'" );
-		}
-
-		int blockSize = this.in.read();
-		if ( ( blockSize < '1' ) || ( blockSize > '9' ) ) {
-			throw new IOException( "Stream is not BZip2 formatted: illegal " + "blocksize " + (char) blockSize );
-		}
-
-		this.blockSize100k = blockSize - '0';
-
-		initBlock();
-		setupBlock();
-	}
-
-	private void initBlock() throws IOException {
-		char magic0 = bsGetUByte();
-		char magic1 = bsGetUByte();
-		char magic2 = bsGetUByte();
-		char magic3 = bsGetUByte();
-		char magic4 = bsGetUByte();
-		char magic5 = bsGetUByte();
-
-		if ( magic0 == 0x17 && magic1 == 0x72 && magic2 == 0x45 && magic3 == 0x38 && magic4 == 0x50 && magic5 == 0x90 ) {
-			complete(); // end of file
-		} else if ( magic0 != 0x31 || // '1'
-			magic1 != 0x41 || // ')'
-			magic2 != 0x59 || // 'Y'
-			magic3 != 0x26 || // '&'
-			magic4 != 0x53 || // 'S'
-			magic5 != 0x59 // 'Y'
-		) {
-			this.currentState = EOF;
-			throw new IOException( "bad block header" );
-		} else {
-			this.storedBlockCRC = bsGetInt();
-			this.blockRandomised = bsR( 1 ) == 1;
-
-			/**
-			 * Allocate data here instead in constructor, so we do not
-			 * allocate it if the input file is empty.
-			 */
-			if ( this.data == null ) {
-				this.data = new Data( this.blockSize100k );
-			}
-
-			// currBlockNo++;
-			getAndMoveToFrontDecode();
-
-			this.crc.initialiseCRC();
-			this.currentState = START_BLOCK_STATE;
-		}
-	}
-
-	private void endBlock() throws IOException {
-		this.computedBlockCRC = this.crc.getFinalCRC();
-
-		// A bad CRC is considered a fatal error.
-		if ( this.storedBlockCRC != this.computedBlockCRC ) {
-			// make next blocks readable without error
-			// (repair feature, not yet documented, not tested)
-			this.computedCombinedCRC = ( this.storedCombinedCRC << 1 ) | ( this.storedCombinedCRC >>> 31 );
-			this.computedCombinedCRC ^= this.storedBlockCRC;
-
-			reportCRCError();
-		}
-
-		this.computedCombinedCRC = ( this.computedCombinedCRC << 1 ) | ( this.computedCombinedCRC >>> 31 );
-		this.computedCombinedCRC ^= this.computedBlockCRC;
-	}
-
-	private void complete() throws IOException {
-		this.storedCombinedCRC = bsGetInt();
-		this.currentState = EOF;
-		this.data = null;
-
-		if ( this.storedCombinedCRC != this.computedCombinedCRC ) {
-			reportCRCError();
-		}
-	}
-
-	public void close() throws IOException {
-		InputStream inShadow = this.in;
-		if ( inShadow != null ) {
-			try {
-				if ( inShadow != System.in ) {
-					inShadow.close();
-				}
-			} finally {
-				this.data = null;
-				this.in = null;
-			}
-		}
-	}
-
-	private int bsR( final int n ) throws IOException {
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		if ( bsLiveShadow < n ) {
-			final InputStream inShadow = this.in;
-			do {
-				int thech = inShadow.read();
-
-				if ( thech < 0 ) {
-					throw new IOException( "unexpected end of stream" );
-				}
-
-				bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-				bsLiveShadow += 8;
-			} while ( bsLiveShadow < n );
-
-			this.bsBuff = bsBuffShadow;
-		}
-
-		this.bsLive = bsLiveShadow - n;
-		return ( bsBuffShadow >> ( bsLiveShadow - n ) ) & ( ( 1 << n ) - 1 );
-	}
-
-	private boolean bsGetBit() throws IOException {
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		if ( bsLiveShadow < 1 ) {
-			int thech = this.in.read();
-
-			if ( thech < 0 ) {
-				throw new IOException( "unexpected end of stream" );
-			}
-
-			bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-			bsLiveShadow += 8;
-			this.bsBuff = bsBuffShadow;
-		}
-
-		this.bsLive = bsLiveShadow - 1;
-		return ( ( bsBuffShadow >> ( bsLiveShadow - 1 ) ) & 1 ) != 0;
-	}
-
-	private char bsGetUByte() throws IOException {
-		return (char) bsR( 8 );
-	}
-
-	private int bsGetInt() throws IOException {
-		return ( ( ( ( ( bsR( 8 ) << 8 ) | bsR( 8 ) ) << 8 ) | bsR( 8 ) ) << 8 ) | bsR( 8 );
-	}
-
-	/**
-	 * Called by createHuffmanDecodingTables() exclusively.
-	 */
-	private static void hbCreateDecodeTables( final int[] limit, final int[] base, final int[] perm, final char[] length, final int minLen, final int maxLen,
-		final int alphaSize ) {
-		for ( int i = minLen, pp = 0; i <= maxLen; i++ ) {
-			for ( int j = 0; j < alphaSize; j++ ) {
-				if ( length[j] == i ) {
-					perm[pp++] = j;
-				}
-			}
-		}
-
-		for ( int i = MAX_CODE_LEN; --i > 0; ) {
-			base[i] = 0;
-			limit[i] = 0;
-		}
-
-		for ( int i = 0; i < alphaSize; i++ ) {
-			base[length[i] + 1]++;
-		}
-
-		for ( int i = 1, b = base[0]; i < MAX_CODE_LEN; i++ ) {
-			b += base[i];
-			base[i] = b;
-		}
-
-		for ( int i = minLen, vec = 0, b = base[i]; i <= maxLen; i++ ) {
-			final int nb = base[i + 1];
-			vec += nb - b;
-			b = nb;
-			limit[i] = vec - 1;
-			vec <<= 1;
-		}
-
-		for ( int i = minLen + 1; i <= maxLen; i++ ) {
-			base[i] = ( ( limit[i - 1] + 1 ) << 1 ) - base[i];
-		}
-	}
-
-	private void recvDecodingTables() throws IOException {
-		final Data dataShadow = this.data;
-		final boolean[] inUse = dataShadow.inUse;
-		final byte[] pos = dataShadow.recvDecodingTables_pos;
-		final byte[] selector = dataShadow.selector;
-		final byte[] selectorMtf = dataShadow.selectorMtf;
-
-		int inUse16 = 0;
-
-		/* Receive the mapping table */
-		for ( int i = 0; i < 16; i++ ) {
-			if ( bsGetBit() ) {
-				inUse16 |= 1 << i;
-			}
-		}
-
-		for ( int i = 256; --i >= 0; ) {
-			inUse[i] = false;
-		}
-
-		for ( int i = 0; i < 16; i++ ) {
-			if ( ( inUse16 & ( 1 << i ) ) != 0 ) {
-				final int i16 = i << 4;
-				for ( int j = 0; j < 16; j++ ) {
-					if ( bsGetBit() ) {
-						inUse[i16 + j] = true;
-					}
-				}
-			}
-		}
-
-		makeMaps();
-		final int alphaSize = this.nInUse + 2;
-
-		/* Now the selectors */
-		final int nGroups = bsR( 3 );
-		final int nSelectors = bsR( 15 );
-
-		for ( int i = 0; i < nSelectors; i++ ) {
-			int j = 0;
-			while ( bsGetBit() ) {
-				j++;
-			}
-			selectorMtf[i] = (byte) j;
-		}
-
-		/* Undo the MTF values for the selectors. */
-		for ( int v = nGroups; --v >= 0; ) {
-			pos[v] = (byte) v;
-		}
-
-		for ( int i = 0; i < nSelectors; i++ ) {
-			int v = selectorMtf[i] & 0xff;
-			final byte tmp = pos[v];
-			while ( v > 0 ) {
-				// nearly all times v is zero, 4 in most other cases
-				pos[v] = pos[v - 1];
-				v--;
-			}
-			pos[0] = tmp;
-			selector[i] = tmp;
-		}
-
-		final char[][] len = dataShadow.temp_charArray2d;
-
-		/* Now the coding tables */
-		for ( int t = 0; t < nGroups; t++ ) {
-			int curr = bsR( 5 );
-			final char[] len_t = len[t];
-			for ( int i = 0; i < alphaSize; i++ ) {
-				while ( bsGetBit() ) {
-					curr += bsGetBit() ? -1 : 1;
-				}
-				len_t[i] = (char) curr;
-			}
-		}
-
-		// finally create the Huffman tables
-		createHuffmanDecodingTables( alphaSize, nGroups );
-	}
-
-	/**
-	 * Called by recvDecodingTables() exclusively.
-	 */
-	private void createHuffmanDecodingTables( final int alphaSize, final int nGroups ) {
-		final Data dataShadow = this.data;
-		final char[][] len = dataShadow.temp_charArray2d;
-		final int[] minLens = dataShadow.minLens;
-		final int[][] limit = dataShadow.limit;
-		final int[][] base = dataShadow.base;
-		final int[][] perm = dataShadow.perm;
-
-		for ( int t = 0; t < nGroups; t++ ) {
-			int minLen = 32;
-			int maxLen = 0;
-			final char[] len_t = len[t];
-			for ( int i = alphaSize; --i >= 0; ) {
-				final char lent = len_t[i];
-				if ( lent > maxLen ) {
-					maxLen = lent;
-				}
-				if ( lent < minLen ) {
-					minLen = lent;
-				}
-			}
-			hbCreateDecodeTables( limit[t], base[t], perm[t], len[t], minLen, maxLen, alphaSize );
-			minLens[t] = minLen;
-		}
-	}
-
-	private void getAndMoveToFrontDecode() throws IOException {
-		this.origPtr = bsR( 24 );
-		recvDecodingTables();
-
-		final InputStream inShadow = this.in;
-		final Data dataShadow = this.data;
-		final byte[] ll8 = dataShadow.ll8;
-		final int[] unzftab = dataShadow.unzftab;
-		final byte[] selector = dataShadow.selector;
-		final byte[] seqToUnseq = dataShadow.seqToUnseq;
-		final char[] yy = dataShadow.getAndMoveToFrontDecode_yy;
-		final int[] minLens = dataShadow.minLens;
-		final int[][] limit = dataShadow.limit;
-		final int[][] base = dataShadow.base;
-		final int[][] perm = dataShadow.perm;
-		final int limitLast = this.blockSize100k * 100000;
-
-		/*
-		 Setting up the unzftab entries here is not strictly
-		 necessary, but it does save having to do it later
-		 in a separate pass, and so saves a block's worth of
-		 cache misses.
-		 */
-		for ( int i = 256; --i >= 0; ) {
-			yy[i] = (char) i;
-			unzftab[i] = 0;
-		}
-
-		int groupNo = 0;
-		int groupPos = G_SIZE - 1;
-		final int eob = this.nInUse + 1;
-		int nextSym = getAndMoveToFrontDecode0( 0 );
-		int bsBuffShadow = this.bsBuff;
-		int bsLiveShadow = this.bsLive;
-		int lastShadow = -1;
-		int zt = selector[groupNo] & 0xff;
-		int[] base_zt = base[zt];
-		int[] limit_zt = limit[zt];
-		int[] perm_zt = perm[zt];
-		int minLens_zt = minLens[zt];
-
-		while ( nextSym != eob ) {
-			if ( ( nextSym == RUNA ) || ( nextSym == RUNB ) ) {
-				int s = -1;
-
-				for ( int n = 1; true; n <<= 1 ) {
-					if ( nextSym == RUNA ) {
-						s += n;
-					} else if ( nextSym == RUNB ) {
-						s += n << 1;
-					} else {
-						break;
-					}
-
-					if ( groupPos == 0 ) {
-						groupPos = G_SIZE - 1;
-						zt = selector[++groupNo] & 0xff;
-						base_zt = base[zt];
-						limit_zt = limit[zt];
-						perm_zt = perm[zt];
-						minLens_zt = minLens[zt];
-					} else {
-						groupPos--;
-					}
-
-					int zn = minLens_zt;
-
-					// Inlined:
-					// int zvec = bsR(zn);
-					while ( bsLiveShadow < zn ) {
-						final int thech = inShadow.read();
-						if ( thech >= 0 ) {
-							bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-							bsLiveShadow += 8;
-							continue;
-						} else {
-							throw new IOException( "unexpected end of stream" );
-						}
-					}
-					int zvec = ( bsBuffShadow >> ( bsLiveShadow - zn ) ) & ( ( 1 << zn ) - 1 );
-					bsLiveShadow -= zn;
-
-					while ( zvec > limit_zt[zn] ) {
-						zn++;
-						while ( bsLiveShadow < 1 ) {
-							final int thech = inShadow.read();
-							if ( thech >= 0 ) {
-								bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-								bsLiveShadow += 8;
-								continue;
-							} else {
-								throw new IOException( "unexpected end of stream" );
-							}
-						}
-						bsLiveShadow--;
-						zvec = ( zvec << 1 ) | ( ( bsBuffShadow >> bsLiveShadow ) & 1 );
-					}
-					nextSym = perm_zt[zvec - base_zt[zn]];
-				}
-
-				final byte ch = seqToUnseq[yy[0]];
-				unzftab[ch & 0xff] += s + 1;
-
-				while ( s-- >= 0 ) {
-					ll8[++lastShadow] = ch;
-				}
-
-				if ( lastShadow >= limitLast ) {
-					throw new IOException( "block overrun" );
-				}
-			} else {
-				if ( ++lastShadow >= limitLast ) {
-					throw new IOException( "block overrun" );
-				}
-
-				final char tmp = yy[nextSym - 1];
-				unzftab[seqToUnseq[tmp] & 0xff]++;
-				ll8[lastShadow] = seqToUnseq[tmp];
-
-				/*
-				 This loop is hammered during decompression,
-				 hence avoid native method call overhead of
-				 System.arraycopy for very small ranges to copy.
-				 */
-				if ( nextSym <= 16 ) {
-					for ( int j = nextSym - 1; j > 0; ) {
-						yy[j] = yy[--j];
-					}
-				} else {
-					System.arraycopy( yy, 0, yy, 1, nextSym - 1 );
-				}
-
-				yy[0] = tmp;
-
-				if ( groupPos == 0 ) {
-					groupPos = G_SIZE - 1;
-					zt = selector[++groupNo] & 0xff;
-					base_zt = base[zt];
-					limit_zt = limit[zt];
-					perm_zt = perm[zt];
-					minLens_zt = minLens[zt];
-				} else {
-					groupPos--;
-				}
-
-				int zn = minLens_zt;
-
-				// Inlined:
-				// int zvec = bsR(zn);
-				while ( bsLiveShadow < zn ) {
-					final int thech = inShadow.read();
-					if ( thech >= 0 ) {
-						bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-						bsLiveShadow += 8;
-						continue;
-					} else {
-						throw new IOException( "unexpected end of stream" );
-					}
-				}
-				int zvec = ( bsBuffShadow >> ( bsLiveShadow - zn ) ) & ( ( 1 << zn ) - 1 );
-				bsLiveShadow -= zn;
-
-				while ( zvec > limit_zt[zn] ) {
-					zn++;
-					while ( bsLiveShadow < 1 ) {
-						final int thech = inShadow.read();
-						if ( thech >= 0 ) {
-							bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-							bsLiveShadow += 8;
-							continue;
-						} else {
-							throw new IOException( "unexpected end of stream" );
-						}
-					}
-					bsLiveShadow--;
-					zvec = ( zvec << 1 ) | ( ( bsBuffShadow >> bsLiveShadow ) & 1 );
-				}
-				nextSym = perm_zt[zvec - base_zt[zn]];
-			}
-		}
-
-		this.last = lastShadow;
-		this.bsLive = bsLiveShadow;
-		this.bsBuff = bsBuffShadow;
-	}
-
-	private int getAndMoveToFrontDecode0( final int groupNo ) throws IOException {
-		final InputStream inShadow = this.in;
-		final Data dataShadow = this.data;
-		final int zt = dataShadow.selector[groupNo] & 0xff;
-		final int[] limit_zt = dataShadow.limit[zt];
-		int zn = dataShadow.minLens[zt];
-		int zvec = bsR( zn );
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		while ( zvec > limit_zt[zn] ) {
-			zn++;
-			while ( bsLiveShadow < 1 ) {
-				final int thech = inShadow.read();
-
-				if ( thech >= 0 ) {
-					bsBuffShadow = ( bsBuffShadow << 8 ) | thech;
-					bsLiveShadow += 8;
-					continue;
-				} else {
-					throw new IOException( "unexpected end of stream" );
-				}
-			}
-			bsLiveShadow--;
-			zvec = ( zvec << 1 ) | ( ( bsBuffShadow >> bsLiveShadow ) & 1 );
-		}
-
-		this.bsLive = bsLiveShadow;
-		this.bsBuff = bsBuffShadow;
-
-		return dataShadow.perm[zt][zvec - dataShadow.base[zt][zn]];
-	}
-
-	private void setupBlock() throws IOException {
-		if ( this.data == null ) {
-			return;
-		}
-
-		final int[] cftab = this.data.cftab;
-		final int[] tt = this.data.initTT( this.last + 1 );
-		final byte[] ll8 = this.data.ll8;
-		cftab[0] = 0;
-		System.arraycopy( this.data.unzftab, 0, cftab, 1, 256 );
-
-		for ( int i = 1, c = cftab[0]; i <= 256; i++ ) {
-			c += cftab[i];
-			cftab[i] = c;
-		}
-
-		for ( int i = 0, lastShadow = this.last; i <= lastShadow; i++ ) {
-			tt[cftab[ll8[i] & 0xff]++] = i;
-		}
-
-		if ( ( this.origPtr < 0 ) || ( this.origPtr >= tt.length ) ) {
-			throw new IOException( "stream corrupted" );
-		}
-
-		this.su_tPos = tt[this.origPtr];
-		this.su_count = 0;
-		this.su_i2 = 0;
-		this.su_ch2 = 256; /* not a char and not EOF */
-
-		if ( this.blockRandomised ) {
-			this.su_rNToGo = 0;
-			this.su_rTPos = 0;
-			setupRandPartA();
-		} else {
-			setupNoRandPartA();
-		}
-	}
-
-	private void setupRandPartA() throws IOException {
-		if ( this.su_i2 <= this.last ) {
-			this.su_chPrev = this.su_ch2;
-			int su_ch2Shadow = this.data.ll8[this.su_tPos] & 0xff;
-			this.su_tPos = this.data.tt[this.su_tPos];
-			if ( this.su_rNToGo == 0 ) {
-				this.su_rNToGo = BZip2Constants.rNums[this.su_rTPos] - 1;
-				if ( ++this.su_rTPos == 512 ) {
-					this.su_rTPos = 0;
-				}
-			} else {
-				this.su_rNToGo--;
-			}
-			this.su_ch2 = su_ch2Shadow ^= ( this.su_rNToGo == 1 ) ? 1 : 0;
-			this.su_i2++;
-			this.currentChar = su_ch2Shadow;
-			this.currentState = RAND_PART_B_STATE;
-			this.crc.updateCRC( su_ch2Shadow );
-		} else {
-			endBlock();
-			initBlock();
-			setupBlock();
-		}
-	}
-
-	private void setupNoRandPartA() throws IOException {
-		if ( this.su_i2 <= this.last ) {
-			this.su_chPrev = this.su_ch2;
-			int su_ch2Shadow = this.data.ll8[this.su_tPos] & 0xff;
-			this.su_ch2 = su_ch2Shadow;
-			this.su_tPos = this.data.tt[this.su_tPos];
-			this.su_i2++;
-			this.currentChar = su_ch2Shadow;
-			this.currentState = NO_RAND_PART_B_STATE;
-			this.crc.updateCRC( su_ch2Shadow );
-		} else {
-			this.currentState = NO_RAND_PART_A_STATE;
-			endBlock();
-			initBlock();
-			setupBlock();
-		}
-	}
-
-	private void setupRandPartB() throws IOException {
-		if ( this.su_ch2 != this.su_chPrev ) {
-			this.currentState = RAND_PART_A_STATE;
-			this.su_count = 1;
-			setupRandPartA();
-		} else if ( ++this.su_count >= 4 ) {
-			this.su_z = (char) ( this.data.ll8[this.su_tPos] & 0xff );
-			this.su_tPos = this.data.tt[this.su_tPos];
-			if ( this.su_rNToGo == 0 ) {
-				this.su_rNToGo = BZip2Constants.rNums[this.su_rTPos] - 1;
-				if ( ++this.su_rTPos == 512 ) {
-					this.su_rTPos = 0;
-				}
-			} else {
-				this.su_rNToGo--;
-			}
-			this.su_j2 = 0;
-			this.currentState = RAND_PART_C_STATE;
-			if ( this.su_rNToGo == 1 ) {
-				this.su_z ^= 1;
-			}
-			setupRandPartC();
-		} else {
-			this.currentState = RAND_PART_A_STATE;
-			setupRandPartA();
-		}
-	}
-
-	private void setupRandPartC() throws IOException {
-		if ( this.su_j2 < this.su_z ) {
-			this.currentChar = this.su_ch2;
-			this.crc.updateCRC( this.su_ch2 );
-			this.su_j2++;
-		} else {
-			this.currentState = RAND_PART_A_STATE;
-			this.su_i2++;
-			this.su_count = 0;
-			setupRandPartA();
-		}
-	}
-
-	private void setupNoRandPartB() throws IOException {
-		if ( this.su_ch2 != this.su_chPrev ) {
-			this.su_count = 1;
-			setupNoRandPartA();
-		} else if ( ++this.su_count >= 4 ) {
-			this.su_z = (char) ( this.data.ll8[this.su_tPos] & 0xff );
-			this.su_tPos = this.data.tt[this.su_tPos];
-			this.su_j2 = 0;
-			setupNoRandPartC();
-		} else {
-			setupNoRandPartA();
-		}
-	}
-
-	private void setupNoRandPartC() throws IOException {
-		if ( this.su_j2 < this.su_z ) {
-			int su_ch2Shadow = this.su_ch2;
-			this.currentChar = su_ch2Shadow;
-			this.crc.updateCRC( su_ch2Shadow );
-			this.su_j2++;
-			this.currentState = NO_RAND_PART_C_STATE;
-		} else {
-			this.su_i2++;
-			this.su_count = 0;
-			setupNoRandPartA();
-		}
-	}
-
-	private static final class Data extends Object {
-
-		// (with blockSize 900k)
-		final boolean[] inUse = new boolean[256]; //      256 byte
-
-		final byte[] seqToUnseq = new byte[256]; //      256 byte
-		final byte[] selector = new byte[MAX_SELECTORS]; //    18002 byte
-		final byte[] selectorMtf = new byte[MAX_SELECTORS]; //    18002 byte
-
-		/**
-		 * Freq table collected to save a pass over the data during
-		 * decompression.
-		 */
-		final int[] unzftab = new int[256]; //     1024 byte
-
-		final int[][] limit = new int[N_GROUPS][MAX_ALPHA_SIZE]; //     6192 byte
-		final int[][] base = new int[N_GROUPS][MAX_ALPHA_SIZE]; //     6192 byte
-		final int[][] perm = new int[N_GROUPS][MAX_ALPHA_SIZE]; //     6192 byte
-		final int[] minLens = new int[N_GROUPS]; //       24 byte
-
-		final int[] cftab = new int[257]; //     1028 byte
-		final char[] getAndMoveToFrontDecode_yy = new char[256]; //      512 byte
-		final char[][] temp_charArray2d = new char[N_GROUPS][MAX_ALPHA_SIZE]; //     3096 byte
-		final byte[] recvDecodingTables_pos = new byte[N_GROUPS]; //        6 byte
-		//---------------
-		//    60798 byte
-
-		int[] tt; //  3600000 byte
-		byte[] ll8; //   900000 byte
-
-		//---------------
-		//  4560782 byte
-		//===============
-
-		Data( int blockSize100k ) {
-			super();
-
-			this.ll8 = new byte[blockSize100k * BZip2Constants.baseBlockSize];
-		}
-
-		/**
-		 * Initializes the {@link #tt} array.
-		 *
-		 * This method is called when the required length of the array
-		 * is known.  I don't initialize it at construction time to
-		 * avoid unneccessary memory allocation when compressing small
-		 * files.
-		 */
-		final int[] initTT( int length ) {
-			int[] ttShadow = this.tt;
-
-			// tt.length should always be >= length, but theoretically
-			// it can happen, if the compressor mixed small and large
-			// blocks.  Normally only the last block will be smaller
-			// than others.
-			if ( ( ttShadow == null ) || ( ttShadow.length < length ) ) {
-				this.tt = ttShadow = new int[length];
-			}
-
-			return ttShadow;
-		}
-
-	}
-}
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2OutputStream.java b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2OutputStream.java
deleted file mode 100644
index c5f6179..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CBZip2OutputStream.java
+++ /dev/null
@@ -1,2054 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-/*
- * This package is based on the work done by Keiron Liddle, Aftex Software
- * <keiron@aftexsw.com> to whom the Ant project is very grateful for his
- * great code.
- */
-
-package org.apache.tools.bzip2;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * An output stream that compresses into the BZip2 format (without the file
- * header chars) into another stream.
-
- * <p>The compression requires large amounts of memory. Thus you
- * should call the {@link #close() close()} method as soon as
- * possible, to force <tt>CBZip2OutputStream</tt> to release the
- * allocated memory.</p>
- *
- * <p>You can shrink the amount of allocated memory and maybe raise
- * the compression speed by choosing a lower blocksize, which in turn
- * may cause a lower compression ratio.  You can avoid unnecessary
- * memory allocation by avoiding using a blocksize which is bigger
- * than the size of the input. </p>
- *
- * <p>You can compute the memory usage for compressing by the
- * following formula:</p>
- * <pre>
- * <code>400k + (9 * blocksize)</code>.
- * </pre>
- * 
- * <p>To get the memory required for decompression by {@link
- * CBZip2InputStream CBZip2InputStream} use</p>
- * <pre>
- * <code>65k + (5 * blocksize)</code>.
- * </pre>
- *
- * <table width="100%" border="1">
- *  <colgroup>
- *    <col width="33%" />
- *    <col width="33%" />
- *    <col width="33%" />
- *  </colgroup>
- *  <tr>
- *    <th colspan="3">Memory usage by blocksize</th>
- *  </tr><tr>
- *    <th align="right">Blocksize</th>
- *    <th align="right">Compression<br>memory usage</th>
- *    <th align="right">Decompression<br>memory usage</th>
- *  </tr><tr>
- *    <td align="right">100k</td>
- *    <td align="right">1300k</td>
- *    <td align="right"> 565k</td>
- *  </tr><tr>
- *    <td align="right">200k</td>
- *    <td align="right">2200k</td>
- *    <td align="right">1065k</td>
- *  </tr><tr>
- *    <td align="right">300k</td>
- *    <td align="right">3100k</td>
- *    <td align="right">1565k</td>
- *  </tr><tr>
- *    <td align="right">400k</td>
- *    <td align="right">4000k</td>
- *    <td align="right">2065k</td>
- *  </tr><tr>
- *    <td align="right">500k</td>
- *    <td align="right">4900k</td>
- *    <td align="right">2565k</td>
- *  </tr><tr>
- *    <td align="right">600k</td>
- *    <td align="right">5800k</td>
- *    <td align="right">3065k</td>
- *  </tr><tr>
- *    <td align="right">700k</td>
- *    <td align="right">6700k</td>
- *    <td align="right">3565k</td>
- *  </tr><tr>
- *    <td align="right">800k</td>
- *    <td align="right">7600k</td>
- *    <td align="right">4065k</td>
- *  </tr><tr>
- *    <td align="right">900k</td>
- *    <td align="right">8500k</td>
- *    <td align="right">4565k</td>
- *  </tr>
- * </table>
- *
- * <p>For decompression <tt>CBZip2InputStream</tt> allocates less
- * memory if the bzipped input is smaller than one block.</p>
- *
- * <p>Instances of this class are not threadsafe.</p>
- *
- * <p>
- * TODO:    Update to BZip2 1.0.1
- * </p>
- *
- */
-public class CBZip2OutputStream extends OutputStream implements BZip2Constants {
-
-	// Bzip2 extensions by Stefan.Liebig@compeople.de:
-	//
-	// - added a finish() method with same semantic as the java.util.GZipOutputStream#finish method
-	//   i.e. flushes all compressed data to the underlying output stream
-	// - close() closes the underlying output stream
-	//   but reuses now finish()
-	// - finalize() only closes the underlying output stream if not finish() has been called
-
-	/**
-	 * The minimum supported blocksize <tt> == 1</tt>.
-	 */
-	public static final int MIN_BLOCKSIZE = 1;
-
-	/**
-	 * The maximum supported blocksize <tt> == 9</tt>.
-	 */
-	public static final int MAX_BLOCKSIZE = 9;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int SETMASK = ( 1 << 21 );
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int CLEARMASK = ( ~SETMASK );
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int GREATER_ICOST = 15;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int LESSER_ICOST = 0;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int SMALL_THRESH = 20;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int DEPTH_THRESH = 10;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 */
-	protected static final int WORK_FACTOR = 30;
-
-	/**
-	 * This constant is accessible by subclasses for historical purposes.
-	 * If you don't know what it means then you don't need it.
-	 * <p>
-	 If you are ever unlucky/improbable enough
-	 to get a stack overflow whilst sorting,
-	 increase the following constant and try
-	 again.  In practice I have never seen the
-	 stack go above 27 elems, so the following
-	 limit seems very generous.
-	 * </p>
-	 */
-	protected static final int QSORT_STACK_SIZE = 1000;
-
-	/**
-	 * Knuth's increments seem to work better than Incerpi-Sedgewick
-	 * here.  Possibly because the number of elems to sort is usually
-	 * small, typically &lt;= 20.
-	 */
-	private static final int[] INCS = { 1, 4, 13, 40, 121, 364, 1093, 3280, 9841, 29524, 88573, 265720, 797161, 2391484 };
-
-	/**
-	 * This method is accessible by subclasses for historical purposes.
-	 * If you don't know what it does then you don't need it.
-	 */
-	protected static void hbMakeCodeLengths( char[] len, int[] freq, int alphaSize, int maxLen ) {
-		/*
-		 Nodes and heap entries run from 1.  Entry 0
-		 for both the heap and nodes is a sentinel.
-		 */
-		final int[] heap = new int[MAX_ALPHA_SIZE * 2];
-		final int[] weight = new int[MAX_ALPHA_SIZE * 2];
-		final int[] parent = new int[MAX_ALPHA_SIZE * 2];
-
-		for ( int i = alphaSize; --i >= 0; ) {
-			weight[i + 1] = ( freq[i] == 0 ? 1 : freq[i] ) << 8;
-		}
-
-		for ( boolean tooLong = true; tooLong; ) {
-			tooLong = false;
-
-			int nNodes = alphaSize;
-			int nHeap = 0;
-			heap[0] = 0;
-			weight[0] = 0;
-			parent[0] = -2;
-
-			for ( int i = 1; i <= alphaSize; i++ ) {
-				parent[i] = -1;
-				nHeap++;
-				heap[nHeap] = i;
-
-				int zz = nHeap;
-				int tmp = heap[zz];
-				while ( weight[tmp] < weight[heap[zz >> 1]] ) {
-					heap[zz] = heap[zz >> 1];
-					zz >>= 1;
-				}
-				heap[zz] = tmp;
-			}
-
-			// assert (nHeap < (MAX_ALPHA_SIZE + 2)) : nHeap;
-
-			while ( nHeap > 1 ) {
-				int n1 = heap[1];
-				heap[1] = heap[nHeap];
-				nHeap--;
-
-				int yy = 0;
-				int zz = 1;
-				int tmp = heap[1];
-
-				while ( true ) {
-					yy = zz << 1;
-
-					if ( yy > nHeap ) {
-						break;
-					}
-
-					if ( ( yy < nHeap ) && ( weight[heap[yy + 1]] < weight[heap[yy]] ) ) {
-						yy++;
-					}
-
-					if ( weight[tmp] < weight[heap[yy]] ) {
-						break;
-					}
-
-					heap[zz] = heap[yy];
-					zz = yy;
-				}
-
-				heap[zz] = tmp;
-
-				int n2 = heap[1];
-				heap[1] = heap[nHeap];
-				nHeap--;
-
-				yy = 0;
-				zz = 1;
-				tmp = heap[1];
-
-				while ( true ) {
-					yy = zz << 1;
-
-					if ( yy > nHeap ) {
-						break;
-					}
-
-					if ( ( yy < nHeap ) && ( weight[heap[yy + 1]] < weight[heap[yy]] ) ) {
-						yy++;
-					}
-
-					if ( weight[tmp] < weight[heap[yy]] ) {
-						break;
-					}
-
-					heap[zz] = heap[yy];
-					zz = yy;
-				}
-
-				heap[zz] = tmp;
-				nNodes++;
-				parent[n1] = parent[n2] = nNodes;
-
-				final int weight_n1 = weight[n1];
-				final int weight_n2 = weight[n2];
-				weight[nNodes] = ( ( ( weight_n1 & 0xffffff00 ) + ( weight_n2 & 0xffffff00 ) ) | ( 1 + ( ( ( weight_n1 & 0x000000ff ) > ( weight_n2 & 0x000000ff ) ) ? ( weight_n1 & 0x000000ff )
-					: ( weight_n2 & 0x000000ff ) ) ) );
-
-				parent[nNodes] = -1;
-				nHeap++;
-				heap[nHeap] = nNodes;
-
-				tmp = 0;
-				zz = nHeap;
-				tmp = heap[zz];
-				final int weight_tmp = weight[tmp];
-				while ( weight_tmp < weight[heap[zz >> 1]] ) {
-					heap[zz] = heap[zz >> 1];
-					zz >>= 1;
-				}
-				heap[zz] = tmp;
-
-			}
-
-			// assert (nNodes < (MAX_ALPHA_SIZE * 2)) : nNodes;
-
-			for ( int i = 1; i <= alphaSize; i++ ) {
-				int j = 0;
-				int k = i;
-
-				for ( int parent_k; ( parent_k = parent[k] ) >= 0; ) {
-					k = parent_k;
-					j++;
-				}
-
-				len[i - 1] = (char) j;
-				if ( j > maxLen ) {
-					tooLong = true;
-				}
-			}
-
-			if ( tooLong ) {
-				for ( int i = 1; i < alphaSize; i++ ) {
-					int j = weight[i] >> 8;
-					j = 1 + ( j >> 1 );
-					weight[i] = j << 8;
-				}
-			}
-		}
-	}
-
-	private static void hbMakeCodeLengths( final byte[] len, final int[] freq, final Data dat, final int alphaSize, final int maxLen ) {
-		/*
-		 Nodes and heap entries run from 1.  Entry 0
-		 for both the heap and nodes is a sentinel.
-		 */
-		final int[] heap = dat.heap;
-		final int[] weight = dat.weight;
-		final int[] parent = dat.parent;
-
-		for ( int i = alphaSize; --i >= 0; ) {
-			weight[i + 1] = ( freq[i] == 0 ? 1 : freq[i] ) << 8;
-		}
-
-		for ( boolean tooLong = true; tooLong; ) {
-			tooLong = false;
-
-			int nNodes = alphaSize;
-			int nHeap = 0;
-			heap[0] = 0;
-			weight[0] = 0;
-			parent[0] = -2;
-
-			for ( int i = 1; i <= alphaSize; i++ ) {
-				parent[i] = -1;
-				nHeap++;
-				heap[nHeap] = i;
-
-				int zz = nHeap;
-				int tmp = heap[zz];
-				while ( weight[tmp] < weight[heap[zz >> 1]] ) {
-					heap[zz] = heap[zz >> 1];
-					zz >>= 1;
-				}
-				heap[zz] = tmp;
-			}
-
-			while ( nHeap > 1 ) {
-				int n1 = heap[1];
-				heap[1] = heap[nHeap];
-				nHeap--;
-
-				int yy = 0;
-				int zz = 1;
-				int tmp = heap[1];
-
-				while ( true ) {
-					yy = zz << 1;
-
-					if ( yy > nHeap ) {
-						break;
-					}
-
-					if ( ( yy < nHeap ) && ( weight[heap[yy + 1]] < weight[heap[yy]] ) ) {
-						yy++;
-					}
-
-					if ( weight[tmp] < weight[heap[yy]] ) {
-						break;
-					}
-
-					heap[zz] = heap[yy];
-					zz = yy;
-				}
-
-				heap[zz] = tmp;
-
-				int n2 = heap[1];
-				heap[1] = heap[nHeap];
-				nHeap--;
-
-				yy = 0;
-				zz = 1;
-				tmp = heap[1];
-
-				while ( true ) {
-					yy = zz << 1;
-
-					if ( yy > nHeap ) {
-						break;
-					}
-
-					if ( ( yy < nHeap ) && ( weight[heap[yy + 1]] < weight[heap[yy]] ) ) {
-						yy++;
-					}
-
-					if ( weight[tmp] < weight[heap[yy]] ) {
-						break;
-					}
-
-					heap[zz] = heap[yy];
-					zz = yy;
-				}
-
-				heap[zz] = tmp;
-				nNodes++;
-				parent[n1] = parent[n2] = nNodes;
-
-				final int weight_n1 = weight[n1];
-				final int weight_n2 = weight[n2];
-				weight[nNodes] = ( ( weight_n1 & 0xffffff00 ) + ( weight_n2 & 0xffffff00 ) )
-					| ( 1 + ( ( ( weight_n1 & 0x000000ff ) > ( weight_n2 & 0x000000ff ) ) ? ( weight_n1 & 0x000000ff ) : ( weight_n2 & 0x000000ff ) ) );
-
-				parent[nNodes] = -1;
-				nHeap++;
-				heap[nHeap] = nNodes;
-
-				tmp = 0;
-				zz = nHeap;
-				tmp = heap[zz];
-				final int weight_tmp = weight[tmp];
-				while ( weight_tmp < weight[heap[zz >> 1]] ) {
-					heap[zz] = heap[zz >> 1];
-					zz >>= 1;
-				}
-				heap[zz] = tmp;
-
-			}
-
-			for ( int i = 1; i <= alphaSize; i++ ) {
-				int j = 0;
-				int k = i;
-
-				for ( int parent_k; ( parent_k = parent[k] ) >= 0; ) {
-					k = parent_k;
-					j++;
-				}
-
-				len[i - 1] = (byte) j;
-				if ( j > maxLen ) {
-					tooLong = true;
-				}
-			}
-
-			if ( tooLong ) {
-				for ( int i = 1; i < alphaSize; i++ ) {
-					int j = weight[i] >> 8;
-					j = 1 + ( j >> 1 );
-					weight[i] = j << 8;
-				}
-			}
-		}
-	}
-
-	/**
-	 Index of the last char in the block, so
-	 the block size == last + 1.
-	 */
-	private int last;
-
-	/**
-	 * Index in fmap[] of original string after sorting.
-	 */
-	private int origPtr;
-
-	/**
-	 Always: in the range 0 .. 9.
-	 The current block size is 100000 * this number.
-	 */
-	private final int blockSize100k;
-
-	private boolean blockRandomised;
-
-	private int bsBuff;
-	private int bsLive;
-	private final CRC crc = new CRC();
-
-	private int nInUse;
-
-	private int nMTF;
-
-	/*
-	 * Used when sorting.  If too many long comparisons
-	 * happen, we stop sorting, randomise the block
-	 * slightly, and try again.
-	 */
-	private int workDone;
-	private int workLimit;
-	private boolean firstAttempt;
-
-	private int currentChar = -1;
-	private int runLength = 0;
-
-	private int blockCRC;
-	private int combinedCRC;
-	private int allowableBlockSize;
-
-	/**
-	 * All memory intensive stuff.
-	 */
-	private CBZip2OutputStream.Data data;
-
-	private OutputStream out;
-
-	/**
-	 * Chooses a blocksize based on the given length of the data to compress.
-	 *
-	 * @return
-	 *  The blocksize, between {@link #MIN_BLOCKSIZE} and {@link #MAX_BLOCKSIZE}
-	 *  both inclusive. For a negative <tt>inputLength</tt> this method returns
-	 *  <tt>MAX_BLOCKSIZE</tt> always.
-	 *
-	 * @param inputLength
-	 *  The length of the data which will be compressed by
-	 *  <tt>CBZip2OutputStream</tt>.
-	 */
-	public static int chooseBlockSize( long inputLength ) {
-		return ( inputLength > 0 ) ? (int) Math.min( ( inputLength / 132000 ) + 1, 9 ) : MAX_BLOCKSIZE;
-	}
-
-	/**
-	 * Constructs a new <tt>CBZip2OutputStream</tt> with a blocksize of 900k.
-	 * 
-	 * <p><b>Attention: </b>The caller is resonsible to write the two
-	 * BZip2 magic bytes <tt>"BZ"</tt> to the specified stream prior
-	 * to calling this constructor.</p>
-	 *
-	 * @param out *  the destination stream.
-	 *
-	 * @throws IOException
-	 *  if an I/O error occurs in the specified stream.
-	 * @throws NullPointerException
-	 *  if <code>out == null</code>.
-	 */
-	public CBZip2OutputStream( final OutputStream out ) throws IOException {
-		this( out, MAX_BLOCKSIZE );
-	}
-
-	/**
-	 * Constructs a new <tt>CBZip2OutputStream</tt> with specified blocksize.
-	 * 
-	 * <p><b>Attention: </b>The caller is resonsible to write the two
-	 * BZip2 magic bytes <tt>"BZ"</tt> to the specified stream prior
-	 * to calling this constructor.</p>
-	 *
-	 *
-	 * @param out
-	 *  the destination stream.
-	 * @param blockSize
-	 *  the blockSize as 100k units.
-	 *
-	 * @throws IOException
-	 *  if an I/O error occurs in the specified stream.
-	 * @throws IllegalArgumentException
-	 *  if <code>(blockSize < 1) || (blockSize > 9)</code>.
-	 * @throws NullPointerException
-	 *  if <code>out == null</code>.
-	 *
-	 * @see #MIN_BLOCKSIZE
-	 * @see #MAX_BLOCKSIZE
-	 */
-	public CBZip2OutputStream( final OutputStream out, final int blockSize ) throws IOException {
-		super();
-
-		if ( blockSize < 1 ) {
-			throw new IllegalArgumentException( "blockSize(" + blockSize + ") < 1" );
-		}
-		if ( blockSize > 9 ) {
-			throw new IllegalArgumentException( "blockSize(" + blockSize + ") > 9" );
-		}
-
-		this.blockSize100k = blockSize;
-		this.out = out;
-		init();
-	}
-
-	public void write( final int b ) throws IOException {
-		if ( this.out != null ) {
-			write0( b );
-		} else {
-			throw new IOException( "closed" );
-		}
-	}
-
-	private void writeRun() throws IOException {
-		final int lastShadow = this.last;
-
-		if ( lastShadow < this.allowableBlockSize ) {
-			final int currentCharShadow = this.currentChar;
-			final Data dataShadow = this.data;
-			dataShadow.inUse[currentCharShadow] = true;
-			final byte ch = (byte) currentCharShadow;
-
-			int runLengthShadow = this.runLength;
-			this.crc.updateCRC( currentCharShadow, runLengthShadow );
-
-			switch ( runLengthShadow ) {
-				case 1:
-					dataShadow.block[lastShadow + 2] = ch;
-					this.last = lastShadow + 1;
-					break;
-
-				case 2:
-					dataShadow.block[lastShadow + 2] = ch;
-					dataShadow.block[lastShadow + 3] = ch;
-					this.last = lastShadow + 2;
-					break;
-
-				case 3: {
-					final byte[] block = dataShadow.block;
-					block[lastShadow + 2] = ch;
-					block[lastShadow + 3] = ch;
-					block[lastShadow + 4] = ch;
-					this.last = lastShadow + 3;
-				}
-					break;
-
-				default: {
-					runLengthShadow -= 4;
-					dataShadow.inUse[runLengthShadow] = true;
-					final byte[] block = dataShadow.block;
-					block[lastShadow + 2] = ch;
-					block[lastShadow + 3] = ch;
-					block[lastShadow + 4] = ch;
-					block[lastShadow + 5] = ch;
-					block[lastShadow + 6] = (byte) runLengthShadow;
-					this.last = lastShadow + 5;
-				}
-					break;
-
-			}
-		} else {
-			endBlock();
-			initBlock();
-			writeRun();
-		}
-	}
-
-	/**
-	 * Finishes compressing to the underlying stream without closing it,
-	 * so that multiple compressors can write subsequently to the same
-	 * output stream.
-	 *  
-	 * @throws IOException
-	 */
-	public void finish() throws IOException {
-		OutputStream outShadow = this.out;
-		if ( outShadow != null && this.data != null ) {
-			try {
-				if ( this.runLength > 0 ) {
-					writeRun();
-				}
-				this.currentChar = -1;
-				endBlock();
-				endCompression();
-			} finally {
-				this.data = null;
-			}
-		}
-	}
-
-	/**
-	 * Overriden to close the stream.
-	 */
-	protected void finalize() throws Throwable {
-		if ( this.data != null ) {
-			close();
-			super.finalize();
-		}
-	}
-
-	public void close() throws IOException {
-		finish();
-		OutputStream outShadow = this.out;
-		if ( outShadow != null ) {
-			try {
-				outShadow.close();
-			} finally {
-				this.out = null;
-			}
-		}
-
-	}
-
-	public void flush() throws IOException {
-		OutputStream outShadow = this.out;
-		if ( outShadow != null ) {
-			outShadow.flush();
-		}
-	}
-
-	private void init() throws IOException {
-		// write magic: done by caller who created this stream
-		//this.out.write('B');
-		//this.out.write('Z');
-
-		this.data = new Data( this.blockSize100k );
-
-		/* Write `magic' bytes h indicating file-format == huffmanised,
-		 followed by a digit indicating blockSize100k.
-		 */
-		bsPutUByte( 'h' );
-		bsPutUByte( '0' + this.blockSize100k );
-
-		this.combinedCRC = 0;
-		initBlock();
-	}
-
-	private void initBlock() {
-		//        blockNo++;
-		this.crc.initialiseCRC();
-		this.last = -1;
-		//        ch = 0;
-
-		boolean[] inUse = this.data.inUse;
-		for ( int i = 256; --i >= 0; ) {
-			inUse[i] = false;
-		}
-
-		/* 20 is just a paranoia constant */
-		this.allowableBlockSize = ( this.blockSize100k * BZip2Constants.baseBlockSize ) - 20;
-	}
-
-	private void endBlock() throws IOException {
-		this.blockCRC = this.crc.getFinalCRC();
-		this.combinedCRC = ( this.combinedCRC << 1 ) | ( this.combinedCRC >>> 31 );
-		this.combinedCRC ^= this.blockCRC;
-
-		// empty block at end of file
-		if ( this.last == -1 ) {
-			return;
-		}
-
-		/* sort the block and establish posn of original string */
-		blockSort();
-
-		/*
-		 A 6-byte block header, the value chosen arbitrarily
-		 as 0x314159265359 :-).  A 32 bit value does not really
-		 give a strong enough guarantee that the value will not
-		 appear by chance in the compressed datastream.  Worst-case
-		 probability of this event, for a 900k block, is about
-		 2.0e-3 for 32 bits, 1.0e-5 for 40 bits and 4.0e-8 for 48 bits.
-		 For a compressed file of size 100Gb -- about 100000 blocks --
-		 only a 48-bit marker will do.  NB: normal compression/
-		 decompression do *not* rely on these statistical properties.
-		 They are only important when trying to recover blocks from
-		 damaged files.
-		 */
-		bsPutUByte( 0x31 );
-		bsPutUByte( 0x41 );
-		bsPutUByte( 0x59 );
-		bsPutUByte( 0x26 );
-		bsPutUByte( 0x53 );
-		bsPutUByte( 0x59 );
-
-		/* Now the block's CRC, so it is in a known place. */
-		bsPutInt( this.blockCRC );
-
-		/* Now a single bit indicating randomisation. */
-		if ( this.blockRandomised ) {
-			bsW( 1, 1 );
-		} else {
-			bsW( 1, 0 );
-		}
-
-		/* Finally, block's contents proper. */
-		moveToFrontCodeAndSend();
-	}
-
-	private void endCompression() throws IOException {
-		/*
-		 Now another magic 48-bit number, 0x177245385090, to
-		 indicate the end of the last block.  (sqrt(pi), if
-		 you want to know.  I did want to use e, but it contains
-		 too much repetition -- 27 18 28 18 28 46 -- for me
-		 to feel statistically comfortable.  Call me paranoid.)
-		 */
-		bsPutUByte( 0x17 );
-		bsPutUByte( 0x72 );
-		bsPutUByte( 0x45 );
-		bsPutUByte( 0x38 );
-		bsPutUByte( 0x50 );
-		bsPutUByte( 0x90 );
-
-		bsPutInt( this.combinedCRC );
-		bsFinishedWithStream();
-	}
-
-	/**
-	 * Returns the blocksize parameter specified at construction time.
-	 */
-	public final int getBlockSize() {
-		return this.blockSize100k;
-	}
-
-	public void write( final byte[] buf, int offs, final int len ) throws IOException {
-		if ( offs < 0 ) {
-			throw new IndexOutOfBoundsException( "offs(" + offs + ") < 0." );
-		}
-		if ( len < 0 ) {
-			throw new IndexOutOfBoundsException( "len(" + len + ") < 0." );
-		}
-		if ( offs + len > buf.length ) {
-			throw new IndexOutOfBoundsException( "offs(" + offs + ") + len(" + len + ") > buf.length(" + buf.length + ")." );
-		}
-		if ( this.out == null ) {
-			throw new IOException( "stream closed" );
-		}
-
-		for ( int hi = offs + len; offs < hi; ) {
-			write0( buf[offs++] );
-		}
-	}
-
-	private void write0( int b ) throws IOException {
-		if ( this.currentChar != -1 ) {
-			b &= 0xff;
-			if ( this.currentChar == b ) {
-				if ( ++this.runLength > 254 ) {
-					writeRun();
-					this.currentChar = -1;
-					this.runLength = 0;
-				}
-				// else nothing to do
-			} else {
-				writeRun();
-				this.runLength = 1;
-				this.currentChar = b;
-			}
-		} else {
-			this.currentChar = b & 0xff;
-			this.runLength++;
-		}
-	}
-
-	private static void hbAssignCodes( final int[] code, final byte[] length, final int minLen, final int maxLen, final int alphaSize ) {
-		int vec = 0;
-		for ( int n = minLen; n <= maxLen; n++ ) {
-			for ( int i = 0; i < alphaSize; i++ ) {
-				if ( ( length[i] & 0xff ) == n ) {
-					code[i] = vec;
-					vec++;
-				}
-			}
-			vec <<= 1;
-		}
-	}
-
-	private void bsFinishedWithStream() throws IOException {
-		while ( this.bsLive > 0 ) {
-			int ch = this.bsBuff >> 24;
-			this.out.write( ch ); // write 8-bit
-			this.bsBuff <<= 8;
-			this.bsLive -= 8;
-		}
-	}
-
-	private void bsW( final int n, final int v ) throws IOException {
-		final OutputStream outShadow = this.out;
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		while ( bsLiveShadow >= 8 ) {
-			outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-			bsBuffShadow <<= 8;
-			bsLiveShadow -= 8;
-		}
-
-		this.bsBuff = bsBuffShadow | ( v << ( 32 - bsLiveShadow - n ) );
-		this.bsLive = bsLiveShadow + n;
-	}
-
-	private void bsPutUByte( final int c ) throws IOException {
-		bsW( 8, c );
-	}
-
-	private void bsPutInt( final int u ) throws IOException {
-		bsW( 8, ( u >> 24 ) & 0xff );
-		bsW( 8, ( u >> 16 ) & 0xff );
-		bsW( 8, ( u >> 8 ) & 0xff );
-		bsW( 8, u & 0xff );
-	}
-
-	private void sendMTFValues() throws IOException {
-		final byte[][] len = this.data.sendMTFValues_len;
-		final int alphaSize = this.nInUse + 2;
-
-		for ( int t = N_GROUPS; --t >= 0; ) {
-			byte[] len_t = len[t];
-			for ( int v = alphaSize; --v >= 0; ) {
-				len_t[v] = GREATER_ICOST;
-			}
-		}
-
-		/* Decide how many coding tables to use */
-		// assert (this.nMTF > 0) : this.nMTF;
-		final int nGroups = ( this.nMTF < 200 ) ? 2 : ( this.nMTF < 600 ) ? 3 : ( this.nMTF < 1200 ) ? 4 : ( this.nMTF < 2400 ) ? 5 : 6;
-
-		/* Generate an initial set of coding tables */
-		sendMTFValues0( nGroups, alphaSize );
-
-		/*
-		 Iterate up to N_ITERS times to improve the tables.
-		 */
-		final int nSelectors = sendMTFValues1( nGroups, alphaSize );
-
-		/* Compute MTF values for the selectors. */
-		sendMTFValues2( nGroups, nSelectors );
-
-		/* Assign actual codes for the tables. */
-		sendMTFValues3( nGroups, alphaSize );
-
-		/* Transmit the mapping table. */
-		sendMTFValues4();
-
-		/* Now the selectors. */
-		sendMTFValues5( nGroups, nSelectors );
-
-		/* Now the coding tables. */
-		sendMTFValues6( nGroups, alphaSize );
-
-		/* And finally, the block data proper */
-		sendMTFValues7( nSelectors );
-	}
-
-	private void sendMTFValues0( final int nGroups, final int alphaSize ) {
-		final byte[][] len = this.data.sendMTFValues_len;
-		final int[] mtfFreq = this.data.mtfFreq;
-
-		int remF = this.nMTF;
-		int gs = 0;
-
-		for ( int nPart = nGroups; nPart > 0; nPart-- ) {
-			final int tFreq = remF / nPart;
-			int ge = gs - 1;
-			int aFreq = 0;
-
-			for ( final int a = alphaSize - 1; ( aFreq < tFreq ) && ( ge < a ); ) {
-				aFreq += mtfFreq[++ge];
-			}
-
-			if ( ( ge > gs ) && ( nPart != nGroups ) && ( nPart != 1 ) && ( ( ( nGroups - nPart ) & 1 ) != 0 ) ) {
-				aFreq -= mtfFreq[ge--];
-			}
-
-			final byte[] len_np = len[nPart - 1];
-			for ( int v = alphaSize; --v >= 0; ) {
-				if ( ( v >= gs ) && ( v <= ge ) ) {
-					len_np[v] = LESSER_ICOST;
-				} else {
-					len_np[v] = GREATER_ICOST;
-				}
-			}
-
-			gs = ge + 1;
-			remF -= aFreq;
-		}
-	}
-
-	private int sendMTFValues1( final int nGroups, final int alphaSize ) {
-		final Data dataShadow = this.data;
-		final int[][] rfreq = dataShadow.sendMTFValues_rfreq;
-		final int[] fave = dataShadow.sendMTFValues_fave;
-		final short[] cost = dataShadow.sendMTFValues_cost;
-		final char[] sfmap = dataShadow.sfmap;
-		final byte[] selector = dataShadow.selector;
-		final byte[][] len = dataShadow.sendMTFValues_len;
-		final byte[] len_0 = len[0];
-		final byte[] len_1 = len[1];
-		final byte[] len_2 = len[2];
-		final byte[] len_3 = len[3];
-		final byte[] len_4 = len[4];
-		final byte[] len_5 = len[5];
-		final int nMTFShadow = this.nMTF;
-
-		int nSelectors = 0;
-
-		for ( int iter = 0; iter < N_ITERS; iter++ ) {
-			for ( int t = nGroups; --t >= 0; ) {
-				fave[t] = 0;
-				int[] rfreqt = rfreq[t];
-				for ( int i = alphaSize; --i >= 0; ) {
-					rfreqt[i] = 0;
-				}
-			}
-
-			nSelectors = 0;
-
-			for ( int gs = 0; gs < this.nMTF; ) {
-				/* Set group start & end marks. */
-
-				/*
-				 Calculate the cost of this group as coded
-				 by each of the coding tables.
-				 */
-
-				final int ge = Math.min( gs + G_SIZE - 1, nMTFShadow - 1 );
-
-				if ( nGroups == N_GROUPS ) {
-					// unrolled version of the else-block
-
-					short cost0 = 0;
-					short cost1 = 0;
-					short cost2 = 0;
-					short cost3 = 0;
-					short cost4 = 0;
-					short cost5 = 0;
-
-					for ( int i = gs; i <= ge; i++ ) {
-						final int icv = sfmap[i];
-						cost0 += len_0[icv] & 0xff;
-						cost1 += len_1[icv] & 0xff;
-						cost2 += len_2[icv] & 0xff;
-						cost3 += len_3[icv] & 0xff;
-						cost4 += len_4[icv] & 0xff;
-						cost5 += len_5[icv] & 0xff;
-					}
-
-					cost[0] = cost0;
-					cost[1] = cost1;
-					cost[2] = cost2;
-					cost[3] = cost3;
-					cost[4] = cost4;
-					cost[5] = cost5;
-
-				} else {
-					for ( int t = nGroups; --t >= 0; ) {
-						cost[t] = 0;
-					}
-
-					for ( int i = gs; i <= ge; i++ ) {
-						final int icv = sfmap[i];
-						for ( int t = nGroups; --t >= 0; ) {
-							cost[t] += len[t][icv] & 0xff;
-						}
-					}
-				}
-
-				/*
-				 Find the coding table which is best for this group,
-				 and record its identity in the selector table.
-				 */
-				int bt = -1;
-				for ( int t = nGroups, bc = 999999999; --t >= 0; ) {
-					final int cost_t = cost[t];
-					if ( cost_t < bc ) {
-						bc = cost_t;
-						bt = t;
-					}
-				}
-
-				fave[bt]++;
-				selector[nSelectors] = (byte) bt;
-				nSelectors++;
-
-				/*
-				 Increment the symbol frequencies for the selected table.
-				 */
-				final int[] rfreq_bt = rfreq[bt];
-				for ( int i = gs; i <= ge; i++ ) {
-					rfreq_bt[sfmap[i]]++;
-				}
-
-				gs = ge + 1;
-			}
-
-			/*
-			 Recompute the tables based on the accumulated frequencies.
-			 */
-			for ( int t = 0; t < nGroups; t++ ) {
-				hbMakeCodeLengths( len[t], rfreq[t], this.data, alphaSize, 20 );
-			}
-		}
-
-		return nSelectors;
-	}
-
-	private void sendMTFValues2( final int nGroups, final int nSelectors ) {
-		// assert (nGroups < 8) : nGroups;
-
-		final Data dataShadow = this.data;
-		byte[] pos = dataShadow.sendMTFValues2_pos;
-
-		for ( int i = nGroups; --i >= 0; ) {
-			pos[i] = (byte) i;
-		}
-
-		for ( int i = 0; i < nSelectors; i++ ) {
-			final byte ll_i = dataShadow.selector[i];
-			byte tmp = pos[0];
-			int j = 0;
-
-			while ( ll_i != tmp ) {
-				j++;
-				byte tmp2 = tmp;
-				tmp = pos[j];
-				pos[j] = tmp2;
-			}
-
-			pos[0] = tmp;
-			dataShadow.selectorMtf[i] = (byte) j;
-		}
-	}
-
-	private void sendMTFValues3( final int nGroups, final int alphaSize ) {
-		int[][] code = this.data.sendMTFValues_code;
-		byte[][] len = this.data.sendMTFValues_len;
-
-		for ( int t = 0; t < nGroups; t++ ) {
-			int minLen = 32;
-			int maxLen = 0;
-			final byte[] len_t = len[t];
-			for ( int i = alphaSize; --i >= 0; ) {
-				final int l = len_t[i] & 0xff;
-				if ( l > maxLen ) {
-					maxLen = l;
-				}
-				if ( l < minLen ) {
-					minLen = l;
-				}
-			}
-
-			// assert (maxLen <= 20) : maxLen;
-			// assert (minLen >= 1) : minLen;
-
-			hbAssignCodes( code[t], len[t], minLen, maxLen, alphaSize );
-		}
-	}
-
-	private void sendMTFValues4() throws IOException {
-		final boolean[] inUse = this.data.inUse;
-		final boolean[] inUse16 = this.data.sentMTFValues4_inUse16;
-
-		for ( int i = 16; --i >= 0; ) {
-			inUse16[i] = false;
-			final int i16 = i * 16;
-			for ( int j = 16; --j >= 0; ) {
-				if ( inUse[i16 + j] ) {
-					inUse16[i] = true;
-				}
-			}
-		}
-
-		for ( int i = 0; i < 16; i++ ) {
-			bsW( 1, inUse16[i] ? 1 : 0 );
-		}
-
-		final OutputStream outShadow = this.out;
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		for ( int i = 0; i < 16; i++ ) {
-			if ( inUse16[i] ) {
-				final int i16 = i * 16;
-				for ( int j = 0; j < 16; j++ ) {
-					// inlined: bsW(1, inUse[i16 + j] ? 1 : 0);
-					while ( bsLiveShadow >= 8 ) {
-						outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-						bsBuffShadow <<= 8;
-						bsLiveShadow -= 8;
-					}
-					if ( inUse[i16 + j] ) {
-						bsBuffShadow |= 1 << ( 32 - bsLiveShadow - 1 );
-					}
-					bsLiveShadow++;
-				}
-			}
-		}
-
-		this.bsBuff = bsBuffShadow;
-		this.bsLive = bsLiveShadow;
-	}
-
-	private void sendMTFValues5( final int nGroups, final int nSelectors ) throws IOException {
-		bsW( 3, nGroups );
-		bsW( 15, nSelectors );
-
-		final OutputStream outShadow = this.out;
-		final byte[] selectorMtf = this.data.selectorMtf;
-
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		for ( int i = 0; i < nSelectors; i++ ) {
-			for ( int j = 0, hj = selectorMtf[i] & 0xff; j < hj; j++ ) {
-				// inlined: bsW(1, 1);
-				while ( bsLiveShadow >= 8 ) {
-					outShadow.write( bsBuffShadow >> 24 );
-					bsBuffShadow <<= 8;
-					bsLiveShadow -= 8;
-				}
-				bsBuffShadow |= 1 << ( 32 - bsLiveShadow - 1 );
-				bsLiveShadow++;
-			}
-
-			// inlined: bsW(1, 0);
-			while ( bsLiveShadow >= 8 ) {
-				outShadow.write( bsBuffShadow >> 24 );
-				bsBuffShadow <<= 8;
-				bsLiveShadow -= 8;
-			}
-			//bsBuffShadow |= 0 << (32 - bsLiveShadow - 1);
-			bsLiveShadow++;
-		}
-
-		this.bsBuff = bsBuffShadow;
-		this.bsLive = bsLiveShadow;
-	}
-
-	private void sendMTFValues6( final int nGroups, final int alphaSize ) throws IOException {
-		final byte[][] len = this.data.sendMTFValues_len;
-		final OutputStream outShadow = this.out;
-
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		for ( int t = 0; t < nGroups; t++ ) {
-			byte[] len_t = len[t];
-			int curr = len_t[0] & 0xff;
-
-			// inlined: bsW(5, curr);
-			while ( bsLiveShadow >= 8 ) {
-				outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-				bsBuffShadow <<= 8;
-				bsLiveShadow -= 8;
-			}
-			bsBuffShadow |= curr << ( 32 - bsLiveShadow - 5 );
-			bsLiveShadow += 5;
-
-			for ( int i = 0; i < alphaSize; i++ ) {
-				int lti = len_t[i] & 0xff;
-				while ( curr < lti ) {
-					// inlined: bsW(2, 2);
-					while ( bsLiveShadow >= 8 ) {
-						outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-						bsBuffShadow <<= 8;
-						bsLiveShadow -= 8;
-					}
-					bsBuffShadow |= 2 << ( 32 - bsLiveShadow - 2 );
-					bsLiveShadow += 2;
-
-					curr++; /* 10 */
-				}
-
-				while ( curr > lti ) {
-					// inlined: bsW(2, 3);
-					while ( bsLiveShadow >= 8 ) {
-						outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-						bsBuffShadow <<= 8;
-						bsLiveShadow -= 8;
-					}
-					bsBuffShadow |= 3 << ( 32 - bsLiveShadow - 2 );
-					bsLiveShadow += 2;
-
-					curr--; /* 11 */
-				}
-
-				// inlined: bsW(1, 0);
-				while ( bsLiveShadow >= 8 ) {
-					outShadow.write( bsBuffShadow >> 24 ); // write 8-bit
-					bsBuffShadow <<= 8;
-					bsLiveShadow -= 8;
-				}
-				// bsBuffShadow |= 0 << (32 - bsLiveShadow - 1);
-				bsLiveShadow++;
-			}
-		}
-
-		this.bsBuff = bsBuffShadow;
-		this.bsLive = bsLiveShadow;
-	}
-
-	private void sendMTFValues7( final int nSelectors ) throws IOException {
-		final Data dataShadow = this.data;
-		final byte[][] len = dataShadow.sendMTFValues_len;
-		final int[][] code = dataShadow.sendMTFValues_code;
-		final OutputStream outShadow = this.out;
-		final byte[] selector = dataShadow.selector;
-		final char[] sfmap = dataShadow.sfmap;
-		final int nMTFShadow = this.nMTF;
-
-		int selCtr = 0;
-
-		int bsLiveShadow = this.bsLive;
-		int bsBuffShadow = this.bsBuff;
-
-		for ( int gs = 0; gs < nMTFShadow; ) {
-			final int ge = Math.min( gs + G_SIZE - 1, nMTFShadow - 1 );
-			final int selector_selCtr = selector[selCtr] & 0xff;
-			final int[] code_selCtr = code[selector_selCtr];
-			final byte[] len_selCtr = len[selector_selCtr];
-
-			while ( gs <= ge ) {
-				final int sfmap_i = sfmap[gs];
-
-				//
-				// inlined: bsW(len_selCtr[sfmap_i] & 0xff,
-				//              code_selCtr[sfmap_i]);
-				//
-				while ( bsLiveShadow >= 8 ) {
-					outShadow.write( bsBuffShadow >> 24 );
-					bsBuffShadow <<= 8;
-					bsLiveShadow -= 8;
-				}
-				final int n = len_selCtr[sfmap_i] & 0xFF;
-				bsBuffShadow |= code_selCtr[sfmap_i] << ( 32 - bsLiveShadow - n );
-				bsLiveShadow += n;
-
-				gs++;
-			}
-
-			gs = ge + 1;
-			selCtr++;
-		}
-
-		this.bsBuff = bsBuffShadow;
-		this.bsLive = bsLiveShadow;
-	}
-
-	private void moveToFrontCodeAndSend() throws IOException {
-		bsW( 24, this.origPtr );
-		generateMTFValues();
-		sendMTFValues();
-	}
-
-	/**
-	 * This is the most hammered method of this class.
-	 *
-	 * <p>This is the version using unrolled loops. Normally I never
-	 * use such ones in Java code.  The unrolling has shown a
-	 * noticable performance improvement on JRE 1.4.2 (Linux i586 /
-	 * HotSpot Client). Of course it depends on the JIT compiler of
-	 * the vm.</p>
-	 */
-	private boolean mainSimpleSort( final Data dataShadow, final int lo, final int hi, final int d ) {
-		final int bigN = hi - lo + 1;
-		if ( bigN < 2 ) {
-			return this.firstAttempt && ( this.workDone > this.workLimit );
-		}
-
-		int hp = 0;
-		while ( INCS[hp] < bigN ) {
-			hp++;
-		}
-
-		final int[] fmap = dataShadow.fmap;
-		final char[] quadrant = dataShadow.quadrant;
-		final byte[] block = dataShadow.block;
-		final int lastShadow = this.last;
-		final int lastPlus1 = lastShadow + 1;
-		final boolean firstAttemptShadow = this.firstAttempt;
-		final int workLimitShadow = this.workLimit;
-		int workDoneShadow = this.workDone;
-
-		// Following block contains unrolled code which could be shortened by
-		// coding it in additional loops.
-
-		HP: while ( --hp >= 0 ) {
-			final int h = INCS[hp];
-			final int mj = lo + h - 1;
-
-			for ( int i = lo + h; i <= hi; ) {
-				// copy
-				for ( int k = 3; ( i <= hi ) && ( --k >= 0 ); i++ ) {
-					final int v = fmap[i];
-					final int vd = v + d;
-					int j = i;
-
-					//  for (int a;
-					//       (j > mj) && mainGtU((a = fmap[j - h]) + d, vd,
-					//                           block, quadrant, lastShadow);
-					//       j -= h) {
-					//      fmap[j] = a;
-					//  }
-					//
-					// unrolled version:
-
-					// start inline mainGTU
-					boolean onceRunned = false;
-					int a = 0;
-
-					HAMMER: while ( true ) {
-						if ( onceRunned ) {
-							fmap[j] = a;
-							if ( ( j -= h ) <= mj ) {
-								break HAMMER;
-							}
-						} else {
-							onceRunned = true;
-						}
-
-						a = fmap[j - h];
-						int i1 = a + d;
-						int i2 = vd;
-
-						// following could be done in a loop, but
-						// unrolled it for performance:
-						if ( block[i1 + 1] == block[i2 + 1] ) {
-							if ( block[i1 + 2] == block[i2 + 2] ) {
-								if ( block[i1 + 3] == block[i2 + 3] ) {
-									if ( block[i1 + 4] == block[i2 + 4] ) {
-										if ( block[i1 + 5] == block[i2 + 5] ) {
-											if ( block[( i1 += 6 )] == block[( i2 += 6 )] ) {
-												int x = lastShadow;
-												X: while ( x > 0 ) {
-													x -= 4;
-
-													if ( block[i1 + 1] == block[i2 + 1] ) {
-														if ( quadrant[i1] == quadrant[i2] ) {
-															if ( block[i1 + 2] == block[i2 + 2] ) {
-																if ( quadrant[i1 + 1] == quadrant[i2 + 1] ) {
-																	if ( block[i1 + 3] == block[i2 + 3] ) {
-																		if ( quadrant[i1 + 2] == quadrant[i2 + 2] ) {
-																			if ( block[i1 + 4] == block[i2 + 4] ) {
-																				if ( quadrant[i1 + 3] == quadrant[i2 + 3] ) {
-																					if ( ( i1 += 4 ) >= lastPlus1 ) {
-																						i1 -= lastPlus1;
-																					}
-																					if ( ( i2 += 4 ) >= lastPlus1 ) {
-																						i2 -= lastPlus1;
-																					}
-																					workDoneShadow++;
-																					continue X;
-																				} else if ( ( quadrant[i1 + 3] > quadrant[i2 + 3] ) ) {
-																					continue HAMMER;
-																				} else {
-																					break HAMMER;
-																				}
-																			} else if ( ( block[i1 + 4] & 0xff ) > ( block[i2 + 4] & 0xff ) ) {
-																				continue HAMMER;
-																			} else {
-																				break HAMMER;
-																			}
-																		} else if ( ( quadrant[i1 + 2] > quadrant[i2 + 2] ) ) {
-																			continue HAMMER;
-																		} else {
-																			break HAMMER;
-																		}
-																	} else if ( ( block[i1 + 3] & 0xff ) > ( block[i2 + 3] & 0xff ) ) {
-																		continue HAMMER;
-																	} else {
-																		break HAMMER;
-																	}
-																} else if ( ( quadrant[i1 + 1] > quadrant[i2 + 1] ) ) {
-																	continue HAMMER;
-																} else {
-																	break HAMMER;
-																}
-															} else if ( ( block[i1 + 2] & 0xff ) > ( block[i2 + 2] & 0xff ) ) {
-																continue HAMMER;
-															} else {
-																break HAMMER;
-															}
-														} else if ( ( quadrant[i1] > quadrant[i2] ) ) {
-															continue HAMMER;
-														} else {
-															break HAMMER;
-														}
-													} else if ( ( block[i1 + 1] & 0xff ) > ( block[i2 + 1] & 0xff ) ) {
-														continue HAMMER;
-													} else {
-														break HAMMER;
-													}
-
-												}
-												break HAMMER;
-											} // while x > 0
-											else {
-												if ( ( block[i1] & 0xff ) > ( block[i2] & 0xff ) ) {
-													continue HAMMER;
-												} else {
-													break HAMMER;
-												}
-											}
-										} else if ( ( block[i1 + 5] & 0xff ) > ( block[i2 + 5] & 0xff ) ) {
-											continue HAMMER;
-										} else {
-											break HAMMER;
-										}
-									} else if ( ( block[i1 + 4] & 0xff ) > ( block[i2 + 4] & 0xff ) ) {
-										continue HAMMER;
-									} else {
-										break HAMMER;
-									}
-								} else if ( ( block[i1 + 3] & 0xff ) > ( block[i2 + 3] & 0xff ) ) {
-									continue HAMMER;
-								} else {
-									break HAMMER;
-								}
-							} else if ( ( block[i1 + 2] & 0xff ) > ( block[i2 + 2] & 0xff ) ) {
-								continue HAMMER;
-							} else {
-								break HAMMER;
-							}
-						} else if ( ( block[i1 + 1] & 0xff ) > ( block[i2 + 1] & 0xff ) ) {
-							continue HAMMER;
-						} else {
-							break HAMMER;
-						}
-
-					} // HAMMER
-					// end inline mainGTU
-
-					fmap[j] = v;
-				}
-
-				if ( firstAttemptShadow && ( i <= hi ) && ( workDoneShadow > workLimitShadow ) ) {
-					break HP;
-				}
-			}
-		}
-
-		this.workDone = workDoneShadow;
-		return firstAttemptShadow && ( workDoneShadow > workLimitShadow );
-	}
-
-	private static void vswap( int[] fmap, int p1, int p2, int n ) {
-		n += p1;
-		while ( p1 < n ) {
-			int t = fmap[p1];
-			fmap[p1++] = fmap[p2];
-			fmap[p2++] = t;
-		}
-	}
-
-	private static byte med3( byte a, byte b, byte c ) {
-		return ( a < b ) ? ( b < c ? b : a < c ? c : a ) : ( b > c ? b : a > c ? c : a );
-	}
-
-	private void blockSort() {
-		this.workLimit = WORK_FACTOR * this.last;
-		this.workDone = 0;
-		this.blockRandomised = false;
-		this.firstAttempt = true;
-		mainSort();
-
-		if ( this.firstAttempt && ( this.workDone > this.workLimit ) ) {
-			randomiseBlock();
-			this.workLimit = this.workDone = 0;
-			this.firstAttempt = false;
-			mainSort();
-		}
-
-		int[] fmap = this.data.fmap;
-		this.origPtr = -1;
-		for ( int i = 0, lastShadow = this.last; i <= lastShadow; i++ ) {
-			if ( fmap[i] == 0 ) {
-				this.origPtr = i;
-				break;
-			}
-		}
-
-		// assert (this.origPtr != -1) : this.origPtr;
-	}
-
-	/**
-	 * Method "mainQSort3", file "blocksort.c", BZip2 1.0.2
-	 */
-	private void mainQSort3( final Data dataShadow, final int loSt, final int hiSt, final int dSt ) {
-		final int[] stack_ll = dataShadow.stack_ll;
-		final int[] stack_hh = dataShadow.stack_hh;
-		final int[] stack_dd = dataShadow.stack_dd;
-		final int[] fmap = dataShadow.fmap;
-		final byte[] block = dataShadow.block;
-
-		stack_ll[0] = loSt;
-		stack_hh[0] = hiSt;
-		stack_dd[0] = dSt;
-
-		for ( int sp = 1; --sp >= 0; ) {
-			final int lo = stack_ll[sp];
-			final int hi = stack_hh[sp];
-			final int d = stack_dd[sp];
-
-			if ( ( hi - lo < SMALL_THRESH ) || ( d > DEPTH_THRESH ) ) {
-				if ( mainSimpleSort( dataShadow, lo, hi, d ) ) {
-					return;
-				}
-			} else {
-				final int d1 = d + 1;
-				final int med = med3( block[fmap[lo] + d1], block[fmap[hi] + d1], block[fmap[( lo + hi ) >> 1] + d1] ) & 0xff;
-
-				int unLo = lo;
-				int unHi = hi;
-				int ltLo = lo;
-				int gtHi = hi;
-
-				while ( true ) {
-					while ( unLo <= unHi ) {
-						final int n = ( block[fmap[unLo] + d1] & 0xff ) - med;
-						if ( n == 0 ) {
-							final int temp = fmap[unLo];
-							fmap[unLo++] = fmap[ltLo];
-							fmap[ltLo++] = temp;
-						} else if ( n < 0 ) {
-							unLo++;
-						} else {
-							break;
-						}
-					}
-
-					while ( unLo <= unHi ) {
-						final int n = ( block[fmap[unHi] + d1] & 0xff ) - med;
-						if ( n == 0 ) {
-							final int temp = fmap[unHi];
-							fmap[unHi--] = fmap[gtHi];
-							fmap[gtHi--] = temp;
-						} else if ( n > 0 ) {
-							unHi--;
-						} else {
-							break;
-						}
-					}
-
-					if ( unLo <= unHi ) {
-						final int temp = fmap[unLo];
-						fmap[unLo++] = fmap[unHi];
-						fmap[unHi--] = temp;
-					} else {
-						break;
-					}
-				}
-
-				if ( gtHi < ltLo ) {
-					stack_ll[sp] = lo;
-					stack_hh[sp] = hi;
-					stack_dd[sp] = d1;
-					sp++;
-				} else {
-					int n = ( ( ltLo - lo ) < ( unLo - ltLo ) ) ? ( ltLo - lo ) : ( unLo - ltLo );
-					vswap( fmap, lo, unLo - n, n );
-					int m = ( ( hi - gtHi ) < ( gtHi - unHi ) ) ? ( hi - gtHi ) : ( gtHi - unHi );
-					vswap( fmap, unLo, hi - m + 1, m );
-
-					n = lo + unLo - ltLo - 1;
-					m = hi - ( gtHi - unHi ) + 1;
-
-					stack_ll[sp] = lo;
-					stack_hh[sp] = n;
-					stack_dd[sp] = d;
-					sp++;
-
-					stack_ll[sp] = n + 1;
-					stack_hh[sp] = m - 1;
-					stack_dd[sp] = d1;
-					sp++;
-
-					stack_ll[sp] = m;
-					stack_hh[sp] = hi;
-					stack_dd[sp] = d;
-					sp++;
-				}
-			}
-		}
-	}
-
-	private void mainSort() {
-		final Data dataShadow = this.data;
-		final int[] runningOrder = dataShadow.mainSort_runningOrder;
-		final int[] copy = dataShadow.mainSort_copy;
-		final boolean[] bigDone = dataShadow.mainSort_bigDone;
-		final int[] ftab = dataShadow.ftab;
-		final byte[] block = dataShadow.block;
-		final int[] fmap = dataShadow.fmap;
-		final char[] quadrant = dataShadow.quadrant;
-		final int lastShadow = this.last;
-		final int workLimitShadow = this.workLimit;
-		final boolean firstAttemptShadow = this.firstAttempt;
-
-		// Set up the 2-byte frequency table
-		for ( int i = 65537; --i >= 0; ) {
-			ftab[i] = 0;
-		}
-
-		/*
-		 In the various block-sized structures, live data runs
-		 from 0 to last+NUM_OVERSHOOT_BYTES inclusive.  First,
-		 set up the overshoot area for block.
-		 */
-		for ( int i = 0; i < NUM_OVERSHOOT_BYTES; i++ ) {
-			block[lastShadow + i + 2] = block[( i % ( lastShadow + 1 ) ) + 1];
-		}
-		for ( int i = lastShadow + NUM_OVERSHOOT_BYTES; --i >= 0; ) {
-			quadrant[i] = 0;
-		}
-		block[0] = block[lastShadow + 1];
-
-		// Complete the initial radix sort:
-
-		int c1 = block[0] & 0xff;
-		for ( int i = 0; i <= lastShadow; i++ ) {
-			final int c2 = block[i + 1] & 0xff;
-			ftab[( c1 << 8 ) + c2]++;
-			c1 = c2;
-		}
-
-		for ( int i = 1; i <= 65536; i++ )
-			ftab[i] += ftab[i - 1];
-
-		c1 = block[1] & 0xff;
-		for ( int i = 0; i < lastShadow; i++ ) {
-			final int c2 = block[i + 2] & 0xff;
-			fmap[--ftab[( c1 << 8 ) + c2]] = i;
-			c1 = c2;
-		}
-
-		fmap[--ftab[( ( block[lastShadow + 1] & 0xff ) << 8 ) + ( block[1] & 0xff )]] = lastShadow;
-
-		/*
-		 Now ftab contains the first loc of every small bucket.
-		 Calculate the running order, from smallest to largest
-		 big bucket.
-		 */
-		for ( int i = 256; --i >= 0; ) {
-			bigDone[i] = false;
-			runningOrder[i] = i;
-		}
-
-		for ( int h = 364; h != 1; ) {
-			h /= 3;
-			for ( int i = h; i <= 255; i++ ) {
-				final int vv = runningOrder[i];
-				final int a = ftab[( vv + 1 ) << 8] - ftab[vv << 8];
-				final int b = h - 1;
-				int j = i;
-				for ( int ro = runningOrder[j - h]; ( ftab[( ro + 1 ) << 8] - ftab[ro << 8] ) > a; ro = runningOrder[j - h] ) {
-					runningOrder[j] = ro;
-					j -= h;
-					if ( j <= b ) {
-						break;
-					}
-				}
-				runningOrder[j] = vv;
-			}
-		}
-
-		/*
-		 The main sorting loop.
-		 */
-		for ( int i = 0; i <= 255; i++ ) {
-			/*
-			 Process big buckets, starting with the least full.
-			 */
-			final int ss = runningOrder[i];
-
-			// Step 1:
-			/*
-			 Complete the big bucket [ss] by quicksorting
-			 any unsorted small buckets [ss, j].  Hopefully
-			 previous pointer-scanning phases have already
-			 completed many of the small buckets [ss, j], so
-			 we don't have to sort them at all.
-			 */
-			for ( int j = 0; j <= 255; j++ ) {
-				final int sb = ( ss << 8 ) + j;
-				final int ftab_sb = ftab[sb];
-				if ( ( ftab_sb & SETMASK ) != SETMASK ) {
-					final int lo = ftab_sb & CLEARMASK;
-					final int hi = ( ftab[sb + 1] & CLEARMASK ) - 1;
-					if ( hi > lo ) {
-						mainQSort3( dataShadow, lo, hi, 2 );
-						if ( firstAttemptShadow && ( this.workDone > workLimitShadow ) ) {
-							return;
-						}
-					}
-					ftab[sb] = ftab_sb | SETMASK;
-				}
-			}
-
-			// Step 2:
-			// Now scan this big bucket so as to synthesise the
-			// sorted order for small buckets [t, ss] for all t != ss.
-
-			for ( int j = 0; j <= 255; j++ ) {
-				copy[j] = ftab[( j << 8 ) + ss] & CLEARMASK;
-			}
-
-			for ( int j = ftab[ss << 8] & CLEARMASK, hj = ( ftab[( ss + 1 ) << 8] & CLEARMASK ); j < hj; j++ ) {
-				final int fmap_j = fmap[j];
-				c1 = block[fmap_j] & 0xff;
-				if ( !bigDone[c1] ) {
-					fmap[copy[c1]] = ( fmap_j == 0 ) ? lastShadow : ( fmap_j - 1 );
-					copy[c1]++;
-				}
-			}
-
-			for ( int j = 256; --j >= 0; )
-				ftab[( j << 8 ) + ss] |= SETMASK;
-
-			// Step 3:
-			/*
-			 The ss big bucket is now done.  Record this fact,
-			 and update the quadrant descriptors.  Remember to
-			 update quadrants in the overshoot area too, if
-			 necessary.  The "if (i < 255)" test merely skips
-			 this updating for the last bucket processed, since
-			 updating for the last bucket is pointless.
-			 */
-			bigDone[ss] = true;
-
-			if ( i < 255 ) {
-				final int bbStart = ftab[ss << 8] & CLEARMASK;
-				final int bbSize = ( ftab[( ss + 1 ) << 8] & CLEARMASK ) - bbStart;
-				int shifts = 0;
-
-				while ( ( bbSize >> shifts ) > 65534 ) {
-					shifts++;
-				}
-
-				for ( int j = 0; j < bbSize; j++ ) {
-					final int a2update = fmap[bbStart + j];
-					final char qVal = (char) ( j >> shifts );
-					quadrant[a2update] = qVal;
-					if ( a2update < NUM_OVERSHOOT_BYTES ) {
-						quadrant[a2update + lastShadow + 1] = qVal;
-					}
-				}
-			}
-
-		}
-	}
-
-	private void randomiseBlock() {
-		final boolean[] inUse = this.data.inUse;
-		final byte[] block = this.data.block;
-		final int lastShadow = this.last;
-
-		for ( int i = 256; --i >= 0; )
-			inUse[i] = false;
-
-		int rNToGo = 0;
-		int rTPos = 0;
-		for ( int i = 0, j = 1; i <= lastShadow; i = j, j++ ) {
-			if ( rNToGo == 0 ) {
-				rNToGo = (char) BZip2Constants.rNums[rTPos];
-				if ( ++rTPos == 512 ) {
-					rTPos = 0;
-				}
-			}
-
-			rNToGo--;
-			block[j] ^= ( ( rNToGo == 1 ) ? 1 : 0 );
-
-			// handle 16 bit signed numbers
-			inUse[block[j] & 0xff] = true;
-		}
-
-		this.blockRandomised = true;
-	}
-
-	private void generateMTFValues() {
-		final int lastShadow = this.last;
-		final Data dataShadow = this.data;
-		final boolean[] inUse = dataShadow.inUse;
-		final byte[] block = dataShadow.block;
-		final int[] fmap = dataShadow.fmap;
-		final char[] sfmap = dataShadow.sfmap;
-		final int[] mtfFreq = dataShadow.mtfFreq;
-		final byte[] unseqToSeq = dataShadow.unseqToSeq;
-		final byte[] yy = dataShadow.generateMTFValues_yy;
-
-		// make maps
-		int nInUseShadow = 0;
-		for ( int i = 0; i < 256; i++ ) {
-			if ( inUse[i] ) {
-				unseqToSeq[i] = (byte) nInUseShadow;
-				nInUseShadow++;
-			}
-		}
-		this.nInUse = nInUseShadow;
-
-		final int eob = nInUseShadow + 1;
-
-		for ( int i = eob; i >= 0; i-- ) {
-			mtfFreq[i] = 0;
-		}
-
-		for ( int i = nInUseShadow; --i >= 0; ) {
-			yy[i] = (byte) i;
-		}
-
-		int wr = 0;
-		int zPend = 0;
-
-		for ( int i = 0; i <= lastShadow; i++ ) {
-			final byte ll_i = unseqToSeq[block[fmap[i]] & 0xff];
-			byte tmp = yy[0];
-			int j = 0;
-
-			while ( ll_i != tmp ) {
-				j++;
-				byte tmp2 = tmp;
-				tmp = yy[j];
-				yy[j] = tmp2;
-			}
-			yy[0] = tmp;
-
-			if ( j == 0 ) {
-				zPend++;
-			} else {
-				if ( zPend > 0 ) {
-					zPend--;
-					while ( true ) {
-						if ( ( zPend & 1 ) == 0 ) {
-							sfmap[wr] = RUNA;
-							wr++;
-							mtfFreq[RUNA]++;
-						} else {
-							sfmap[wr] = RUNB;
-							wr++;
-							mtfFreq[RUNB]++;
-						}
-
-						if ( zPend >= 2 ) {
-							zPend = ( zPend - 2 ) >> 1;
-						} else {
-							break;
-						}
-					}
-					zPend = 0;
-				}
-				sfmap[wr] = (char) ( j + 1 );
-				wr++;
-				mtfFreq[j + 1]++;
-			}
-		}
-
-		if ( zPend > 0 ) {
-			zPend--;
-			while ( true ) {
-				if ( ( zPend & 1 ) == 0 ) {
-					sfmap[wr] = RUNA;
-					wr++;
-					mtfFreq[RUNA]++;
-				} else {
-					sfmap[wr] = RUNB;
-					wr++;
-					mtfFreq[RUNB]++;
-				}
-
-				if ( zPend >= 2 ) {
-					zPend = ( zPend - 2 ) >> 1;
-				} else {
-					break;
-				}
-			}
-		}
-
-		sfmap[wr] = (char) eob;
-		mtfFreq[eob]++;
-		this.nMTF = wr + 1;
-	}
-
-	private static final class Data extends Object {
-
-		// with blockSize 900k
-		final boolean[] inUse = new boolean[256]; //     256 byte
-		final byte[] unseqToSeq = new byte[256]; //     256 byte
-		final int[] mtfFreq = new int[MAX_ALPHA_SIZE]; //    1032 byte
-		final byte[] selector = new byte[MAX_SELECTORS]; //   18002 byte
-		final byte[] selectorMtf = new byte[MAX_SELECTORS]; //   18002 byte
-
-		final byte[] generateMTFValues_yy = new byte[256]; //     256 byte
-		final byte[][] sendMTFValues_len = new byte[N_GROUPS][MAX_ALPHA_SIZE]; //    1548 byte
-		final int[][] sendMTFValues_rfreq = new int[N_GROUPS][MAX_ALPHA_SIZE]; //    6192 byte
-		final int[] sendMTFValues_fave = new int[N_GROUPS]; //      24 byte
-		final short[] sendMTFValues_cost = new short[N_GROUPS]; //      12 byte
-		final int[][] sendMTFValues_code = new int[N_GROUPS][MAX_ALPHA_SIZE]; //    6192 byte
-		final byte[] sendMTFValues2_pos = new byte[N_GROUPS]; //       6 byte
-		final boolean[] sentMTFValues4_inUse16 = new boolean[16]; //      16 byte
-
-		final int[] stack_ll = new int[QSORT_STACK_SIZE]; //    4000 byte
-		final int[] stack_hh = new int[QSORT_STACK_SIZE]; //    4000 byte
-		final int[] stack_dd = new int[QSORT_STACK_SIZE]; //    4000 byte
-
-		final int[] mainSort_runningOrder = new int[256]; //    1024 byte
-		final int[] mainSort_copy = new int[256]; //    1024 byte
-		final boolean[] mainSort_bigDone = new boolean[256]; //     256 byte
-
-		final int[] heap = new int[MAX_ALPHA_SIZE + 2]; //    1040 byte
-		final int[] weight = new int[MAX_ALPHA_SIZE * 2]; //    2064 byte
-		final int[] parent = new int[MAX_ALPHA_SIZE * 2]; //    2064 byte
-
-		final int[] ftab = new int[65537]; //  262148 byte
-		// ------------
-		//  333408 byte
-
-		final byte[] block; //  900021 byte
-		final int[] fmap; // 3600000 byte
-		final char[] sfmap; // 3600000 byte
-		// ------------
-		// 8433529 byte
-		// ============
-
-		/**
-		 * Array instance identical to sfmap, both are used only temporarily and indepently,
-		 * so we do not need to allocate additional memory.
-		 */
-		final char[] quadrant;
-
-		Data( int blockSize100k ) {
-			super();
-
-			final int n = blockSize100k * BZip2Constants.baseBlockSize;
-			this.block = new byte[( n + 1 + NUM_OVERSHOOT_BYTES )];
-			this.fmap = new int[n];
-			this.sfmap = new char[2 * n];
-			this.quadrant = this.sfmap;
-		}
-
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CRC.java b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CRC.java
deleted file mode 100644
index 5184af0..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/CRC.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-/*
- * This package is based on the work done by Keiron Liddle, Aftex Software
- * <keiron@aftexsw.com> to whom the Ant project is very grateful for his
- * great code.
- */
-
-package org.apache.tools.bzip2;
-
-/**
- * A simple class the hold and calculate the CRC for sanity checking
- * of the data.
- *
- */
-final class CRC {
-	static final int crc32Table[] = { 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f,
-		0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b,
-		0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57,
-		0x91a18d8e, 0x95609039, 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
-		0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f,
-		0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c,
-		0x2e003dc5, 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0,
-		0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4,
-		0x44190b0d, 0x40d816ba, 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
-		0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c,
-		0xfa325055, 0xfef34de2, 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59,
-		0x608edb80, 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d,
-		0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91,
-		0x0a97ed48, 0x0e56f0ff, 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
-		0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9,
-		0xb4bcb610, 0xb07daba7, 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad,
-		0x81b02d74, 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096,
-		0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082,
-		0x0b1d065b, 0x0fdc1bec, 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
-		0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa,
-		0xf9278673, 0xfde69bc4, 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06,
-		0xa6322bdf, 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 };
-
-	CRC() {
-		initialiseCRC();
-	}
-
-	void initialiseCRC() {
-		globalCrc = 0xffffffff;
-	}
-
-	int getFinalCRC() {
-		return ~globalCrc;
-	}
-
-	int getGlobalCRC() {
-		return globalCrc;
-	}
-
-	void setGlobalCRC( int newCrc ) {
-		globalCrc = newCrc;
-	}
-
-	void updateCRC( int inCh ) {
-		int temp = ( globalCrc >> 24 ) ^ inCh;
-		if ( temp < 0 ) {
-			temp = 256 + temp;
-		}
-		globalCrc = ( globalCrc << 8 ) ^ CRC.crc32Table[temp];
-	}
-
-	void updateCRC( int inCh, int repeat ) {
-		int globalCrcShadow = this.globalCrc;
-		while ( repeat-- > 0 ) {
-			int temp = ( globalCrcShadow >> 24 ) ^ inCh;
-			globalCrcShadow = ( globalCrcShadow << 8 ) ^ crc32Table[( temp >= 0 ) ? temp : ( temp + 256 )];
-		}
-		this.globalCrc = globalCrcShadow;
-	}
-
-	int globalCrc;
-}
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/LICENSE b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/LICENSE
deleted file mode 100644
index f820d4b..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/LICENSE
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- *                                 Apache License
- *                           Version 2.0, January 2004
- *                        http://www.apache.org/licenses/
- *
- *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
- *
- *   1. Definitions.
- *
- *      "License" shall mean the terms and conditions for use, reproduction,
- *      and distribution as defined by Sections 1 through 9 of this document.
- *
- *      "Licensor" shall mean the copyright owner or entity authorized by
- *      the copyright owner that is granting the License.
- *
- *      "Legal Entity" shall mean the union of the acting entity and all
- *      other entities that control, are controlled by, or are under common
- *      control with that entity. For the purposes of this definition,
- *      "control" means (i) the power, direct or indirect, to cause the
- *      direction or management of such entity, whether by contract or
- *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
- *      outstanding shares, or (iii) beneficial ownership of such entity.
- *
- *      "You" (or "Your") shall mean an individual or Legal Entity
- *      exercising permissions granted by this License.
- *
- *      "Source" form shall mean the preferred form for making modifications,
- *      including but not limited to software source code, documentation
- *      source, and configuration files.
- *
- *      "Object" form shall mean any form resulting from mechanical
- *      transformation or translation of a Source form, including but
- *      not limited to compiled object code, generated documentation,
- *      and conversions to other media types.
- *
- *      "Work" shall mean the work of authorship, whether in Source or
- *      Object form, made available under the License, as indicated by a
- *      copyright notice that is included in or attached to the work
- *      (an example is provided in the Appendix below).
- *
- *      "Derivative Works" shall mean any work, whether in Source or Object
- *      form, that is based on (or derived from) the Work and for which the
- *      editorial revisions, annotations, elaborations, or other modifications
- *      represent, as a whole, an original work of authorship. For the purposes
- *      of this License, Derivative Works shall not include works that remain
- *      separable from, or merely link (or bind by name) to the interfaces of,
- *      the Work and Derivative Works thereof.
- *
- *      "Contribution" shall mean any work of authorship, including
- *      the original version of the Work and any modifications or additions
- *      to that Work or Derivative Works thereof, that is intentionally
- *      submitted to Licensor for inclusion in the Work by the copyright owner
- *      or by an individual or Legal Entity authorized to submit on behalf of
- *      the copyright owner. For the purposes of this definition, "submitted"
- *      means any form of electronic, verbal, or written communication sent
- *      to the Licensor or its representatives, including but not limited to
- *      communication on electronic mailing lists, source code control systems,
- *      and issue tracking systems that are managed by, or on behalf of, the
- *      Licensor for the purpose of discussing and improving the Work, but
- *      excluding communication that is conspicuously marked or otherwise
- *      designated in writing by the copyright owner as "Not a Contribution."
- *
- *      "Contributor" shall mean Licensor and any individual or Legal Entity
- *      on behalf of whom a Contribution has been received by Licensor and
- *      subsequently incorporated within the Work.
- *
- *   2. Grant of Copyright License. Subject to the terms and conditions of
- *      this License, each Contributor hereby grants to You a perpetual,
- *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- *      copyright license to reproduce, prepare Derivative Works of,
- *      publicly display, publicly perform, sublicense, and distribute the
- *      Work and such Derivative Works in Source or Object form.
- *
- *   3. Grant of Patent License. Subject to the terms and conditions of
- *      this License, each Contributor hereby grants to You a perpetual,
- *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- *      (except as stated in this section) patent license to make, have made,
- *      use, offer to sell, sell, import, and otherwise transfer the Work,
- *      where such license applies only to those patent claims licensable
- *      by such Contributor that are necessarily infringed by their
- *      Contribution(s) alone or by combination of their Contribution(s)
- *      with the Work to which such Contribution(s) was submitted. If You
- *      institute patent litigation against any entity (including a
- *      cross-claim or counterclaim in a lawsuit) alleging that the Work
- *      or a Contribution incorporated within the Work constitutes direct
- *      or contributory patent infringement, then any patent licenses
- *      granted to You under this License for that Work shall terminate
- *      as of the date such litigation is filed.
- *
- *   4. Redistribution. You may reproduce and distribute copies of the
- *      Work or Derivative Works thereof in any medium, with or without
- *      modifications, and in Source or Object form, provided that You
- *      meet the following conditions:
- *
- *      (a) You must give any other recipients of the Work or
- *          Derivative Works a copy of this License; and
- *
- *      (b) You must cause any modified files to carry prominent notices
- *          stating that You changed the files; and
- *
- *      (c) You must retain, in the Source form of any Derivative Works
- *          that You distribute, all copyright, patent, trademark, and
- *          attribution notices from the Source form of the Work,
- *          excluding those notices that do not pertain to any part of
- *          the Derivative Works; and
- *
- *      (d) If the Work includes a "NOTICE" text file as part of its
- *          distribution, then any Derivative Works that You distribute must
- *          include a readable copy of the attribution notices contained
- *          within such NOTICE file, excluding those notices that do not
- *          pertain to any part of the Derivative Works, in at least one
- *          of the following places: within a NOTICE text file distributed
- *          as part of the Derivative Works; within the Source form or
- *          documentation, if provided along with the Derivative Works; or,
- *          within a display generated by the Derivative Works, if and
- *          wherever such third-party notices normally appear. The contents
- *          of the NOTICE file are for informational purposes only and
- *          do not modify the License. You may add Your own attribution
- *          notices within Derivative Works that You distribute, alongside
- *          or as an addendum to the NOTICE text from the Work, provided
- *          that such additional attribution notices cannot be construed
- *          as modifying the License.
- *
- *      You may add Your own copyright statement to Your modifications and
- *      may provide additional or different license terms and conditions
- *      for use, reproduction, or distribution of Your modifications, or
- *      for any such Derivative Works as a whole, provided Your use,
- *      reproduction, and distribution of the Work otherwise complies with
- *      the conditions stated in this License.
- *
- *   5. Submission of Contributions. Unless You explicitly state otherwise,
- *      any Contribution intentionally submitted for inclusion in the Work
- *      by You to the Licensor shall be under the terms and conditions of
- *      this License, without any additional terms or conditions.
- *      Notwithstanding the above, nothing herein shall supersede or modify
- *      the terms of any separate license agreement you may have executed
- *      with Licensor regarding such Contributions.
- *
- *   6. Trademarks. This License does not grant permission to use the trade
- *      names, trademarks, service marks, or product names of the Licensor,
- *      except as required for reasonable and customary use in describing the
- *      origin of the Work and reproducing the content of the NOTICE file.
- *
- *   7. Disclaimer of Warranty. Unless required by applicable law or
- *      agreed to in writing, Licensor provides the Work (and each
- *      Contributor provides its Contributions) 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. You are solely responsible for determining the
- *      appropriateness of using or redistributing the Work and assume any
- *      risks associated with Your exercise of permissions under this License.
- *
- *   8. Limitation of Liability. In no event and under no legal theory,
- *      whether in tort (including negligence), contract, or otherwise,
- *      unless required by applicable law (such as deliberate and grossly
- *      negligent acts) or agreed to in writing, shall any Contributor be
- *      liable to You for damages, including any direct, indirect, special,
- *      incidental, or consequential damages of any character arising as a
- *      result of this License or out of the use or inability to use the
- *      Work (including but not limited to damages for loss of goodwill,
- *      work stoppage, computer failure or malfunction, or any and all
- *      other commercial damages or losses), even if such Contributor
- *      has been advised of the possibility of such damages.
- *
- *   9. Accepting Warranty or Additional Liability. While redistributing
- *      the Work or Derivative Works thereof, You may choose to offer,
- *      and charge a fee for, acceptance of support, warranty, indemnity,
- *      or other liability obligations and/or rights consistent with this
- *      License. However, in accepting such obligations, You may act only
- *      on Your own behalf and on Your sole responsibility, not on behalf
- *      of any other Contributor, and only if You agree to indemnify,
- *      defend, and hold each Contributor harmless for any liability
- *      incurred by, or claims asserted against, such Contributor by reason
- *      of your accepting any such warranty or additional liability.
- *
- *   END OF TERMS AND CONDITIONS
- *
- *   APPENDIX: How to apply the Apache License to your work.
- *
- *      To apply the Apache License to your work, attach the following
- *      boilerplate notice, with the fields enclosed by brackets "[]"
- *      replaced with your own identifying information. (Don't include
- *      the brackets!)  The text should be enclosed in the appropriate
- *      comment syntax for the file format. We also recommend that a
- *      file or class name and description of purpose be included on the
- *      same "printed page" as the copyright notice for easier
- *      identification within third-party archives.
- *
- *   Copyright [yyyy] [name of copyright owner]
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- */
diff --git a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/readme-more.txt b/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/readme-more.txt
deleted file mode 100644
index f15158f..0000000
--- a/bundles/ie.wombat.jbdiff/src/org/apache/tools/bzip2/readme-more.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-The library org.apache.tools.bzip2 is a library version based on the package org.apache.tools.bzip2
-of the Apache Ant 1.7 which is under the Apache License Version 2.0, January 2004, http://www.apache.org/licenses
-Ant 1.7: http://www.apache.org/dist/ant/source/apache-ant-1.7.0-src.zip
-
-To get rid of this ´hack´ the following bug report has been created to track this issue:
-https://bugs.eclipse.org/bugs/show_bug.cgi?id=208996
-
-Version 1.7.0.1
- - Extended CBZip2OutputStream such that it supports the finish() method as in java.util.GZipOutputStream
-   This extension is proposed in BugZilla: http://issues.apache.org/bugzilla/show_bug.cgi?id=42713
-   
-   It replaces the original close() and finalize() methods with:
-   
-   	/**
-	 * Finishes compressing to the underlying stream without closing it,
-	 * so that multiple compressors can write subsequently to the same
-	 * output stream.
-	 *  
-	 * @throws IOException
-	 */
-	public void finish() throws IOException {
-		OutputStream outShadow = this.out;
-		if ( outShadow != null && this.data != null ) {
-			try {
-				if ( this.runLength > 0 ) {
-					writeRun();
-				}
-				this.currentChar = -1;
-				endBlock();
-				endCompression();
-			} finally {
-				this.data = null;
-			}
-		}
-	}
-
-	/**
-	 * Overriden to close the stream.
-	 */
-	protected void finalize() throws Throwable {
-		if ( this.data != null ) {
-			close();
-			super.finalize();
-		}
-	}
-
-	public void close() throws IOException {
-		finish();
-		OutputStream outShadow = this.out;
-		if ( outShadow != null ) {
-			try {
-				outShadow.close();
-			} finally {
-				this.out = null;
-			}
-		}
-
-	}
-
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.classpath b/bundles/org.eclipse.equinox.frameworkadmin.test/.classpath
deleted file mode 100644
index ce73933..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="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.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 49bd7f9..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,261 +0,0 @@
-#Thu Oct 25 11:22:43 EDT 2007
-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_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.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 ccafdaa..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +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.internal.test.Activator
-Import-Package: org.osgi.framework;version="1.4.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
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 ed4145b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-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/internal/test/AbstractFwkAdminTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/AbstractFwkAdminTest.java
deleted file mode 100644
index 18c0a96..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/AbstractFwkAdminTest.java
+++ /dev/null
@@ -1,175 +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.internal.test;
-
-import java.io.*;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.equinox.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/internal/test/Activator.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/Activator.java
deleted file mode 100644
index 37588a5..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/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.internal.test;
-
-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/internal/test/Bug196525.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/Bug196525.java
deleted file mode 100644
index d8ce795..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/Bug196525.java
+++ /dev/null
@@ -1,93 +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.internal.test;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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.txt");
-		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/internal/test/CleanupTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/CleanupTest.java
deleted file mode 100644
index c932909..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/CleanupTest.java
+++ /dev/null
@@ -1,103 +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.internal.test;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.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.txt"), "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/internal/test/FwkAdminAndSimpleConfiguratorTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/FwkAdminAndSimpleConfiguratorTest.java
deleted file mode 100644
index 4ffa08c..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/FwkAdminAndSimpleConfiguratorTest.java
+++ /dev/null
@@ -1,108 +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.internal.test;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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.txt");
-	}
-
-	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/internal/test/OSGiVersionChange.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/OSGiVersionChange.java
deleted file mode 100644
index 99850ea..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/OSGiVersionChange.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.frameworkadmin.internal.test;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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/internal/test/RelativePathTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/RelativePathTest.java
deleted file mode 100644
index e1d17eb..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/RelativePathTest.java
+++ /dev/null
@@ -1,81 +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.internal.test;
-
-import java.io.*;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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.txt"), installFolder.getAbsolutePath());
-		assertContent(new File(configurationFolder, "config.ini"), ":org.eclipse.equinox.simpleconfigurator.jar");
-		assertContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.txt"), ":plugins/org.eclipse.equinox.simpleconfigurator.jar");
-		assertContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.txt"), ":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.txt"), 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/internal/test/SimpleConfiguratorComingAndGoing.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorComingAndGoing.java
deleted file mode 100644
index 3c0aa7b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorComingAndGoing.java
+++ /dev/null
@@ -1,64 +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.internal.test;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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/internal/test/SimpleConfiguratorTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorTest.java
deleted file mode 100644
index ecaecb1..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/internal/test/SimpleConfiguratorTest.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.frameworkadmin.internal.test;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.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.txt");
-		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/.classpath b/bundles/org.eclipse.equinox.frameworkadmin/.classpath
deleted file mode 100644
index 6bd36e3..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test"/>
-	<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 d44a959..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: FrameworkAdmin Service IF (Incubation)
-Bundle-SymbolicName: org.eclipse.equinox.frameworkadmin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Vendor: Eclipse.org
-Import-Package: org.osgi.framework;version="1.3.0",
- org.osgi.service.startlevel;version="1.0.0"
-Export-Package: org.eclipse.equinox.configuratormanipulator,
- org.eclipse.equinox.frameworkadmin,
- org.eclipse.equinox.internal.frameworkadmin.utils;x-friends:="org.eclipse.equinox.frameworkadmin.equinox"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
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 9cbab3c..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-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/configuratormanipulator/ConfiguratorManipulator.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulator.java
deleted file mode 100644
index c386d04..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulator.java
+++ /dev/null
@@ -1,71 +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.configuratormanipulator;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.equinox.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;
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulatorFactory.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulatorFactory.java
deleted file mode 100644
index a630a7a..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ConfiguratorManipulatorFactory.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.configuratormanipulator;
-
-import org.eclipse.equinox.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/configuratormanipulator/ExtendedFrameworkAdminFactory.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ExtendedFrameworkAdminFactory.java
deleted file mode 100644
index fa8c126..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/configuratormanipulator/ExtendedFrameworkAdminFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.equinox.configuratormanipulator;
-///*******************************************************************************
-// * 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.configurator;
-//
-//import org.eclipse.equinox.frameworkadmin.FrameworkAdmin;
-//import org.eclipse.equinox.frameworkadmin.FrameworkAdminFactory;
-//
-//// This class is used for only method 1 to support ConfiguratorManipulator from a Java program 
-//
-//public abstract class ExtendedFrameworkAdminFactory extends FrameworkAdminFactory {
-//
-//	abstract protected FrameworkAdmin createFrameworkAdmin(String configuratorManipulatorFactoryName) throws InstantiationException, IllegalAccessException, ClassNotFoundException;
-//
-//	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/frameworkadmin/BundleInfo.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundleInfo.java
deleted file mode 100644
index b48e516..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundleInfo.java
+++ /dev/null
@@ -1,190 +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;
-
-/**
- * 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) {
-		this.location = location.trim();
-	}
-
-	public BundleInfo(String location, boolean started) {
-		this.location = location.trim();
-		this.markedAsStarted = started;
-	}
-
-	public BundleInfo(String location, int startLevel) {
-		this.location = location.trim();
-		this.startLevel = startLevel;
-	}
-
-	public BundleInfo(String location, int startLevel, boolean started) {
-		this.location = location.trim();
-		this.startLevel = startLevel;
-		this.markedAsStarted = started;
-	}
-
-	public BundleInfo(String location, int startLevel, boolean started, long bundleId) {
-		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;
-		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 : info.location.equalsIgnoreCase(location)))
-					return true;
-			} else {
-				return (info.location == null || location == null ? false : info.location.equals(location));
-			}
-		}
-		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 : location.toLowerCase().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(", ");
-		if (version != null)
-			buffer.append(version);
-		buffer.append(", ");
-		buffer.append("location=");
-		buffer.append(location);
-		buffer.append(", startLevel="); //$NON-NLS-1$
-		buffer.append(startLevel);
-		buffer.append(", toBeStarted=");
-		buffer.append(markedAsStarted);
-		buffer.append(", resolved=");
-		buffer.append(resolved);
-		buffer.append(", id=");
-		buffer.append(this.bundleId);//		buffer.append(',').append(manifest == null ? "no manifest" : "manifest available");
-		buffer.append(',').append(manifest==null?"no manifest" : "manifest available");
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundlesState.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundlesState.java
deleted file mode 100644
index c72c116..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/BundlesState.java
+++ /dev/null
@@ -1,142 +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;
-
-/**
- * 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/frameworkadmin/ConfigData.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/ConfigData.java
deleted file mode 100644
index 92a7096..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/ConfigData.java
+++ /dev/null
@@ -1,206 +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;
-
-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/frameworkadmin/FrameworkAdmin.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdmin.java
deleted file mode 100644
index b50c71d..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdmin.java
+++ /dev/null
@@ -1,109 +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;
-
-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/frameworkadmin/FrameworkAdminFactory.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminFactory.java
deleted file mode 100644
index d423eca..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.equinox.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.frameworkadmin.frameworkAdminFactory");
-	//		if (className == null)
-	//			throw new ClassNotFoundException("System property keyed by \"org.eclipse.equinox.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/frameworkadmin/FrameworkAdminRuntimeException.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminRuntimeException.java
deleted file mode 100644
index 2ceaddf..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/FrameworkAdminRuntimeException.java
+++ /dev/null
@@ -1,58 +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;
-
-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/frameworkadmin/LauncherData.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/LauncherData.java
deleted file mode 100644
index c92c4b1..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/LauncherData.java
+++ /dev/null
@@ -1,225 +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;
-
-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/frameworkadmin/Manipulator.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/Manipulator.java
deleted file mode 100644
index 27c4473..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/frameworkadmin/Manipulator.java
+++ /dev/null
@@ -1,202 +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;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.equinox.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.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 d177ab4..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/SimpleBundlesState.java
+++ /dev/null
@@ -1,330 +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.frameworkadmin.utils;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.*;
-
-import org.eclipse.equinox.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.frameworkadmin.BundlesState#getPrerequisteBundles(org.eclipse.equinox.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);
-		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 a82f81c..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Utils.java
+++ /dev/null
@@ -1,567 +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.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.equinox.frameworkadmin.BundleInfo;
-
-public class Utils {
-	private final static String PATH_SEP = "/";
-	private static final String[] EMPTY_STRING_ARRAY = new String[] {};
-
-	/**
-	 * 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 {
-			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;
-	}
-
-	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.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();
-			//			Set set = attributes.keySet();
-			Hashtable table = new Hashtable();
-			for (java.util.Iterator ite = attributes.keySet().iterator(); ite.hasNext();) {
-				//				Object obj =  ite.next();
-				//System.out.println(obj.getClass().getName());
-
-				String key = (String) ite.next().toString();
-				// While table contains non OSGiManifest, it doesn't matter.
-				table.put(key, attributes.getValue(key));
-				//	System.out.println("key=" + key + " value=" + value);
-			}
-			//	System.out.println("");
-			return table;
-		} catch (MalformedURLException e1) {
-			// TODO log
-			System.err.println("location=" + location);
-			e1.printStackTrace();
-		} catch (IOException e) {
-			// TODO log
-			System.err.println("location=" + location);
-			e.printStackTrace();
-		}
-		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/test/org/eclipse/incubator/configurator/util/UtilsTest.java b/bundles/org.eclipse.equinox.frameworkadmin/test/org/eclipse/incubator/configurator/util/UtilsTest.java
deleted file mode 100644
index 73c5424..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/test/org/eclipse/incubator/configurator/util/UtilsTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-///**
-// * 
-// */
-//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.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.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 c993029..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +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.p2.artifact.repository,
- org.eclipse.equinox.p2.artifact.repository.processing,
- org.eclipse.equinox.p2.core.repository,
- org.eclipse.equinox.p2.jarprocessor,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.metadata.repository,
- org.eclipse.equinox.p2.sar,
- 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 0dc34f7..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-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 19f17af..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.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/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.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.repositoryoptimizer.application &#13;&#10;-artifactRepository file:d:/tmp/equinox.p2/servers.mirror/artifactRepository/"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<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.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="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.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.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.repositoryoptimizer@default:true"/>
-</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 4f1955b..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 (Incubation)
-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 c594065..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractBufferingStep.java
+++ /dev/null
@@ -1,96 +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.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.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
-		if (status == null)
-			status = Status.OK_STATUS;
-	}
-
-	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 be91587..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.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.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) {
-			status = 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));
-				status = repository.getArtifact(descriptor, resultStream, monitor);
-				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 fcaf292..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
+++ /dev/null
@@ -1,40 +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.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-public class VersionlessArtifactKey extends ArtifactKey {
-
-	public VersionlessArtifactKey(String namespace, String classifier, String id) {
-		super(namespace, classifier, id, Version.emptyVersion);
-	}
-
-	public VersionlessArtifactKey(IArtifactKey base) {
-		super(base.getNamespace(), base.getClassifier(), base.getId(), Version.emptyVersion);
-	}
-
-	public int hashCode() {
-		int hash = getId().hashCode();
-		hash = 17 * hash + getNamespace().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.getNamespace().equals(getNamespace()) && 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 190ebcc..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
+++ /dev/null
@@ -1,76 +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.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.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-
-/**
- * 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) {
-		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 ffb2e62..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.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, destination, false);
-			} else {
-				status = 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 6a89bec..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
+++ /dev/null
@@ -1,240 +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 - 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.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.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.getNamespace(), 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.
-				repository.getArtifact(canonical, destination, new NullProgressMonitor());
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-					} catch (IOException e) {
-						// TODO Auto-generated catch block
-						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 74955a1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.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.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.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-
-/**
- * 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) {
-		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 5904b63..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.sar.DirectByteArrayOutputStream;
-
-/**
- *
- */
-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, destination, false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		status = repository.getArtifact(artifactDescriptor, result, monitor);
-		if (!status.isOK())
-			throw (IOException) new IOException(status.getMessage()).initCause(status.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 c53339f..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.p2.sar.SarUtil;
-
-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, destination, false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-
-		status = repository.getArtifact(artifactDescriptor, zippedPredecessor, monitor);
-		if (!status.isOK())
-			throw (IOException) new IOException(status.getMessage()).initCause(status.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 eedd235..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
+++ /dev/null
@@ -1,259 +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.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.VersionlessArtifactKey;
-import org.eclipse.equinox.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.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.
-				repository.getArtifact(complete, destination, new NullProgressMonitor());
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-					} catch (IOException e) {
-						// TODO Auto-generated catch block
-						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 4d61b5f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
+++ /dev/null
@@ -1,63 +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.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.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-
-public class Application implements IApplication {
-
-	private URL artifactRepositoryLocation;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args"));
-		IArtifactRepository repository = setupRepository(artifactRepositoryLocation);
-		new Optimizer(repository).run();
-		return null;
-	}
-
-	private IArtifactRepository setupRepository(URL location) {
-		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() {
-	}
-
-	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"))
-				artifactRepositoryLocation = new URL(arg);
-		}
-	}
-}
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 dfbeefb..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
+++ /dev/null
@@ -1,89 +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.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.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-
-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"))
-				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!   
-		return descriptor.getProcessingSteps().length == 0;
-	}
-
-	private void optimize(IArtifactDescriptor descriptor) {
-		ArtifactDescriptor newDescriptor = new ArtifactDescriptor(descriptor);
-		ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)};
-		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.
-			repository.getArtifact(descriptor, destination, new NullProgressMonitor());
-		} finally {
-			if (repositoryStream != null)
-				try {
-					repositoryStream.close();
-					// TODO need to figure out how to get our processing steps linked into the repositoryStream
-					// so that the close() picks up any status issues.
-					IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-					if (!status.isOK()) {
-						System.out.println("Skipping optimization of: " + descriptor.getArtifactKey());
-						System.out.println(status.toString());
-					}
-				} catch (IOException e) {
-					// TODO Auto-generated catch block
-					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 a1a00e3..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.equinox.p2.jarprocessor.JarProcessorExecutor;
-import org.eclipse.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, destination, false);
-			} else {
-				status = 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.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.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 b60a5af..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,30 +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.p2.artifact.repository,
- org.eclipse.equinox.p2.artifact.repository.processing,
- org.eclipse.equinox.p2.core.repository,
- org.eclipse.equinox.p2.jarprocessor,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.sar
-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 34d2e4d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-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 8eeb4b1..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 (Incubation)
-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 8f00876..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
+++ /dev/null
@@ -1,58 +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;
-
-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.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-/**
- * 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 (!status.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) {
-			status = new Status(IStatus.ERROR, Activator.ID, "Could not get artifact repository manager.");
-			return;
-		}
-
-		IArtifactRepository[] repositories = repoMgr.getKnownRepositories();
-		for (int i = 0; i < repositories.length; i++) {
-			if ("file".equals(repositories[i].getLocation().getProtocol()) && repositories[i].contains(key)) {
-				repository = repositories[i];
-				return;
-			}
-		}
-		status = 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 9de6886..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/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.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.processor"; //$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 e9e6fed..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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, destination, false);
-			} else {
-				status = 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();
-		}
-	}
-}
\ 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/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 c5d5262..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.sar.DirectByteArrayOutputStream;
-
-/**
- * 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, destination, false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		status = repository.getArtifact(artifactDescriptor, result, monitor);
-		if (!status.isOK())
-			throw (IOException) new IOException(status.getMessage()).initCause(status.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 0f2865b..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.p2.sar.SarUtil;
-
-/**
- * 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, destination, false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-		status = repository.getArtifact(artifactDescriptor, zippedPredecessor, monitor);
-		if (!status.isOK())
-			throw (IOException) new IOException(status.getMessage()).initCause(status.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 3402cf2..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
+++ /dev/null
Binary files differ
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 4559d6d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/verifier/MD5Verifier.java
+++ /dev/null
@@ -1,90 +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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.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;
-		if (descriptor == null)
-			code = IStatus.ERROR;
-		else
-			code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-		if (md5Test == null || md5Test.length() != 32)
-			status = new Status(code, Activator.ID, "MD5 value not available or incorrect size");
-		try {
-			md5 = MessageDigest.getInstance("MD5");
-		} catch (NoSuchAlgorithmException e) {
-			status = 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);
-		destination.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)) {
-			String message = "Error processing stream. MD5 hash is not as expected.";
-			status = new Status(IStatus.ERROR, "plugin id", message);
-		} else
-			status = Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/.classpath b/bundles/org.eclipse.equinox.p2.directorywatcher/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/.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.p2.directorywatcher/.project b/bundles/org.eclipse.equinox.p2.directorywatcher/.project
deleted file mode 100644
index b26a90d..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.directorywatcher</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.directorywatcher/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 78523cd..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/.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.directorywatcher/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 1546d82..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/.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.directorywatcher/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.directorywatcher/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 6904bd9..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/.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.directorywatcher/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF
deleted file mode 100644
index 4f67be7..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.directorywatcher
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.directorywatcher.Activator
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata.repository,
- org.eclipse.equinox.p2.artifact.repository,
- org.eclipse.equinox.p2.core.repository,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.metadata.generator,
- org.eclipse.equinox.p2.metadata.repository,
- org.eclipse.equinox.p2.query,
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.osgi.framework;version="1.4.0",
- org.osgi.service.cm;version="1.2.0";resolution:=optional,
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.util.tracker;version="1.3.0"
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
-Export-Package: org.eclipse.equinox.internal.p2.directorywatcher;x-internal:=true,
- org.eclipse.equinox.p2.directorywatcher
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.3.0,4.0)"
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/about.html b/bundles/org.eclipse.equinox.p2.directorywatcher/about.html
deleted file mode 100644
index d62785d..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/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.directorywatcher/build.properties b/bundles/org.eclipse.equinox.p2.directorywatcher/build.properties
deleted file mode 100644
index cdd2db7..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/plugin.properties b/bundles/org.eclipse.equinox.p2.directorywatcher/plugin.properties
deleted file mode 100644
index 0dd583a..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/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 Directory Watcher (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/Activator.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/Activator.java
deleted file mode 100644
index c8ac821..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/Activator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 aQute, IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * aQute - initial implementation and ideas 
- * IBM Corporation - initial adaptation to Equinox provisioning use
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.directorywatcher;
-
-import java.util.*;
-import org.eclipse.equinox.p2.directorywatcher.DirectoryWatcher;
-import org.osgi.framework.*;
-import org.osgi.service.cm.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * This clever little bundle watches a directory and will install any jar file
- * if finds in that directory 
- */
-
-public class Activator implements BundleActivator, ManagedServiceFactory {
-	static ServiceTracker packageAdminTracker;
-	static ServiceTracker configAdminTracker;
-
-	private static BundleContext context;
-	Map watchers = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		this.context = context;
-		watchers = new HashMap();
-		Hashtable props = new Hashtable();
-		props.put(Constants.SERVICE_PID, getName());
-		context.registerService(ManagedServiceFactory.class.getName(), this, props);
-
-		packageAdminTracker = new ServiceTracker(context, PackageAdmin.class.getName(), null);
-		packageAdminTracker.open();
-		configAdminTracker = new ServiceTracker(context, ConfigurationAdmin.class.getName(), null);
-		configAdminTracker.open();
-
-		// Created the initial configuration
-		Hashtable properties = new Hashtable();
-		set(properties, DirectoryWatcher.POLL);
-		set(properties, DirectoryWatcher.DIR);
-		set(properties, DirectoryWatcher.DEBUG);
-		updated("initial", properties);
-	}
-
-	private void set(Hashtable properties, String key) {
-		Object o = context.getProperty(key);
-		if (o == null)
-			return;
-		properties.put(key, o);
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		if (watchers == null)
-			return;
-		for (Iterator i = watchers.values().iterator(); i.hasNext();)
-			try {
-				DirectoryWatcher watcher = (DirectoryWatcher) i.next();
-				watcher.close();
-			} catch (Exception e) {
-				// Ignore
-			}
-		watchers = null;
-		configAdminTracker.close();
-		packageAdminTracker.close();
-	}
-
-	public void deleted(String pid) {
-		DirectoryWatcher watcher = (DirectoryWatcher) watchers.remove(pid);
-		if (watcher != null)
-			watcher.close();
-	}
-
-	public String getName() {
-		return "equinox.p2.directorywatcher";
-	}
-
-	public void updated(String pid, Dictionary properties) throws ConfigurationException {
-		deleted(pid);
-		DirectoryWatcher watcher = new DirectoryWatcher(properties, context);
-		watchers.put(pid, properties);
-		watcher.addListener(new JARFileListener());
-		watcher.start();
-	}
-
-	public static ConfigurationAdmin getConfigAdmin() {
-		return (ConfigurationAdmin) Activator.configAdminTracker.getService();
-	}
-
-	public static PackageAdmin getPackageAdmin(int timeout) {
-		if (timeout == 0)
-			return (PackageAdmin) packageAdminTracker.getService();
-		try {
-			return (PackageAdmin) packageAdminTracker.waitForService(timeout);
-		} catch (InterruptedException e) {
-			return null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ConfigFileListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ConfigFileListener.java
deleted file mode 100644
index d6eb119..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ConfigFileListener.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 aQute, IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * aQute - initial implementation and ideas 
- * IBM Corporation - initial adaptation to Equinox provisioning use
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.directorywatcher;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.equinox.p2.directorywatcher.IDirectoryChangeListener;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-public class ConfigFileListener implements IDirectoryChangeListener {
-	public final static String ALIAS_KEY = ".alias_factory_pid";
-
-	private Map seenFiles = new HashMap();
-
-	public boolean added(File file) {
-		// load the input file into a hashtable of settings...
-		Properties temp = new Properties();
-		InputStream in = null;
-		try {
-			in = new FileInputStream(file);
-			try {
-				temp.load(in);
-			} finally {
-				in.close();
-			}
-		} catch (IOException e) {
-			// TODO proper logging etc here
-			e.printStackTrace();
-		}
-		Hashtable settings = new Hashtable();
-		settings.putAll(temp);
-
-		String pid[] = parsePid(file.getName());
-		if (pid[1] != null)
-			settings.put(ALIAS_KEY, pid[1]);
-		Configuration config = getConfiguration(pid[0], pid[1]);
-		if (config == null)
-			return false;
-		if (config.getBundleLocation() != null)
-			config.setBundleLocation(null);
-		try {
-			config.update(settings);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		seenFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public boolean changed(File file) {
-		return added(file);
-	}
-
-	private Configuration getConfiguration(String pid, String factoryPid) {
-		ConfigurationAdmin cm = Activator.getConfigAdmin();
-		if (cm == null)
-			return null;
-
-		try {
-			if (factoryPid != null) {
-				Configuration configs[] = null;
-				try {
-					configs = cm.listConfigurations("(" + ALIAS_KEY + "=" + factoryPid + ")");
-				} catch (InvalidSyntaxException e) {
-					return null;
-				}
-				if (configs == null || configs.length == 0)
-					return cm.createFactoryConfiguration(pid, null);
-				else
-					return configs[0];
-			} else
-				return cm.getConfiguration(pid, null);
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	public String[] getExtensions() {
-		return new String[] {".cfg"};
-	}
-
-	public Long getSeenFile(File file) {
-		return (Long) seenFiles.get(file);
-	}
-
-	private String[] parsePid(String path) {
-		String pid = path.substring(0, path.length() - 4);
-		int n = pid.indexOf('-');
-		if (n > 0) {
-			String factoryPid = pid.substring(n + 1);
-			pid = pid.substring(0, n);
-			return new String[] {pid, factoryPid};
-		} else
-			return new String[] {pid, null};
-	}
-
-	public boolean removed(File file) {
-		String pid[] = parsePid(file.getName());
-		Configuration config = getConfiguration(pid[0], pid[1]);
-		if (config == null)
-			return false;
-		try {
-			config.delete();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		seenFiles.remove(file);
-		return true;
-	}
-
-	public void startPoll() {
-		// TODO Auto-generated method stub
-	}
-
-	public void stopPoll() {
-		// TODO Auto-generated method stub
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/JARFileListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/JARFileListener.java
deleted file mode 100644
index b12e8a4..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/JARFileListener.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 aQute, IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * aQute - initial implementation and ideas 
- * IBM Corporation - initial adaptation to Equinox provisioning use
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.directorywatcher;
-
-import java.io.*;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.equinox.p2.directorywatcher.IDirectoryChangeListener;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class JARFileListener implements IDirectoryChangeListener {
-	private boolean refresh = false;
-	private Map seenFiles = new HashMap();
-
-	public boolean added(File file) {
-		InputStream in;
-		try {
-			in = new FileInputStream(file);
-		} catch (FileNotFoundException e1) {
-			return false;
-		}
-		Bundle bundle;
-		try {
-			bundle = Activator.getContext().installBundle(file.getAbsolutePath(), in);
-		} catch (BundleException e1) {
-			return false;
-		} finally {
-			try {
-				in.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-		refresh = true;
-		if (!isFragment(bundle))
-			try {
-				bundle.start();
-			} catch (BundleException e) {
-				// TODO ignore for now
-			}
-		seenFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	private Bundle findBundle(String location) {
-		Bundle bundles[] = Activator.getContext().getBundles();
-		for (int i = 0; i < bundles.length; i++) {
-			Bundle bundle = bundles[i];
-			if (bundle.getLocation().equals(location))
-				return bundle;
-		}
-		return null;
-	}
-
-	public boolean changed(File file) {
-		Bundle bundle = findBundle(file.getAbsolutePath());
-		if (bundle == null)
-			//  This is actually a goofy condition since we think this file changed but there
-			// is no bundle for it.  Perhaps we found it previously but somehow failed to install 
-			// it previously or it was uninstalled or...
-			return false;
-		InputStream in;
-		try {
-			in = new FileInputStream(file);
-		} catch (FileNotFoundException e) {
-			return false;
-		}
-		try {
-			bundle.update(in);
-		} catch (BundleException e) {
-			return false;
-		}
-		refresh = true;
-		try {
-			in.close();
-		} catch (IOException e) {
-			// ignore
-		}
-		seenFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public String[] getExtensions() {
-		return new String[] {".jar"};
-	}
-
-	public boolean removed(File file) {
-		Bundle bundle = findBundle(file.getAbsolutePath());
-		if (bundle == null) {
-			//  This is actually a goofy condition since we think this file changed but there
-			// is no bundle for it.  Perhaps we found it previously but somehow failed to install 
-			// it previously or it was uninstalled or... 
-			// Anyway, the bundle is gone so say we were successful anyway...
-			seenFiles.remove(file);
-			return true;
-		}
-		try {
-			bundle.uninstall();
-		} catch (BundleException e) {
-			return false;
-		}
-		refresh = true;
-		seenFiles.remove(file);
-		return true;
-	}
-
-	private boolean isFragment(Bundle bundle) {
-		PackageAdmin packageAdmin = Activator.getPackageAdmin(10000);
-		if (packageAdmin != null)
-			return packageAdmin.getBundleType(bundle) == PackageAdmin.BUNDLE_TYPE_FRAGMENT;
-		return false;
-	}
-
-	public void startPoll() {
-		refresh = false;
-	}
-
-	public void stopPoll() {
-		if (refresh) {
-			PackageAdmin packageAdmin = Activator.getPackageAdmin(10000);
-			if (packageAdmin != null)
-				packageAdmin.refreshPackages(null);
-			refresh = false;
-		}
-	}
-
-	public Long getSeenFile(File file) {
-		return (Long) seenFiles.get(file);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ProvisioningListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ProvisioningListener.java
deleted file mode 100644
index f371dde..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/p2/directorywatcher/ProvisioningListener.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 implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.directorywatcher;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.p2.directorywatcher.IDirectoryChangeListener;
-import org.eclipse.equinox.p2.metadata.generator.*;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-
-public class ProvisioningListener implements IDirectoryChangeListener {
-
-	// The mapping rules for in-place generation need to construct paths that are flat,
-	// with no nesting structure. 
-	static final private String[][] INPLACE_MAPPING_RULES = { {"(& (namespace=eclipse) (classifier=feature))", "${repoUrl}/features/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (namespace=eclipse) (classifier=plugin))", "${repoUrl}/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (namespace=eclipse) (classifier=native))", "${repoUrl}/${id}_${version}"}}; //$NON-NLS-1$//$NON-NLS-2$
-
-	private Set toUninstall;
-	private Set toUpdate;
-	private Set toInstall;
-	private Set toGenerate;
-	private DirectoryWatcher watcher;
-	private Map seenFiles;
-
-	public ProvisioningListener(DirectoryWatcher watcher) {
-		this.watcher = watcher;
-		seenFiles = new HashMap();
-	}
-
-	public boolean added(File file) {
-		toInstall.add(file);
-		if (file.getName().endsWith(".iu")) {
-			// add the IU and artifact entries in to the repo associated with the watched dir
-			// keep track of the JARs added so we can remove them from the list of JARs
-			// to be run through the metadata generator
-		} else if (file.getName().endsWith(".jar")) {
-			// queue up this JAR to be run through the metadata generator if needed 
-			toGenerate.add(file);
-		}
-		seenFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public boolean changed(File file) {
-		toUpdate.add(file);
-		if (file.getName().endsWith(".iu")) {
-			// overwrite the IU and artifact entries in to the repo associated with the watched dir
-			// keep track of the JARs added so we can remove them from the list of JARs
-			// to be run through the metadata generator
-		} else if (file.getName().endsWith(".jar")) {
-			// queue up this JAR to be run through the metadata generator
-			toGenerate.add(file);
-		}
-		seenFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public boolean removed(File file) {
-		toUninstall.add(file);
-		if (file.getName().endsWith(".iu")) {
-			// remove the IU and artifact entries in to the repo associated with the watched dir
-			// keep track of the JARs added so we can remove them from the list of JARs
-			// to be run through the metadata generator
-		} else if (file.getName().endsWith(".jar")) {
-			// figure out which IU corresponds to this JAR and remove it
-		}
-		seenFiles.remove(file);
-		return true;
-	}
-
-	public String[] getExtensions() {
-		return new String[] {".iu", ".jar"};
-	}
-
-	private void initialize() {
-		toUninstall = new HashSet(3);
-		toUpdate = new HashSet(3);
-		toInstall = new HashSet(3);
-		toGenerate = new HashSet(3);
-	}
-
-	public void startPoll() {
-		initialize();
-	}
-
-	public void stopPoll() {
-		processIUs();
-		generate();
-		// 1) add/remove/update all the IUs and artifacts in the repo as required
-		// 2) generate all the IUs we need to generate.  Here we have to sort out which
-		// JARs are just JARs and which are artifacts that have associated IUs. Anything with 
-		// an IU already does not need to be generated
-		// reconcile the lists to ensure that the JAR
-		// 3) construct the set of operations needed and call the engine
-		// 4) kick something if needed
-		initialize();
-	}
-
-	private IGeneratorInfo getProvider(File[] locations, File destination) {
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		provider.initialize(null, null, null, locations, null);
-		try {
-			initializeMetadataRepository(provider, destination.toURL());
-			initializeArtifactRepository(provider, destination.toURL());
-		} catch (MalformedURLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		provider.setPublishArtifactRepository(true);
-		provider.setPublishArtifacts(false);
-		provider.setMappingRules(INPLACE_MAPPING_RULES);
-		return provider;
-	}
-
-	private void processIUs() {
-	}
-
-	private void generate() {
-		IGeneratorInfo info = getProvider(new File[] {watcher.getTargetDirectory()}, watcher.getTargetDirectory());
-		new Generator(info).generate();
-	}
-
-	public Long getSeenFile(File file) {
-		return (Long) seenFiles.get(file);
-	}
-
-	private void initializeArtifactRepository(EclipseInstallGeneratorInfoProvider provider, URL location) {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		IArtifactRepository repository = manager.loadRepository(location, null);
-		if (repository != null) {
-			if (repository.isModifiable()) {
-				provider.setArtifactRepository(repository);
-				if (!provider.append())
-					repository.removeAll();
-				return;
-			}
-			throw new IllegalArgumentException("Artifact repository not writeable: " + location); //$NON-NLS-1$
-		}
-
-		// 	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 = location + " - artifacts"; //$NON-NLS-1$
-		IArtifactRepository result = manager.createRepository(location, repositoryName, "org.eclipse.equinox.p2.artifact.repository.simpleRepository"); //$NON-NLS-1$
-		if (result != null)
-			provider.setArtifactRepository(result);
-	}
-
-	private void initializeMetadataRepository(EclipseInstallGeneratorInfoProvider provider, URL location) {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		IMetadataRepository repository = manager.loadRepository(location, null);
-		if (repository != null) {
-			if (repository.isModifiable()) {
-				provider.setMetadataRepository(repository);
-				if (!provider.append())
-					repository.removeAll();
-				return;
-			}
-			throw new IllegalArgumentException("Artifact repository not writeable: " + location); //$NON-NLS-1$
-		}
-
-		// 	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 = location + " - metadata"; //$NON-NLS-1$
-		IMetadataRepository result = manager.createRepository(location, repositoryName, "org.eclipse.equinox.p2.metadata.repository.simpleRepository"); //$NON-NLS-1$
-		if (result != null)
-			provider.setMetadataRepository(result);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/DirectoryWatcher.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/DirectoryWatcher.java
deleted file mode 100644
index c552fc1..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/DirectoryWatcher.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 aQute, IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * aQute - initial implementation and ideas 
- * IBM Corporation - initial adaptation to Equinox provisioning use
- ******************************************************************************/
-package org.eclipse.equinox.p2.directorywatcher;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-import org.osgi.framework.BundleContext;
-
-public class DirectoryWatcher extends Thread {
-	public final static String POLL = "eclipse.p2.directory.watcher.poll";
-	public final static String DIR = "eclipse.p2.directory.watcher.dir";
-	public final static String DEBUG = "eclipse.p2.directory.watcher.debug";
-	private static long debug;
-
-	public static void log(String string, Throwable e) {
-		System.err.println(string + ": " + e);
-		if (debug > 0)
-			e.printStackTrace();
-	}
-
-	File targetDirectory;
-	boolean done = false;
-	long poll = 2000;
-	Map processedBundles = new HashMap();
-	Map processedConfigs = new HashMap();
-	private Set listeners = new HashSet();
-	private HashSet scannedFiles = new HashSet();
-	private HashSet removals;
-	private Set pendingDeletions;
-	private Object runningLock = new Object();
-	private boolean running = false;
-
-	public DirectoryWatcher(Dictionary properties, BundleContext context) {
-		super("Directory Watcher");
-		poll = getLong(context.getProperty(POLL), poll);
-		debug = getLong(context.getProperty(DEBUG), -1);
-
-		String dir = (String) properties.get(DIR);
-		if (dir == null)
-			dir = "./load";
-
-		try {
-			targetDirectory = new File(dir).getCanonicalFile();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		targetDirectory.mkdirs();
-	}
-
-	public void addListener(IDirectoryChangeListener listener) {
-		listeners.add(listener);
-	}
-
-	public void start() {
-		super.start();
-		synchronized (runningLock) {
-			while (!running)
-				try {
-					runningLock.wait();
-				} catch (InterruptedException e) {
-					// reset interrupted state
-					Thread.currentThread().interrupt();
-				}
-		}
-	}
-
-	public synchronized void close() {
-		done = true;
-		notify();
-	}
-
-	private long getLong(String value, long defaultValue) {
-		if (value != null)
-			try {
-				return Long.parseLong(value);
-			} catch (Exception e) {
-				System.out.println(value + " is not a long");
-			}
-		return defaultValue;
-	}
-
-	public File getTargetDirectory() {
-		return targetDirectory;
-	}
-
-	private boolean isInterested(IDirectoryChangeListener listener, File file) {
-		String[] extensions = listener.getExtensions();
-		for (int i = 0; i < extensions.length; i++)
-			if (file.getPath().endsWith(extensions[i]))
-				return true;
-		return false;
-	}
-
-	/**
-	 * Notify the listeners of the files that have been deleted or marked for deletion.
-	 */
-	private void notifyRemovals() {
-		Set removed = removals;
-		for (Iterator i = listeners.iterator(); i.hasNext();) {
-			IDirectoryChangeListener listener = (IDirectoryChangeListener) i.next();
-			for (Iterator j = removed.iterator(); j.hasNext();) {
-				File file = (File) j.next();
-				if (isInterested(listener, file))
-					listener.removed(file);
-			}
-		}
-	}
-
-	private void processFile(File file, IDirectoryChangeListener listener) {
-		try {
-			Long oldTimestamp = listener.getSeenFile(file);
-			if (oldTimestamp == null) {
-				// The file is new
-				listener.added(file);
-			} else {
-				// The file is not new but may have changed
-				long lastModified = file.lastModified();
-				if (oldTimestamp.longValue() != lastModified)
-					listener.changed(file);
-			}
-		} catch (Exception e) {
-			log("Processing : " + listener, e);
-		}
-	}
-
-	/**
-	 * Try to remove the files that have been marked for deletion.
-	 */
-	private void processPendingDeletions() {
-		for (Iterator iterator = pendingDeletions.iterator(); iterator.hasNext();) {
-			File file = (File) iterator.next();
-			if (!file.exists() || file.delete())
-				iterator.remove();
-			new File(file.getPath() + ".del").delete();
-		}
-	}
-
-	public void run() {
-		if (debug > 0) {
-			System.out.println(POLL + "(ms) " + poll);
-			System.out.println(DIR + "  " + targetDirectory.getAbsolutePath());
-			System.out.println(DEBUG + " " + debug);
-		}
-		synchronized (this) {
-			signalRunning();
-			do {
-				try {
-					startPoll();
-					scanDirectory();
-					stopPoll();
-					notify();
-					wait(poll);
-				} catch (InterruptedException e) {
-					// ignore
-				} catch (Throwable e) {
-					e.printStackTrace();
-					log("In main loop, we have serious trouble", e);
-					done = true;
-				}
-			} while (!done);
-		}
-	}
-
-	private void signalRunning() {
-		synchronized (runningLock) {
-			running = true;
-			runningLock.notify();
-		}
-	}
-
-	private void scanDirectory() {
-		File list[] = targetDirectory.listFiles();
-		if (list == null)
-			return;
-		for (int i = 0; i < list.length; i++) {
-			File file = list[i];
-			// if this is a deletion marker then add to the list of pending deletions.
-			if (list[i].getPath().endsWith(".del")) {
-				File target = new File(file.getPath().substring(0, file.getPath().length() - 4));
-				removals.add(target);
-				pendingDeletions.add(target);
-			} else {
-				// else remember that we saw the file and remove it from this list of files to be 
-				// removed at the end.  Then notify all the listeners as needed.
-				scannedFiles.add(file);
-				removals.remove(file);
-				for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
-					IDirectoryChangeListener listener = (IDirectoryChangeListener) iterator.next();
-					if (isInterested(listener, file))
-						processFile(file, listener);
-				}
-			}
-		}
-	}
-
-	private void startPoll() {
-		removals = scannedFiles;
-		scannedFiles = new HashSet();
-		pendingDeletions = new HashSet();
-		for (Iterator i = listeners.iterator(); i.hasNext();)
-			((IDirectoryChangeListener) i.next()).startPoll();
-	}
-
-	private void stopPoll() {
-		notifyRemovals();
-		removals = scannedFiles;
-		for (Iterator i = listeners.iterator(); i.hasNext();)
-			((IDirectoryChangeListener) i.next()).stopPoll();
-		processPendingDeletions();
-	}
-
-	public synchronized void poll() {
-		notify();
-		try {
-			wait();
-		} catch (InterruptedException e) {
-			Thread.currentThread().interrupt();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/IDirectoryChangeListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/IDirectoryChangeListener.java
deleted file mode 100644
index 6db085a..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/IDirectoryChangeListener.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 implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.p2.directorywatcher;
-
-import java.io.File;
-
-public interface IDirectoryChangeListener {
-
-	public void startPoll();
-
-	public void stopPoll();
-
-	public String[] getExtensions();
-
-	public boolean added(File file);
-
-	public boolean removed(File file);
-
-	public boolean changed(File file);
-
-	public Long getSeenFile(File file);
-}
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/RepositoryListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/RepositoryListener.java
deleted file mode 100644
index 5330429..0000000
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/p2/directorywatcher/RepositoryListener.java
+++ /dev/null
@@ -1,218 +0,0 @@
-package org.eclipse.equinox.p2.directorywatcher;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.generator.BundleDescriptionFactory;
-import org.eclipse.equinox.p2.metadata.generator.MetadataGeneratorHelper;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class RepositoryListener implements IDirectoryChangeListener {
-
-	IMetadataRepository metadataRepository;
-	IArtifactRepository artifactRepository;
-	BundleDescriptionFactory bundleDescriptionFactory;
-	Map currentFiles = new HashMap();
-
-	public RepositoryListener(BundleContext context, File bundleDirectory) {
-
-		String stateDirName = "listener_" + bundleDirectory.getAbsolutePath().hashCode();
-		File stateDir = context.getDataFile(stateDirName);
-		stateDir.mkdirs();
-
-		URL stateDirURL;
-		try {
-			stateDirURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			throw new IllegalStateException(e.getMessage());
-		}
-
-		initializeMetadataRepository(context, stateDirURL);
-		initializeArtifactRepository(context, stateDirURL);
-		initializeBundleDescriptionFactory(context);
-	}
-
-	private void 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();
-			bundleDescriptionFactory = new BundleDescriptionFactory(stateObjectFactory, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private void initializeArtifactRepository(BundleContext context, URL stateDirURL) {
-		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-		if (reference == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-
-		try {
-			artifactRepository = manager.getRepository(stateDirURL);
-			if (artifactRepository == null)
-				artifactRepository = manager.createRepository(stateDirURL, "artifact listener", "org.eclipse.equinox.p2.artifact.repository.simpleRepository");
-		} finally {
-			context.ungetService(reference);
-		}
-
-		if (artifactRepository == null)
-			throw new IllegalStateException("Couldn't create listener artifact repository for: " + stateDirURL);
-	}
-
-	private void initializeMetadataRepository(BundleContext context, URL stateDirURL) {
-		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		if (reference == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-
-		try {
-			metadataRepository = manager.getRepository(stateDirURL);
-			if (metadataRepository == null)
-				metadataRepository = manager.createRepository(stateDirURL, "metadata listener", "org.eclipse.equinox.p2.metadata.repository.simpleRepository");
-		} finally {
-			context.ungetService(reference);
-		}
-
-		if (metadataRepository == null)
-			throw new IllegalStateException("Couldn't create listener metadata repository for: " + stateDirURL);
-	}
-
-	public boolean added(File file) {
-		currentFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public boolean changed(File file) {
-		currentFiles.put(file, new Long(file.lastModified()));
-		return true;
-	}
-
-	public boolean removed(File file) {
-		currentFiles.remove(file);
-		return true;
-	}
-
-	public String[] getExtensions() {
-		return new String[] {".jar"};
-	}
-
-	public Long getSeenFile(File file) {
-		return (Long) currentFiles.get(file);
-	}
-
-	public void startPoll() {
-	}
-
-	public void stopPoll() {
-		synchronizeMetadataRepository();
-		synchronizeArtifactRepository();
-	}
-
-	private void synchronizeMetadataRepository() {
-		Map snapshot = new HashMap(currentFiles);
-		List toRemove = new ArrayList();
-
-		IInstallableUnit[] ius = metadataRepository.getInstallableUnits(null);
-		for (int i = 0; i < ius.length; i++) {
-			IInstallableUnit iu = ius[i];
-			File iuFile = new File(iu.getProperty("file.name"));
-			Long iuLastModified = new Long(iu.getProperty("file.lastModified"));
-
-			Long snapshotLastModified = (Long) snapshot.get(iuFile);
-			if (snapshotLastModified == null || !snapshotLastModified.equals(iuLastModified))
-				toRemove.add(iu);
-			else
-				snapshot.remove(iuFile);
-		}
-
-		IInstallableUnit[] iusToRemove = (IInstallableUnit[]) toRemove.toArray(new IInstallableUnit[toRemove.size()]);
-		metadataRepository.removeInstallableUnits(iusToRemove);
-
-		IInstallableUnit[] iusToAdd = generateIUs(snapshot.keySet());
-		metadataRepository.addInstallableUnits(iusToAdd);
-	}
-
-	private void synchronizeArtifactRepository() {
-		List snapshot = new ArrayList(Arrays.asList(artifactRepository.getArtifactKeys()));
-
-		IInstallableUnit[] ius = metadataRepository.getInstallableUnits(null);
-		for (int i = 0; i < ius.length; i++) {
-			IInstallableUnit iu = ius[i];
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				continue;
-			IArtifactKey artifact = artifacts[0];
-			if (!snapshot.remove(artifact)) {
-				File iuFile = new File(iu.getProperty("file.name"));
-				IArtifactDescriptor descriptor = generateArtifactDescriptor(iuFile);
-				if (descriptor != null)
-					artifactRepository.addDescriptor(descriptor);
-			}
-		}
-
-		for (Iterator it = snapshot.iterator(); it.hasNext();) {
-			IArtifactKey key = (IArtifactKey) it.next();
-			artifactRepository.removeDescriptor(key);
-		}
-	}
-
-	private IArtifactDescriptor generateArtifactDescriptor(File bundle) {
-		BundleDescription bundleDescription = bundleDescriptionFactory.getBundleDescription(bundle);
-		IArtifactKey key = MetadataGeneratorHelper.createEclipseArtifactKey(bundleDescription.getSymbolicName(), bundleDescription.getVersion().toString());
-		return MetadataGeneratorHelper.createArtifactDescriptor(key, bundle, true, false);
-	}
-
-	private IInstallableUnit[] generateIUs(Collection files) {
-		List ius = new ArrayList();
-		int i = 0;
-		for (Iterator it = files.iterator(); it.hasNext(); i++) {
-			File bundle = (File) it.next();
-			IInstallableUnit iu = generateIU(bundle);
-			if (iu != null)
-				ius.add(iu);
-		}
-		return (IInstallableUnit[]) ius.toArray(new IInstallableUnit[ius.size()]);
-	}
-
-	private IInstallableUnit generateIU(File bundle) {
-		BundleDescription bundleDescription = bundleDescriptionFactory.getBundleDescription(bundle);
-		if (bundleDescription == null)
-			return null;
-		Properties props = new Properties();
-		props.setProperty("file.name", bundle.getAbsolutePath());
-		props.setProperty("file.lastModified", Long.toString(bundle.lastModified()));
-		IArtifactKey key = MetadataGeneratorHelper.createEclipseArtifactKey(bundleDescription.getSymbolicName(), bundleDescription.getVersion().toString());
-		IInstallableUnit iu = (IInstallableUnit) MetadataGeneratorHelper.createEclipseIU(bundleDescription, (Map) bundleDescription.getUserObject(), false, key, props);
-		return iu;
-	}
-
-	public IMetadataRepository getMetadataRepository() {
-		return metadataRepository;
-	}
-
-	public IArtifactRepository getArtifactRepository() {
-		return artifactRepository;
-	}
-}
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 661433d..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
-Eclipse-LazyStart: true
-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 ff6b71c..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/build.properties
+++ /dev/null
@@ -1,20 +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,\
-               splash.bmp,\
-               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 d9ac473..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/config.ini
+++ /dev/null
@@ -1,88 +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=\
-	com.thoughtworks.xstream,\
-	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.download,\
-	org.eclipse.equinox.p2.engine,\
-	org.eclipse.equinox.p2.exemplarysetup,\
-	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.mozilla.rhino
-
-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 a30ef15..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/installer.product
+++ /dev/null
@@ -1,69 +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=file:/c:/tmp/equinox.p2/install.properties
--Declipse.p2.data.area=file:/c:/tmp/equinox.p2/p2</vmArgs>
-   </launcherArgs>
-
-   <windowImages/>
-
-   <splash
-      location="org.eclipse.equinox.p2.installer" />
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.thoughtworks.xstream"/>
-      <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.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.download"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <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.win32.win32.x86" fragment="true"/>
-      <plugin id="org.mozilla.rhino"/>
-   </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 0fbfab4..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 (Incubation)
-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/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 ab23024..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/HeadlessInstallAdvisor.java
+++ /dev/null
@@ -1,78 +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.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 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 f2c7710..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallApplication.java
+++ /dev/null
@@ -1,172 +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.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.installer.InstallAdvisor;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-
-/**
- * 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("No install site provided");
-		try {
-			URL siteURL = new URL(site);
-			return (InstallDescription) InstallDescriptionParser.loadFromProperties(siteURL.openStream(), monitor);
-		} catch (MalformedURLException e) {
-			throw fail("Invalid install site: " + site, e);
-		} catch (IOException e) {
-			throw fail("Invalid install site: " + 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, "An error occurred during installation", 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("Failed to launch the product: " + toRun, e);
-		}
-	}
-
-	/* (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();
-
-				//perform long running install operation
-				InstallUpdateProductOperation operation = new InstallUpdateProductOperation(InstallerActivator.getDefault().getContext(), description);
-				advisor.performInstall(operation);
-				IStatus result = operation.getResult();
-				if (!result.isOK()) {
-					advisor.setResult(result);
-					return IApplication.EXIT_OK;
-				}
-				//just exit after a successful update
-				if (!operation.isFirstInstall())
-					return IApplication.EXIT_OK;
-				if (description.isAutoStart())
-					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();
-		}
-	}
-
-	/* (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 d8b409e..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java
+++ /dev/null
@@ -1,75 +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.installer;
-
-import java.io.*;
-import java.net.URL;
-import java.util.Properties;
-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 various file formats.
- */
-public class InstallDescriptionParser {
-	private static final String PROP_ARTIFACT_REPOSITORY = "artifactRepository";
-	private static final String PROP_INSTALL_LOCATION = "installLocation";
-	private static final String PROP_IS_AUTO_START = "autoStart";
-	private static final String PROP_LAUNCHER_NAME = "launcherName";
-	private static final String PROP_METADATA_REPOSITORY = "metadataRepository";
-	private static final String PROP_PROFILE_FLAVOR = "flavor";
-	private static final String PROP_PROFILE_NAME = "profileName";
-	private static final String PROP_ROOT_ID = "rootId";
-	private static final String PROP_ROOT_VERSION = "rootVersion";
-
-	/**
-	 * 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.setFlavor(properties.getProperty(PROP_PROFILE_FLAVOR));
-			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));
-			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);
-			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 8a08902..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallUpdateProductOperation.java
+++ /dev/null
@@ -1,246 +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.installer;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-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 {
-
-	/**
-	 * This constant comes from value of FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME.
-	 * This profile property is being used as a short term solution for branding of the launcher.
-	 */
-	private static final String PROP_LAUNCHER_NAME = "org.eclipse.equinox.frameworkhandler.launcher.name";
-
-	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(Profile profile) {
-		ArrayList units = new ArrayList();
-		for (Iterator it = profile.getInstallableUnits(); it.hasNext();)
-			units.add(it.next());
-		return (IInstallableUnit[]) units.toArray(new IInstallableUnit[units.size()]);
-	}
-
-	/**
-	 * Create and return the profile into which units will be installed.
-	 */
-	private Profile createProfile() {
-		Profile profile = getProfile();
-		if (profile == null) {
-			profile = new Profile(installDescription.getProductName());
-			profile.setValue(Profile.PROP_INSTALL_FOLDER, installDescription.getInstallLocation().toString());
-			profile.setValue(Profile.PROP_FLAVOR, installDescription.getFlavor());
-			profile.setValue(PROP_LAUNCHER_NAME, installDescription.getLauncherName());
-			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();
-			profile.setValue(Profile.PROP_ENVIRONMENTS, env);
-			profileRegistry.addProfile(profile);
-		}
-		return profile;
-	}
-
-	/**
-	 * Performs the actual product install or update.
-	 */
-	private void doInstall(SubMonitor monitor) throws CoreException {
-		prepareMetadataRepository();
-		prepareArtifactRepository();
-		Profile p = createProfile();
-		IInstallableUnit[] toInstall = computeUnitsToInstall();
-		monitor.worked(5);
-
-		IStatus s;
-		if (isInstall) {
-			monitor.setTaskName(NLS.bind("Installing {0}", installDescription.getProductName()));
-			s = director.install(toInstall, p, monitor.newChild(90));
-		} else {
-			monitor.setTaskName(NLS.bind("Updating {0}", installDescription.getProductName()));
-			IInstallableUnit[] toUninstall = computeUnitsToUninstall(p);
-			s = director.replace(toUninstall, toInstall, p, monitor.newChild(90));
-		}
-		if (!s.isOK())
-			throw new CoreException(s);
-	}
-
-	/**
-	 * Throws an exception of severity error with the given error message.
-	 */
-	private CoreException fail(String message) {
-		return fail(message, null);
-	}
-
-	/**
-	 * Throws 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("Installable unit id not specified");
-		VersionRange range = VersionRange.emptyRange;
-		if (version != null && !version.equals(Version.emptyVersion))
-			range = new VersionRange(version, true, version, true);
-		IMetadataRepository[] repos = metadataRepoMan.getKnownRepositories();
-		for (int i = 0; i < repos.length; i++) {
-			IInstallableUnit[] found = repos[i].query(id, range, null, true, null);
-			if (found.length > 0)
-				return found[0];
-		}
-		throw fail("Installable unit not found: " + id);
-	}
-
-	/**
-	 * Returns the profile being installed into.
-	 */
-	private Profile getProfile() {
-		return profileRegistry.getProfile(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("Install requires a service that is not available: " + name);
-		Object service = bundleContext.getService(ref);
-		if (service == null)
-			throw fail("Install requires a service implementation that is not available: " + 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, "Preparing to install", 100);
-		try {
-			try {
-				preInstall();
-				isInstall = getProfile() == null;
-				doInstall(monitor);
-				result = new Status(IStatus.OK, InstallerActivator.PI_INSTALLER, isInstall ? "Install complete" : "Update complete", null);
-				monitor.setTaskName("Some final housekeeping");
-			} 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 {
-		if (System.getProperty("eclipse.p2.data.area") == null) //$NON-NLS-1$
-			System.setProperty("eclipse.p2.data.area", installDescription.getInstallLocation().append("installer").toString()); //$NON-NLS-1$ //$NON-NLS-2$
-		if (System.getProperty("eclipse.p2.cache") == null) //$NON-NLS-1$
-			System.setProperty("eclipse.p2.cache", installDescription.getInstallLocation().toString()); //$NON-NLS-1$
-
-		//start up p2
-		try {
-			InstallerActivator.getDefault().getBundle("org.eclipse.equinox.p2.exemplarysetup").start(Bundle.START_ACTIVATION_POLICY);
-		} catch (BundleException e) {
-			throw fail("Unable to start p2", e);
-		}
-		//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() {
-		URL artifactRepo = installDescription.getArtifactRepository();
-		if (artifactRepo != null)
-			artifactRepoMan.loadRepository(artifactRepo, null);
-	}
-
-	private void prepareMetadataRepository() {
-		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 e042699..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallerActivator.java
+++ /dev/null
@@ -1,95 +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.installer;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-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.internal.provisional.p2.installer";
-	// 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/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 b7c1406..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/InstallDialog.java
+++ /dev/null
@@ -1,286 +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.installer.ui;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.installer.InstallerActivator;
-import org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation;
-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.*;
-
-/**
- * A simple implementation of a progress monitor dialog, used for running
- * an install operation.
- */
-public class InstallDialog {
-	/**
-	 * A progress monitor implementation that asynchronously updates the progress bar.
-	 */
-	class Monitor implements IProgressMonitor {
-
-		boolean canceled = false, running = false;
-		String taskName = "", subTaskName = ""; //$NON-NLS-1$//$NON-NLS-2$
-		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 canceled;
-		}
-
-		public void setCanceled(boolean value) {
-			this.canceled = value;
-		}
-
-		public void setTaskName(String name) {
-			taskName = 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;
-					taskLabel.setText(taskName);
-					subTaskLabel.setText(shorten(subTaskName));
-					if (progress.isDisposed())
-						return;
-					progress.setVisible(running);
-					progress.setMaximum(1000);
-					progress.setMinimum(0);
-					int value = (int) (usedWork / totalWork * 1000);
-					if (progress.getSelection() < value)
-						progress.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);
-				}
-			});
-		}
-
-		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 = "An internal error has occurred";
-			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 Button closeButton;
-	private Composite contents;
-	/**
-	 * Flag indicating whether the user has indicated if it is ok to close the dialog
-	 */
-	private boolean okToClose;
-	ProgressBar progress;
-	private Shell shell;
-	Label subTaskLabel;
-
-	Label taskLabel;
-
-	/**
-	 * Creates and opens a progress monitor dialog.
-	 */
-	public InstallDialog() {
-		shell = new Shell(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
-		shell.setBounds(300, 200, 600, 400);
-		shell.setText("Installer");
-		shell.setLayout(new FillLayout());
-		contents = new Composite(shell, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 15;
-		layout.marginHeight = 15;
-		contents.setLayout(layout);
-		taskLabel = new Label(contents, SWT.WRAP | SWT.LEFT);
-		taskLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		progress = new ProgressBar(contents, SWT.HORIZONTAL | SWT.SMOOTH);
-		progress.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		progress.setVisible(false);
-		subTaskLabel = new Label(contents, SWT.WRAP | SWT.LEFT);
-		subTaskLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		//spacer
-		Label spacer = new Label(contents, SWT.NONE);
-		spacer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		closeButton = new Button(contents, SWT.PUSH);
-		GridData data = new GridData(80, SWT.DEFAULT);
-		data.verticalAlignment = SWT.END;
-		data.horizontalAlignment = SWT.RIGHT;
-		closeButton.setLayoutData(data);
-		closeButton.setText("OK");
-		closeButton.setVisible(false);
-		closeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setOkToClose();
-			}
-		});
-		shell.layout();
-		shell.open();
-	}
-
-	private synchronized boolean canClose() {
-		return okToClose;
-	}
-
-	public void close() {
-		shell.dispose();
-		shell = null;
-	}
-
-	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;
-		taskLabel.setText(message);
-		subTaskLabel.setText(""); //$NON-NLS-1$
-		progress.setVisible(false);
-		closeButton.setVisible(true);
-		while (!canClose()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-	}
-
-	/**
-	 * 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();
-				}
-			}
-		};
-		thread.start();
-		Display display = getDisplay();
-		while (!result.isDone()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		return result.getStatus();
-	}
-
-	public void setMessage(String message) {
-		if (taskLabel != null && !taskLabel.isDisposed())
-			taskLabel.setText(message);
-	}
-
-	synchronized void setOkToClose() {
-		okToClose = true;
-	}
-
-}
\ 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 e596ff9..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/SWTInstallAdvisor.java
+++ /dev/null
@@ -1,84 +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.installer.ui;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.installer.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.DirectoryDialog;
-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) {
-			DirectoryDialog dirDialog = new DirectoryDialog(dialog.getShell());
-			dirDialog.setMessage(NLS.bind("Where do you want to install {0}?", description.getProductName()));
-			String location = dirDialog.open();
-			if (location == null)
-				throw new OperationCanceledException();
-			description.setInstallLocation(new Path(location));
-		}
-		return description;
-	}
-
-	public void setResult(IStatus status) {
-		String message;
-		if (status.getSeverity() == IStatus.CANCEL) {
-			message = "Install 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("Preparing to install");
-	}
-
-	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 dbb0b0f..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallAdvisor.java
+++ /dev/null
@@ -1,59 +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 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);
-
-	/**
-	 * 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 205aa19..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallDescription.java
+++ /dev/null
@@ -1,142 +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 java.net.URL;
-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;
-	private boolean isAutoStart;
-	private String launcherName;
-	private URL metadataRepo;
-	private String productName, flavor;
-	private String rootId;
-	private Version rootVersion;
-
-	public InstallDescription(String name) {
-		this.productName = name;
-	}
-
-	/**
-	 * Returns the location of the artifact repository to install from
-	 * @return an artifact repository URL
-	 */
-	public URL getArtifactRepository() {
-		return artifactRepo;
-	}
-
-	/**
-	 * Returns the flavor used to configure the product being installed.
-	 * @return the install flavor
-	 */
-	public String getFlavor() {
-		return flavor;
-	}
-
-	/**
-	 * 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 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 setArtifactRepository(URL repository) {
-		this.artifactRepo = repository;
-	}
-
-	public void setAutoStart(boolean value) {
-		this.isAutoStart = value;
-	}
-
-	public void setFlavor(String flavor) {
-		this.flavor = flavor;
-	}
-
-	public void setInstallLocation(IPath location) {
-		this.installLocation = location;
-	}
-
-	public void setLauncherName(String name) {
-		this.launcherName = name;
-	}
-
-	public void setMetadataRepository(URL repository) {
-		this.metadataRepo = repository;
-	}
-
-	public void setRootId(String root) {
-		this.rootId = root;
-	}
-
-	public void setRootVersion(Version version) {
-		this.rootVersion = version;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/testInstall.properties b/bundles/org.eclipse.equinox.p2.installer/testInstall.properties
deleted file mode 100644
index 8968672..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/testInstall.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-#Sample InstallDescription property file
-metadataRepository=file:/c:/tmp/equinox.p2/servers/metadata/
-artifactRepository=file:/c:/tmp/equinox.p2/servers/artifacts/
-flavor=tooling
-profileName=TestInstall
-rootId=sdk
-rootVersion=1.0.0
-autoStart=true
-installLocation=c:/tmp/Eclipse
-launcherName=Eclipse.exe
\ No newline at end of file
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
index 7f76012..c5ec056 100644
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch
+++ b/bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.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"/>
@@ -11,14 +11,12 @@
 <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:C:/prov/p2/servers/&#13;&#10;-artifactRepository file:C:/prov/p2/servers/&#13;&#10;-source C:/eclipse3.3/eclipse&#13;&#10;-root sdk&#13;&#10;-rootVersion 3.3.0&#13;&#10;-flavor tooling&#13;&#10;-publishArtifacts&#13;&#10;-append"/>
+<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:/Ap2/servers2/metadataRepository/ &#13;&#10;-artifactRepository file:C:/Ap2/servers2/artifactRepository/ &#13;&#10;-source C:/eclipse/3.3/eclipse&#13;&#10;-root sdk&#13;&#10;-rootVersion 3.3.0&#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.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="true"/>
-<stringAttribute key="vminstall" value="j2sdk1.4.2_08"/>
-<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"/>
+<stringAttribute key="vminstall" value="JRE1.4.2"/>
+<stringAttribute key="workspace_bundles" value="com.thoughtworks.xstream@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.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.sar/.classpath b/bundles/org.eclipse.equinox.p2.sar/.classpath
deleted file mode 100644
index 751c8f2..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="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.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.pde.core.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index d2dc63f..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Nov 01 14:13:11 CET 2007
-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 1419c80..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
-Bundle-Version: 0.1.0
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.p2.sar
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 34d2e4d..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/DirectByteArrayOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/DirectByteArrayOutputStream.java
deleted file mode 100644
index ab610b3..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/DirectByteArrayOutputStream.java
+++ /dev/null
@@ -1,72 +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.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
-	 */
-	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/p2/sar/SarConstants.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarConstants.java
deleted file mode 100644
index 216cb41..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarConstants.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.p2.sar;
-
-/**
- * Sar constants
- */
-public interface SarConstants {
-
-	/** <code>SARFILE_MARKER</code> */
-	String SARFILE_MARKER = "SarFile";
-
-	/** <code>SARFILE_VERSION</code> */
-	int SARFILE_VERSION = 2;
-
-	/**
-	 * Comment for <code>DEFAULT_ENCODING</code>
-	 */
-	String DEFAULT_ENCODING = "UTF-8";
-
-	/**
-	 * Debug
-	 */
-	boolean DEBUG = false;
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarEntry.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarEntry.java
deleted file mode 100644
index 4644cdd..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarEntry.java
+++ /dev/null
@@ -1,157 +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.sar;
-
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-
-/**
- * A SarEntry is the header information for an entry within a org.eclipse.equinox.p2.sar stream.
- */
-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>";
-
-	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 time = sarInputStream.readLong();
-		boolean isEof = sarInputStream.readBoolean();
-		boolean isZip = sarInputStream.readBoolean();
-
-		if ( DEBUG ) {
-			System.out.println( getName() + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + time + ","
-				+ isEof + "," + isZip );
-		}
-
-		if ( method == ZipEntry.STORED ) {
-			setCompressedSize( compressedSize );
-			setCrc( crc );
-			setSize( size );
-		}
-
-		setComment( comment );
-		setExtra( extra );
-		setMethod( method );
-		setTime( time );
-		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 time = this.getTime();
-		boolean isZip = this.isZip();
-		boolean isEof = this.isEof();
-
-		if ( DEBUG ) {
-			System.out.println( name + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + time + "," + 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( time );
-		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
-	 */
-	public boolean isZip() {
-		return isZip;
-	}
-
-	/**
-	 * @param isZip
-	 */
-	private void setZip( boolean isZip ) {
-		this.isZip = isZip;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarInputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarInputStream.java
deleted file mode 100644
index f69916d..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarInputStream.java
+++ /dev/null
@@ -1,207 +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.sar;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * 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
-	 * @throws IOException
-	 */
-	String readString() throws IOException {
-		byte[] bytes = readBytes();
-		if (bytes == null)
-			return null;
-
-		return new String(bytes, SarConstants.DEFAULT_ENCODING);
-	}
-
-	/**
-	 * @return
-	 * @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
-	 * @throws IOException
-	 */
-	int readInt() throws IOException {
-		return dataInputStream.readInt();
-	}
-
-	/**
-	 * @return
-	 * @throws IOException
-	 */
-	boolean readBoolean() throws IOException {
-		return dataInputStream.readBoolean();
-	}
-
-	/**
-	 * @return
-	 * @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/p2/sar/SarOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarOutputStream.java
deleted file mode 100644
index 14fa075..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarOutputStream.java
+++ /dev/null
@@ -1,208 +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.sar;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * 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.Closeable#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/p2/sar/SarUtil.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarUtil.java
deleted file mode 100644
index 1dd31ec..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/p2/sar/SarUtil.java
+++ /dev/null
@@ -1,232 +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.sar;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-/**
- * 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
-	 * @return
-	 * @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
-	 * @param level
-	 * @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
-	 * @param level
-	 * @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 cca252c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,340 +0,0 @@
-#Sat Sep 15 21:26:35 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=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.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.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 6619592..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:50 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.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 47fd124..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,69 +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.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.persistence,
- org.eclipse.equinox.p2.artifact.repository,
- org.eclipse.equinox.p2.artifact.repository.processing,
- org.eclipse.equinox.p2.core.location,
- org.eclipse.equinox.p2.core.repository,
- org.eclipse.equinox.p2.director,
- org.eclipse.equinox.p2.directorywatcher,
- org.eclipse.equinox.p2.engine,
- org.eclipse.equinox.p2.installregistry,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.metadata.repository,
- org.eclipse.equinox.p2.query,
- org.eclipse.equinox.p2.resolution,
- org.eclipse.equinox.p2.sar,
- org.eclipse.equinox.spi.p2.artifact.repository,
- org.eclipse.equinox.spi.p2.core.repository,
- org.eclipse.equinox.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: .
-Bundle-RequiredExecutionEnviron: J2SE-1.4
-Require-Bundle: org.eclipse.equinox.p2.metadata.generator,
- org.eclipse.equinox.frameworkadmin,
- org.eclipse.equinox.common,
- org.eclipse.equinox.p2.download
-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.download,
- 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
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 08e234e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/build.properties
+++ /dev/null
@@ -1,20 +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
-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 ee79200..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
+++ /dev/null
@@ -1,483 +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 java.io.*;
-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.p2.director.IDirector;
-import org.eclipse.equinox.p2.director.IPlanner;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-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 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[] {new ProvidedCapability("eclipse.touchpoint", "bundle", new Version(1, 0, 0))};
-
-	private static final RequiredCapability[] BUNDLE_REQUIREMENT = new RequiredCapability[] {new RequiredCapability("eclipse.touchpoint", "bundle", VersionRange.emptyRange, null, false, true)};
-
-	protected static final Version DEFAULT_VERSION = new Version(1, 0, 0);
-	protected static final TouchpointType ECLIPSE_TOUCHPOINT = new TouchpointType("eclipse", new Version(1, 0, 0));
-
-	protected static final ProvidedCapability[] NO_PROVIDES = new ProvidedCapability[0];
-	protected static final Map NO_PROPERTIES = Collections.EMPTY_MAP;
-	protected static final TouchpointData NO_TP_DATA = null;
-
-	protected static final RequiredCapability[] NO_REQUIRES = new RequiredCapability[0];
-
-	/**
-	 * 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();
-
-	public static void assertEmptyProfile(Profile p) {
-		assertNotNull("The profile should not be null", p);
-		boolean containsIU = false;
-		for (Iterator iterator = p.getInstallableUnits(); iterator.hasNext();) {
-			containsIU = true;
-		}
-		if (containsIU)
-			fail("The profile should be empty,profileId=" + p);
-	}
-
-	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, Profile profile, IInstallableUnit[] expectedUnits) {
-		HashSet expected = new HashSet(Arrays.asList(expectedUnits));
-		for (Iterator it = profile.getInstallableUnits(); 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, Profile profile, IInstallableUnit[] expectedUnits) {
-		HashSet expected = new HashSet(Arrays.asList(expectedUnits));
-		for (Iterator it = profile.getInstallableUnits(); it.hasNext();) {
-			IInstallableUnit actual = (IInstallableUnit) it.next();
-			expected.remove(actual);
-		}
-		if (!expected.isEmpty())
-			fail(message + " profile " + profile.getProfileId() + " did not contain expected units: " + expected);
-	}
-
-	/**
-	 * 	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) {
-		return createIUFragment(name, DEFAULT_VERSION, BUNDLE_REQUIREMENT, ECLIPSE_TOUCHPOINT, 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(name, version, BUNDLE_REQUIREMENT, ECLIPSE_TOUCHPOINT, 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, ECLIPSE_TOUCHPOINT, 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, ECLIPSE_TOUCHPOINT, touchpointData, false);
-	}
-
-	/**
-	 * 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, 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, 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) {
-		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, 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, 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, String filter, RequiredCapability[] required, ProvidedCapability[] additionalProvides, Map properties, TouchpointType tpType, TouchpointData tpData, boolean singleton) {
-		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];
-		}
-		iu.setCapabilities(provides);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(tpType);
-		if (tpData != null)
-			iu.addTouchpointData(tpData);
-		iu.setSingleton(singleton);
-		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(String name) {
-		return createIUFragment(name, DEFAULT_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(String name, Version version) {
-		return createIUFragment(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(String name, Version version, RequiredCapability[] required, TouchpointType tpType, TouchpointData tpData) {
-		InstallableUnitFragmentDescription iu = new InstallableUnitFragmentDescription();
-		iu.setId(name);
-		iu.setVersion(version);
-		ProvidedCapability[] cap = new ProvidedCapability[] {getSelfCapability(name, version), IInstallableUnitFragment.FRAGMENT_CAPABILITY};
-		iu.setCapabilities(cap);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(tpType);
-		if (tpData != null)
-			iu.addTouchpointData(tpData);
-		return MetadataFactory.createInstallableUnitFragment(iu);
-	}
-
-	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[] {new RequiredCapability(namespace, name, range, filter, false, false)};
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * 	Get the 'self' capability for the given installable unit.
-	 */
-	private static ProvidedCapability getSelfCapability(String installableUnitId, Version installableUnitVersion) {
-		return new ProvidedCapability(IInstallableUnit.NAMESPACE_IU, 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
-			}
-	}
-
-	// TODO: The following group of utilities are (somewhat) specific to eclipse test cases
-	//		 so could be moved to a separate base class (e.g. AbstractEclipseProvisioningTestCase)
-	//		 that extends AbstractProvisioningTestCase.
-
-	public static void printProfile(Profile toPrint) {
-		boolean containsIU = false;
-		for (Iterator iterator = toPrint.getInstallableUnits(); 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]);
-	}
-
-	// End of eclipse specific utilities.
-
-	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]);
-	}
-
-	/**
-	 * 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);
-		IMetadataRepositoryManager repoMan = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		assertNotNull(repoMan);
-		repoMan.addRepository(repo);
-		metadataRepos.add(repo);
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		//remove all metadata repositories created by this test
-		if (!metadataRepos.isEmpty()) {
-			IMetadataRepositoryManager repoMan = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-			for (Iterator it = metadataRepos.iterator(); it.hasNext();) {
-				IMetadataRepository repo = (IMetadataRepository) it.next();
-				repoMan.removeRepository(repo);
-			}
-			metadataRepos.clear();
-		}
-	}
-
-	/**
-	 * 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]);
-	}
-}
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 582fb85..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
+++ /dev/null
@@ -1,36 +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. 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());
-		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 35160e4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
+++ /dev/null
@@ -1,130 +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 java.io.*;
-import java.net.*;
-import java.util.HashMap;
-import java.util.Map;
-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.p2.artifact.repository.*;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepHandler;
-import org.eclipse.equinox.p2.core.repository.RepositoryCreationException;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.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();
-
-	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[0]);
-	}
-
-	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)};
-	}
-}
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 ce1ca73..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestMetadataRepository.java
+++ /dev/null
@@ -1,107 +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 java.io.File;
-import java.io.IOException;
-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.p2.core.repository.IRepository;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.query.CompoundIterator;
-import org.eclipse.equinox.spi.p2.metadata.repository.AbstractMetadataRepository;
-import org.eclipse.osgi.service.resolver.VersionRange;
-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 {
-			return File.createTempFile("TestMetadataRepository", Long.toString(System.currentTimeMillis())).toURL();
-		} catch (MalformedURLException e) {
-			Assert.fail(e.getMessage());
-		} catch (IOException 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) {
-		Version iuVersion = new Version(versionString);
-		VersionRange range = new VersionRange(iuVersion, true, iuVersion, true);
-		IInstallableUnit[] result = query(id, range, null, true, null);
-		return result.length != 1 ? null : result[0];
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (adapter == TestMetadataRepository.class || adapter == IMetadataRepository.class || adapter == IRepository.class) {
-			return this;
-		}
-		return null;
-	}
-
-	public IInstallableUnit[] getInstallableUnits(IProgressMonitor monitor) {
-		IInstallableUnit[] result = query(null, null, null, false, monitor);
-		return result;
-	}
-
-	public Iterator getIterator(String id, VersionRange range, RequiredCapability[] requirements, boolean and) {
-		return new CompoundIterator(new Iterator[] {units.iterator()}, id, range, requirements, and);
-	}
-
-	public IInstallableUnit[] query(String id, VersionRange range, RequiredCapability[] requirements, boolean and, IProgressMonitor monitor) {
-		return CompoundIterator.asArray(new CompoundIterator(new Iterator[] {units.iterator()}, id, range, requirements, and), null);
-	}
-
-	public void removeAll() {
-		units.clear();
-	}
-
-	public void removeInstallableUnits(IInstallableUnit[] toRemove) {
-		for (int i = 0; i < toRemove.length; i++) {
-			units.remove(toRemove[i]);
-		}
-	}
-
-	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 7f14f49..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);
-		return suite;
-	}
-
-}
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 663110e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
+++ /dev/null
@@ -1,68 +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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestActivator;
-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 {
-
-	/**
-	 * 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("ns", "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 = TestActivator.getContext().getBundle().getEntry("testData/optimizers/eclipse-3.3.exe").openStream();
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/eclipse-3.2-3.3.jbdiff").openStream();
-		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 c2d3b8f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
+++ /dev/null
@@ -1,66 +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 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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-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("ns", "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 = TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar").openStream();
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff").openStream();
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		assertEquals("", 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 54f47a2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
+++ /dev/null
@@ -1,132 +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.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import junit.framework.Assert;
-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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestActivator;
-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 {
-
-	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()});
-		}
-	}
-
-	public static void compare(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);
-	}
-
-	//	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("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 = TestActivator.getContext().getBundle().getEntry("testData/optimizers/testdata_1.0.0.1-2.jar").openStream();
-		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()));
-		compare(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 fec1895..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
+++ /dev/null
@@ -1,66 +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.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.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("d:/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
-		inputStream = bundle.getEntry("testData/optimizers/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 89f3685..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 462bff2..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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.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 a60f8d5..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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestActivator;
-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("ns", "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 = TestActivator.getContext().getBundle().getEntry("testData/optimizers/eclipse-3.2-3.3.jbdiff").openStream();
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/eclipse-3.3.exe").openStream();
-		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 8c8a0fc..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
+++ /dev/null
@@ -1,89 +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 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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-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 testPrepare() throws IOException {
-	//		String base = "C:/projekte/rcp/org.eclipse.equinox.p2.tests";
-	//		File tonormalize32 = new File(base, TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.jar").getFile());
-	//		File normalized32 = File.createTempFile("3.2", ".njar");
-	//		SarUtil.normalize(tonormalize32, normalized32);
-	//		File sar32 = File.createTempFile("3.2", ".sar");
-	//		SarUtil.zipToSar(normalized32, sar32);
-	//
-	//		File tonormalize33 = new File(base, TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.jar").getFile());
-	//		File normalized33 = File.createTempFile("3.3", ".njar");
-	//		SarUtil.normalize(tonormalize33, normalized33);
-	//		File sar33 = File.createTempFile("3.3", ".sar");
-	//		SarUtil.zipToSar(normalized33, sar33);
-	//
-	//		File diff = File.createTempFile("diff32-33", ".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("ns", "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 = TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff").openStream();
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar").openStream();
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-		assertEquals("", 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 35ef39c..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.equinox.p2.tests.artifact.optimizers.JarDeltaOptimizerTest;
-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("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.1-2.jar").openStream();
-		FileUtils.copyStream(inputStream, true, step, true);
-		destination.close();
-
-		inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/testdata_1.0.0.2.jar").openStream();
-		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()));
-		JarDeltaOptimizerTest.compare(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 4349159..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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 38ac283..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/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;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		//TODO This test currently fails because our file formats are not stable
-		//		suite.addTestSuite(JarURLRepositoryTest.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/JarURLRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java
deleted file mode 100644
index 8612213..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-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.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
-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() {
-		URL engineJar = TestActivator.getContext().getBundle().getEntry("/testData/enginerepo.jar");
-		URL jarRepoURL = null;
-		try {
-			jarRepoURL = new URL("jar:" + engineJar.toString() + "!/");
-		} catch (MalformedURLException e) {
-			fail(e.getMessage());
-		}
-		IArtifactRepository repo = manager.loadRepository(jarRepoURL, null);
-		assertTrue(repo.contains(new ArtifactKey("eclipse", "plugin", "org.eclipse.equinox.p2.engine", new Version("0.1.0.200709241631"))));
-	}
-}
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 6854545..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Adder.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 - 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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.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;
-			status = new Status(code, Activator.ID, "Adder operand specification invalid", e);
-			return;
-		}
-	}
-
-	public void write(int b) throws IOException {
-		destination.write(b + operand);
-	}
-
-	public void close() throws IOException {
-		super.close();
-		status = Status.OK_STATUS;
-	}
-}
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 9091fb7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/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.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);
-		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 bcf3071..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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.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 (status != null && status.getCode() != IStatus.OK)
-			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)
-			status = 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;
-			status = new Status(code, Activator.ID, "ByteShifter operand specification invalid", e);
-			return;
-		}
-		basicInitialize(descriptor);
-	}
-
-	public void write(int b) throws IOException {
-		destination.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 c13e22b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Counter.java
+++ /dev/null
@@ -1,86 +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 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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.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 (status != null && status.getCode() != IStatus.OK)
-			return;
-
-		int code;
-		// if there is a descriptor, decide if the "bad case" is an error or info.  If no 
-		// descriptor then default to erorr.
-		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)
-			status = 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;
-			status = new Status(code, Activator.ID, "Counter size specification invalid", e);
-			return;
-		}
-		basicInitialize(descriptor);
-	}
-
-	public void write(int b) throws IOException {
-		total++;
-		destination.write(b);
-	}
-
-	public void close() throws IOException {
-		super.close();
-		if (total != size)
-			status = new Status(IStatus.WARNING, "plugin id", "Size mismatch.  Was " + total + " should have been " + size);
-		else
-			status = Status.OK_STATUS;
-	}
-}
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 05f0550..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Multiplier.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 - 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.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.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;
-			status = new Status(code, Activator.ID, "Multiplier operand specification invalid", e);
-			return;
-		}
-	}
-
-	public void write(int b) throws IOException {
-		destination.write(b == -1 ? b : b * operand);
-	}
-
-	public void close() throws IOException {
-		super.close();
-		status = Status.OK_STATUS;
-	}
-}
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 d99dcc6..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.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/director/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.java
deleted file mode 100644
index 92e5a38..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.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.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(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 b58a93b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AutomatedDirectorTest.java
+++ /dev/null
@@ -1,220 +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.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.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 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, 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
-		Profile satisfied = new Profile("Satisfied." + getName());
-		satisfied.setValue(Profile.PROP_ENVIRONMENTS, "FilterKey=true");
-		IStatus result = director.install(toInstallArray, satisfied, null);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", satisfied, allUnits);
-
-		//Install into a profile in which the filter is not satisfied
-
-		//Install into a profile in which the filter key is undefined
-
-	}
-
-	/**
-	 * 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[] {new ProvidedCapability("test.capability", capabilityId, DEFAULT_VERSION)});
-
-		//The IU that optionally requires the capability
-		RequiredCapability required = new RequiredCapability("test.capability", capabilityId, ANY_VERSION, null, /* optional=> */true, /* multiple=> */false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {required});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {toInstallIU, requiredIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		Profile profile = new Profile("TestProfile." + getName());
-		IDirector director = createDirector();
-		IStatus result = director.install(toInstallArray, profile, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, allUnits);
-	}
-
-	/**
-	 * 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 = new RequiredCapability("test.capability", capabilityId, ANY_VERSION, null, true, false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {required});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		Profile profile = new Profile("TestProfile." + getName());
-		IDirector director = createDirector();
-		IStatus result = director.install(allUnits, profile, 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[] {new ProvidedCapability("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);
-
-		Profile profile = new Profile("TestProfile." + getName());
-		IDirector director = createDirector();
-		IStatus result = director.install(toInstallArray, profile, null);
-		assertTrue("1.0", !result.isOK());
-
-		//try again with the filter satisfied
-		profile.setValue(Profile.PROP_ENVIRONMENTS, "osgi.os=blort");
-		result = director.install(toInstallArray, profile, 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[] {new ProvidedCapability("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);
-
-		Profile profile = new Profile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		IStatus result = director.install(toInstallArray, profile, 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 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, 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);
-
-		Profile profile = new Profile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		IStatus result = director.install(toInstallArray, profile, 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 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, 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);
-
-		Profile profile = new Profile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		IStatus result = director.install(toInstallArray, profile, 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 172e819..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/Bug203637.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.director;
-
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.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();
-		Profile profile = new Profile("TestProfile." + getName());
-		IInstallableUnit a1 = createIU("A", new Version(1, 0, 0), true);
-		assertOK(d.replace(new IInstallableUnit[0], new IInstallableUnit[] {a1}, profile, 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 39b2f06..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OperationGenerationTest.java
+++ /dev/null
@@ -1,160 +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 java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.equinox.internal.p2.director.OperationGenerator;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-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.setProperty(IInstallableUnit.PROP_UPDATE_FROM, "a");
-		b.setProperty(IInstallableUnit.PROP_UPDATE_RANGE, "[1.0.0, 2.0.0)");
-
-		InstallableUnitDescription c = new MetadataFactory.InstallableUnitDescription();
-		c.setId("c");
-		c.setVersion(new Version(1, 0, 0));
-		c.setProperty(IInstallableUnit.PROP_UPDATE_FROM, "a");
-		c.setProperty(IInstallableUnit.PROP_UPDATE_RANGE, "[2.0.0, 2.3.0)");
-
-		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.setProperty(IInstallableUnit.PROP_UPDATE_FROM, "a");
-		b.setProperty(IInstallableUnit.PROP_UPDATE_RANGE, "[1.0.0, 3.0.0)");
-
-		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.setProperty(IInstallableUnit.PROP_UPDATE_FROM, "a");
-		b.setProperty(IInstallableUnit.PROP_UPDATE_RANGE, "[1.0.0, 2.0.0)");
-
-		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 2c87ef8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest.java
+++ /dev/null
@@ -1,59 +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 org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.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;
-	Profile profile;
-
-	protected void setUp() throws Exception {
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU, "C", new VersionRange("[1.0.0, 2.0.0)"), null);
-		a1 = createIU("A", requires, true);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU, "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, "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 = new Profile("TestProfile." + getName());
-		director = createDirector();
-
-	}
-
-	public void testInstallA1() {
-		assertEquals(IStatus.OK, director.install(new IInstallableUnit[] {a1}, profile, null).getSeverity());
-
-		createTestMetdataRepository(new IInstallableUnit[] {d2});
-		//		assertEquals(new Oracle().canInstall(new IInstallableUnit[] {b1}, profile, null), true);
-		assertEquals(IStatus.OK, director.install(new IInstallableUnit[] {b1}, profile, 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 c94b3ad..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest2.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 Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.*;
-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;
-	Profile profile;
-
-	protected void setUp() throws Exception {
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU, "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, "C", new VersionRange("[2.0.0, 3.0.0)"), null);
-		Map properties = new HashMap();
-		properties.put(IInstallableUnit.PROP_UPDATE_FROM, "A");
-		properties.put(IInstallableUnit.PROP_UPDATE_RANGE, "[1.0.0, 2.3.0)");
-		a2 = createIU("A", new Version(2, 0, 0), requires, properties, true);
-
-		b1 = createIU("B", DEFAULT_VERSION, requires, NO_PROPERTIES, true);
-
-		properties.clear();
-		properties.put(IInstallableUnit.PROP_UPDATE_FROM, "C");
-		properties.put(IInstallableUnit.PROP_UPDATE_RANGE, "[1.0.0, 2.3.0)");
-		c2 = createIU("C", new Version(2, 0, 0), NO_REQUIRES, properties, true);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, c1});
-
-		profile = new Profile("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 = new Profile("testInstallA1bis." + getName());
-		director = createDirector();
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, c1, c2, b1});
-
-		assertEquals(director.install(new IInstallableUnit[] {a1}, profile, null).getSeverity(), IStatus.OK);
-	}
-}
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 b41a006..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.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[] {new ProvidedCapability("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/RollbackTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java
deleted file mode 100644
index 23ba255..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java
+++ /dev/null
@@ -1,59 +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 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.p2.core.location.AgentLocation;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class RollbackTest extends AbstractProvisioningTest {
-
-	private IInstallableUnit a1;
-	private Profile profile;
-	private IDirector director;
-
-	protected void setUp() throws Exception {
-		a1 = createIU("A", DEFAULT_VERSION, true);
-		profile = new Profile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void test() {
-		System.out.println(director.install(new IInstallableUnit[] {a1}, profile, new NullProgressMonitor()));
-		printProfile(profile);
-		IMetadataRepositoryManager repoMan = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		IMetadataRepository repo = null;
-		repo = repoMan.getRepository(getRollbackRepository());
-		IInstallableUnit[] ius = repo.getInstallableUnits(null);
-		for (int i = 0; i < ius.length; i++)
-			System.out.println(ius[i]);
-		director.become(ius[0], profile, 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 c3458ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/SingletonTest.java
+++ /dev/null
@@ -1,65 +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 org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.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;
-	Profile 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 = new Profile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void testMultipleVersionNonSingleton() {
-		// The installation of junit38 and junit 40 together should succeed
-		assertEquals(IStatus.OK, director.install(new IInstallableUnit[] {junit38, junit40}, profile, new NullProgressMonitor()).getSeverity());
-	}
-
-	public void testMultipleVersionSingleton() {
-		// The installation of junit38 and junit 40 together should not succeed
-		assertEquals(IStatus.ERROR, director.install(new IInstallableUnit[] {f1, f1_1}, profile, new NullProgressMonitor()).getSeverity());
-	}
-
-	public void testMultipleVersionSingleton2() {
-		// The installation of junit38 and junit 40 together should not succeed
-		assertEquals(IStatus.ERROR, director.install(new IInstallableUnit[] {f2, f2_1}, profile, 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 0aacd7a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UninstallTest.java
+++ /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
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-public class UninstallTest extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private Profile profile;
-	private IDirector director;
-
-	protected void setUp() throws Exception {
-		a1 = createIU("A", DEFAULT_VERSION, true);
-
-		profile = new Profile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void testUninstall() {
-		System.out.println(director.install(new IInstallableUnit[] {a1}, profile, null));
-		director.uninstall(new IInstallableUnit[] {a1}, profile, 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 cf57076..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UpdateTest.java
+++ /dev/null
@@ -1,64 +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 java.util.Iterator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.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;
-	Profile profile;
-
-	protected void setUp() throws Exception {
-		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);
-
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU, "f1", new VersionRange("[1.0.0, 1.3.0)"), null);
-		fa = createIU("fa", requires, false);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU, "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});
-
-		profile = new Profile("TestProfile." + getName());
-		director = createDirector();
-		director.install(new IInstallableUnit[] {fa}, profile, null);
-
-		createTestMetdataRepository(new IInstallableUnit[] {f1_1, f1_4});
-	}
-
-	public void testInstall() {
-		assertEquals(IStatus.OK, director.install(new IInstallableUnit[] {f1_1}, profile, new NullProgressMonitor()).getSeverity());
-		for (Iterator iterator = profile.getInstallableUnits(); iterator.hasNext();) {
-			System.out.println(iterator.next());
-
-		}
-		assertEquals(IStatus.ERROR, director.install(new IInstallableUnit[] {f1_4}, profile, new NullProgressMonitor()).getSeverity());
-
-		//		director.replace(new IInstallableUnit[] {fap}, profile, new NullProgressMonitor());
-	}
-}
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 3eadbe7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/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.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);
-		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 0e6fdf0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/DirectoryWatcherTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.p2.directorywatcher.IDirectoryChangeListener;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class DirectoryWatcherTest extends TestCase {
-
-	public DirectoryWatcherTest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-	}
-
-	protected void tearDown() throws Exception {
-	}
-
-	public void testCreateDirectoryWatcher() 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.close();
-	}
-
-	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());
-		IDirectoryChangeListener listener = new IDirectoryChangeListener() {
-
-			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 String[] getExtensions() {
-				return new String[] {""};
-			}
-
-			public Long getSeenFile(File file) {
-				return null;
-			}
-
-			public void startPoll() {
-
-			}
-
-			public void stopPoll() {
-			}
-
-		};
-		watcher.addListener(listener);
-		watcher.start();
-		watcher.close();
-		assertEquals(2, list.size());
-	}
-}
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 cdd8bd9..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/RepositoryListenerTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.*;
-import java.net.URL;
-import java.util.Hashtable;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class RepositoryListenerTest extends TestCase {
-
-	public RepositoryListenerTest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-	}
-
-	protected void tearDown() throws Exception {
-	}
-
-	public static void copyFile(File source, File target) throws Exception {
-		FileInputStream fis = new FileInputStream(source);
-		FileOutputStream fos = new FileOutputStream(target);
-
-		byte[] buf = new byte[1024];
-		int i = 0;
-		while ((i = fis.read(buf)) != -1) {
-			fos.write(buf, 0, i);
-		}
-		fis.close();
-		fos.close();
-	}
-
-	public static boolean copyDirectory(File source, File target) throws Exception {
-		if (source.exists() && source.isDirectory() && target.exists() && target.isDirectory()) {
-			File[] files = source.listFiles();
-			for (int i = 0; i < files.length; i++) {
-				File newFile = new File(target, files[i].getName());
-				if (files[i].isDirectory()) {
-					newFile.mkdir();
-					copyDirectory(files[i], newFile);
-				} else {
-					copyFile(files[i], newFile);
-				}
-			}
-		}
-		return true;
-	}
-
-	public 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();
-	}
-
-	private void removeContents(File source, File target) throws Exception {
-		if (source.exists() && source.isDirectory() && target.exists() && target.isDirectory()) {
-			File[] files = source.listFiles();
-			for (int i = 0; i < files.length; i++) {
-				File doomedFile = new File(target, files[i].getName());
-				if (files[i].isDirectory()) {
-					deleteDirectory(doomedFile);
-				} else {
-					doomedFile.delete();
-				}
-			}
-		}
-	}
-
-	public void testDirectoryWatcherListener() throws Exception {
-		URL base = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher1");
-		File baseFolder = new File(FileLocator.toFileURL(base).getPath());
-
-		URL base2 = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher2");
-		File baseFolder2 = new File(FileLocator.toFileURL(base2).getPath());
-
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File folder = new File(tempDir, "testWatcher");
-		deleteDirectory(folder);
-		folder.mkdir();
-
-		Hashtable props = new Hashtable();
-		props.put(DirectoryWatcher.DIR, folder.getAbsolutePath());
-		props.put(DirectoryWatcher.POLL, "500");
-
-		RepositoryListener listener = new RepositoryListener(TestActivator.getContext(), folder);
-
-		assertEquals(0, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(0, listener.getArtifactRepository().getArtifactKeys().length);
-
-		DirectoryWatcher watcher = new DirectoryWatcher(props, TestActivator.getContext());
-		watcher.addListener(listener);
-		watcher.start();
-
-		assertEquals(0, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(0, listener.getArtifactRepository().getArtifactKeys().length);
-
-		copyDirectory(baseFolder, folder);
-		watcher.poll();
-		watcher.close();
-
-		assertEquals(1, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(1, listener.getArtifactRepository().getArtifactKeys().length);
-
-		watcher = new DirectoryWatcher(props, TestActivator.getContext());
-		watcher.addListener(listener);
-		watcher.start();
-
-		assertEquals(1, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(1, listener.getArtifactRepository().getArtifactKeys().length);
-
-		copyDirectory(baseFolder2, folder);
-		watcher.poll();
-
-		assertEquals(2, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(2, listener.getArtifactRepository().getArtifactKeys().length);
-
-		watcher.close();
-
-		watcher = new DirectoryWatcher(props, TestActivator.getContext());
-		watcher.addListener(listener);
-		watcher.start();
-
-		removeContents(baseFolder, folder);
-		watcher.poll();
-
-		assertEquals(1, listener.getMetadataRepository().getInstallableUnits(null).length);
-		assertEquals(1, listener.getArtifactRepository().getArtifactKeys().length);
-
-		watcher.close();
-
-		deleteDirectory(folder);
-	}
-}
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 a615da4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/DownloadManagerTest.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.p2.tests.download;
-
-import junit.framework.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.p2.download.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/engine/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.java
deleted file mode 100644
index 2901653..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.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.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(InstallRegistryTest.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 8111953..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/EngineTest.java
+++ /dev/null
@@ -1,255 +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 java.io.File;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.p2.engine.*;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.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 Engine 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(Engine.class.getName());
-		engine = (Engine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testNullProfile() {
-
-		Profile profile = null;
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = new Operand[] {};
-		try {
-			engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNullPhaseSet() {
-
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = null;
-		Operand[] operands = new Operand[] {};
-		try {
-			engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNullOperands() {
-
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = null;
-		try {
-			engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyOperands() {
-
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = new Operand[] {};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-
-	public void testEmptyPhaseSet() {
-
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = new PhaseSet(new Phase[] {}) {
-			// empty PhaseSet
-		};
-		Operand op = new Operand(createResolvedIU(createIU("name")), null);
-		Operand[] operands = new Operand[] {op};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-
-	public void testPerformSingleNullOperand() {
-
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = new Operand[] {new Operand(null, null)};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-
-	public void testPerformInstallOSGiFramework() {
-
-		Profile profile = new Profile("test");
-		profile.setValue(Profile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		for (Iterator it = profile.getInstallableUnits(); it.hasNext();) {
-			PhaseSet phaseSet = new DefaultPhaseSet();
-			IInstallableUnit doomed = (IInstallableUnit) it.next();
-			Operand[] operands = new Operand[] {new Operand(createResolvedIU(doomed), null)};
-			engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		}
-		PhaseSet phaseSet = new DefaultPhaseSet();
-
-		Operand[] operands = new Operand[] {new Operand(null, createOSGiIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		Iterator ius = profile.getInstallableUnits();
-		assertTrue(ius.hasNext());
-	}
-
-	public void testPerformUpdateOSGiFramework() {
-
-		Profile profile = new Profile("test");
-		profile.setValue(Profile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = new Operand[] {new Operand(createOSGiIU(), createOSGiIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		Iterator ius = profile.getInstallableUnits();
-		assertTrue(ius.hasNext());
-	}
-
-	public void testPerformUninstallOSGiFramework() {
-
-		Profile profile = new Profile("test");
-		profile.setValue(Profile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Operand[] operands = new Operand[] {new Operand(createOSGiIU(), null)};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		Iterator ius = profile.getInstallableUnits();
-		assertFalse(ius.hasNext());
-	}
-
-	public void testPerformRollback() {
-
-		Profile profile = new Profile("test");
-		profile.setValue(Profile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		PhaseSet phaseSet = new DefaultPhaseSet();
-
-		Iterator ius = profile.getInstallableUnits();
-		assertFalse(ius.hasNext());
-
-		Operand[] operands = new Operand[] {new Operand(null, createOSGiIU()), new Operand(null, createBadIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, new NullProgressMonitor());
-		assertFalse(result.isOK());
-		ius = profile.getInstallableUnits();
-		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(new TouchpointType("eclipse", new Version("1.0.0")));
-		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(new TouchpointData(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(new TouchpointType("eclipse", new Version("1.0.0")));
-		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(new TouchpointData(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/InstallRegistryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/InstallRegistryTest.java
deleted file mode 100644
index cf0c966..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/InstallRegistryTest.java
+++ /dev/null
@@ -1,101 +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 org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.p2.engine.*;
-import org.eclipse.equinox.p2.installregistry.IInstallRegistry;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
-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.
- */
-public class InstallRegistryTest extends AbstractProvisioningTest {
-	private ServiceReference registryRef;
-	private IInstallRegistry registry;
-	private ServiceReference engineRef;
-	private Engine engine;
-
-	public InstallRegistryTest(String name) {
-		super(name);
-	}
-
-	public InstallRegistryTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		registryRef = TestActivator.getContext().getServiceReference(IInstallRegistry.class.getName());
-		registry = (IInstallRegistry) TestActivator.getContext().getService(registryRef);
-		engineRef = TestActivator.getContext().getServiceReference(Engine.class.getName());
-		engine = (Engine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-		registry = null;
-		TestActivator.getContext().ungetService(registryRef);
-	}
-
-	public void testAddRemoveIU() {
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Profile profile = new Profile("testProfile");
-		assertEquals(0, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, createTestIU())}, new NullProgressMonitor());
-		assertEquals(1, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(createTestIU(), null)}, new NullProgressMonitor());
-		assertEquals(0, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		registry.getProfileInstallRegistries().remove(profile);
-	}
-
-	public void testPeristence() {
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		Profile profile = new Profile("testProfile");
-		assertEquals(0, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, createTestIU())}, new NullProgressMonitor());
-		assertEquals(1, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-
-		restart();
-
-		assertEquals(1, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(createTestIU(), null)}, new NullProgressMonitor());
-		assertEquals(0, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-		restart();
-		assertEquals(0, registry.getProfileInstallRegistry(profile).getInstallableUnits().length);
-	}
-
-	private void restart() {
-		try {
-			tearDown();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").stop();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").start();
-			setUp();
-		} catch (Exception e) {
-			fail();
-			e.printStackTrace();
-		}
-	}
-
-	private IInstallableUnit createTestIU() {
-		InstallableUnitDescription description = new MetadataFactory.InstallableUnitDescription();
-		description.setId("org.eclipse.test");
-		description.setVersion(new Version("1.0.0"));
-		description.setTouchpointType(new TouchpointType("null", 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/engine/PhaseSetTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.java
deleted file mode 100644
index 6c7745b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.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.engine;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.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() {
-		Profile profile = new Profile("test");
-		PhaseSet phaseSet = new PhaseSet(new Phase[] {}) {
-			// empty PhaseSet
-		};
-		Operand op = new Operand(createResolvedIU(createIU("iu")), null);
-		Operand[] operands = new Operand[] {op};
-
-		IStatus result = phaseSet.perform(new EngineSession(profile), profile, operands, 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 22d9b14..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseTest.java
+++ /dev/null
@@ -1,226 +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 java.util.Map;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.p2.engine.*;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Simple test of the engine API.
- */
-public class PhaseTest extends TestCase {
-	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 Phase {
-
-		boolean completeOperand;
-		boolean getAction;
-		boolean initializeOperand;
-		boolean completePhase;
-		boolean initializePhase;
-
-		protected TestPhase() {
-			super("test", 1, "testPhase");
-		}
-
-		protected TestPhase(String phaseId, int weight, String phaseName) {
-			super(phaseId, weight, phaseName);
-		}
-
-		protected ProvisioningAction[] getActions(Operand currentOperand) {
-			return null;
-		}
-
-		protected boolean isApplicable(Operand op) {
-			return true;
-		}
-
-		protected IStatus completeOperand(Operand operand, Map parameters) {
-			completeOperand = true;
-			return super.completeOperand(operand, parameters);
-		}
-
-		public ProvisioningAction getAction(String actionId) {
-			getAction = true;
-			return super.getAction(actionId);
-		}
-
-		protected IStatus initializeOperand(Profile profile, Operand operand, Map parameters, IProgressMonitor monitor) {
-			initializeOperand = true;
-			return super.initializeOperand(profile, operand, parameters, monitor);
-		}
-
-		protected IStatus completePhase(IProgressMonitor monitor, Profile profile, Map parameters) {
-			completePhase = true;
-			return super.completePhase(monitor, profile, parameters);
-		}
-
-		protected IStatus initializePhase(IProgressMonitor monitor, Profile profile, Map parameters) {
-			initializePhase = true;
-			return super.initializePhase(monitor, profile, parameters);
-		}
-	}
-
-	private ServiceReference engineRef;
-	private Engine engine;
-
-	public PhaseTest(String name) {
-		super(name);
-	}
-
-	public PhaseTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		engineRef = TestActivator.getContext().getServiceReference(Engine.class.getName());
-		engine = (Engine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testNullPhaseId() {
-		try {
-			new TestPhase(null, 1, "xyz");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyPhaseId() {
-		try {
-			new TestPhase("", 1, "xyz");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNegativeWeight() {
-		try {
-			new TestPhase("xyz", -1, "xyz");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testZeroWeight() {
-		try {
-			new TestPhase("xyz", 0, "xyz");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNullPhaseName() {
-		try {
-			new TestPhase("xyz", 1, null);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyPhaseName() {
-		try {
-			new TestPhase("xyz", 1, "");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testPerform() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		Profile profile = new Profile("testProfile");
-
-		engine.perform(profile, phaseSet, new Operand[0], new NullProgressMonitor());
-	}
-
-	public void testInitCompletePhase() {
-		TestPhase phase = new TestPhase() {
-			protected IStatus initializePhase(IProgressMonitor monitor, Profile profile, Map parameters) {
-				assertFalse(initializePhase);
-				assertFalse(completePhase);
-				super.initializePhase(monitor, profile, parameters);
-				assertTrue(initializePhase);
-				assertFalse(completePhase);
-				return null;
-			}
-
-			protected IStatus completePhase(IProgressMonitor monitor, Profile profile, Map parameters) {
-				assertTrue(initializePhase);
-				assertFalse(completePhase);
-				super.completePhase(monitor, profile, parameters);
-				assertTrue(initializePhase);
-				assertTrue(completePhase);
-				return null;
-			}
-		};
-		PhaseSet phaseSet = new TestPhaseSet(phase);
-		Profile profile = new Profile("testProfile");
-
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, null)}, new NullProgressMonitor());
-		assertTrue(phase.initializePhase);
-		assertTrue(phase.completePhase);
-	}
-
-	public void testInitCompleteOperand() {
-		TestPhase phase = new TestPhase() {
-			protected IStatus completeOperand(Operand operand, Map parameters) {
-				assertTrue(initializeOperand);
-				assertFalse(completeOperand);
-				super.completeOperand(operand, parameters);
-				assertTrue(initializeOperand);
-				assertTrue(completeOperand);
-				return null;
-			}
-
-			protected IStatus initializeOperand(Profile 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);
-		Profile profile = new Profile("testProfile");
-
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, 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 ab7b5fb..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileRegistryTest.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 Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import junit.framework.TestCase;
-import org.eclipse.equinox.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Simple test of the engine API.
- */
-public class ProfileRegistryTest extends TestCase {
-	private ServiceReference registryRef;
-	private IProfileRegistry registry;
-
-	public ProfileRegistryTest(String name) {
-		super(name);
-	}
-
-	public ProfileRegistryTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		registryRef = TestActivator.getContext().getServiceReference(IProfileRegistry.class.getName());
-		registry = (IProfileRegistry) TestActivator.getContext().getService(registryRef);
-	}
-
-	protected void tearDown() throws Exception {
-		registry = null;
-		TestActivator.getContext().ungetService(registryRef);
-	}
-
-	public void testAddRemoveProfile() {
-		assertNull(registry.getProfile("test"));
-		Profile test = new Profile("test");
-		registry.addProfile(test);
-		assertEquals(test, registry.getProfile("test"));
-		registry.removeProfile(test);
-		assertNull(registry.getProfile("test"));
-	}
-
-	public void testPeristence() {
-		assertNull(registry.getProfile("test"));
-		Profile test = new Profile("test");
-		registry.addProfile(test);
-		assertEquals(test, registry.getProfile("test"));
-
-		restart();
-
-		registry.removeProfile(test);
-		assertNull(registry.getProfile("test"));
-
-		restart();
-		assertNull(registry.getProfile("test"));
-	}
-
-	private void restart() {
-		try {
-			tearDown();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").stop();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").start();
-			setUp();
-		} catch (Exception e) {
-			fail();
-			e.printStackTrace();
-		}
-	}
-}
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 363980e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileTest.java
+++ /dev/null
@@ -1,353 +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 java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.parsers.ParserConfigurationException;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.engine.ProfileParser;
-import org.eclipse.equinox.internal.p2.engine.ProfileWriter;
-import org.eclipse.equinox.p2.engine.Profile;
-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 TestCase {
-	public ProfileTest(String name) {
-		super(name);
-	}
-
-	public ProfileTest() {
-		super("");
-	}
-
-	public void testNullProfile() {
-		try {
-			new Profile(null);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyProfile() {
-		try {
-			new Profile("");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNestedProfileStructure() {
-		Profile parent = new Profile("parent");
-		Profile child = new Profile("child", parent);
-		assertTrue("Parentless profile should be a root.", parent.isARootProfile());
-		assertFalse("Child profile should not be a root.", child.isARootProfile());
-		assertTrue("Parent should be parent of child", child.getParentProfile() == parent);
-		assertTrue("Parent should have one child.", parent.getSubProfiles().length == 1);
-		assertTrue("Child should have no children.", child.getSubProfiles().length == 0);
-
-		Profile grandchild = new Profile("grand", child);
-		assertFalse("Grandchild profile should not be a root.", grandchild.isARootProfile());
-		assertTrue("Parent should have one child.", parent.getSubProfiles().length == 1);
-		assertTrue("Child should have one child.", child.getSubProfiles().length == 1);
-		assertTrue("Grandparent of grandchild should be parent of child.", grandchild.getParentProfile().getParentProfile() == parent);
-		try {
-			// Add a subprofile with id collision.
-			new Profile("grand", child);
-		} catch (IllegalArgumentException expected) {
-			assertTrue("Child should have one child.", child.getSubProfiles().length == 1);
-			return;
-		}
-		fail();
-	}
-
-	/*	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 Profile createTestProfile() {
-		Profile parent = new Profile(parentId);
-		parent.setValue(key, parentValue);
-		assertTrue(parentValue.equals(parent.getValue(key)));
-		parent.setValue(otherKey, otherValue);
-		assertTrue(otherValue.equals(parent.getValue(otherKey)));
-
-		Profile child0 = new Profile(child0Id, parent);
-		child0.setValue(key, child0Value);
-		assertTrue(child0Value.equals(child0.getValue(key)));
-
-		Profile child1 = new Profile(child1Id, parent);
-		// no value in child1
-
-		Profile grandchild00 = new Profile(grandchild00Id, child0);
-		grandchild00.setValue(key, grandchild00Value);
-		assertTrue(grandchild00Value.equals(grandchild00.getValue(key)));
-
-		Profile grandchild01 = new Profile(grandchild01Id, child0);
-		// no value in grandchild01
-
-		Profile grandchild02 = new Profile(grandchild02Id, child0);
-		grandchild02.setValue(otherKey, grandchild02Value);
-		assertTrue(grandchild02Value.equals(grandchild02.getValue(otherKey)));
-
-		Profile grandchild10 = new Profile(grandchild10Id, child1);
-		grandchild10.setValue(key, grandchild10Value);
-		assertTrue(grandchild10Value.equals(grandchild10.getValue(key)));
-
-		Profile grandchild11 = new Profile(grandchild11Id, child1);
-		// no value in grandchild11
-
-		return parent;
-	}
-
-	public void testNestedProfileProperties() {
-		validateProfile(createTestProfile());
-	}
-
-	public void validateProfile(Profile profile) {
-		assertTrue(parentId.equals(profile.getProfileId()));
-		assertTrue("Profile should have 2 local properties", profile.getProperties().size() == 2);
-		assertTrue(parentValue.equals(profile.getValue(key)));
-		assertTrue(otherValue.equals(profile.getValue(otherKey)));
-		assertTrue("Parent should have 2 children.", profile.getSubProfiles().length == 2);
-
-		Profile child0 = profile.getSubProfiles()[0];
-		assertTrue(child0Id.equals(child0.getProfileId()));
-		assertTrue("First Child should have 1 local property.", child0.getProperties().size() == 1);
-		assertTrue(child0Value.equals(child0.getValue(key)));
-		assertTrue(otherValue.equals(child0.getValue(otherKey)));
-		assertTrue("First Child should have 3 children.", child0.getSubProfiles().length == 3);
-		Profile grandchild00 = child0.getSubProfiles()[0];
-		Profile grandchild01 = child0.getSubProfiles()[1];
-		Profile grandchild02 = child0.getSubProfiles()[2];
-
-		Profile child1 = profile.getSubProfiles()[1];
-		assertTrue(child1Id.equals(child1.getProfileId()));
-		assertTrue("Second Child should have no local properties.", child1.getProperties().size() == 0);
-		assertTrue(parentValue.equals(child1.getValue(key)));
-		assertTrue(otherValue.equals(child1.getValue(otherKey)));
-		assertTrue("Second Child should have 2 children.", child1.getSubProfiles().length == 2);
-		Profile grandchild10 = child1.getSubProfiles()[0];
-		Profile grandchild11 = child1.getSubProfiles()[1];
-
-		assertTrue(grandchild00Id.equals(grandchild00.getProfileId()));
-		assertTrue("First Grandchild of first Child should have 1 property.", grandchild00.getProperties().size() == 1);
-		assertTrue(grandchild00Value.equals(grandchild00.getValue(key)));
-		assertTrue(otherValue.equals(grandchild00.getValue(otherKey)));
-
-		assertTrue(grandchild01Id.equals(grandchild01.getProfileId()));
-		assertTrue("Second Grandchild of first Child should have 0 properties.", grandchild01.getProperties().size() == 0);
-		assertTrue(child0Value.equals(grandchild01.getValue(key)));
-		assertTrue(otherValue.equals(grandchild01.getValue(otherKey)));
-
-		assertTrue(grandchild02Id.equals(grandchild02.getProfileId()));
-		assertTrue("Third Grandchild of first Child should have 1 property.", grandchild02.getProperties().size() == 1);
-		assertTrue(child0Value.equals(grandchild02.getValue(key)));
-		assertTrue(grandchild02Value.equals(grandchild02.getValue(otherKey)));
-
-		assertTrue(grandchild10Id.equals(grandchild10.getProfileId()));
-		assertTrue("First Grandchild of second Child should have 1 property.", grandchild10.getProperties().size() == 1);
-		assertTrue(grandchild10Value.equals(grandchild10.getValue(key)));
-		assertTrue(otherValue.equals(grandchild10.getValue(otherKey)));
-
-		assertTrue(grandchild11Id.equals(grandchild11.getProfileId()));
-		assertTrue("Second Grandchild of second Child should have 0 property.", grandchild11.getProperties().size() == 0);
-		assertTrue(parentValue.equals(grandchild11.getValue(key)));
-		assertTrue(otherValue.equals(grandchild11.getValue(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";
-
-	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(Profile profile) {
-			start(PROFILE_TEST_ELEMENT);
-			writeProfile(profile);
-			end(PROFILE_TEST_ELEMENT);
-		}
-	}
-
-	class ProfileStringParser extends ProfileParser {
-
-		public ProfileStringParser(BundleContext context, String bundleId) {
-			super(context, bundleId);
-			// TODO Auto-generated constructor stub
-		}
-
-		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()) {
-					theProfile = testHandler.getProfile();
-				}
-			} catch (SAXException e) {
-				throw new IOException(e.getMessage());
-			} catch (ParserConfigurationException e) {
-				fail();
-			}
-		}
-
-		private Profile theProfile = null;
-
-		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 ProfileHandler profileHandler = null;
-
-			private Profile profile = null;
-			private List singleton = new ArrayList(1);
-
-			public TestHandler() {
-				super();
-			}
-
-			public Profile getProfile() {
-				return profile;
-			}
-
-			protected void handleRootAttributes(Attributes attributes) {
-				String[] values = parseAttributes(attributes, noAttributes, noAttributes);
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (PROFILE_ELEMENT.equals(name)) {
-					if (profileHandler == null) {
-						profileHandler = new ProfileHandler(this, attributes, null, singleton);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					if (profileHandler != null && singleton.size() == 1) {
-						profile = (Profile) singleton.get(0);
-					}
-				}
-			}
-		}
-
-		protected String getErrorMessage() {
-			// TODO Auto-generated method stub
-			return "Error parsing profile string";
-		}
-
-		protected Object getRootObject() {
-			// TODO Auto-generated method stub
-			return theProfile;
-		}
-
-	}
-
-	public void testProfilePersistence() throws IOException {
-		Profile profile0 = createTestProfile();
-		ByteArrayOutputStream output0 = new ByteArrayOutputStream(1492);
-		ProfileStringWriter writer0 = new ProfileStringWriter(output0);
-		writer0.writeTest(profile0);
-		String profileText0 = output0.toString();
-		int i = profileText0.length();
-		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());
-		Profile profile1 = (Profile) parser.getRootObject();
-		validateProfile(profile1);
-		ByteArrayOutputStream output1 = new ByteArrayOutputStream(1492);
-		ProfileStringWriter writer = new ProfileStringWriter(output1);
-		writer.writeTest(profile1);
-		String profileText1 = output1.toString();
-		output1.close();
-		assertTrue("", 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 f4e0c3e..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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.p2.engine.*;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.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(Profile profile, String phaseId, Operand operand, Map parameters) {
-			completeOperand++;
-			return super.completeOperand(profile, phaseId, operand, parameters);
-		}
-
-		public IStatus completePhase(IProgressMonitor monitor, Profile profile, String phaseId, Map touchpointParameters) {
-			completePhase++;
-			return super.completePhase(monitor, profile, phaseId, touchpointParameters);
-		}
-
-		public IStatus initializeOperand(Profile profile, String phaseId, Operand operand, Map parameters) {
-			initializeOperand++;
-			return super.initializeOperand(profile, phaseId, operand, parameters);
-		}
-
-		public IStatus initializePhase(IProgressMonitor monitor, Profile profile, String phaseId, Map touchpointParameters) {
-			initializePhase++;
-			return super.initializePhase(monitor, profile, phaseId, touchpointParameters);
-		}
-
-		public ProvisioningAction getAction(String actionId) {
-			return null;
-		}
-
-		public TouchpointType getTouchpointType() {
-			return new TouchpointType("test", new Version("1.0.0"));
-		}
-	}
-
-	public static class OperandTestTouchpoint extends TestTouchpoint {
-		public IStatus completeOperand(Profile profile, String phaseId, Operand 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(Profile profile, String phaseId, Operand 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, Profile 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, Profile profile, String phaseId, Operand operand, 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 Engine engine;
-
-	public TouchpointTest(String name) {
-		super(name);
-	}
-
-	public TouchpointTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		engineRef = TestActivator.getContext().getServiceReference(Engine.class.getName());
-		engine = (Engine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testInitCompleteOperand() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		Profile profile = new Profile("testProfile");
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, createTestIU("operandTest"))}, new NullProgressMonitor());
-		assertEquals(1, testTouchpoint.initializeOperand);
-		assertEquals(1, testTouchpoint.completeOperand);
-	}
-
-	public void testInitCompletePhase() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		Profile profile = new Profile("testProfile");
-		engine.perform(profile, phaseSet, new Operand[] {new Operand(null, createTestIU("phaseTest"))}, 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(new TouchpointType(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 f2c4a40..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/DirectorTest.java
+++ /dev/null
@@ -1,145 +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.full;
-
-import java.util.*;
-import junit.framework.TestCase;
-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.p2.core.location.AgentLocation;
-import org.eclipse.equinox.p2.director.IDirector;
-import org.eclipse.equinox.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-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 TestCase {
-
-	public void testInstallIU() {
-		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");
-		}
-
-		IMetadataRepository[] repos = mgr.getKnownRepositories();
-		Collection allJobs = new ArrayList();
-		String autoInstall = System.getProperty("eclipse.p2.autoInstall");
-		for (int i = 0; i < repos.length; i++) {
-			IInstallableUnit[] ius = repos[i].getInstallableUnits(null);
-			for (int j = 0; j < ius.length; j++) {
-				if (ius[j].getId().equals(autoInstall))
-					allJobs.add(ius[j]);
-			}
-		}
-
-		String installFolder = System.getProperty(Profile.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 profileId = installFolder;
-		String newFlavor = System.getProperty("eclipse.p2.configurationFlavor");
-		boolean doUninstall = (Boolean.TRUE.equals(Boolean.valueOf(System.getProperty("eclipse.p2.doUninstall"))));
-
-		Profile p = profileRegistry.getProfile(profileId);
-		if (p == null) {
-			if (doUninstall) {
-				throw new RuntimeException("Uninstalling from a nonexistent profile");
-			}
-			p = new Profile(installFolder); //Typically a profile would receive a name.
-			p.setValue(Profile.PROP_INSTALL_FOLDER, installFolder);
-			p.setValue(Profile.PROP_FLAVOR, newFlavor);
-			// TODO: should we add the profile to the registry here? instead of after test?
-		} else {
-			String currentFlavor = p.getValue(Profile.PROP_FLAVOR);
-			if (currentFlavor != null && !currentFlavor.endsWith(newFlavor)) {
-				throw new RuntimeException("Install flavor not consistent with profile flavor");
-			} else if (currentFlavor == null) {
-				p.setValue(Profile.PROP_FLAVOR, newFlavor);
-			}
-		}
-
-		EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(TestActivator.getContext(), EnvironmentInfo.class.getName());
-		if (info != null)
-			p.setValue(Profile.PROP_ENVIRONMENTS, "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch());
-
-		IInstallableUnit[] allRoots = new IInstallableUnit[1];
-		IStatus operationStatus = null;
-		if (allJobs.size() != 0) {
-			allRoots[0] = (IInstallableUnit) allJobs.iterator().next();
-			if (!doUninstall) {
-				operationStatus = director.install(allRoots, p, new NullProgressMonitor());
-			} else {
-				operationStatus = director.uninstall(allRoots, p, new NullProgressMonitor());
-			}
-		} else {
-			operationStatus = new Status(IStatus.INFO, "org.eclipse.equinox.p2.director.test", "The installable unit '" + System.getProperty("eclipse.p2.autoInstall") + "' has not been found");
-		}
-
-		if (operationStatus.isOK()) {
-			System.out.println((!doUninstall ? "installation" : "uninstallation") + " complete");
-			if (profileRegistry.getProfile(p.getProfileId()) == null) {
-				profileRegistry.addProfile(p);
-			} else {
-				// TODO: should delete the profile if it is 'empty'
-				// if (p.isEmpty()) {
-				//     profileRegistry.removeProfile(p);
-				// }
-			}
-		} else {
-			System.out.println((!doUninstall ? "installation" : "uninstallation") + " failed. " + operationStatus);
-			LogHelper.log(operationStatus);
-		}
-		if (!operationStatus.isOK())
-			fail("The installation has failed");
-
-		IInstallableUnit[] result = p.query(allRoots[0].getId(), null, null, false, null);
-		assertEquals(result.length, (!doUninstall ? 1 : 0));
-		result = p.query("toolingdefault", null, null, false, null);
-
-		ensureFragmentAssociationIsNotPersisted(mgr);
-	}
-
-	private void ensureFragmentAssociationIsNotPersisted(IMetadataRepositoryManager mgr) {
-		//Test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=177661
-		AgentLocation location = (AgentLocation) ServiceHelper.getService(TestActivator.getContext(), AgentLocation.class.getName());
-		mgr.removeRepository(mgr.getRepository(location.getMetadataRepositoryURL()));
-		IMetadataRepository repo = null;
-		repo = mgr.loadRepository(location.getMetadataRepositoryURL(), null);
-		Iterator it = repo.getIterator("org.eclipse.equinox.simpleconfigurator", null, null, false);
-		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 871e9a3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/End2EndTest.java
+++ /dev/null
@@ -1,168 +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.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.p2.director.IDirector;
-import org.eclipse.equinox.p2.director.IPlanner;
-import org.eclipse.equinox.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.p2.engine.Profile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-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 IMetadataRepository[] repos;
-	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());
-		IMetadataRepositoryManager mgr = (IMetadataRepositoryManager) TestActivator.context.getService(sr2);
-		if (mgr == null) {
-			throw new RuntimeException("Repository manager could not be loaded");
-		}
-		repos = mgr.getKnownRepositories();
-	}
-
-	private Profile createProfile(String profileId) {
-		String installFolder = System.getProperty(Profile.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"))));
-
-		Profile profile1 = profileRegistry.getProfile(profileId);
-		if (profile1 == null) {
-			if (doUninstall) {
-				throw new RuntimeException("Uninstalling from a nonexistent profile");
-			}
-			profile1 = new Profile(profileId); //Typically a profile would receive a name.
-			profile1.setValue(Profile.PROP_INSTALL_FOLDER, installFolder + '/' + profileId);
-			profile1.setValue(Profile.PROP_FLAVOR, newFlavor);
-			// TODO: should we add the profile to the registry here? instead of after test?
-		} else {
-			String currentFlavor = profile1.getValue(Profile.PROP_FLAVOR);
-			if (currentFlavor != null && !currentFlavor.endsWith(newFlavor)) {
-				throw new RuntimeException("Install flavor not consistent with profile flavor");
-			} else if (currentFlavor == null) {
-				profile1.setValue(Profile.PROP_FLAVOR, newFlavor);
-			}
-		}
-
-		EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(TestActivator.getContext(), EnvironmentInfo.class.getName());
-		if (info != null)
-			profile1.setValue(Profile.PROP_ENVIRONMENTS, "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch());
-
-		return profile1;
-	}
-
-	public void testInstallSDK() {
-		Profile profile2 = createProfile("profile2");
-		//First we install the sdk
-		IStatus s = director.install(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))}, profile2, 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
-		s = director.uninstall(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))}, profile2, new NullProgressMonitor());
-		if (!s.isOK())
-			fail("The uninstallation has failed and it was not expected");
-
-		assertEquals(false, profile2.getInstallableUnits().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!!!
-		assertEquals(false, profile2.getIterator("sdk", VersionRange.emptyRange, null, false).hasNext());
-
-		// Now test the rollback to a previous state, in this case we reinstall the SDK
-		s = director.become(snapshots[0].equals(firstSnapshot) ? snapshots[1] : snapshots[0], profile2, new NullProgressMonitor());
-		if (!s.isOK())
-			fail("The become operation failed");
-
-		assertNotNull(getIU("sdk"));
-
-		//Test replace
-		s = director.replace(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))}, planner.updatesFor(getIU("sdk", new Version("3.3.0"))), profile2, new NullProgressMonitor());
-		assertOK(s);
-		assertProfileContainsAll("", profile2, new IInstallableUnit[] {getIU("sdk", new Version("3.4.0"))});
-		assertNotIUs(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))}, profile2.getInstallableUnits());
-
-		//Remove everything from the profile by becoming an empty profile
-		s = director.become(firstSnapshot, profile2, new NullProgressMonitor());
-		assertOK(s);
-		//		assertEmptyProfile(profile2);
-	}
-
-	public IInstallableUnit[] getIU(String property, String value) {
-		Collection result = new ArrayList();
-		for (int i = 0; i < repos.length; i++) {
-			IInstallableUnit[] ius = repos[i].getInstallableUnits(null);
-			for (int j = 0; j < ius.length; j++) {
-				String v = ius[j].getProperty(property);
-				if (v != null && v.equals(value))
-					result.add(ius[j]);
-			}
-		}
-		return (IInstallableUnit[]) result.toArray(new IInstallableUnit[result.size()]);
-	}
-
-	public IInstallableUnit[] getIUs(String id) {
-		Collection result = new ArrayList();
-		for (int i = 0; i < repos.length; i++) {
-			Iterator it = repos[i].getIterator(id, VersionRange.emptyRange, null, false);
-			while (it.hasNext()) {
-				result.add(it.next());
-			}
-		}
-		return (IInstallableUnit[]) result.toArray(new IInstallableUnit[result.size()]);
-	}
-
-	public IInstallableUnit getIU(String id) {
-		for (int i = 0; i < repos.length; i++) {
-			Iterator it = repos[i].getIterator(id, VersionRange.emptyRange, null, false);
-			while (it.hasNext()) {
-				return (IInstallableUnit) it.next();
-			}
-		}
-		return null;
-	}
-
-	public IInstallableUnit getIU(String id, Version v) {
-		for (int i = 0; i < repos.length; i++) {
-			Iterator it = repos[i].getIterator(id, new VersionRange("[" + v.toString() + "," + v.toString() + "]"), null, false);
-			while (it.hasNext()) {
-				return (IInstallableUnit) it.next();
-			}
-		}
-		return null;
-	}
-}
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 c7538b7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/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.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);
-		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 e028eca..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/EclipseSDK33Test.java
+++ /dev/null
@@ -1,111 +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.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.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.ProvidedCapability;
-import org.eclipse.equinox.p2.metadata.generator.Generator;
-import org.eclipse.equinox.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.featureIU", "1.0.0.v20070606-7C79_79EI99g_Y9e");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.rcp.featureIU", "3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.jdt.featureIU", "3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.cvs.featureIU", "1.0.0.v20070606-7C79_79EI99g_Y9e");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.pde.source.featureIU", "3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.sdk.featureIU", "3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.platform.featureIU", "3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.platform.source.featureIU", "3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.jdt.source.featureIU", "3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.pde.featureIU", "3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.rcp.source.featureIU", "3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG");
-		assertNotNull(unit);
-		assertGroup(unit);
-
-	}
-
-	/**
-	 * Asserts that the given IU represents a group.
-	 */
-	private void assertGroup(IInstallableUnit unit) {
-		ProvidedCapability[] capabilities = unit.getProvidedCapabilities();
-		for (int i = 0; i < capabilities.length; i++) {
-			if (capabilities[i].getNamespace().equals(IInstallableUnit.NAMESPACE_IU_KIND) && capabilities[i].getName().equals("group"))
-				return;
-		}
-		fail("IU is not a group:" + unit);
-	}
-
-	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/TestGeneratorInfo.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java
deleted file mode 100644
index 3ece95f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java
+++ /dev/null
@@ -1,137 +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.File;
-import java.util.ArrayList;
-import java.util.Set;
-import org.eclipse.equinox.frameworkadmin.ConfigData;
-import org.eclipse.equinox.frameworkadmin.LauncherData;
-import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.generator.IGeneratorInfo;
-import org.eclipse.equinox.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 String flavor;
-	private IMetadataRepository metadataRepo;
-	private String rootId;
-	private String rootVersion;
-	private File baseLocation;
-
-	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 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 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 File getJRELocation() {
-		return null;
-	}
-
-}
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 e90afea..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(MultipleIUAndFragmentTest.class);
-		suite.addTestSuite(RecommendationTest.class);
-		suite.addTestSuite(ResolutionHelperTest.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 18b4acd..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java
+++ /dev/null
@@ -1,113 +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.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-/**
- * Test <code>ArtifactkeyDeSerializer</code>
- */
-public class ArtifactKeyParsingTest extends TestCase {
-
-	public void testSerialize() {
-		IArtifactKey key = new ArtifactKey("namespace", "classifier", "identifier", new Version("1.0"));
-		assertEquals("namespace,classifier,identifier,1.0.0", key.toExternalForm());
-	}
-
-	public void testSerializeEmptyNamespace() {
-		IArtifactKey key = new ArtifactKey("", "classifier", "identifier", new Version("1.0"));
-		assertEquals(",classifier,identifier,1.0.0", key.toExternalForm());
-	}
-
-	public void testDeserialize() {
-		IArtifactKey key = ArtifactKey.parse("namespace,classifier,identifier,1.0.0");
-		assertNotNull(key);
-		assertEquals("namespace", key.getNamespace());
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyNamespace() {
-		IArtifactKey key = ArtifactKey.parse(",classifier,identifier,1.0.0");
-		assertNotNull(key);
-		assertEquals("", key.getNamespace());
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyClassifier() {
-		IArtifactKey key = ArtifactKey.parse("namespace,,identifier,1.0.0");
-		assertNotNull(key);
-		assertEquals("namespace", key.getNamespace());
-		assertEquals("", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyIdentifier() {
-		IArtifactKey key = ArtifactKey.parse("namespace,classifier,,1.0.0");
-		assertNotNull(key);
-		assertEquals("namespace", key.getNamespace());
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyVersion() {
-		IArtifactKey key = ArtifactKey.parse("namespace,classifier,identifier,");
-		assertNotNull(key);
-		assertEquals("namespace", key.getNamespace());
-		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.getNamespace());
-		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("namespace,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 5729c41..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java
+++ /dev/null
@@ -1,176 +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 java.util.*;
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.p2.resolution.ResolutionHelper;
-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 capability is not listed in the capabilities
-		assertDoesNotContain(mergedCapabilities, IInstallableUnitFragment.FRAGMENT_CAPABILITY);
-
-		//The fragment does not contain iu namespace
-		for (int i = 0; i < initialFragmentCapabilities.length; i++) {
-			if (initialFragmentCapabilities[i].getNamespace().equals(IInstallableUnit.NAMESPACE_IU)) {
-				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 testDependencies() {
-		RequiredCapability[] iuDependencies = iu1Deps;
-		RequiredCapability[] initialFragmentDependencies = iu3Deps;
-
-		RequiredCapability[] mergedDependencies = iu1.getRequiredCapabilities();
-		for (int i = 0; i < iuDependencies.length; i++) {
-			FragmentTest.assertContains(mergedDependencies, iuDependencies[i]);
-		}
-		for (int i = 0; i < initialFragmentDependencies.length; i++) {
-			FragmentTest.assertContains(mergedDependencies, initialFragmentDependencies[i]);
-		}
-		assertEquals("The fragment dependencies should not change", initialFragmentDependencies, iu3.getRequiredCapabilities(), false);
-	}
-
-	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(new TouchpointType("eclipse", new Version(1, 0, 0)));
-		iu.setProperty(PROP_FRAG, "value");
-		RequiredCapability[] reqs = new RequiredCapability[] {new RequiredCapability("eclipse.touchpoint", "bundle", VersionRange.emptyRange, null, false, true), new RequiredCapability(TEST_REQUIRED, TEST_REQUIRED, VersionRange.emptyRange, null, true, false)};
-		iu.setRequiredCapabilities(reqs);
-		ProvidedCapability[] cap = new ProvidedCapability[] {new ProvidedCapability("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(new TouchpointType("eclipse", new Version(1, 0, 0)));
-		iu.setProperty(PROP_IU, "valueIU");
-		ProvidedCapability[] cap = new ProvidedCapability[] {new ProvidedCapability("eclipse.touchpoint", "bundle", new Version(1, 0, 0)), new ProvidedCapability("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 6139dda..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentTest.java
+++ /dev/null
@@ -1,124 +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 java.util.*;
-import junit.framework.AssertionFailedError;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-public class FragmentTest extends AbstractProvisioningTest {
-
-	public void testAssociation() {
-		IInstallableUnit iu1 = createEclipseIU("ui.test1");
-		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.test1")) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-		}
-	}
-
-	public void testAssociation2() {
-		IInstallableUnit iu1 = createEclipseIU("ui.test1");
-		IInstallableUnit iu3 = createEclipseIU("ui.test3");
-		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("iu1.test1")) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-			if (iu.getId().equals("iu1.test3")) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-		}
-	}
-
-	public void testTouchpointData() {
-		assertEquals(createIUWithTouchpointData().getTouchpointData().length, 1);
-		assertEquals(createIUFragmentWithTouchpointData().getTouchpointData().length, 1);
-		IInstallableUnit iu1 = createIUWithTouchpointData();
-		IInstallableUnit iu2 = createIUFragmentWithTouchpointData();
-		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");
-		ProvidedCapability[] all = iu.getProvidedCapabilities();
-		assertContains(all, IInstallableUnitFragment.FRAGMENT_CAPABILITY);
-	}
-
-	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)) {
-				assertEquals(cap[i].getNamespace(), IInstallableUnit.NAMESPACE_IU);
-				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 = new TouchpointData(new HashMap());
-		return createEclipseIU("ui.test1", DEFAULT_VERSION, NO_REQUIRES, data);
-	}
-
-	private IInstallableUnit createIUFragmentWithTouchpointData() {
-		TouchpointData data = new TouchpointData(new HashMap());
-		IInstallableUnitFragment unit = createBundleFragment("iuFragment.test1", DEFAULT_VERSION, data);
-		return unit;
-	}
-}
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 bc7ea8e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/MultipleIUAndFragmentTest.java
+++ /dev/null
@@ -1,66 +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 java.util.*;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.resolution.ResolutionHelper;
-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 testAttachement() {
-		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())) {
-				assertEquals(0, iu.getFragments().length);
-			}
-		}
-
-	}
-
-	private static IInstallableUnit createIUWithDependencyOn(String iuName, String dependencyOn) {
-		RequiredCapability[] requires = new RequiredCapability[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, 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/RecommendationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RecommendationTest.java
deleted file mode 100644
index 962cf19..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RecommendationTest.java
+++ /dev/null
@@ -1,171 +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 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.Picker;
-import org.eclipse.equinox.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 = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue = new RequiredCapability("namespace", "name", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn, newValue);
-
-		RequiredCapability goodMatch = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		assertEquals(true, r1.matches(goodMatch));
-
-		RequiredCapability badNamespace = new RequiredCapability("badNamespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		assertEquals(false, r1.matches(badNamespace));
-
-		RequiredCapability badName = new RequiredCapability("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 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "iu1", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "iu1", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn, newValue);
-
-		RequiredCapability applyOn2, newValue2;
-		applyOn2 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "iu2", new VersionRange("[4.2, 5.0)"), null, false, false);
-		newValue2 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "iu1", new VersionRange("[4.2, 5.0)"), null, false, false);
-		newValue2 = new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "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[] {new RequiredCapability(IInstallableUnit.NAMESPACE_IU, "iu1", new VersionRange("[4.2, 5.0)"), null, false, false)}, false);
-		assertEquals(matches[1].length, 1);
-
-	}
-
-	public void testRecommendationDescriptorMerge() {
-		RequiredCapability applyOn1, newValue1;
-		applyOn1 = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue1 = new RequiredCapability("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 = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue2 = new RequiredCapability("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(new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false)));
-	}
-
-	public void testRecommendationDescriptorMergeConflict() {
-		RequiredCapability applyOn1, newValue1;
-		applyOn1 = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue1 = new RequiredCapability("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 = new RequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue2 = new RequiredCapability("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/metadata/ResolutionHelperTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ResolutionHelperTest.java
deleted file mode 100644
index 9cbac5f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ResolutionHelperTest.java
+++ /dev/null
@@ -1,269 +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 java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.p2.resolution.UnsatisfiedCapability;
-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[] {new ProvidedCapability("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[] {new ProvidedCapability("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[] {new ProvidedCapability("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[] {new ProvidedCapability("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[] {new ProvidedCapability("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[] {new RequiredCapability("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[] {new ProvidedCapability("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[] {new ProvidedCapability("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[] {new ProvidedCapability("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/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 0bf2a24..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/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.metadata.repository;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		//TODO This test currently fails because our file formats are not stable
-		suite.addTestSuite(JarURLRepositoryTest.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 36dd975..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/JarURLRepositoryTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-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.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.p2.metadata.generator.Generator;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
-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");
-		provider.setMetadataRepository(manager.createRepository(testRepo.toURL(), "testRepo", "org.eclipse.equinox.p2.metadata.repository.simpleRepository"));
-		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() {
-		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.getInstallableUnits(null).length > 0);
-		manager.removeRepository(repo);
-	}
-}
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 f588160..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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-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 f588160..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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-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 c776260..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/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/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 b507a8c..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 3948030..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.ui.admin.rcp/ProvAdminUI.launch b/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
index f6ad28f..7c42fc1 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
+++ b/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
@@ -6,7 +6,7 @@
 <stringAttribute key="bootstrap" value=""/>
 <stringAttribute key="checked" value="[NONE]"/>
 <booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="c:\equinox.p2\ProvAdminUI"/>
+<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="CDC-1.0/Foundation-1.0"/>
@@ -14,12 +14,11 @@
 <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog -product org.eclipse.equinox.p2.ui.admin.rcp.product"/>
 <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="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/prov/p2/agentData/"/>
 <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.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@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.help@default:default,org.eclipse.jface@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.osgi.services@default:default,org.eclipse.swt@default:default,org.eclipse.swt.win32.win32.x86@default:default,org.eclipse.ui@default:default,org.eclipse.ui.workbench@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:true,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.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.ui.admin@default:default,org.eclipse.equinox.p2.ui.admin.rcp@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.simpleconfigurator@default:true,org.eclipse.equinox.simpleconfigurator.manipulator@default:default"/>
+<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: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.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.ui.admin@default:default,org.eclipse.equinox.p2.ui.admin.rcp@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.simpleconfigurator@default:true,org.eclipse.equinox.simpleconfigurator.manipulator@default:default"/>
 </launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath
deleted file mode 100644
index 751c8f2..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"/>
-	<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 ac7672d..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,266 +0,0 @@
-#Thu Sep 13 15:17:47 EDT 2007
-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=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore
-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 ed50001..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %bundleName
-Bundle-SymbolicName: org.eclipse.equinox.simpleconfigurator.manipulator
-Bundle-Version: 0.1.0.qualifier
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.equinox.simpleconfigurator.manipulator.internal.Activator
-Eclipse-LazyStart: true
-Import-Package: org.eclipse.equinox.configuratormanipulator,
- org.eclipse.equinox.frameworkadmin,
- org.eclipse.equinox.internal.frameworkadmin.utils,
- 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.utils;x-internal:=true,
- org.eclipse.equinox.simpleconfigurator.manipulator.internal;x-internal:=true
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 30502a5..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html
-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 544b8a5..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= SimpleConfiguratorManipulator Bundle
-providerName= Eclipse.org
-
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 b0919ce..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.txt"; //$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.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/Activator.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/Activator.java
deleted file mode 100644
index 1759e98..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/Activator.java
+++ /dev/null
@@ -1,53 +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.simpleconfigurator.manipulator.internal;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.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/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorFactoryImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorFactoryImpl.java
deleted file mode 100644
index 8cb5958..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorFactoryImpl.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.eclipse.equinox.simpleconfigurator.manipulator.internal;
-
-import org.eclipse.equinox.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.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/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorImpl.java
deleted file mode 100644
index 5083779..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/simpleconfigurator/manipulator/internal/SimpleConfiguratorManipulatorImpl.java
+++ /dev/null
@@ -1,661 +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.simpleconfigurator.manipulator.internal;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.frameworkadmin.*;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-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) {
-		boolean found = false;
-		for (int i = 0; i < bInfos.length; i++) {
-			//			if (DEBUG)
-			//				System.out.println("bInfos[" + i + "]=" + bInfos[i]);
-			if (isTargetConfiguratorBundle(bInfos[i].getLocation())) {
-				if (!bInfos[i].isResolved())
-					return false;
-				//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.
-				found = true;
-				break;
-			}
-		}
-		return found;
-	}
-
-	private static boolean isTargetConfiguratorBundle(String location) {
-		final String symbolic = 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.
-	 * 
-	 * @param url
-	 * @return
-	 * @throws IOException
-	 */
-	public static List readConfiguration(URL url, File launcherLocation) 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);
-						//						if (DEBUG)
-						//							System.out.println("baseUrl=" + baseUrl);
-						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, launcherLocation != null ? launcherLocation.getParentFile().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());
-		this.saveConfiguration(setToSimpleConfig, outputFile, manipulator.getLauncherData().getLauncher(), backup);
-		configData.setFwIndependentProp(SimpleConfiguratorConstants.PROP_KEY_CONFIGURL, outputFile.toURL().toExternalForm());
-		return orderingInitialConfig(setToInitialConfig);
-	}
-
-	private void saveConfiguration(List bundleInfoList, File outputFile, File launcherLocation, 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 + ")");
-				}
-			}
-
-		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, launcherLocation != null ? launcherLocation.getParentFile().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();
-			}
-		}
-
-	}
-
-	/*
-	 * Make the given path relative to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 */
-	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();
-		int common = commonPrefixEnd(urlString, rootString, index, rootString.indexOf(FILE_PROTOCOL) + 5);
-		if (common == 0)
-			return urlString;
-		return urlString.substring(0, index) + urlString.substring(common);
-	}
-
-	/*
-	 * 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;
-
-		String pre = urlString.substring(0, index - 5);
-		String post = urlString.substring(index);
-		return pre + rootURL.toExternalForm() + post;
-	}
-
-	/*
-	 * Look at the given strings and return the index of the first character which isn't the same.
-	 * 
-	 * Method similar to one from SimpleConfigurationManipulatorImpl.
-	 */
-	private static int commonPrefixEnd(String path, String root, int startIndex, int rootStart) {
-		if (startIndex > path.length() || rootStart > root.length())
-			return 0;
-		int index = startIndex;
-		int rootIndex = rootStart;
-		while (index < path.length() + startIndex && rootIndex < root.length() && path.charAt(index) == root.charAt(rootIndex)) {
-			index++;
-			rootIndex++;
-		}
-		return rootIndex == root.length() ? index : 0;
-	}
-
-	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("=");
-				String key = jvmArgs[i].substring("-D".length(), 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, manipulator.getLauncherData().getLauncher());
-
-		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++)
-			bundleState.installBundle(toInstall[i]);
-
-		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());
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.classpath b/bundles/org.eclipse.equinox.simpleconfigurator/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.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 62088ff..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" standalone="no"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.simpleconfigurator/localbuild.xml"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.simpleconfigurator"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_PROPERTIES">
-<mapEntry key="eclipse.home" value="D:\eclipse"/>
-<mapEntry key="eclipse.pdebuild.templates" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/templates/"/>
-<mapEntry key="buildDirectory" value="${build_project}/trash"/>
-<mapEntry key="eclipse.pdebuild.scripts" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/scripts/"/>
-<mapEntry key="thisPlugin" value="${resource_loc:/org.eclipse.equinox.simpleconfigurator}"/>
-<mapEntry key="targetFolder" value="${resource_loc:/org.eclipse.equinox.p2.metadata.generator}"/>
-<mapEntry key="eclipse.running" value="true"/>
-<mapEntry key="eclipse.pdebuild.home" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/./"/>
-<mapEntry key="baseLocation" value="${target_home}"/>
-</mapAttribute>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<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.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.simpleconfigurator/localbuild.xml}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-</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 16f43dc..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,266 +0,0 @@
-#Tue Apr 24 09:34:10 EDT 2007
-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=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore
-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/.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 695e073..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.simpleconfigurator
-Bundle-Version: 0.1.0.qualifier
-Bundle-Name: %bundleName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.equinox.simpleconfigurator.internal.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.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.configurator
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 30502a5..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html
-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 358c6f1..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/localbuild.xml
+++ /dev/null
@@ -1,42 +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}"/>
-		<eclipse.buildScript elements="plugin@org.eclipse.equinox.simpleconfigurator" 
-			buildDirectory="${buildDirectory}" 
-			configInfo="*,*,*" 
-			baseLocation="${baseLocation}" 
-			buildingOSGi="true" 
-			outputUpdateJars="false"
-			pluginpath="${thisPlugin}"
-			/>
-		<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 2ff3f28..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= SimpleConfigurator Bundle
-providerName= Eclipse.org
-
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/configurator/Configurator.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/configurator/Configurator.java
deleted file mode 100644
index c4b2012..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/configurator/Configurator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.eclipse.equinox.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 refering
- * 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 dependend 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/console/ApplyCommand.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java
deleted file mode 100644
index f57d079..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java
+++ /dev/null
@@ -1,58 +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.io.IOException;
-import java.net.URL;
-
-import org.eclipse.equinox.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 824972b..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ConfiguratorCommandProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-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 c411416..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/EquinoxUtils.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.internal.simpleconfigurator.utils;
-
-import java.io.File;
-import java.net.MalformedURLException;
-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 getDefaultConfigURL(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 null;
-
-			try {
-				URL configURL = new URL(baseURL, SimpleConfiguratorConstants.CONFIGURATOR_FOLDER + "/" + SimpleConfiguratorConstants.CONFIG_LIST);
-				File configFile = new File(configURL.getFile());
-				if (configFile.exists())
-					return configURL;
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-			}
-			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 b2c6d08..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.txt"; //$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 742a64d..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java
+++ /dev/null
@@ -1,96 +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;
-	}
-
-}
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 c34f139..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/Utils.java
+++ /dev/null
@@ -1,186 +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.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-/**
- * 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) {
-			// TODO log
-			System.err.println("location=" + location);
-			e1.printStackTrace();
-		} catch (IOException e) {
-			// TODO log
-			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;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/Activator.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/Activator.java
deleted file mode 100644
index 036ca6f..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/Activator.java
+++ /dev/null
@@ -1,78 +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.simpleconfigurator.internal;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.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 {
-	final static boolean DEBUG = false;
-	private SimpleConfiguratorImpl bundleConfigurator;
-	private ServiceRegistration configuratorRegistration;
-	private ServiceRegistration commandRegistration;
-
-	public void start(BundleContext context) throws Exception {
-		bundleConfigurator = new SimpleConfiguratorImpl(context);
-		bundleConfigurator.applyConfiguration();
-
-		Dictionary props = new Hashtable();
-		props.put(Constants.SERVICE_VENDOR, "Eclipse"); //$NON-NLS-1$
-		props.put(Constants.SERVICE_PID, SimpleConfiguratorConstants.TARGET_CONFIGURATOR_NAME);
-		configuratorRegistration = context.registerService(Configurator.class.getName(), bundleConfigurator, 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;
-		}
-
-		this.bundleConfigurator = null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/ConfigApplier.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/ConfigApplier.java
deleted file mode 100644
index fe5fba0..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/ConfigApplier.java
+++ /dev/null
@@ -1,238 +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.simpleconfigurator.internal;
-
-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 BundleContext manipulatingContext;
-	private PackageAdmin adminService = null;
-	private StartLevel startLevelService = null;
-	private final boolean runningOnEquinox;
-
-	ConfigApplier(BundleContext context, SimpleConfiguratorImpl configurator) {
-		this.manipulatingContext = context;
-		//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, boolean uninstall) {
-		Collection toRefresh = new ArrayList();
-		Collection toStart = new ArrayList();
-		toRefresh.addAll(installBundles(expectedState, toStart));
-		if (uninstall)
-			toRefresh.addAll(uninstallBundles(expectedState, adminService));
-		refreshPackages((Bundle[]) toRefresh.toArray(new Bundle[toRefresh.size()]), manipulatingContext);
-		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 ArrayList installBundles(BundleInfo[] finalList, Collection toStart) {
-		ArrayList installed = new ArrayList();
-		//printSystemBundle();
-
-		boolean useReference = Boolean.valueOf(manipulatingContext.getProperty(SimpleConfiguratorConstants.PROP_KEY_USE_REFERENCE)).booleanValue();
-		for (int i = 0; i < finalList.length; i++) {
-			//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
-
-			Bundle[] matches = null;
-			Dictionary manifest = Utils.getOSGiManifest(finalList[i].getLocation());
-			String symbolicName = null;
-			//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();
-
-			String version = (String) manifest.get(Constants.BUNDLE_VERSION);
-			if (symbolicName != null && version != null)
-				matches = adminService.getBundles(symbolicName, 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) {
-						//TODO Log
-						System.err.println("fail to set start level of Bundle:" + finalList[i]);
-						ex.printStackTrace();
-					}
-				}
-			if (finalList[i].isMarkedAsStarted()) {
-				toStart.add(current);
-			}
-		}
-		return installed;
-	}
-
-//	private void printSystemBundle() {
-//		Bundle bundle = manipulatingContext.getBundle(0);
-//		System.out.println("bundle.getSymbolicName()=" + bundle.getSymbolicName());
-//		Dictionary headers = bundle.getHeaders();
-//		System.out.println(headers.size() + ":Headers=");
-//		for (Enumeration enumeration = headers.keys(); enumeration.hasMoreElements();) {
-//			Object key = enumeration.nextElement();
-//			System.out.println(" (" + key + "," + headers.get(key) + ")");
-//		}
-//	}
-
-	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)
-				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();
-		//	String symbolicNameSystem = manipulatingContext.getBundle(0).getSymbolicName();
-
-		//Build a set with all the bundles from the system
-		Set installedBundles = new HashSet(allBundles.length);
-		//		configurator.setPrerequisiteBundles(allBundles);
-		for (int i = 0; i < allBundles.length; i++) {
-			if (allBundles[i].getBundleId() == 0)
-				continue;
-			installedBundles.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++) {
-			Bundle[] toAdd = adminService.getBundles(finalList[i].getSymbolicName(), finalList[i].getVersion());
-			for (int j = 0; toAdd != null && j < toAdd.length; j++) {
-				installedBundles.remove(toAdd[j]);
-			}
-		}
-
-		for (Iterator iter = installedBundles.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 installedBundles;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/SimpleConfiguratorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/SimpleConfiguratorImpl.java
deleted file mode 100644
index 6ca5c24..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/simpleconfigurator/internal/SimpleConfiguratorImpl.java
+++ /dev/null
@@ -1,102 +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.simpleconfigurator.internal;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import org.eclipse.equinox.configurator.Configurator;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.*;
-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 {
-
-	BundleContext context;
-
-	ConfigApplier configApplier;
-
-	private URL url = null;
-
-	SimpleConfiguratorImpl(BundleContext context) {
-		this.context = context;
-	}
-
-	/**
-	 * @return URL
-	 */
-	private URL getConfigurationURL() {
-		try {
-			String specifiedURL = context.getProperty(SimpleConfiguratorConstants.PROP_KEY_CONFIGURL);
-			if (specifiedURL != null)
-				return new URL(specifiedURL);
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-
-		try {
-			if (null != context.getBundle().loadClass("org.eclipse.osgi.service.datalocation.Location")) { //$NON-NLS-1$
-				URL configURL = EquinoxUtils.getDefaultConfigURL(context);
-				if (configURL != null)
-					return configURL;
-			}
-		} catch (ClassNotFoundException e) {
-			// Location is not available
-			// Ok -- optional
-		}
-		return null;
-	}
-
-	public synchronized void applyConfiguration(URL url) throws IOException {
-		if (Activator.DEBUG)
-			System.out.println("applyConfiguration() URL=" + url);
-		if (url == null)
-			return;
-		this.url = 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, this);
-		configApplier.install(Utils.getBundleInfosFromList(bundleInfoList), 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 synchronized void applyConfiguration() throws IOException {
-		if (url == null)
-			url = getConfigurationURL();
-
-		applyConfiguration(url);
-	}
-
-	public synchronized URL getUrlInUse() {
-		return url;
-	}
-}
\ No newline at end of file