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

Sprout from master 2009-06-05 18:36:23 UTC Pascal Rapicault <prapicau> 'Including ECF bundles'
Cherrypick from master 2009-06-11 16:23:28 UTC Simon Kaegi <skaegi> 'Bug 279542 [eclipse] link action no longer supports @artifact':
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/LinkActionTest.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/LinkAction.java
Cherrypick from master 2009-04-20 21:56:41 UTC DJ Houghton <dj> 'Bug 272992 - agent and installer missing new p2.repository bundle':
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
Delete:
    bundles/ie.wombat.jbdiff.test/.classpath
    bundles/ie.wombat.jbdiff.test/.project
    bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
    bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
    bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
    bundles/ie.wombat.jbdiff.test/build.properties
    bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
    bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
    bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
    bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
    bundles/ie.wombat.jbdiff.test/testData/null.data
    bundles/ie.wombat.jbdiff.test/testData/one.data
    bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
    bundles/ie.wombat.jbdiff.test/testData/onehundred.data
    bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
    bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
    bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
    bundles/ie.wombat.jbdiff/.classpath
    bundles/ie.wombat.jbdiff/.project
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
    bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
    bundles/ie.wombat.jbdiff/about.html
    bundles/ie.wombat.jbdiff/build.properties
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.classpath
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.project
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
    bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
    bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
    bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
    bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/DeltaComputer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/JarDeltaOptimizerStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
    bundles/org.eclipse.equinox.p2.artifact.processors/.project
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.artifact.processors/about.html
    bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java
    bundles/org.eclipse.equinox.p2.sar/.classpath
    bundles/org.eclipse.equinox.p2.sar/.project
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.sar/about.html
    bundles/org.eclipse.equinox.p2.sar/build.properties
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/.classpath
    bundles/org.eclipse.equinox.p2.tests.optimizers/.project
    bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.tests.optimizers/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests.optimizers/build.properties
    bundles/org.eclipse.equinox.p2.tests.optimizers/plugin.xml
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/AutomatedTests.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestActivator.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestData.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarEntryTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/jarprocessor.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2-3.3.jbdiff
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2.exe
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.3.exe
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1-2.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.2.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/alien.zip
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
    bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/test.zip
    bundles/org.eclipse.equinox.p2.testserver/.classpath
    bundles/org.eclipse.equinox.p2.testserver/.project
    bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.testserver/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.testserver/build.properties
    bundles/org.eclipse.equinox.p2.testserver/p2 test server.launch
    bundles/org.eclipse.equinox.p2.testserver/plugin.xml
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/Activator.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/AlwaysFailContext.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/FlipFlopFailContext.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/HttpConstants.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/LinearChange.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/MimeLookup.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureAction.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureContext.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecuredArtifactsContext.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/BasicResourceDelivery.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ChopAndDelay.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ContentLengthLier.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/FileMolester.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/HelloWorld.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/LastModifiedLier.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Redirector.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/StatusCodeResponse.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/TimeOut.java
    bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Truncator.java
    bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/artifacts.xml
    bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/features/aaFeature_1.0.0.jar
    bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/plugins/aaPlugin_1.0.0.jar
    bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/readme.txt
    bundles/org.eclipse.equinox.p2.testserver/webfiles/index.html
    bundles/org.eclipse.equinox.p2.testserver/webfiles/index.xml
    bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/compositeContent.xml
    bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/one/content.xml
    bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/two/content.xml
    bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/features/test.feature_1.0.0.jar
    bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.bundle_1.0.0.jar
    bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.fragment_1.0.0.jar
    bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/site.xml
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.cvsignore
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.project
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/Build Cloud Example.launch
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml
    examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/readme.txt
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/.classpath
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/.project
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/META-INF/MANIFEST.MF
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/cloud.product
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/mail.ico
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.gif
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.icns
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample2.gif
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample3.gif
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/p2.inf
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.properties
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.xml
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/product_lg.gif
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/splash.bmp
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Activator.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Application.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationActionBarAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ICommandIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/MessagePopupAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/NavigationView.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/OpenViewAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Perspective.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/View.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/CloudPolicy.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/InstallNewSoftwareHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/Messages.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/PreloadingRepositoryHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/UpdateHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/messages.properties
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/.project
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/Build PrestartUpdate Example.launch
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/readme.txt
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.classpath
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.project
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/META-INF/MANIFEST.MF
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/mail.ico
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.gif
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.icns
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample2.gif
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample3.gif
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/p2.inf
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/plugin.xml
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/prestartupdate.product
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/product_lg.gif
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/splash.bmp
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Activator.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Application.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationActionBarAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ICommandIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/MessagePopupAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/NavigationView.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/OpenViewAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/P2Util.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Perspective.java
    examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/View.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.classpath
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.project
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/META-INF/MANIFEST.MF
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/OSGI-INF/policy_component.xml
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/mail.ico
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.icns
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample2.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample3.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/p2.inf
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.properties
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.xml
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/product_lg.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/sdkbundlevisibility.product
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/splash.bmp
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Activator.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Application.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationActionBarAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ICommandIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/MessagePopupAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/NavigationView.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/OpenViewAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Perspective.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/View.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/AllIUsAreVisiblePolicy.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/IProvSDKHelpContextIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/InstallNewSoftwareHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/Messages.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceConstants.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceInitializer.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreloadingRepositoryHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/ProvisioningPreferencePage.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/UpdateHandler.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/messages.properties
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.classpath
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.project
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/META-INF/MANIFEST.MF
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/mail.ico
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.icns
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample2.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample3.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/p2.inf
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/plugin.xml
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/product_lg.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/sdknoautoupdates.product
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/splash.bmp
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Activator.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Application.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationActionBarAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ICommandIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/MessagePopupAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/NavigationView.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/OpenViewAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Perspective.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/View.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.classpath
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.project
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/META-INF/MANIFEST.MF
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/build.properties
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/mail.ico
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.icns
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample2.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample3.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/p2.inf
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/plugin.xml
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/product_lg.gif
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/sdkui.product
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/splash.bmp
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Activator.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Application.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationActionBarAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ICommandIds.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/MessagePopupAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/NavigationView.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/OpenViewAction.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Perspective.java
    examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/View.java
    org.eclipse.equinox.p2.releng/.project
    org.eclipse.equinox.p2.releng/HOW TO RUN.txt
    org.eclipse.equinox.p2.releng/Provisioning base.target
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.properties
    org.eclipse.equinox.p2.releng/ecf.psf
    org.eclipse.equinox.p2.releng/projectSet-extssh.psf
    org.eclipse.equinox.p2.releng/projectSet.psf
diff --git a/bundles/ie.wombat.jbdiff.test/.classpath b/bundles/ie.wombat.jbdiff.test/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/ie.wombat.jbdiff.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/ie.wombat.jbdiff.test/.project b/bundles/ie.wombat.jbdiff.test/.project
deleted file mode 100644
index ac8a8a0..0000000
--- a/bundles/ie.wombat.jbdiff.test/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ie.wombat.jbdiff.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs b/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dc78f95..0000000
--- a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Dec 18 11:44:16 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs b/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 0c5082b..0000000
--- a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Nov 01 14:26:02 CET 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF b/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
deleted file mode 100644
index d302fe5..0000000
--- a/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JBDiff Test Plug-in
-Bundle-SymbolicName: ie.wombat.jbdiff.test
-Bundle-Version: 0.1.0.1
-Bundle-Activator: ie.wombat.jbdiff.test.Activator
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.junit,
- ie.wombat.jbdiff
diff --git a/bundles/ie.wombat.jbdiff.test/build.properties b/bundles/ie.wombat.jbdiff.test/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/bundles/ie.wombat.jbdiff.test/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java b/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
deleted file mode 100644
index 0d0bb3f..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package ie.wombat.jbdiff.test;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	private static BundleContext context;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		Activator.context = null;
-	}
-
-	/**
-	 * @return the context
-	 */
-	public static BundleContext getContext() {
-		return context;
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java b/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
deleted file mode 100644
index 5f5e7d8..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package ie.wombat.jbdiff.test;
-
-import ie.wombat.jbdiff.JBDiff;
-import ie.wombat.jbdiff.JBPatch;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-public class DiffPatchTest extends TestCase {
-
-	public void testNullData() throws Exception {
-		bench("null.data", "null.data");
-	}
-
-	public void testOneData() throws Exception {
-		bench("one.data", "one.data");
-	}
-
-	public void testOneHundredData() throws Exception {
-		bench("onehundred.data", "onehundred.data");
-	}
-
-	public void testOneHundredXData() throws Exception {
-		bench("onehundred.data", "onehundredX.data");
-	}
-
-	public void testOneXHundredXData() throws Exception {
-		bench("onehundred.data", "oneXhundredX.data");
-	}
-
-	public void testPdeCoreJar() throws Exception {
-		bench("org.eclipse.pde.core_3.2.jar", "org.eclipse.pde.core_3.3.jar");
-	}
-
-	public void testEclipse() throws Exception {
-		bench("eclipse-3.2.exe", "eclipse-3.3.exe");
-	}
-
-	private void bench(String resource1, String resource2) throws Exception {
-
-		byte[] oldData = getTestData(resource1);
-		byte[] newData = getTestData(resource2);
-
-		System.out.println(resource1 + "(" + (oldData.length / 1024)
-				+ " kb) -> " + resource2 + "(" + (newData.length / 1024)
-				+ " kb)");
-
-		diffAndPatchJBDiff(oldData, newData);
-
-		System.out.println("");
-	}
-
-	/**
-	 * @param resource1
-	 * @param resource2
-	 * @throws IOException
-	 */
-	private void diffAndPatchJBDiff(byte[] oldData, byte[] newData)
-			throws IOException {
-
-		try {
-
-			long start = System.currentTimeMillis();
-
-			byte[] diff = JBDiff.bsdiff(oldData, oldData.length, newData,
-					newData.length);
-
-			long diffEnd = System.currentTimeMillis();
-
-			byte[] patch = JBPatch.bspatch(oldData, oldData.length, diff);
-
-			long patchEnd = System.currentTimeMillis();
-
-			System.out.println("JBDiff: Size= " + diff.length + " b ("
-					+ diff.length / 1024 + " kb), Diffing " + (diffEnd - start)
-					+ " ms, Patching: " + (patchEnd - diffEnd) + " ms");
-
-			assertTrue(Arrays.equals(newData, patch));
-
-		} catch (RuntimeException re) {
-			System.err.println("JBDiff: error: " + re.getMessage());
-		}
-	}
-
-	private static byte[] getTestData(String name) throws IOException {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		InputStream input = new BufferedInputStream(Activator.getContext()
-				.getBundle().getEntry("testData/" + name).openStream());
-		int r;
-		while ((r = input.read()) != -1) {
-			out.write(r);
-		}
-		input.close();
-		out.close();
-		return out.toByteArray();
-	}
-}
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe b/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
deleted file mode 100644
index 7826d1e..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe b/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
deleted file mode 100644
index c5cd8f0..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/null.data b/bundles/ie.wombat.jbdiff.test/testData/null.data
deleted file mode 100644
index e69de29..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/null.data
+++ /dev/null
diff --git a/bundles/ie.wombat.jbdiff.test/testData/one.data b/bundles/ie.wombat.jbdiff.test/testData/one.data
deleted file mode 100644
index 56a6051..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/one.data
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data b/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
deleted file mode 100644
index bb1077f..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
+++ /dev/null
@@ -1 +0,0 @@
-0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/onehundred.data b/bundles/ie.wombat.jbdiff.test/testData/onehundred.data
deleted file mode 100644
index edd4e96..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/onehundred.data
+++ /dev/null
@@ -1 +0,0 @@
-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data b/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
deleted file mode 100644
index cb96be8..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
+++ /dev/null
@@ -1 +0,0 @@
-012345678901234567890123456789012345678901234567890X234567890123456789012345678901234567890123456789
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar b/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
deleted file mode 100644
index f772f86..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar b/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
deleted file mode 100644
index a78ea76..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff/.classpath b/bundles/ie.wombat.jbdiff/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/ie.wombat.jbdiff/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/ie.wombat.jbdiff/.project b/bundles/ie.wombat.jbdiff/.project
deleted file mode 100644
index 76d4441..0000000
--- a/bundles/ie.wombat.jbdiff/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ie.wombat.jbdiff</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index d46233b..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:16 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f99d271..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Dec 18 11:43:17 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 950e194..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Nov 01 14:00:53 CET 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF b/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
deleted file mode 100644
index 8c78997..0000000
--- a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Jbdiff Plug-in
-Bundle-SymbolicName: ie.wombat.jbdiff
-Bundle-Version: 0.1.0.1
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Export-Package: ie.wombat.jbdiff
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
diff --git a/bundles/ie.wombat.jbdiff/about.html b/bundles/ie.wombat.jbdiff/about.html
deleted file mode 100644
index bf09c26..0000000
--- a/bundles/ie.wombat.jbdiff/about.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-  
-  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-
-  
-  <title>About</title>
-</head>
-
-
-<body lang="EN-US">
-
-<h3>About This Content</h3>
-
-<p>June 5, 2006</p>
-
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content").  
-		Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-		Eclipse Public License Version 1.0 ("EPL").  A copy of the EPL is available 
-		at <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
-		For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-		being redistributed by another party ("Redistributor") and different terms and conditions may
-		apply to your use of any object code in the Content.  Check the Redistributor&rsquo;s license 
-		that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as set out below. If you 
-		did not receive this Content directly from the Eclipse Foundation, the following is provided 
-		for informational purposes only, and you should look to the Redistributor&rsquo;s license for 
-		terms and conditions of use.</p>
-
-<em>
-<h4>ie.wombat.jbdiff&nbsp;</h4>
-
-<p>This library version is based on JBDiff (<a href="http://www.wombat.ie/software/jbdiff/downloads/">http://www.wombat.ie/software/jbdiff/downloads/</a>) which is also available under the OSI Approved :: BSD License (original) <a href="http://www.opensource.org/licenses/bsd-license.html">http://www.opensource.org/licenses/bsd-license.html</a><br />
-
-</p>
-
-</em>
-</body>
-</html>
diff --git a/bundles/ie.wombat.jbdiff/build.properties b/bundles/ie.wombat.jbdiff/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/bundles/ie.wombat.jbdiff/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
deleted file mode 100644
index 711fbd4..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ie.wombat.jbdiff;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.GZIPOutputStream;
-
-/**
- * Java Binary Diff utility. Based on bsdiff (v4.2) by Colin Percival (see
- * http://www.daemonology.net/bsdiff/ ) and distributed under BSD license.
- * 
- * <p>
- * Running this on large files will probably require an increase of the default
- * maximum heap size (use java -Xmx200m)
- * </p>
- * 
- * @author Joe Desbonnet, joe@galway.net
- * 
- */
-public class JBDiff {
-
-	// JBDiff extensions by Stefan.Liebig@compeople.de:
-	//
-	// - uses GZIP compressor to compress ALL of the blocks (ctrl,diff,extra).
-	// - added interfaces that allows using of JBDiff with streams and byte
-	// arrays.
-
-//	private static final String VERSION = "jbdiff-0.1.0.1";
-
-	// This is ´jbdiff40´.
-	private static final byte[] MAGIC_BYTES = new byte[] { 0x6a, 0x62, 0x64,
-			0x69, 0x66, 0x66, 0x34, 0x30 };
-
-	private final static void split(int[] I, int[] V, int start, int len, int h) {
-
-		int i, j, k, x, tmp, jj, kk;
-
-		if (len < 16) {
-			for (k = start; k < start + len; k += j) {
-				j = 1;
-				x = V[I[k] + h];
-				for (i = 1; k + i < start + len; i++) {
-					if (V[I[k + i] + h] < x) {
-						x = V[I[k + i] + h];
-						j = 0;
-					}
-
-					if (V[I[k + i] + h] == x) {
-						tmp = I[k + j];
-						I[k + j] = I[k + i];
-						I[k + i] = tmp;
-						j++;
-					}
-
-				}
-
-				for (i = 0; i < j; i++) {
-					V[I[k + i]] = k + j - 1;
-				}
-				if (j == 1) {
-					I[k] = -1;
-				}
-			}
-
-			return;
-		}
-
-		x = V[I[start + len / 2] + h];
-		jj = 0;
-		kk = 0;
-		for (i = start; i < start + len; i++) {
-			if (V[I[i] + h] < x) {
-				jj++;
-			}
-			if (V[I[i] + h] == x) {
-				kk++;
-			}
-		}
-
-		jj += start;
-		kk += jj;
-
-		i = start;
-		j = 0;
-		k = 0;
-		while (i < jj) {
-			if (V[I[i] + h] < x) {
-				i++;
-			} else if (V[I[i] + h] == x) {
-				tmp = I[i];
-				I[i] = I[jj + j];
-				I[jj + j] = tmp;
-				j++;
-			} else {
-				tmp = I[i];
-				I[i] = I[kk + k];
-				I[kk + k] = tmp;
-				k++;
-			}
-
-		}
-
-		while (jj + j < kk) {
-			if (V[I[jj + j] + h] == x) {
-				j++;
-			} else {
-				tmp = I[jj + j];
-				I[jj + j] = I[kk + k];
-				I[kk + k] = tmp;
-				k++;
-			}
-
-		}
-
-		if (jj > start) {
-			split(I, V, start, jj - start, h);
-		}
-
-		for (i = 0; i < kk - jj; i++) {
-			V[I[jj + i]] = kk - 1;
-		}
-
-		if (jj == kk - 1) {
-			I[jj] = -1;
-		}
-
-		if (start + len > kk) {
-			split(I, V, kk, start + len - kk, h);
-		}
-
-	}
-
-	/**
-	 * Fast suffix sporting. Larsson and Sadakane's qsufsort algorithm. See
-	 * http://www.cs.lth.se/Research/Algorithms/Papers/jesper5.ps
-	 * 
-	 * @param I
-	 * @param V
-	 * @param oldBuf
-	 * @param oldsize
-	 */
-	private static void qsufsort(int[] I, int[] V, byte[] oldBuf, int oldsize) {
-
-		// int oldsize = oldBuf.length;
-		int[] buckets = new int[256];
-
-		// No need to do that in Java.
-		// for ( int i = 0; i < 256; i++ ) {
-		// buckets[i] = 0;
-		// }
-
-		for (int i = 0; i < oldsize; i++) {
-			buckets[oldBuf[i] & 0xff]++;
-		}
-
-		for (int i = 1; i < 256; i++) {
-			buckets[i] += buckets[i - 1];
-		}
-
-		for (int i = 255; i > 0; i--) {
-			buckets[i] = buckets[i - 1];
-		}
-
-		buckets[0] = 0;
-
-		for (int i = 0; i < oldsize; i++) {
-			I[++buckets[oldBuf[i] & 0xff]] = i;
-		}
-
-		I[0] = oldsize;
-		for (int i = 0; i < oldsize; i++) {
-			V[i] = buckets[oldBuf[i] & 0xff];
-		}
-		V[oldsize] = 0;
-
-		for (int i = 1; i < 256; i++) {
-			if (buckets[i] == buckets[i - 1] + 1) {
-				I[buckets[i]] = -1;
-			}
-		}
-
-		I[0] = -1;
-
-		for (int h = 1; I[0] != -(oldsize + 1); h += h) {
-			int len = 0;
-			int i;
-			for (i = 0; i < oldsize + 1;) {
-				if (I[i] < 0) {
-					len -= I[i];
-					i -= I[i];
-				} else {
-					// if(len) I[i-len]=-len;
-					if (len != 0) {
-						I[i - len] = -len;
-					}
-					len = V[I[i]] + 1 - i;
-					split(I, V, i, len, h);
-					i += len;
-					len = 0;
-				}
-
-			}
-
-			if (len != 0) {
-				I[i - len] = -len;
-			}
-		}
-
-		for (int i = 0; i < oldsize + 1; i++) {
-			I[V[i]] = i;
-		}
-	}
-
-	/**
-	 * Count the number of bytes that match in oldBuf (starting at offset
-	 * oldOffset) and newBuf (starting at offset newOffset).
-	 * 
-	 * @param oldBuf
-	 * @param oldOffset
-	 * @param newBuf
-	 * @param newOffset
-	 * @return
-	 */
-	private final static int matchlen(byte[] oldBuf, int oldSize,
-			int oldOffset, byte[] newBuf, int newSize, int newOffset) {
-		// int end = Math
-		// .min(oldBuf.length - oldOffset, newBuf.length - newOffset);
-		int end = Math.min(oldSize - oldOffset, newSize - newOffset);
-		for (int i = 0; i < end; i++) {
-			if (oldBuf[oldOffset + i] != newBuf[newOffset + i]) {
-				return i;
-			}
-		}
-		return end;
-	}
-
-	private final static int search(int[] I, byte[] oldBuf, int oldSize,
-			byte[] newBuf, int newSize, int newBufOffset, int start, int end,
-			IntByRef pos) {
-
-		if (end - start < 2) {
-			int x = matchlen(oldBuf, oldSize, I[start], newBuf, newSize,
-					newBufOffset);
-			int y = matchlen(oldBuf, oldSize, I[end], newBuf, newSize,
-					newBufOffset);
-
-			if (x > y) {
-				pos.value = I[start];
-				return x;
-			} else {
-				pos.value = I[end];
-				return y;
-			}
-		}
-
-		int x = start + (end - start) / 2;
-		if (Util.memcmp(oldBuf, oldSize, I[x], newBuf, newSize, newBufOffset) < 0) {
-			return search(I, oldBuf, oldSize, newBuf, newSize, newBufOffset, x,
-					end, pos);
-		} else {
-			return search(I, oldBuf, oldSize, newBuf, newSize, newBufOffset,
-					start, x, pos);
-		}
-
-	}
-
-	/**
-	 * @param oldFile
-	 * @param newFile
-	 * @param diffFile
-	 * @throws IOException
-	 */
-	public static void bsdiff(File oldFile, File newFile, File diffFile)
-			throws IOException {
-		InputStream oldInputStream = new BufferedInputStream(
-				new FileInputStream(oldFile));
-		InputStream newInputStream = new BufferedInputStream(
-				new FileInputStream(newFile));
-		OutputStream diffOutputStream = new FileOutputStream(diffFile);
-
-		byte[] diffBytes = bsdiff(oldInputStream, (int) oldFile.length(),
-				newInputStream, (int) newFile.length());
-
-		diffOutputStream.write(diffBytes);
-		diffOutputStream.close();
-	}
-
-	/**
-	 * @param oldInputStream
-	 * @param oldsize
-	 * @param newInputStream
-	 * @param newsize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bsdiff(InputStream oldInputStream, int oldsize,
-			InputStream newInputStream, int newsize) throws IOException {
-
-		byte[] oldBuf = new byte[oldsize];
-
-		Util.readFromStream(oldInputStream, oldBuf, 0, oldsize);
-		oldInputStream.close();
-
-		byte[] newBuf = new byte[newsize];
-		Util.readFromStream(newInputStream, newBuf, 0, newsize);
-		newInputStream.close();
-
-		return bsdiff(oldBuf, oldsize, newBuf, newsize);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param newBuf
-	 * @param newsize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bsdiff(byte[] oldBuf, int oldsize, byte[] newBuf,
-			int newsize) throws IOException {
-
-		int[] I = new int[oldsize + 1];
-		qsufsort(I, new int[oldsize + 1], oldBuf, oldsize);
-
-		// diff block
-		int dblen = 0;
-		byte[] db = new byte[newsize];
-
-		// extra block
-		int eblen = 0;
-		byte[] eb = new byte[newsize];
-
-		/*
-		 * Diff file is composed as follows:
-		 * 
-		 * Header (32 bytes) Data (from offset 32 to end of file)
-		 * 
-		 * Header: Offset 0, length 8 bytes: file magic "jbdiff40" Offset 8,
-		 * length 8 bytes: length of compressed ctrl block Offset 16, length 8
-		 * bytes: length of compressed diff block Offset 24, length 8 bytes:
-		 * length of new file
-		 * 
-		 * Data: 32 (length ctrlBlockLen): ctrlBlock (bzip2) 32+ctrlBlockLen
-		 * (length diffBlockLen): diffBlock (bzip2) 32+ctrlBlockLen+diffBlockLen
-		 * (to end of file): extraBlock (bzip2)
-		 * 
-		 * ctrlBlock comprises a set of records, each record 12 bytes. A record
-		 * comprises 3 x 32 bit integers. The ctrlBlock is not compressed.
-		 */
-
-		ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
-		DataOutputStream diffOut = new DataOutputStream(byteOut);
-
-		/*
-		 * Write as much of header as we have now. Size of ctrlBlock and
-		 * diffBlock must be filled in later.
-		 */
-		diffOut.write(MAGIC_BYTES);
-		diffOut.writeLong(-1); // place holder for ctrlBlockLen
-		diffOut.writeLong(-1); // place holder for diffBlockLen
-		diffOut.writeLong(newsize);
-		diffOut.flush();
-
-		GZIPOutputStream bzip2Out = new GZIPOutputStream(diffOut);
-		DataOutputStream dataOut = new DataOutputStream(bzip2Out);
-
-		int oldscore, scsc;
-
-		int overlap, Ss, lens;
-		int i;
-		int scan = 0;
-		int len = 0;
-		int lastscan = 0;
-		int lastpos = 0;
-		int lastoffset = 0;
-
-		IntByRef pos = new IntByRef();
-		// int ctrlBlockLen = 0;
-
-		while (scan < newsize) {
-			oldscore = 0;
-
-			for (scsc = scan += len; scan < newsize; scan++) {
-
-				len = search(I, oldBuf, oldsize, newBuf, newsize, scan, 0,
-						oldsize, pos);
-
-				for (; scsc < scan + len; scsc++) {
-					if ((scsc + lastoffset < oldsize)
-							&& (oldBuf[scsc + lastoffset] == newBuf[scsc])) {
-						oldscore++;
-					}
-				}
-
-				if (((len == oldscore) && (len != 0)) || (len > oldscore + 8)) {
-					break;
-				}
-
-				if ((scan + lastoffset < oldsize)
-						&& (oldBuf[scan + lastoffset] == newBuf[scan])) {
-					oldscore--;
-				}
-			}
-
-			if ((len != oldscore) || (scan == newsize)) {
-				int s = 0;
-				int Sf = 0;
-				int lenf = 0;
-				for (i = 0; (lastscan + i < scan) && (lastpos + i < oldsize);) {
-					if (oldBuf[lastpos + i] == newBuf[lastscan + i])
-						s++;
-					i++;
-					if (s * 2 - i > Sf * 2 - lenf) {
-						Sf = s;
-						lenf = i;
-					}
-				}
-
-				int lenb = 0;
-				if (scan < newsize) {
-					s = 0;
-					int Sb = 0;
-					for (i = 1; (scan >= lastscan + i) && (pos.value >= i); i++) {
-						if (oldBuf[pos.value - i] == newBuf[scan - i])
-							s++;
-						if (s * 2 - i > Sb * 2 - lenb) {
-							Sb = s;
-							lenb = i;
-						}
-					}
-				}
-
-				if (lastscan + lenf > scan - lenb) {
-					overlap = (lastscan + lenf) - (scan - lenb);
-					s = 0;
-					Ss = 0;
-					lens = 0;
-					for (i = 0; i < overlap; i++) {
-						if (newBuf[lastscan + lenf - overlap + i] == oldBuf[lastpos
-								+ lenf - overlap + i]) {
-							s++;
-						}
-						if (newBuf[scan - lenb + i] == oldBuf[pos.value - lenb
-								+ i]) {
-							s--;
-						}
-						if (s > Ss) {
-							Ss = s;
-							lens = i + 1;
-						}
-					}
-
-					lenf += lens - overlap;
-					lenb -= lens;
-				}
-
-				// ? byte casting introduced here -- might affect things
-				for (i = 0; i < lenf; i++) {
-					db[dblen + i] = (byte) (newBuf[lastscan + i] - oldBuf[lastpos
-							+ i]);
-				}
-
-				for (i = 0; i < (scan - lenb) - (lastscan + lenf); i++) {
-					eb[eblen + i] = newBuf[lastscan + lenf + i];
-				}
-
-				dblen += lenf;
-				eblen += (scan - lenb) - (lastscan + lenf);
-
-				/*
-				 * Write control block entry (3 x int)
-				 */
-				// diffOut.writeInt( lenf );
-				// diffOut.writeInt( ( scan - lenb ) - ( lastscan + lenf ) );
-				// diffOut.writeInt( ( pos[0] - lenb ) - ( lastpos + lenf ) );
-				// ctrlBlockLen += 12;
-				dataOut.writeInt(lenf);
-				dataOut.writeInt((scan - lenb) - (lastscan + lenf));
-				dataOut.writeInt((pos.value - lenb) - (lastpos + lenf));
-
-				lastscan = scan - lenb;
-				lastpos = pos.value - lenb;
-				lastoffset = pos.value - scan;
-			} // end if
-		} // end while loop
-
-		dataOut.flush();
-		bzip2Out.finish();
-
-		// now compressed ctrlBlockLen
-		int ctrlBlockLen = diffOut.size() - Util.HEADER_SIZE;
-		// System.err.println( "Diff: ctrlBlockLen=" + ctrlBlockLen );
-
-		// GZIPOutputStream gzOut;
-
-		/*
-		 * Write diff block
-		 */
-		// gzOut = new GZIPOutputStream( diffOut );
-		bzip2Out = new GZIPOutputStream(diffOut);
-		bzip2Out.write(db, 0, dblen);
-		bzip2Out.finish();
-		bzip2Out.flush();
-		int diffBlockLen = diffOut.size() - ctrlBlockLen - Util.HEADER_SIZE;
-		// System.err.println( "Diff: diffBlockLen=" + diffBlockLen );
-
-		/*
-		 * Write extra block
-		 */
-		// gzOut = new GZIPOutputStream( diffOut );
-		bzip2Out = new GZIPOutputStream(diffOut);
-		bzip2Out.write(eb, 0, eblen);
-		bzip2Out.finish();
-		bzip2Out.flush();
-		// long extraBlockLen = diffOut.size() - diffBlockLen - ctrlBlockLen -
-		// HEADER_SIZE;
-		// System.err.println( "Diff: extraBlockLen=" + extraBlockLen );
-
-		diffOut.close();
-
-		/*
-		 * Write missing header info.
-		 */
-		ByteArrayOutputStream byteHeaderOut = new ByteArrayOutputStream(
-				Util.HEADER_SIZE);
-		DataOutputStream headerOut = new DataOutputStream(byteHeaderOut);
-		headerOut.write(MAGIC_BYTES);
-		headerOut.writeLong(ctrlBlockLen); // place holder for ctrlBlockLen
-		headerOut.writeLong(diffBlockLen); // place holder for diffBlockLen
-		headerOut.writeLong(newsize);
-		headerOut.close();
-
-		// Copy header information into the diff
-		byte[] diffBytes = byteOut.toByteArray();
-		byte[] headerBytes = byteHeaderOut.toByteArray();
-
-		System.arraycopy(headerBytes, 0, diffBytes, 0, headerBytes.length);
-
-		return diffBytes;
-		// /*
-		// * Write missing header info. Need to reopen the file with
-		// RandomAccessFile
-		// * for this.
-		// */
-		// RandomAccessFile diff = new RandomAccessFile( diffFile, "rw" );
-		// diff.seek( 8 );
-		// diff.writeLong( ctrlBlockLen ); // ctrlBlockLen (compressed) @offset
-		// 8
-		// diff.writeLong( diffBlockLen ); // diffBlockLen (compressed) @offset
-		// 16
-		// diff.close();
-	}
-
-	/**
-	 * Run JBDiff from the command line. Params: oldfile newfile difffile. diff
-	 * file will be created.
-	 * 
-	 * @param arg
-	 * @throws IOException
-	 */
-	public static void main(String[] arg) throws IOException {
-
-		if (arg.length != 3) {
-			System.err
-					.println("usage example: java -Xmx200m ie.wombat.jbdiff.JBDiff oldfile newfile patchfile\n");
-			return;
-		}
-
-		File oldFile = new File(arg[0]);
-		File newFile = new File(arg[1]);
-		File diffFile = new File(arg[2]);
-
-		bsdiff(oldFile, newFile, diffFile);
-
-	}
-
-	private static class IntByRef {
-		private int value;
-	}
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
deleted file mode 100644
index 7f91ecf..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */package ie.wombat.jbdiff;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Java Binary patcher (based on bspatch by Colin Percival)
- * 
- * @author Joe Desbonnet, joe@galway.net
- */
-public class JBPatch {
-
-	// JBPatch extensions by Stefan.Liebig@compeople.de:
-	//
-	// - uses GZIP compressor to compress ALL of the blocks (ctrl,diff,extra).
-	// - added an interface that allows using of JBPatch with streams and byte
-	// arrays
-
-//	private static final String VERSION = "jbdiff-0.1.0";
-
-	/**
-	 * Run JBPatch from the command line. Params: oldfile newfile patchfile.
-	 * newfile will be created.
-	 * 
-	 * @param arg
-	 * @throws IOException
-	 */
-	public static void main(String[] arg) throws IOException {
-
-		if (arg.length != 3) {
-			System.err
-					.println("usage example: java -Xmx200m ie.wombat.jbdiff.JBPatch oldfile newfile patchfile");
-		}
-
-		File oldFile = new File(arg[0]);
-		File newFile = new File(arg[1]);
-		File diffFile = new File(arg[2]);
-
-		bspatch(oldFile, newFile, diffFile);
-	}
-
-	/**
-	 * @param oldFile
-	 * @param newFile
-	 * @param diffFile
-	 * @throws IOException
-	 */
-	public static void bspatch(File oldFile, File newFile, File diffFile)
-			throws IOException {
-		InputStream oldInputStream = new BufferedInputStream(
-				new FileInputStream(oldFile));
-		byte[] diffBytes = new byte[(int) diffFile.length()];
-		InputStream diffInputStream = new FileInputStream(diffFile);
-		Util.readFromStream(diffInputStream, diffBytes, 0, diffBytes.length);
-
-		byte[] newBytes = bspatch(oldInputStream, (int) oldFile.length(),
-				diffBytes);
-
-		OutputStream newOutputStream = new FileOutputStream(newFile);
-		newOutputStream.write(newBytes);
-		newOutputStream.close();
-	}
-
-	/**
-	 * @param oldInputStream
-	 * @param diffInputStream
-	 * @return
-	 */
-	public static byte[] bspatch(InputStream oldInputStream, int oldsize,
-			byte[] diffBytes) throws IOException {
-		/*
-		 * Read in old file (file to be patched) to oldBuf
-		 */
-		// int oldsize = (int) oldFile.length();
-		// byte[] oldBuf = new byte[oldsize + 1];
-		byte[] oldBuf = new byte[oldsize];
-		// InputStream oldIn = new FileInputStream( oldFile );
-		Util.readFromStream(oldInputStream, oldBuf, 0, oldsize);
-		oldInputStream.close();
-		// oldIn.close();
-
-		return JBPatch.bspatch(oldBuf, oldsize, diffBytes);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param diffBytes
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bspatch(byte[] oldBuf, int oldsize, byte[] diffBytes)
-			throws IOException {
-		return bspatch(oldBuf, oldsize, diffBytes, diffBytes.length);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param diffBuf
-	 * @param diffSize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bspatch(byte[] oldBuf, int oldsize, byte[] diffBuf,
-			int diffSize) throws IOException {
-
-		DataInputStream diffIn = new DataInputStream(new ByteArrayInputStream(
-				diffBuf, 0, diffSize));
-
-		// skip headerMagic at header offset 0 (length 8 bytes)
-		diffIn.skip(8);
-
-		// ctrlBlockLen after bzip2 compression at heater offset 8 (length 8
-		// bytes)
-		long ctrlBlockLen = diffIn.readLong();
-
-		// diffBlockLen after bzip2 compression at header offset 16 (length 8
-		// bytes)
-		long diffBlockLen = diffIn.readLong();
-
-		// size of new file at header offset 24 (length 8 bytes)
-		int newsize = (int) diffIn.readLong();
-
-		// System.err.println( "newsize=" + newsize );
-		// System.err.println( "ctrlBlockLen=" + ctrlBlockLen );
-		// System.err.println( "diffBlockLen=" + diffBlockLen );
-		// System.err.println( "newsize=" + newsize );
-
-		InputStream in;
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(Util.HEADER_SIZE);
-		DataInputStream ctrlBlockIn = new DataInputStream(new GZIPInputStream(
-				in));
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream diffBlockIn = new GZIPInputStream(in);
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(diffBlockLen + ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream extraBlockIn = new GZIPInputStream(in);
-
-		// byte[] newBuf = new byte[newsize + 1];
-		byte[] newBuf = new byte[newsize];
-
-		int oldpos = 0;
-		int newpos = 0;
-		int[] ctrl = new int[3];
-		// int nbytes;
-		while (newpos < newsize) {
-
-			for (int i = 0; i <= 2; i++) {
-				// ctrl[i] = diffIn.readInt();
-				ctrl[i] = ctrlBlockIn.readInt();
-				// System.err.println (" ctrl[" + i + "]=" + ctrl[i]);
-			}
-
-			if (newpos + ctrl[0] > newsize) {
-				throw new IOException("Corrupt patch.");
-			}
-
-			/*
-			 * Read ctrl[0] bytes from diffBlock stream
-			 */
-
-			Util.readFromStream(diffBlockIn, newBuf, newpos, ctrl[0]);
-
-			for (int i = 0; i < ctrl[0]; i++) {
-				if ((oldpos + i >= 0) && (oldpos + i < oldsize)) {
-					newBuf[newpos + i] += oldBuf[oldpos + i];
-				}
-			}
-
-			newpos += ctrl[0];
-			oldpos += ctrl[0];
-
-			if (newpos + ctrl[1] > newsize) {
-				throw new IOException("Corrupt patch.");
-			}
-
-			Util.readFromStream(extraBlockIn, newBuf, newpos, ctrl[1]);
-
-			newpos += ctrl[1];
-			oldpos += ctrl[2];
-		}
-
-		// TODO: Check if at end of ctrlIn
-		// TODO: Check if at the end of diffIn
-		// TODO: Check if at the end of extraIn
-
-		// This check is not needed since the byte array has been allocated with
-		// this constraint!
-		// if ( newBuf.length - 1 != newsize ) {
-		// throw new IOException( "Corrupt patch." );
-		// }
-
-		ctrlBlockIn.close();
-		diffBlockIn.close();
-		extraBlockIn.close();
-		diffIn.close();
-
-		return newBuf;
-		// OutputStream out = new FileOutputStream( newFile );
-		// out.write( newBuf, 0, newBuf.length - 1 );
-		// out.close();
-	}
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
deleted file mode 100644
index 8b8b4d5..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (c) 2005, Joe Desbonnet (jdesbonnet@gmail.com).
-* Based on a direct translation of bsdiff utility by Colin Percival 
-* and available at http://www.daemonology.net/bsdiff/ under the 
-* same license.
-
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the <organization> nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
deleted file mode 100644
index 8235662..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-README file for JBDiff (Java Binary Diff) 
-Version: 0.1.1
-Release date: 1 Oct 2007
-
-JBDiff (Java Binary Diff) utility is a Java translation of the bsdiff (v4.2) utility 
-by Colin Percival. See http://www.daemonology.net/bsdiff/
-
-The file format is similar to, but currently not compatible with the bsdiff utility. 
-This is because bsdiff uses bzip2 for compression which is not available in the 
-standard Java libraries. Instead I use gzip (java.util.zip.*)
-
-The diff utility is very memory hungry. Attempting to diff very large files with 
-insufficient RAM may cause your computer to 'trash' (ie become unusably slow and may
-require a reset to recover). Comparing two 20MB files will take approx 80 seconds 
-on a 2GHz Pentium 4 and will require a maximum heap size of at least 220 MBytes. The
-maximum heap size can be specified using the -Xmx switch to the Java VM (see examples
-below). The patch utility has more modest resource requirements.
-
-EXAMPLES:
-
-To compare old.bin with new.bin and produce diff file new-old.diff:
-
-java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBDiff old.bin new.bin new-old.diff
-
-To patch old.bin with new-old.diff to produce new.bin:
-
-java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBPatch old.bin new.bin new-old.diff
-
-TODO:
-
-This first release is a rather blind port of the bsdiff utility. A vast bulk of
-the code ported to Java without any modification. There is scope 
-for optimization (the C bsdiff runs in approx 50% faster than JBDiff).
-
-Also it would be nice to be able to produce output that is compatible with bsdiff.
-I need a bzip2 library for that.
-
-Any suggestions, feedback and bugs will be much appreciated. Please email
-to joe@galway.net
-
-LICENSE:
-
-Now available under BSD license (previously GPL).
-
-CHANGES SINCE 0.1.0 RELEASE:
-
-Change of license from GPL v2 to BSD license.
-
-Joe Desbonnet
-jdesbonnet@gmail.com
-1 Oct 2007
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
deleted file mode 100644
index 54d5eaf..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ie.wombat.jbdiff;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * @author
- * @author Joe Desbonnet, joe@galway.net
- * 
- */
-public class Util {
-
-	// JBDiff extensions by Stefan.Liebig@compeople.de:
-	//
-	// - introduced a HEADER_SIZE constant here
-
-	/**
-	 * Length of the diff file header.
-	 */
-	public static final int HEADER_SIZE = 32;
-
-	/**
-	 * Equiv of C library memcmp().
-	 * 
-	 * @param s1
-	 * @param s1offset
-	 * @param s2
-	 * @param n
-	 * @return
-	 */
-	/*
-	 * public final static int memcmp(byte[] s1, int s1offset, byte[] s2, int
-	 * s2offset, int n) {
-	 * 
-	 * if ((s1offset + n) > s1.length) { n = s1.length - s1offset; } if
-	 * ((s2offset + n) > s2.length) { n = s2.length - s2offset; } for (int i =
-	 * 0; i < n; i++) { if (s1[i + s1offset] != s2[i + s2offset]) { return s1[i +
-	 * s1offset] < s2[i + s2offset] ? -1 : 1; } }
-	 * 
-	 * return 0; }
-	 */
-
-	/**
-	 * Equiv of C library memcmp().
-	 * 
-	 * @param s1
-	 * @param s1offset
-	 * @param s2
-	 * @param n
-	 * @return
-	 */
-	public final static int memcmp(byte[] s1, int s1Size, int s1offset,
-			byte[] s2, int s2Size, int s2offset) {
-
-		int n = s1Size - s1offset;
-
-		if (n > (s2Size - s2offset)) {
-			n = s2Size - s2offset;
-		}
-		for (int i = 0; i < n; i++) {
-			if (s1[i + s1offset] != s2[i + s2offset]) {
-				return s1[i + s1offset] < s2[i + s2offset] ? -1 : 1;
-			}
-		}
-
-		return 0;
-		// int n = s1.length - s1offset;
-		//
-		// if (n > (s2.length - s2offset)) {
-		// n = s2.length - s2offset;
-		// }
-		// for (int i = 0; i < n; i++) {
-		// if (s1[i + s1offset] != s2[i + s2offset]) {
-		// return s1[i + s1offset] < s2[i + s2offset] ? -1 : 1;
-		// }
-		// }
-		//
-		// return 0;
-	}
-
-	/**
-	 * Read from input stream and fill the given buffer from the given offset up
-	 * to length len.
-	 * 
-	 * @param in
-	 * @param buf
-	 * @param offset
-	 * @param len
-	 * @throws IOException
-	 */
-	public static final void readFromStream(InputStream in, byte[] buf,
-			int offset, int len) throws IOException {
-
-		int totalBytesRead = 0;
-		while (totalBytesRead < len) {
-			int bytesRead = in.read(buf, offset + totalBytesRead, len
-					- totalBytesRead);
-			if (bytesRead < 0) {
-				throw new IOException(
-						"Could not read expected number of bytes.");
-			}
-			totalBytesRead += bytesRead;
-		}
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
deleted file mode 100644
index dd65be1..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This library version is based on JBDiff (http://www.wombat.ie/software/jbdiff/downloads/jbdiff-0.1.1.tar.gz)
-which is also available under the OSI Approved :: BSD License (original)
-http://www.opensource.org/licenses/bsd-license.html
-
-Version 0.1.0.1
- - Extended interface so that it is not only file based and uses GZIP compressor for all data structures.
-
diff --git a/bundles/org.eclipse.equinox.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 28e367d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.project
+++ /dev/null
@@ -1,34 +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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c9dc95d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:29 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d1e9ee3..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Mon Nov 05 16:53:31 EST 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 900e4e1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,60 +0,0 @@
-#Mon Nov 05 16:53:31 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
deleted file mode 100644
index 2ca738d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +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: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.optimizers.Activator
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.app;version="1.0.0",
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.repository.helpers,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.repository,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor,
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.p2.artifact.repository
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.artifact.optimizers;x-friends:="org.eclipse.equinox.p2.artifact.processors",
- org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html b/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
deleted file mode 100644
index 48a852f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch b/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
deleted file mode 100644
index 65bf933..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/optimizer"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.6.0"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.artifact.optimizers.pack200optimizer&#13;&#10;-artifactRepository file:d:/prov/repo&#13;&#10;-console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:default,org.eclipse.core.runtime.compatibility.registry@default:default,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.eclipse.update.configurator@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="ie.wombat.jbdiff@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.optimizers@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.sar@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
deleted file mode 100644
index fe0fea6..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.0
-#  which accompanies this distribution, and is available at
-#  http://www.eclipse.org/legal/epl-v10.html
-# 
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox p2 Artifact Optimizers
-providerName = Eclipse.org - Equinox
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/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 ca7040f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *   IBM - ongoing development
- *******************************************************************************/
-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.artifact.processing.AbstractBufferingStep;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * The <code>AbstractDeltaDiffStep</code> is an abstract processing step that
- * retrieves a local artifact repository containing the serialized/encoded
- * artifact key. It assumes that the artifact key is stored within the data property
- * of the processing step descriptor and that is encoded with the <code>ArtifactKeySerializer</code>.
- */
-public abstract class AbstractDeltaStep extends AbstractBufferingStep {
-
-	protected IArtifactKey key;
-	protected IArtifactRepository repository;
-
-	public AbstractDeltaStep() {
-		this(null);
-	}
-
-	protected AbstractDeltaStep(IArtifactRepository repository) {
-		super();
-		this.repository = repository;
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		readArtifactKey(descriptor);
-	}
-
-	protected void readArtifactKey(ProcessingStepDescriptor descriptor) {
-		try {
-			key = ArtifactKey.parse(descriptor.getData());
-		} catch (IllegalArgumentException e) {
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Predecessor artifact key for delta could not be deserialized. Serialized key is " + descriptor.getData(), e));
-		}
-	}
-
-	protected File fetchPredecessor(ArtifactDescriptor descriptor) {
-		if (repository instanceof IFileArtifactRepository)
-			return ((IFileArtifactRepository) repository).getArtifactFile(descriptor);
-		File result = null;
-		OutputStream resultStream = null;
-		try {
-			try {
-				result = File.createTempFile(PREDECESSOR_ROOT, JAR_SUFFIX);
-				resultStream = new BufferedOutputStream(new FileOutputStream(result));
-				setStatus(repository.getArtifact(descriptor, resultStream, getProgressMonitor()));
-				return result;
-			} finally {
-				if (resultStream != null)
-					resultStream.close();
-			}
-		} catch (IOException e) {
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
deleted file mode 100644
index 4d0ea17..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.artifact.optimizers"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
deleted file mode 100644
index c6228cd..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *   IBM - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-public class VersionlessArtifactKey extends ArtifactKey {
-
-	public VersionlessArtifactKey(String classifier, String id) {
-		super(classifier, id, Version.emptyVersion);
-	}
-
-	public VersionlessArtifactKey(IArtifactKey base) {
-		super(base.getClassifier(), base.getId(), Version.emptyVersion);
-	}
-
-	public int hashCode() {
-		int hash = getId().hashCode();
-		hash = 17 * hash + getClassifier().hashCode();
-		return hash;
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof IArtifactKey))
-			return false;
-		IArtifactKey ak = (IArtifactKey) obj;
-		return ak.getId().equals(getId()) && ak.getClassifier().equals(getClassifier());
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
deleted file mode 100644
index c66d2a8..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.net.URI;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The optimizer <code>Application</code> for JBDiff based optimizations. 
- */
-public class Application implements IApplication {
-
-	private URI 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(URI location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		// nothing to do yet
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			//			if (args[i].equals("-pack"))
-			//				pack = true;
-
-			// check for args with parameters. If we are at the last argument or 
-			// if the next one has a '-' as the first character, then we can't have 
-			// an arg with a param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactRepositoryLocation = new URI(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 f26de9b..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
-*******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-/**
- * The JAR delta expects an input containing normal ".jar" data.   
- */
-public class JarDeltaOptimizerStep extends AbstractDeltaStep {
-
-	private File incoming;
-
-	protected JarDeltaOptimizerStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = optimize();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty optimized file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File optimize() throws IOException {
-		File predecessor = null;
-		try {
-			File resultFile = File.createTempFile(RESULT_ROOT, JAR_SUFFIX);
-			// get the predecessor and perform the optimization into a temp file
-			predecessor = fetchPredecessor(new ArtifactDescriptor(key));
-			new DeltaComputer(predecessor, incoming, resultFile).run();
-			return resultFile;
-		} finally {
-			// if we have a predecessor and it is our temp file then clean up the file
-			if (predecessor != null && predecessor.getAbsolutePath().indexOf(PREDECESSOR_ROOT) > -1)
-				predecessor.delete();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
deleted file mode 100644
index 233f9be..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - adaptation to JAR deltas and on-going development
-*******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-public class Optimizer {
-
-	private IArtifactRepository repository;
-	private int width;
-	private int depth;
-
-	private static final String JAR_DELTA_FORMAT = "jarDelta"; //$NON-NLS-1$
-	private static final String JAR_DELTA_PATCH_STEP = "org.eclipse.equinox.p2.processing.JarDeltaPatchStep"; //$NON-NLS-1$
-
-	private static final Comparator ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR = new ArtifactDescriptorVersionComparator();
-	private static final Comparator ARTIFACT_KEY_VERSION_COMPARATOR = new ArtifactKeyVersionComparator();
-
-	/**
-	 * This optimizer performs delta generation based on (currently) jbdiff. 
-	 * The optimization can be controlled with the ´width´ and the ´depth´ parameter.
-	 * ´width´ defines for how many ´related´ artifact keys a delta should be generated,
-	 * starting from the most up-to-date.
-	 * ´depth´ defines to how many predecessor a delta should be generated.
-	 * 
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the ´repository content´ can be viewed a two dimensional array, where the
-	 * artifact keys for the same component are in order of their version: 
-	 * <pre><code>
-	 *     w=1       w=2
-	 *      |        |
-	 *      | +------.------------+ d=2
-	 *      | | +----.---+ d=1    |
-	 *      | | |    |   |        v
-	 * [    v | |    v   v        v
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * E.g: with a ´width´ of one and a ´depth´ of two the optimizer would
-	 * create two deltas for component ´x´ from 1.5 to 2.0 and from 1.1 to 2.0.    
-	 * 
-	 * @param repository
-	 * @param width
-	 * @param depth
-	 */
-	public Optimizer(IArtifactRepository repository, int width, int depth) {
-		this.repository = repository;
-		this.width = width;
-		this.depth = depth;
-	}
-
-	public void run() {
-		System.out.println("Starting delta (jardelta) optimizations (width=" + width + ", depth=" + depth + ")");
-		IArtifactKey[][] keys = getSortedRelatedArtifactKeys(repository.getArtifactKeys());
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].length < 2)
-				// Nothing to diff here!
-				continue;
-			int minWidth = Math.min(width, keys[i].length);
-			for (int j = 0; j < minWidth; j++) {
-				IArtifactKey key = keys[i][j];
-				boolean isArchive = key.getClassifier().equals("plugin"); //$NON-NLS-1$
-				optimize(keys[i], key);
-			}
-		}
-		System.out.println("Done.");
-
-	}
-
-	private void optimize(IArtifactKey[] keys, IArtifactKey key) {
-		IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-		IArtifactDescriptor canonical = null;
-		for (int k = 0; k < descriptors.length; k++) {
-			IArtifactDescriptor descriptor = descriptors[k];
-			boolean optimized = false;
-			if (isCanonical(descriptor))
-				canonical = descriptor;
-			else
-				optimized |= isOptimized(descriptor);
-			if (!optimized)
-				optimize(canonical, keys);
-		}
-	}
-
-	private IArtifactKey getVersionlessKey(IArtifactKey key) {
-		return new ArtifactKey(key.getClassifier(), key.getId(), Version.emptyVersion);
-	}
-
-	/**
-	 * This method retrieves a list of list of IArtifactKeys. The artifact keys in the
-	 * list of artifact keys are all ´strongly related´ to each other such that are  
-	 * equal but not considering the versions. This list is sorted such that the 
-	 * newer versions are first in the list.<p>
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the result is than, e.g.
-	 * <pre><code>
-	 * [
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * @param artifactKeys
-	 * @return the sorted artifact keys
-	 */
-	private IArtifactKey[][] getSortedRelatedArtifactKeys(IArtifactKey[] artifactKeys) {
-		Map map = new HashMap();
-		for (int i = 0; i < artifactKeys.length; i++) {
-			IArtifactKey freeKey = getVersionlessKey(artifactKeys[i]);
-			List values = (List) map.get(freeKey);
-			if (values == null) {
-				values = new ArrayList();
-				map.put(freeKey, values);
-			}
-			values.add(artifactKeys[i]);
-		}
-		IArtifactKey[][] lists = new IArtifactKey[map.size()][];
-		int i = 0;
-		for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
-			List artifactKeyList = (List) iterator.next();
-			IArtifactKey[] relatedArtifactKeys = (IArtifactKey[]) artifactKeyList.toArray(new IArtifactKey[artifactKeyList.size()]);
-			Arrays.sort(relatedArtifactKeys, ARTIFACT_KEY_VERSION_COMPARATOR);
-			lists[i++] = relatedArtifactKeys;
-		}
-		int candidates = 0;
-		for (int ii = 0; ii < lists.length; ii++) {
-			for (int jj = 0; jj < lists[ii].length; jj++) {
-				System.out.println(lists[ii][jj] + ", ");
-			}
-			System.out.println("");
-			if (lists[ii].length > 1)
-				candidates++;
-		}
-		System.out.println("Candidates found: " + candidates);
-		return lists;
-	}
-
-	private void optimize(IArtifactDescriptor canonical, IArtifactKey[] relatedArtifactKeys) {
-		System.out.println("Optimizing " + canonical);
-
-		IArtifactDescriptor[] descriptors = getSortedCompletePredecessors(canonical.getArtifactKey(), relatedArtifactKeys);
-
-		int minDepth = Math.min(depth, descriptors.length);
-		for (int i = 0; i < minDepth; i++) {
-			System.out.println("\t with jar delta against " + descriptors[i].getArtifactKey());
-			String predecessorData = descriptors[i].getArtifactKey().toExternalForm();
-			ArtifactDescriptor newDescriptor = new ArtifactDescriptor(canonical);
-			ProcessingStepDescriptor patchStep = new ProcessingStepDescriptor(JAR_DELTA_PATCH_STEP, predecessorData, true);
-			ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {patchStep};
-			newDescriptor.setProcessingSteps(steps);
-			newDescriptor.setProperty(IArtifactDescriptor.FORMAT, JAR_DELTA_FORMAT);
-			OutputStream repositoryStream = null;
-			try {
-				repositoryStream = repository.getOutputStream(newDescriptor);
-
-				// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-				ProcessingStep optimizerStep = new JarDeltaOptimizerStep(repository);
-				optimizerStep.initialize(patchStep, newDescriptor);
-				ProcessingStepHandler handler = new ProcessingStepHandler();
-				OutputStream destination = handler.link(new ProcessingStep[] {optimizerStep}, repositoryStream, null);
-
-				// Do the actual work by asking the repo to get the artifact and put it in the destination.
-				IStatus status = repository.getArtifact(canonical, destination, new NullProgressMonitor());
-				if (!status.isOK()) {
-					System.out.println("Getting the artifact is not ok."); //$NON-NLS-1$
-					System.out.println(status);
-				}
-			} catch (ProvisionException e) {
-				System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-				System.out.println(e.getMessage());
-				e.printStackTrace();
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-						IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-						if (!status.isOK()) {
-							System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-							System.out.println(status.toString());
-						}
-					} catch (IOException e) {
-						System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-						System.out.println(e.getMessage());
-						e.printStackTrace();
-					}
-			}
-		}
-	}
-
-	private IArtifactDescriptor[] getSortedCompletePredecessors(IArtifactKey artifactKey, IArtifactKey[] relatedArtifactKeys) {
-		// get all artifact keys
-		List completeDescriptors = new ArrayList(relatedArtifactKeys.length);
-		for (int i = 0; i < relatedArtifactKeys.length; i++) {
-			// if we find ´our self´ skip
-			if (relatedArtifactKeys[i].equals(artifactKey))
-				continue;
-			// look for a complete artifact descriptor of the current key  
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(relatedArtifactKeys[i]);
-			for (int j = 0; j < descriptors.length; j++) {
-				if (isCanonical(descriptors[j])) {
-					completeDescriptors.add(descriptors[j]);
-					break;
-				}
-			}
-		}
-
-		IArtifactDescriptor[] completeSortedDescriptors = (IArtifactDescriptor[]) completeDescriptors.toArray(new IArtifactDescriptor[completeDescriptors.size()]);
-		// Sort, so to allow a depth lookup!
-		Arrays.sort(completeSortedDescriptors, ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR);
-		return completeSortedDescriptors;
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor) {
-		if (descriptor.getProcessingSteps().length != 1)
-			return false;
-		return JAR_DELTA_FORMAT.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being canonical!   
-		return descriptor.getProcessingSteps().length == 0;
-	}
-
-	static final class ArtifactDescriptorVersionComparator implements Comparator {
-		public int compare(Object artifactDescriptor0, Object artifactDescriptor1) {
-			return -1 * ((IArtifactDescriptor) artifactDescriptor0).getArtifactKey().getVersion().compareTo(((IArtifactDescriptor) artifactDescriptor1).getArtifactKey().getVersion());
-		}
-	}
-
-	static final class ArtifactKeyVersionComparator implements Comparator {
-		public int compare(Object artifactKey0, Object artifactKey1) {
-			return -1 * ((IArtifactKey) artifactKey0).getVersion().compareTo(((IArtifactKey) artifactKey1).getVersion());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
deleted file mode 100644
index c5289ea..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import java.net.URI;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The optimizer <code>Application</code> for JBDiff based optimizations. 
- */
-public class Application implements IApplication {
-
-	private URI 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(URI location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		// nothing to do yet
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			//			if (args[i].equals("-pack"))
-			//				pack = true;
-
-			if (args[i].equals("-nosar")) //$NON-NLS-1$
-				nosar = true;
-
-			// check for args with parameters. If we are at the last argument or 
-			// if the next one has a '-' as the first character, then we can't have 
-			// an arg with a param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactRepositoryLocation = new URI(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 63fca12..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.*;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-/**
- *
- */
-public class JBDiffStep extends AbstractDeltaStep {
-
-	public JBDiffStep() {
-		super();
-	}
-
-	// TODO We need a different way of injecting the base artifacts.  This approach forces
-	// the target and base to live in the same repo.  Typical but not really required.
-	protected JBDiffStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		return new DirectByteArrayOutputStream();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] diff = JBDiff.bsdiff(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(diff), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, result, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java
deleted file mode 100644
index 31ab41b..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-public class JBDiffZipStep extends JBDiffStep {
-
-	public JBDiffZipStep() {
-		super();
-	}
-
-	// TODO We need a different way of injecting the base artifacts.  This approach forces
-	// the target and base to live in the same repo.  Typical but not really required.
-	protected JBDiffZipStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream sarredCurrent = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(((DirectByteArrayOutputStream) incomingStream).getInputStream(), sarredCurrent);
-		incomingStream = null;
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		byte[] diff = JBDiff.bsdiff(predecessor.getBuffer(), predecessor.getBufferLength(), sarredCurrent.getBuffer(), sarredCurrent.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		incomingStream = null;
-		sarredCurrent = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(diff), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-
-		setStatus(repository.getArtifact(artifactDescriptor, zippedPredecessor, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(zippedPredecessor.getInputStream(), result);
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
deleted file mode 100644
index 33b5056..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.VersionlessArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-public class Optimizer {
-
-	private IArtifactRepository repository;
-	private int width;
-	private int depth;
-	private boolean nosar;
-
-	private static final String JBPATCH_STEP_ID = "org.eclipse.equinox.p2.repository.JBPatchStep"; //$NON-NLS-1$
-	private static final String JBPATCH_STEP_ZIP_ID = "org.eclipse.equinox.p2.repository.JBPatchZipStep"; //$NON-NLS-1$
-
-	private static final Comparator ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR = new ArtifactDescriptorVersionComparator();
-	private static final Comparator ARTIFACT_KEY_VERSION_COMPARATOR = new ArtifactKeyVersionComparator();
-
-	/**
-	 * This optimizer performs delta generation based on (currently) jbdiff. 
-	 * The optimization can be controlled with the ´width´ and the ´depth´ parameter.
-	 * ´width´ defines for how many ´related´ artifact keys a delta should be generated,
-	 * starting from the most up-to-date.
-	 * ´depth´ defines to how many predecessor a delta should be generated.
-	 * 
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the ´repository content´ can be viewed a two dimensional array, where the
-	 * artifact keys for the same component are in order of their version: 
-	 * <pre><code>
-	 *     w=1       w=2
-	 *      |        |
-	 *      | +------.------------+ d=2
-	 *      | | +----.---+ d=1    |
-	 *      | | |    |   |        v
-	 * [    v | |    v   v        v
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * E.g: with a ´width´ of one and a ´depth´ of two the optimizer would
-	 * create two deltas for component ´x´ from 1.5 to 2.0 and from 1.1 to 2.0.    
-	 * 
-	 * @param repository
-	 * @param width
-	 * @param depth
-	 * @param nosar 
-	 */
-	public Optimizer(IArtifactRepository repository, int width, int depth, boolean nosar) {
-		this.repository = repository;
-		this.width = width;
-		this.depth = depth;
-		this.nosar = nosar;
-	}
-
-	public void run() {
-		System.out.println("Starting delta (jbdiff) optimizations (width=" + width + ", depth=" + depth + ", nosar=" + nosar + ")");
-		IArtifactKey[][] keys = getSortedRelatedArtifactKeys(repository.getArtifactKeys());
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].length < 2)
-				// Nothing to diff here!
-				continue;
-			int minWidth = Math.min(width, keys[i].length);
-			for (int j = 0; j < minWidth; j++) {
-				IArtifactKey key = keys[i][j];
-				boolean isArchive = key.getClassifier().equals("plugin"); //$NON-NLS-1$
-				String proposedStrategy = isArchive && !nosar ? JBPATCH_STEP_ZIP_ID : JBPATCH_STEP_ID;
-				optimize(keys[i], key, proposedStrategy);
-			}
-		}
-		System.out.println("Done.");
-
-	}
-
-	private void optimize(IArtifactKey[] keys, IArtifactKey key, String proposedStrategy) throws OutOfMemoryError {
-		boolean retry;
-		do {
-			retry = false;
-			try {
-				IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-				IArtifactDescriptor complete = null;
-				for (int k = 0; k < descriptors.length; k++) {
-					IArtifactDescriptor descriptor = descriptors[k];
-					if (isCanonical(descriptor))
-						complete = descriptor;
-					else if (isOptimized(descriptor, proposedStrategy)) {
-						proposedStrategy = null;
-						break;
-					}
-				}
-				if (proposedStrategy != null && complete != null)
-					optimize(complete, proposedStrategy, keys);
-			} catch (OutOfMemoryError e) {
-				if (JBPATCH_STEP_ID.equals(proposedStrategy))
-					throw e;
-				proposedStrategy = JBPATCH_STEP_ID;
-				System.out.println("Retry with " + proposedStrategy);
-				retry = true;
-			}
-		} while (retry);
-	}
-
-	/**
-	 * This method retrieves a list of list of IArtifactKeys. The artifact keys in the
-	 * list of artifact keys are all ´strongly related´ to each other such that are  
-	 * equal but not considering the versions. This list is sorted such that the 
-	 * newer versions are first in the list.<p>
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the result is than, e.g.
-	 * <pre><code>
-	 * [
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * @param artifactKeys
-	 * @return the sorted artifact keys
-	 */
-	private IArtifactKey[][] getSortedRelatedArtifactKeys(IArtifactKey[] artifactKeys) {
-		Map map = new HashMap();
-		for (int i = 0; i < artifactKeys.length; i++) {
-			IArtifactKey freeKey = new VersionlessArtifactKey(artifactKeys[i]);
-			List values = (List) map.get(freeKey);
-			if (values == null) {
-				values = new ArrayList();
-				map.put(freeKey, values);
-			}
-			values.add(artifactKeys[i]);
-		}
-		IArtifactKey[][] lists = new IArtifactKey[map.size()][];
-		int i = 0;
-		for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
-			List artifactKeyList = (List) iterator.next();
-			IArtifactKey[] relatedArtifactKeys = (IArtifactKey[]) artifactKeyList.toArray(new IArtifactKey[artifactKeyList.size()]);
-			Arrays.sort(relatedArtifactKeys, ARTIFACT_KEY_VERSION_COMPARATOR);
-			lists[i++] = relatedArtifactKeys;
-		}
-		int candidates = 0;
-		for (int ii = 0; ii < lists.length; ii++) {
-			for (int jj = 0; jj < lists[ii].length; jj++) {
-				System.out.println(lists[ii][jj] + ", ");
-			}
-			System.out.println("");
-			if (lists[ii].length > 1)
-				candidates++;
-		}
-		System.out.println("Candidates found: " + candidates);
-		return lists;
-	}
-
-	private void optimize(IArtifactDescriptor complete, String strategy, IArtifactKey[] relatedArtifactKeys) {
-		System.out.println("Optimizing " + complete);
-
-		IArtifactDescriptor[] descriptors = getSortedCompletePredecessors(complete.getArtifactKey(), relatedArtifactKeys);
-
-		int minDepth = Math.min(depth, descriptors.length);
-		for (int i = 0; i < minDepth; i++) {
-
-			System.out.println("\t with " + strategy + " against " + descriptors[i].getArtifactKey());
-			String predecessorData = descriptors[i].getArtifactKey().toExternalForm();
-			ArtifactDescriptor newDescriptor = new ArtifactDescriptor(complete);
-			ProcessingStepDescriptor patchStep = new ProcessingStepDescriptor(strategy, predecessorData, true);
-			ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {patchStep};
-			newDescriptor.setProcessingSteps(steps);
-			newDescriptor.setProperty(IArtifactDescriptor.FORMAT, strategy);
-			OutputStream repositoryStream = null;
-			try {
-				repositoryStream = repository.getOutputStream(newDescriptor);
-
-				// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-				ProcessingStep diffStep = getProcessingStep(strategy);
-				diffStep.initialize(patchStep, newDescriptor);
-				ProcessingStepHandler handler = new ProcessingStepHandler();
-				OutputStream destination = handler.link(new ProcessingStep[] {diffStep}, repositoryStream, null);
-
-				// Do the actual work by asking the repo to get the artifact and put it in the destination.
-				IStatus status = repository.getArtifact(complete, destination, new NullProgressMonitor());
-				if (!status.isOK()) {
-					System.out.println("Getting the artifact is not ok."); //$NON-NLS-1$
-					System.out.println(status);
-				}
-			} catch (ProvisionException e) {
-				System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-				System.out.println(e.getMessage());
-				e.printStackTrace();
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-						IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-						if (!status.isOK()) {
-							System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-							System.out.println(status.toString());
-						}
-					} catch (IOException e) {
-						System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-						System.out.println(e.getMessage());
-						e.printStackTrace();
-					}
-			}
-		}
-	}
-
-	private ProcessingStep getProcessingStep(String strategy) {
-		if (strategy.equals(JBPATCH_STEP_ID))
-			return new JBDiffStep(repository);
-		return new JBDiffZipStep(repository);
-	}
-
-	private IArtifactDescriptor[] getSortedCompletePredecessors(IArtifactKey artifactKey, IArtifactKey[] relatedArtifactKeys) {
-		// get all artifact keys
-		List completeDescriptors = new ArrayList(relatedArtifactKeys.length);
-		for (int i = 0; i < relatedArtifactKeys.length; i++) {
-			// if we find ´our self´ skip
-			if (relatedArtifactKeys[i].equals(artifactKey))
-				continue;
-			// look for a complete artifact descriptor of the current key  
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(relatedArtifactKeys[i]);
-			for (int j = 0; j < descriptors.length; j++) {
-				if (isCanonical(descriptors[j])) {
-					completeDescriptors.add(descriptors[j]);
-					break;
-				}
-			}
-		}
-
-		IArtifactDescriptor[] completeSortedDescriptors = (IArtifactDescriptor[]) completeDescriptors.toArray(new IArtifactDescriptor[completeDescriptors.size()]);
-		// Sort, so to allow a depth lookup!
-		Arrays.sort(completeSortedDescriptors, ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR);
-		return completeSortedDescriptors;
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor, String stepId) {
-		if (descriptor.getProcessingSteps().length != 1)
-			return false;
-		return stepId.equals(descriptor.getProcessingSteps()[0].getProcessorId());
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being complete!   
-		return descriptor.getProcessingSteps().length == 0;
-	}
-
-	static final class ArtifactDescriptorVersionComparator implements Comparator {
-		public int compare(Object artifactDescriptor0, Object artifactDescriptor1) {
-			return -1 * ((IArtifactDescriptor) artifactDescriptor0).getArtifactKey().getVersion().compareTo(((IArtifactDescriptor) artifactDescriptor1).getArtifactKey().getVersion());
-		}
-	}
-
-	static final class ArtifactKeyVersionComparator implements Comparator {
-		public int compare(Object artifactKey0, Object artifactKey1) {
-			return -1 * ((IArtifactKey) artifactKey0).getVersion().compareTo(((IArtifactKey) artifactKey1).getVersion());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
deleted file mode 100644
index f6ddeb6..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import java.net.URI;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-public class Application implements IApplication {
-	//Application return code
-	private static final Integer NON_WRITTABLE_REPOSITORY = new Integer(-1);
-
-	//Application arguments
-	private static final String ARTIFACT_REPOSITORY_ARG = "-artifactRepository"; //$NON-NLS-1$
-	private static final String ARTIFACT_REPOSITORY_SHORT_ARG = "-ar"; //$NON-NLS-1$
-
-	private URI artifactRepositoryLocation;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args")); //$NON-NLS-1$
-		IArtifactRepository repository = setupRepository(artifactRepositoryLocation);
-		if (!repository.isModifiable())
-			return NON_WRITTABLE_REPOSITORY;
-		new Optimizer(repository).run();
-		return null;
-	}
-
-	private IArtifactRepository setupRepository(URI location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		//nothing to do
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args with parameters. If we are at the last argument or 
-			// if the next one has a '-' as the first character, then we can't have 
-			// an arg with a param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_ARG) || args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_SHORT_ARG))
-				artifactRepositoryLocation = new URI(arg);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
deleted file mode 100644
index 85dc7fa..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.messages"; //$NON-NLS-1$
-	public static String failed_getting_artifact;
-	public static String skip_optimization;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
deleted file mode 100644
index e2fa5ac..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.osgi.util.NLS;
-
-public class Optimizer {
-	private static final String PACKED_FORMAT = "packed"; //$NON-NLS-1$
-	private IArtifactRepository repository;
-
-	public Optimizer(IArtifactRepository repository) {
-		this.repository = repository;
-	}
-
-	public void run() {
-		IArtifactKey[] keys = repository.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			IArtifactKey key = keys[i];
-			if (!key.getClassifier().equals("plugin")) //$NON-NLS-1$
-				continue;
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-			IArtifactDescriptor canonical = null;
-			boolean optimized = false;
-			for (int j = 0; j < descriptors.length; j++) {
-				IArtifactDescriptor descriptor = descriptors[j];
-				if (isCanonical(descriptor))
-					canonical = descriptor;
-				optimized |= isOptimized(descriptor);
-			}
-			if (!optimized)
-				optimize(canonical);
-		}
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being complete!
-		String format = descriptor.getProperty(IArtifactDescriptor.FORMAT);
-		if (format == null)
-			return true;
-		return false;
-	}
-
-	private void optimize(IArtifactDescriptor descriptor) {
-		ArtifactDescriptor newDescriptor = new ArtifactDescriptor(descriptor);
-		ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)}; //$NON-NLS-1$
-		newDescriptor.setProcessingSteps(steps);
-		newDescriptor.setProperty(IArtifactDescriptor.FORMAT, PACKED_FORMAT);
-		OutputStream repositoryStream = null;
-		try {
-			repositoryStream = repository.getOutputStream(newDescriptor);
-
-			// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-			ProcessingStepHandler handler = new ProcessingStepHandler();
-			OutputStream destination = handler.link(new ProcessingStep[] {new Pack200OptimizerStep()}, repositoryStream, null);
-
-			// Do the actual work by asking the repo to get the artifact and put it in the destination.
-			IStatus status = repository.getArtifact(descriptor, destination, new NullProgressMonitor());
-			if (!status.isOK()) {
-				System.out.println(NLS.bind(Messages.failed_getting_artifact, descriptor.getArtifactKey()));
-				System.out.println(status);
-			}
-		} catch (ProvisionException e) {
-			System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-			System.out.println(e.getMessage());
-			e.printStackTrace();
-		} finally {
-			if (repositoryStream != null)
-				try {
-					repositoryStream.close();
-					IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-					if (!status.isOK()) {
-						System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-						System.out.println(status.toString());
-					}
-				} catch (IOException e) {
-					System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-					System.out.println(e.getMessage());
-					e.printStackTrace();
-				}
-		}
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor) {
-		return PACKED_FORMAT.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
deleted file mode 100644
index f950b5d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.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.Activator;
-import org.eclipse.equinox.internal.p2.artifact.processing.AbstractBufferingStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor.Options;
-
-/**
- * The Pack200Packer expects an input containing normal ".jar" data.   
- */
-public class Pack200OptimizerStep extends AbstractBufferingStep {
-	private static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$
-	private File incoming;
-	private static boolean pack200Available;
-
-	static {
-		try {
-			// TODO This is not very elegant. But there is currently no other way to 
-			//      find it out. PackStep.canPack() is not visible due to restrictions.
-			JarProcessor.getPackProcessor(null);
-			pack200Available = true;
-		} catch (UnsupportedOperationException e) {
-			pack200Available = false;
-		}
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = process();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty intermediate file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File process() throws IOException {
-		if (!pack200Available)
-			// TODO Slightly abused API!!
-			throw new FileNotFoundException("Could not find pack200 command.");
-		// unpack
-		Options options = new Options();
-		options.pack = true;
-		// TODO use false here assuming that all content is conditioned.  Need to revise this
-		options.processAll = false;
-		options.input = incoming;
-		options.outputDir = getWorkDir().getPath();
-		options.verbose = true;
-		new JarProcessorExecutor().runJarProcessor(options);
-		return new File(getWorkDir(), incoming.getName() + PACKED_SUFFIX);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
deleted file mode 100644
index 4970a32..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-#  Copyright (c) 2008 IBM Corporation and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.0
-#  which accompanies this distribution, and is available at
-#  http://www.eclipse.org/legal/epl-v10.html
-# 
-#  Contributors:
-#      IBM Corporation - initial API and implementation
-###############################################################################
-failed_getting_artifact=Failed getting the artifact {0}.
-skip_optimization=Skipping optimization of {0}. 
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath b/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.project b/bundles/org.eclipse.equinox.p2.artifact.processors/.project
deleted file mode 100644
index 88c78e7..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.project
+++ /dev/null
@@ -1,34 +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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c973c13..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:38 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b503d85..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue Nov 06 20:46:54 EST 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 57ebea5..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Nov 05 21:23:42 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
deleted file mode 100644
index 8866bff..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: 1.0.100.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,
- org.eclipse.equinox.p2.artifact.repository
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.internal.p2.artifact.optimizers,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.jarprocessor,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor
-Bundle-Vendor: %providerName
-Export-Package: org.eclipse.equinox.internal.p2.artifact.processors;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jardelta;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;x-internal:=true
-Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.processors.Activator
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/about.html b/bundles/org.eclipse.equinox.p2.artifact.processors/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties b/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
deleted file mode 100644
index ad40ab4..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties b/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
deleted file mode 100644
index 9bb3b44..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.0
-#  which accompanies this distribution, and is available at
-#  http://www.eclipse.org/legal/epl-v10.html
-# 
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox p2 Artifact Processing Support
-providerName = Eclipse.org - Equinox
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 2b08361..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
+++ /dev/null
@@ -1,19 +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.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>
-</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 e4369e0..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 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.equinox.internal.provisional.p2.repository.IRepositoryManager;
-
-import java.net.URI;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The <code>AbstractDeltaPatchStep</code> is an abstract processing step that
- * retrieves a local artifact repository containing the serialized/encoded
- * artifact key. It assumes that the artifact key is stored within the data property
- * of the processing step descriptor encoding the artifact key of the base artifact.
- */
-public abstract class AbstractDeltaProcessorStep extends AbstractDeltaStep {
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		if (!getStatus().isOK())
-			return;
-		fetchLocalArtifactRepository();
-	}
-
-	/**
-	 * Fetch a local artifact repository containing the fetched artifact key.
-	 */
-	private void fetchLocalArtifactRepository() {
-		if (repository != null)
-			return;
-		IArtifactRepositoryManager repoMgr = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (repoMgr == null) {
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Could not get artifact repository manager."));
-			return;
-		}
-
-		URI[] repositories = repoMgr.getKnownRepositories(IRepositoryManager.REPOSITORIES_LOCAL);
-		for (int i = 0; i < repositories.length; i++) {
-			try {
-				IArtifactRepository currentRepo = repoMgr.loadRepository(repositories[i], null);
-				if (currentRepo.contains(key)) {
-					repository = currentRepo;
-					return;
-				}
-			} catch (ProvisionException e) {
-				//just skip unreadable repositories
-			}
-		}
-		setStatus(new Status(IStatus.ERROR, Activator.ID, "No repository available containing key " + key));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
deleted file mode 100644
index f11af99..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.artifact.processors;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.artifact.processors"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
deleted file mode 100644
index d5f4d16..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jardelta;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-
-public class DeltaApplier {
-	private static final String DELETE_SUFFIX = ".delete"; //$NON-NLS-1$
-	private static final String MANIFEST_ENTRY_NAME = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
-	private File delta;
-	private File base;
-	private File destination;
-	private ZipFile baseJar;
-	private ZipFile deltaJar;
-	private Set baseEntries;
-	private ZipFile manifestJar;
-
-	public DeltaApplier(File base, File delta, File destination) {
-		this.base = base;
-		this.delta = delta;
-		this.destination = destination;
-	}
-
-	public void run() {
-		try {
-			if (!openJars())
-				return;
-			applyDelta();
-			writeResult();
-		} finally {
-			closeJars();
-		}
-	}
-
-	private void applyDelta() {
-		// start out assuming that all the base entries will be moved over.  
-		baseEntries = getEntries(baseJar);
-		// remove from the base all the entries that appear in the delta
-		for (Enumeration e = deltaJar.entries(); e.hasMoreElements();) {
-			ZipEntry entry = ((ZipEntry) e.nextElement());
-			checkForManifest(entry, deltaJar);
-			String name = entry.getName();
-			if (name.endsWith(DELETE_SUFFIX)) {
-				name = name.substring(0, name.length() - DELETE_SUFFIX.length());
-				// if the manifest is being deleted, forget anyone who might have a manifest
-				if (name.equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-					manifestJar = null;
-			}
-			baseEntries.remove(name);
-		}
-	}
-
-	private void writeResult() {
-		ZipOutputStream result = null;
-		try {
-			try {
-				result = new ZipOutputStream(new FileOutputStream(destination));
-				// if the delta includes the manifest, be sure to write it first
-				if (manifestJar != null)
-					writeEntry(result, manifestJar.getEntry(MANIFEST_ENTRY_NAME), manifestJar, true);
-				// write out the things we know are staying from the base JAR
-				for (Iterator i = baseEntries.iterator(); i.hasNext();) {
-					ZipEntry entry = baseJar.getEntry((String) i.next());
-					writeEntry(result, entry, baseJar, false);
-				}
-				// write out the changes/additions from the delta.
-				for (Enumeration e = deltaJar.entries(); e.hasMoreElements();) {
-					ZipEntry entry = (ZipEntry) e.nextElement();
-					if (!entry.getName().endsWith(DELETE_SUFFIX))
-						writeEntry(result, entry, deltaJar, false);
-				}
-			} finally {
-				if (result != null)
-					result.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private void writeEntry(ZipOutputStream result, ZipEntry entry, ZipFile sourceJar, boolean manifest) throws IOException {
-		if (!manifest && entry.getName().equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-			return;
-		// add the entry
-		result.putNextEntry(entry);
-		try {
-			// if there is a sourceJar copy over the content for the entry into the result
-			if (sourceJar != null) {
-				InputStream contents = sourceJar.getInputStream(entry);
-				try {
-					transferStreams(contents, result);
-				} finally {
-					contents.close();
-				}
-			}
-		} finally {
-			result.closeEntry();
-		}
-	}
-
-	/**
-	 * Transfers all available bytes from the given input stream to the given
-	 * output stream. Does not close either stream.
-	 * 
-	 * @param source
-	 * @param destination
-	 * @throws IOException
-	 */
-	public static void transferStreams(InputStream source, OutputStream destination) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			destination.flush();
-		}
-	}
-
-	private boolean openJars() {
-		try {
-			baseJar = new ZipFile(base);
-			deltaJar = new ZipFile(delta);
-		} catch (IOException e) {
-			return false;
-		}
-		return true;
-	}
-
-	private void closeJars() {
-		if (baseJar != null)
-			try {
-				baseJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		if (deltaJar != null)
-			try {
-				deltaJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-	}
-
-	private Set getEntries(ZipFile jar) {
-		HashSet result = new HashSet(jar.size());
-		for (Enumeration e = jar.entries(); e.hasMoreElements();) {
-			ZipEntry entry = (ZipEntry) e.nextElement();
-			checkForManifest(entry, jar);
-			result.add(entry.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Check to see if the given entry is the manifest.  If so, remember it for use when writing
-	 * the resultant JAR.
-	 * @param entry
-	 * @param jar
-	 */
-	private void checkForManifest(ZipEntry entry, ZipFile jar) {
-		if (entry.getName().equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-			manifestJar = jar;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
deleted file mode 100644
index 42dda53..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jardelta;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.processors.AbstractDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.artifact.processors.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * Processor that takes a JAR delta and applies it.
- */
-public class JarDeltaProcessorStep extends AbstractDeltaProcessorStep {
-
-	private File incoming;
-
-	public JarDeltaProcessorStep() {
-		super();
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = process();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty optimized file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File process() throws IOException {
-		File predecessor = null;
-		try {
-			File resultFile = File.createTempFile(RESULT_ROOT, JAR_SUFFIX);
-			// get the predecessor and perform the optimization into a temp file
-			predecessor = fetchPredecessor(new ArtifactDescriptor(key));
-			new DeltaApplier(predecessor, incoming, resultFile).run();
-			return resultFile;
-		} finally {
-			// if we have a predecessor and it is our temp file then clean up the file
-			if (predecessor != null && predecessor.getAbsolutePath().indexOf(PREDECESSOR_ROOT) > -1)
-				predecessor.delete();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java
deleted file mode 100644
index 9ae9b2f..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;
-
-import ie.wombat.jbdiff.JBPatch;
-import java.io.*;
-import org.eclipse.equinox.internal.p2.artifact.processors.AbstractDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * The JBPatchStep patches a JBDiff based data.   
- */
-public class JBPatchStep extends AbstractDeltaProcessorStep {
-
-	public JBPatchStep() {
-		super();
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		return new DirectByteArrayOutputStream();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] result = JBPatch.bspatch(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(result), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, result, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java
deleted file mode 100644
index 876a7e9..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, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;
-
-import ie.wombat.jbdiff.JBPatch;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * The <code>JBPatchZipStep</code> patches a JBDiff based diff of zips/jars.   
- */
-public class JBPatchZipStep extends JBPatchStep {
-
-	public JBPatchZipStep() {
-		super();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] result = JBPatch.bspatch(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		SarUtil.sarToZip(new ByteArrayInputStream(result), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, zippedPredecessor, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(zippedPredecessor.getInputStream(), result);
-		return result;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/.classpath b/bundles/org.eclipse.equinox.p2.sar/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.sar/.project b/bundles/org.eclipse.equinox.p2.sar/.project
deleted file mode 100644
index 594de5f..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.project
+++ /dev/null
@@ -1,34 +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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 24d9b4c..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,330 +0,0 @@
-#Fri Feb 22 11:10:10 EST 2008
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
deleted file mode 100644
index 0c96af2..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Sar Plug-in
-Bundle-SymbolicName: org.eclipse.equinox.p2.sar;singleton:=true
-Bundle-Version: 0.1.0
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Export-Package: org.eclipse.equinox.internal.p2.sar;x-friends:="org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.processors"
diff --git a/bundles/org.eclipse.equinox.p2.sar/about.html b/bundles/org.eclipse.equinox.p2.sar/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/build.properties b/bundles/org.eclipse.equinox.p2.sar/build.properties
deleted file mode 100644
index ad40ab4..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
deleted file mode 100644
index a8cc7f6..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-/**
- * The DirectByteArrayOutputStream discloses its guts (internal byte buffer and
- * byte buffer length) to avoid unnecessary allocation of byte arrays usually
- * involved with toByteArray().
- */
-public class DirectByteArrayOutputStream extends ByteArrayOutputStream {
-
-	/**
-	 * Creates a new direct byte array output stream. The buffer capacity is
-	 * initially as defined by super class.
-	 */
-	public DirectByteArrayOutputStream() {
-		super();
-	}
-
-	/**
-	 * Creates a new byte array output stream, with a buffer capacity of the
-	 * specified size, in bytes.
-	 * 
-	 * @param size
-	 *            the initial size.
-	 * @throws IllegalArgumentException
-	 *             if size is negative.
-	 */
-	public DirectByteArrayOutputStream(int size) {
-		super(size);
-	}
-
-	/**
-	 * Return the actual internal byte buffer.
-	 * 
-	 * @return internal byte buffer
-	 */
-	public final byte[] getBuffer() {
-		return super.buf;
-	}
-
-	/**
-	 * Return the actual length of the internal byte buffer.
-	 * 
-	 * @return actual length of the buffer
-	 */
-	public final int getBufferLength() {
-		return super.count;
-	}
-
-	/**
-	 * Return an input stream containing all the (shared) bytes this output
-	 * stream has already consumed.
-	 * 
-	 * @return ByteArrayInputStream
-	 */
-	public ByteArrayInputStream getInputStream() {
-		return new ByteArrayInputStream(super.buf, 0, super.count);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
deleted file mode 100644
index 1dcbb4d..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-/**
- * Sar constants
- */
-public interface SarConstants {
-
-	/** <code>SARFILE_MARKER</code> */
-	String SARFILE_MARKER = "SarFile"; //$NON-NLS-1$
-
-	/** <code>SARFILE_VERSION</code> */
-	int SARFILE_VERSION = 2;
-
-	/**
-	 * Comment for <code>DEFAULT_ENCODING</code>
-	 */
-	String DEFAULT_ENCODING = "UTF-8"; //$NON-NLS-1$
-
-	/**
-	 * Debug
-	 */
-	boolean DEBUG = false;
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
deleted file mode 100644
index 0de0b4b..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.zip.ZipEntry;
-
-/**
- * A SarEntry is the header information for an entry within a
- * org.eclipse.equinox.p2.sar stream.<br>
- * <b>Note: </b>The setTime() and getTime() methods of ZipEntry (our super
- * class) perform time zone dependent (!) conversions. For our serialization and
- * deserialization the stored time has to be time zone neutral. Therefore it is
- * necessary to invert those calculations. This is also the reason for
- * duplicating the javaToDosTime() and dosToJavaTime() methods.
- */
-public class SarEntry extends ZipEntry {
-
-	private boolean isEof;
-	private boolean isZip;
-
-	/**
-	 * The name of the eof org.eclipse.equinox.p2.sar entry.
-	 */
-	private static final String EOF_ENTRY_NAME = "<eof-org.eclipse.equinox.p2.sar>"; //$NON-NLS-1$
-
-	private static final boolean DEBUG = SarConstants.DEBUG;
-
-	/**
-	 * Creates an eof org.eclipse.equinox.p2.sar entry
-	 */
-	public SarEntry() {
-		super(EOF_ENTRY_NAME);
-		setMethod(ZipEntry.DEFLATED);
-		this.isEof = true;
-		this.isZip = false;
-	}
-
-	/**
-	 * @param zipEntry
-	 */
-	public SarEntry(ZipEntry zipEntry) {
-		super(zipEntry);
-		this.isZip = false;
-		this.isEof = false;
-	}
-
-	/**
-	 * @param zipEntry
-	 * @param isZip
-	 */
-	public SarEntry(ZipEntry zipEntry, boolean isZip) {
-		super(zipEntry);
-		this.isZip = isZip;
-		this.isEof = false;
-	}
-
-	/**
-	 * @param sarInputStream
-	 * @throws IOException
-	 */
-	public SarEntry(SarInputStream sarInputStream) throws IOException {
-		// read name!
-		super(sarInputStream.readString());
-
-		String comment = sarInputStream.readString();
-		long compressedSize = sarInputStream.readLong();
-		long crc = sarInputStream.readLong();
-		byte[] extra = sarInputStream.readBytes();
-		int method = sarInputStream.readInt();
-		long size = sarInputStream.readLong();
-		long dosTime = sarInputStream.readLong();
-		boolean isEof = sarInputStream.readBoolean();
-		boolean isZip = sarInputStream.readBoolean();
-
-		if (DEBUG) {
-			System.out.println(getName() + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + dosTime + "," + isEof + "," + isZip);
-		}
-
-		if (method == ZipEntry.STORED) {
-			setCompressedSize(compressedSize);
-			setCrc(crc);
-			setSize(size);
-		}
-
-		setComment(comment);
-		setExtra(extra);
-		setMethod(method);
-		setTime(dosToJavaTime(dosTime));
-		setEof(isEof);
-		setZip(isZip);
-	}
-
-	/**
-	 * @param sarOutputStream
-	 * @throws IOException
-	 */
-	public void writeTo(SarOutputStream sarOutputStream) throws IOException {
-		String comment = this.getComment();
-		long compressedSize = this.getCompressedSize();
-		long crc = this.getCrc();
-		byte[] extra = this.getExtra();
-		int method = this.getMethod();
-		String name = this.getName();
-		long size = this.getSize();
-		long dosTime = javaToDosTime(this.getTime());
-		boolean isZip = this.isZip();
-		boolean isEof = this.isEof();
-
-		if (DEBUG) {
-			System.out.println(name + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + dosTime + "," + isEof + "," + isZip);
-		}
-
-		sarOutputStream.writeString(name);
-		sarOutputStream.writeString(comment);
-		sarOutputStream.writeLong(compressedSize);
-		sarOutputStream.writeLong(crc);
-		sarOutputStream.writeBytes(extra);
-		sarOutputStream.writeInt(method);
-		sarOutputStream.writeLong(size);
-		sarOutputStream.writeLong(dosTime);
-		sarOutputStream.writeBool(isEof);
-		sarOutputStream.writeBool(isZip);
-	}
-
-	/**
-	 * Is this the eof org.eclipse.equinox.p2.sar entry?
-	 * 
-	 * @return the answer
-	 */
-	public boolean isEof() {
-		return isEof;
-	}
-
-	private void setEof(boolean isEof) {
-		this.isEof = isEof;
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean isZip() {
-		return isZip;
-	}
-
-	/**
-	 * @param isZip
-	 */
-	private void setZip(boolean isZip) {
-		this.isZip = isZip;
-	}
-
-	/*
-	 * Converts DOS time to Java time (number of milliseconds since epoch).
-	 */
-	public final static long dosToJavaTime(long dtime) {
-		GregorianCalendar cal = new GregorianCalendar((int) (((dtime >> 25) & 0x7f) + 80) + 1900, (int) (((dtime >> 21) & 0x0f) - 1), (int) ((dtime >> 16) & 0x1f), (int) ((dtime >> 11) & 0x1f), (int) ((dtime >> 5) & 0x3f), (int) ((dtime << 1) & 0x3e));
-		return cal.getTime().getTime();
-	}
-
-	/*
-	 * Converts Java time to DOS time.
-	 */
-	public final static long javaToDosTime(long time) {
-		GregorianCalendar cal = new GregorianCalendar();
-		cal.setTime(new Date(time));
-		int year = cal.get(Calendar.YEAR);
-		if (year < 1980)
-			return (1 << 21) | (1 << 16);
-		int month = cal.get(Calendar.MONTH);
-		int date = cal.get(Calendar.DAY_OF_MONTH);
-		int hours = cal.get(Calendar.HOUR_OF_DAY);
-		int minutes = cal.get(Calendar.MINUTE);
-		int seconds = cal.get(Calendar.SECOND);
-		return (year - 1980) << 25 | (month + 1) << 21 | date << 16 | hours << 11 | minutes << 5 | seconds >> 1;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
deleted file mode 100644
index ea2abef..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-
-/**
- * The SarInputStream reads a streaming archive as an InputStream. Methods are
- * provided to position at each successive entry in the archive, and the read
- * each entry as a normal input stream using read().
- */
-public class SarInputStream extends InputStream {
-
-	private final DataInputStream dataInputStream;
-	private final int version;
-	private InputStream contentStream;
-
-	/**
-	 * Constructor for SarInputStream.
-	 * 
-	 * @param inputStream
-	 *            the input stream to use
-	 * @throws IOException
-	 */
-	public SarInputStream(InputStream inputStream) throws IOException {
-
-		this.dataInputStream = new DataInputStream(inputStream);
-
-		// SarFile marker
-		String marker = readString();
-		if (!marker.equals(SarConstants.SARFILE_MARKER)) {
-			throw new IOException("Does not contain org.eclipse.equinox.p2.sar marker.");
-		}
-
-		// SarFile version
-		version = dataInputStream.readInt();
-		if (version != SarConstants.SARFILE_VERSION) {
-			throw new IOException("Unsupported version.");
-		}
-	}
-
-	/**
-	 * Closes this stream.
-	 * 
-	 * @throws IOException
-	 *             on error
-	 */
-	public void close() throws IOException {
-		dataInputStream.close();
-	}
-
-	/**
-	 * Since we do not support marking just yet, we return false.
-	 * 
-	 * @return False.
-	 */
-	public boolean markSupported() {
-		return false;
-	}
-
-	/**
-	 * Since we do not support marking just yet, we do nothing.
-	 * 
-	 * @param markLimit
-	 *            The limit to mark.
-	 */
-	public void mark(int markLimit) {
-		// nothing
-	}
-
-	/**
-	 * Since we do not support marking just yet, we do nothing.
-	 */
-	public void reset() {
-		// nothing
-	}
-
-	/**
-	 * Get the next entry in this org.eclipse.equinox.p2.sar archive. This will skip
-	 * over any remaining data in the current entry, if there is one, and place
-	 * the input stream at the header of the next entry, and read the header and
-	 * instantiate a new SarEntry from the header bytes and return that entry.
-	 * If there are no more entries in the archive, null will be returned to
-	 * indicate that the end of the archive has been reached.
-	 * 
-	 * @return the next SarEntry in the archive, or null.
-	 * @throws IOException
-	 *             on error
-	 */
-	public SarEntry getNextEntry() throws IOException {
-		SarEntry sarEntry = new SarEntry(this);
-		if (sarEntry.isEof())
-			return null;
-
-		byte[] content = readBytes();
-		contentStream = new ByteArrayInputStream(content);
-		return sarEntry;
-
-	}
-
-	/**
-	 * Close the entry.
-	 * 
-	 * @throws IOException
-	 */
-	public void closeEntry() throws IOException {
-		contentStream.close();
-	}
-
-	/**
-	 * @return String
-	 * @throws IOException
-	 */
-	String readString() throws IOException {
-		byte[] bytes = readBytes();
-		if (bytes == null)
-			return null;
-
-		return new String(bytes, SarConstants.DEFAULT_ENCODING);
-	}
-
-	/**
-	 * @return byte[]
-	 * @throws IOException
-	 */
-	byte[] readBytes() throws IOException {
-		int length = dataInputStream.readInt();
-		if (length == -1)
-			return null;
-
-		byte[] bytes = new byte[length];
-		dataInputStream.readFully(bytes, 0, length);
-		return bytes;
-	}
-
-	/**
-	 * @return int
-	 * @throws IOException
-	 */
-	int readInt() throws IOException {
-		return dataInputStream.readInt();
-	}
-
-	/**
-	 * @return boolean
-	 * @throws IOException
-	 */
-	boolean readBoolean() throws IOException {
-		return dataInputStream.readBoolean();
-	}
-
-	/**
-	 * @return long
-	 * @throws IOException
-	 */
-	long readLong() throws IOException {
-		return dataInputStream.readLong();
-	}
-
-	/**
-	 * Reads a byte from the current tar archive entry.
-	 * 
-	 * This method simply calls read( byte[], int, int ).
-	 * 
-	 * @return The byte read, or -1 at EOF.
-	 * @throws IOException
-	 *             on error
-	 */
-	public int read() throws IOException {
-		return contentStream.read();
-	}
-
-	/**
-	 * Reads bytes from the current tar archive entry.
-	 * 
-	 * This method is aware of the boundaries of the current entry in the
-	 * archive and will deal with them as if they were this stream's start and
-	 * EOF.
-	 * 
-	 * @param buffer
-	 *            The buffer into which to place bytes read.
-	 * @param offset
-	 *            The offset at which to place bytes read.
-	 * @param numToRead
-	 *            The number of bytes to read.
-	 * @return The number of bytes read, or -1 at EOF.
-	 * @throws IOException
-	 *             on error
-	 */
-	public int read(byte[] buffer, int offset, int numToRead) throws IOException {
-		return contentStream.read(buffer, offset, numToRead);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
deleted file mode 100644
index 650a18e..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-
-/**
- * The SarOutputStream writes a stream archive as an OutputStream. Methods are
- * provided to put entries, and then write their contents by writing to this
- * stream using write().
- */
-public class SarOutputStream extends OutputStream {
-
-	private boolean finished;
-	private final DataOutputStream dataOutputStream;
-	private final DirectByteArrayOutputStream entryContent;
-
-	/**
-	 * @param outputStream
-	 * @throws IOException
-	 */
-	public SarOutputStream(OutputStream outputStream) throws IOException {
-		dataOutputStream = new DataOutputStream(outputStream);
-		entryContent = new DirectByteArrayOutputStream(16 * 1024);
-		writeString(SarConstants.SARFILE_MARKER);
-		dataOutputStream.writeInt(SarConstants.SARFILE_VERSION);
-		finished = false;
-	}
-
-	/**
-	 * Ends the SAR archive and closes the underlying OutputStream.
-	 * 
-	 * @see java.io.OutputStream#close()
-	 */
-	// @Override
-	public void close() throws IOException {
-		finish();
-		super.close();
-	}
-
-	/**
-	 * Finish this SAR archive but does not close the underlying output stream.
-	 * 
-	 * @throws IOException
-	 */
-	public void finish() throws IOException {
-		if (finished)
-			return;
-
-		writeEOFRecord();
-		finished = true;
-	}
-
-	/**
-	 * Put an entry on the output stream. This writes the entry's header record
-	 * and positions the output stream for writing the contents of the entry.
-	 * Once this method is called, the stream is ready for calls to write() to
-	 * write the entry's contents. Once the contents are written, closeEntry()
-	 * <B>MUST </B> be called to ensure that all buffered data is completely
-	 * written to the output stream.
-	 * 
-	 * @param entry
-	 *            the SarEntry to be written to the archive.
-	 * @throws IOException
-	 */
-	public void putNextEntry(SarEntry entry) throws IOException {
-		entry.writeTo(this);
-	}
-
-	/**
-	 * Close an entry. This method MUST be called for all file entries that
-	 * contain data. The reason is that we must buffer data written to the
-	 * stream in order to satisfy the buffer's record based writes. Thus, there
-	 * may be data fragments still being assembled that must be written to the
-	 * output stream before this entry is closed and the next entry written.
-	 * 
-	 * @throws IOException
-	 */
-	public void closeEntry() throws IOException {
-		writeBytes(entryContent.getBuffer(), entryContent.getBufferLength());
-		entryContent.reset();
-	}
-
-	/**
-	 * @param s
-	 * @throws IOException
-	 */
-	void writeString(String s) throws IOException {
-		byte[] bytes = null;
-		if (s != null)
-			bytes = s.getBytes(SarConstants.DEFAULT_ENCODING);
-
-		writeBytes(bytes);
-	}
-
-	/**
-	 * @param bytes
-	 * @throws IOException
-	 */
-	void writeBytes(byte[] bytes) throws IOException {
-		writeBytes(bytes, bytes != null ? bytes.length : -1);
-	}
-
-	/**
-	 * @param bytes
-	 * @throws IOException
-	 */
-	void writeBytes(byte[] bytes, int length) throws IOException {
-		if (bytes != null) {
-			dataOutputStream.writeInt(length);
-			dataOutputStream.write(bytes, 0, length);
-		} else {
-			dataOutputStream.writeInt(-1);
-		}
-	}
-
-	/**
-	 * @param v
-	 * @throws IOException
-	 */
-	void writeInt(int v) throws IOException {
-		dataOutputStream.writeInt(v);
-	}
-
-	/**
-	 * @param bool
-	 * @throws IOException
-	 */
-	public void writeBool(boolean bool) throws IOException {
-		dataOutputStream.writeBoolean(bool);
-	}
-
-	/**
-	 * @param v
-	 * @throws IOException
-	 */
-	void writeLong(long v) throws IOException {
-		dataOutputStream.writeLong(v);
-	}
-
-	/**
-	 * Writes a byte to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param b
-	 *            the byte written.
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(int)
-	 */
-	public void write(int b) throws IOException {
-		byte[] bytes = new byte[1];
-		bytes[0] = (byte) b;
-		entryContent.write(bytes);
-	}
-
-	/**
-	 * Writes bytes to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param bytes
-	 *            The buffer to write to the archive.
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(byte[])
-	 */
-	public void write(byte[] bytes) throws IOException {
-		entryContent.write(bytes, 0, bytes.length);
-	}
-
-	/**
-	 * Writes bytes to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param bytes
-	 *            The buffer to write to the archive.
-	 * @param offset
-	 *            The offset in the buffer from which to get bytes.
-	 * @param numToWrite
-	 *            The number of bytes to write.
-	 * 
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(byte[], int, int)
-	 */
-	public void write(byte[] bytes, int offset, int numToWrite) throws IOException {
-		entryContent.write(bytes, offset, numToWrite);
-	}
-
-	/**
-	 * Write an EOF (end of archive) entry to the org.eclipse.equinox.p2.sar archive.
-	 * 
-	 * @throws IOException
-	 */
-	private void writeEOFRecord() throws IOException {
-		SarEntry eofEntry = new SarEntry();
-		eofEntry.writeTo(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
deleted file mode 100644
index 9b23ba9..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-import java.util.zip.*;
-
-/**
- * Helper class for converting Zips/Jars to Sars and vice versa.
- */
-public class SarUtil {
-
-	private static final int BUFFER_SIZE = 8 * 1024;
-	private static final boolean DEBUG = SarConstants.DEBUG;
-
-	/**
-	 * 
-	 */
-	private SarUtil() {
-		// utility class
-	}
-
-	/**
-	 * Normalize the given zip/jar.
-	 * 
-	 * @param zipSource
-	 * @param zipTarget
-	 * @throws IOException
-	 */
-	public static void normalize(File zipSource, File zipTarget) throws IOException {
-		File tempSar = File.createTempFile("temp", ".sar");
-		try {
-			zipToSar(zipSource, tempSar);
-			sarToZip(tempSar, zipTarget);
-		} finally {
-			tempSar.delete();
-		}
-	}
-
-	/**
-	 * Normalize the given zip/jar.
-	 * 
-	 * @param zipSource
-	 * @param zipTarget
-	 * @throws IOException
-	 */
-	public static void normalize(InputStream zipSource, OutputStream zipTarget) throws IOException {
-		DirectByteArrayOutputStream tempSar = new DirectByteArrayOutputStream();
-		zipToSar(zipSource, tempSar);
-		sarToZip(tempSar.getInputStream(), zipTarget);
-	}
-
-	/**
-	 * @param zipFile
-	 * @throws IOException
-	 */
-	public static void zipToSar(File zipFile, File sarFile) throws IOException {
-		InputStream zipInputStream = new BufferedInputStream(new FileInputStream(zipFile));
-		OutputStream sarOutputStream = new BufferedOutputStream(new FileOutputStream(sarFile));
-		SarUtil.zipToSar(zipInputStream, sarOutputStream);
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param saredOutputStream
-	 * @throws IOException
-	 */
-	public static void zipToSar(InputStream zippedInputStream, OutputStream saredOutputStream) throws IOException {
-		zipToSar(zippedInputStream, true, saredOutputStream, true);
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param closeIn
-	 * @param saredOutputStream
-	 * @param closeOut
-	 * @throws IOException
-	 */
-	public static void zipToSar(InputStream zippedInputStream, boolean closeIn, OutputStream saredOutputStream, boolean closeOut) throws IOException {
-		zipToSarNoClose(zippedInputStream, saredOutputStream);
-
-		if (closeIn)
-			zippedInputStream.close();
-		if (closeOut)
-			saredOutputStream.close();
-	}
-
-	/**
-	 * @param sarFile
-	 * @param zipFile
-	 * @throws IOException
-	 */
-	public static void sarToZip(File sarFile, File zipFile) throws IOException {
-		InputStream saredInputStream = new BufferedInputStream(new FileInputStream(sarFile));
-		OutputStream zippedOutputStream = new BufferedOutputStream(new FileOutputStream(zipFile));
-
-		sarToZip(saredInputStream, zippedOutputStream);
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param zippedOutputStream
-	 * @throws IOException
-	 */
-	public static void sarToZip(InputStream saredInputStream, OutputStream zippedOutputStream) throws IOException {
-		sarToZip(saredInputStream, true, zippedOutputStream, true);
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param closeIn
-	 * @param zippedOutputStream
-	 * @param closeOut
-	 * @throws IOException
-	 */
-	public static void sarToZip(InputStream saredInputStream, boolean closeIn, OutputStream zippedOutputStream, boolean closeOut) throws IOException {
-		sarToZipNoClose(saredInputStream, zippedOutputStream);
-
-		if (closeIn)
-			saredInputStream.close();
-		if (closeOut)
-			zippedOutputStream.close();
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param saredOutputStream
-	 * @throws IOException
-	 */
-	private static void zipToSarNoClose(InputStream zippedInputStream, OutputStream saredOutputStream) throws IOException {
-
-		ZipInputStream zipInputStream = new ZipInputStream(zippedInputStream);
-		SarOutputStream sarOutputStream = new SarOutputStream(saredOutputStream);
-
-		ZipEntry zipEntry;
-		byte[] buf = new byte[BUFFER_SIZE];
-		while ((zipEntry = zipInputStream.getNextEntry()) != null) {
-			boolean isZip = isZip(zipEntry);
-			SarEntry sarEntry = new SarEntry(zipEntry, isZip);
-			sarOutputStream.putNextEntry(sarEntry);
-			if (isZip) {
-				zipToSarNoClose(zipInputStream, sarOutputStream);
-			} else {
-				int read;
-				while ((read = zipInputStream.read(buf)) != -1) {
-					if (DEBUG) {
-						System.out.println("Content: " + new String(buf, 0, read));
-					}
-					sarOutputStream.write(buf, 0, read);
-				}
-			}
-			zipInputStream.closeEntry();
-			sarOutputStream.closeEntry();
-		}
-		sarOutputStream.finish();
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param zippedOutputStream
-	 * @throws IOException
-	 */
-	private static void sarToZipNoClose(InputStream saredInputStream, OutputStream zippedOutputStream) throws IOException {
-
-		SarInputStream sarInputStream = new SarInputStream(saredInputStream);
-		ZipOutputStream zipOutputStream = new ZipOutputStream(zippedOutputStream);
-
-		SarEntry sarEntry;
-		byte[] buf = new byte[BUFFER_SIZE];
-		while ((sarEntry = sarInputStream.getNextEntry()) != null) {
-			ZipEntry zipEntry = new ZipEntry(sarEntry);
-			zipOutputStream.putNextEntry(zipEntry);
-			if (sarEntry.isZip()) {
-				sarToZipNoClose(sarInputStream, zipOutputStream);
-			} else {
-				int read;
-				while ((read = sarInputStream.read(buf)) != -1) {
-					if (DEBUG) {
-						System.out.println("Content: " + new String(buf, 0, read));
-					}
-					zipOutputStream.write(buf, 0, read);
-				}
-			}
-			sarInputStream.closeEntry();
-			zipOutputStream.closeEntry();
-		}
-
-		zipOutputStream.finish();
-	}
-
-	private static boolean isZip(ZipEntry zipEntry) {
-		String name = zipEntry.getName().toLowerCase();
-		return name.endsWith(".zip") || name.endsWith(".jar");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/.classpath b/bundles/org.eclipse.equinox.p2.tests.optimizers/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/.project b/bundles/org.eclipse.equinox.p2.tests.optimizers/.project
deleted file mode 100644
index 2bc9a38..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.tests.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.tests.optimizers/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e1f95f0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,343 +0,0 @@
-#Tue May 27 11:30:06 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-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=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests.optimizers/META-INF/MANIFEST.MF
deleted file mode 100644
index b453b23..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,30 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: p2 Optimizers Test Plug-in
-Bundle-SymbolicName: org.eclipse.equinox.p2.tests.optimizers;singleton:=true
-Bundle-Version: 1.0.100.qualifier
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.4.0",
- org.junit;bundle-version="3.8.2"
-Export-Package: org.eclipse.equinox.p2.tests.artifact.optimizers,
- org.eclipse.equinox.p2.tests.artifact.processors,
- org.eclipse.equinox.p2.tests.sar
-Import-Package: ie.wombat.jbdiff,
- 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.repository,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.repository,
- org.osgi.framework;version="1.4.0"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.equinox.p2.tests.optimizers.TestActivator
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/build.properties b/bundles/org.eclipse.equinox.p2.tests.optimizers/build.properties
deleted file mode 100644
index 826f51f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-#  Copyright (c) 2008 IBM Corporation and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.0
-#  which accompanies this distribution, and is available at
-#  http://www.eclipse.org/legal/epl-v10.html
-# 
-#  Contributors:
-#      IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               testData/
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/plugin.xml b/bundles/org.eclipse.equinox.p2.tests.optimizers/plugin.xml
deleted file mode 100644
index 40a3556..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/plugin.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
deleted file mode 100644
index 6c28f52..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(JBDiffStepTest.class);
-		suite.addTestSuite(JBDiffZipStepTest.class);
-		suite.addTestSuite(Pack200OptimizerTest.class);
-		suite.addTestSuite(JarDeltaOptimizerTest.class);
-		suite.addTestSuite(Bug209233Test.class);
-		return suite;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
deleted file mode 100644
index 4c3ac6a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-
-/**
- * ... <code>Bug209233Test</code> ...
- */
-public class Bug209233Test extends TestCase {
-
-	//	public void testGenerateTestDataDiff() throws IOException {
-	//		File predecessor = TestData.getTempFile("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-	//		File current = TestData.getTempFile("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-	//		File diff = File.createTempFile("org.eclipse.jdt_3.2.0-3.3.0~", ".jbdiff");
-	//		JBDiff.bsdiff(predecessor, current, diff);
-	//	}
-
-	public void testDiffJdt32SarToJdt33Sar() throws IOException {
-
-		InputStream current = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		ByteArrayOutputStream currentBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(current, true, currentBS, true);
-		byte[] currentBytes = currentBS.toByteArray();
-
-		InputStream predecessor = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		ByteArrayOutputStream predecessorBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(predecessor, true, predecessorBS, true);
-		byte[] predecessorBytes = predecessorBS.toByteArray();
-
-		byte[] actualBytes = JBDiff.bsdiff(predecessorBytes, predecessorBytes.length, currentBytes, currentBytes.length);
-
-		InputStream expected = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		ByteArrayOutputStream expectedBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(expected, true, expectedBS, true);
-		byte[] expectedBytes = expectedBS.toByteArray();
-
-		assertEquals("Different lengths.", expectedBytes.length, actualBytes.length);
-		assertTrue("Different bytes.", Arrays.equals(expectedBytes, actualBytes));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
deleted file mode 100644
index fcff20f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.JBDiffStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-/**
- * Test the <code>JBDiffStepTest</code> processing step.
- */
-public class JBDiffStepTest extends TestCase {
-
-	//	public void testGenerateTestDataExe32To33() throws IOException {
-	//		File exe32 = TestData.getTempFile("optimizers", "eclipse-3.2.exe");
-	//		File exe33 = TestData.getTempFile("optimizers", "eclipse-3.3.exe");
-	//		File diff = File.createTempFile("eclipse-3.2-3.3~", ".jbdiff");
-	//		JBDiff.bsdiff(exe32, exe33, diff);
-	//	}
-
-	/**
-	 * Test diffing the launcher.
-	 * 
-	 * @throws IOException
-	 */
-	public void testDiffEclipseExe32to33() throws IOException {
-
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/eclipse-3.2.exe");
-		MockableJBDiffStep differ = new MockableJBDiffStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		differ.initialize(stepDescriptor, descriptor);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		differ.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "eclipse-3.3.exe");
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestData.get("optimizers", "eclipse-3.2-3.3.jbdiff");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBDiffStep extends JBDiffStep {
-		public MockableJBDiffStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
deleted file mode 100644
index 0dc49e7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-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.JBDiffZipStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-/**
- * Test the <code>JBDiffZipTest</code> processing step.
- */
-public class JBDiffZipStepTest extends TestCase {
-
-	/**
-	 * Test diffing the <b>normalized</b> jars. This is indicated by the extension ".njar".
-	 * 
-	 * @throws IOException
-	 */
-	public void testDiffJdt32to33() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		MockableJBDiffZipStep differ = new MockableJBDiffZipStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		differ.initialize(stepDescriptor, descriptor);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		differ.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		assertTrue("Different diff bytes.", Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBDiffZipStep extends JBDiffZipStep {
-		public MockableJBDiffZipStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
deleted file mode 100644
index 6690da8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.zip.ZipInputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta.JarDeltaOptimizerStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-/**
- * Test the <code>JarDelta</code> processing step.
- */
-public class JarDeltaOptimizerTest extends TestCase {
-
-	//	public void testPrepare() throws IOException {
-	//		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-	//		ProcessingStep step = new MockableJarDeltaOptimizerStep(repoMock);
-	//		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-	//		IArtifactKey key = new ArtifactKey("ns", "cl", "id1", new Version("1.0.0.2"));
-	//		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-	//		step.initialize(stepDescriptor, descriptor);
-	//		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-	//		step.link(destination, new NullProgressMonitor());
-	//
-	//		InputStream inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/testdata_1.0.0.2.jar").openStream();
-	//		FileUtils.copyStream(inputStream, true, step, true);
-	//		destination.close();
-	//
-	//		inputStream = new ByteArrayInputStream(destination.toByteArray());
-	//		FileOutputStream file = new FileOutputStream("d:/jardelta.jar");
-	//		FileUtils.copyStream(inputStream, true, file, true);
-	//	}
-
-	public void testOptimization() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-		ProcessingStep step = new MockableJarDeltaOptimizerStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.0.0.2"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		step.initialize(stepDescriptor, descriptor);
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "testdata_1.0.0.2.jar");
-		FileUtils.copyStream(inputStream, true, step, true);
-		destination.close();
-
-		inputStream = TestData.get("optimizers", "testdata_1.0.0.1-2.jar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		ZipInputStream expectedJar = new ZipInputStream(new ByteArrayInputStream(expected.toByteArray()));
-		ZipInputStream testJar = new ZipInputStream(new ByteArrayInputStream(destination.toByteArray()));
-		TestData.assertEquals(expectedJar, testJar);
-		expectedJar.close();
-		testJar.close();
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJarDeltaOptimizerStep extends JarDeltaOptimizerStep {
-		public MockableJarDeltaOptimizerStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
deleted file mode 100644
index 2401e14..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.Pack200OptimizerStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.tests.optimizers.TestActivator;
-import org.osgi.framework.Bundle;
-
-public class Pack200OptimizerTest extends TestCase {
-
-	public Pack200OptimizerTest(String name) {
-		super(name);
-	}
-
-	public Pack200OptimizerTest() {
-		super("");
-	}
-
-	//	public void testPrepare() throws IOException {
-	//		// Setup the step
-	//		ProcessingStep step = new Pack200OptimizerStep();
-	//		FileOutputStream destination = new FileOutputStream("c:/packed.pack.gz");
-	//		step.link(destination, new NullProgressMonitor());
-	//
-	//		// drive the source data through the step
-	//		Bundle bundle = TestActivator.getContext().getBundle();
-	//		InputStream inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar").openStream();
-	//		FileUtils.copyStream(inputStream, true, step, true);
-	//
-	//		destination.close();
-	//	}
-
-	public void testPack() throws IOException {
-		// Setup the step
-		ProcessingStep step = new Pack200OptimizerStep();
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		// drive the source data through the step
-		Bundle bundle = TestActivator.getContext().getBundle();
-		InputStream inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar").openStream();
-		FileUtils.copyStream(inputStream, true, step, true);
-
-		assertTrue("Failure: " + step.getStatus().getMessage(), step.getStatus().isOK());
-
-		// Get the test data. The Sun 1.6.0_01 JRE produces a different packed file
-		// then the IBM V5 JRE, so both versions of the test data are maintained.
-		// TODO: investigate this? Is the difference spurious? Are there differences
-		//		 in the pack200 results for other JREs? Do we need a more general
-		//		 solution to the problem?
-		String javaVersion = System.getProperty("java.version");
-		boolean is1_6 = javaVersion.compareTo("1.6") > 0;
-
-		inputStream = bundle.getEntry(is1_6 ? "testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz" : "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.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
deleted file mode 100644
index 226e965..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-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);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
deleted file mode 100644
index fe1a13d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.lang.reflect.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.tests.optimizers.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, ":-(", e);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
deleted file mode 100644
index 1f7d2da..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.jbdiff.JBPatchStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-/**
- * Test the <code>JBPatchStep</code>
- *
- */
-public class JBPatchStepTest extends TestCase {
-
-	public void testPatchEclipseExe32to33() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/eclipse-3.2.exe");
-		ProcessingStep patcher = new MockableJBPatchStep(repoMock);
-		ProcessingStepDescriptor descriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor context = new ArtifactDescriptor(key);
-		patcher.initialize(descriptor, context);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		patcher.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "eclipse-3.2-3.3.jbdiff");
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestData.get("optimizers", "eclipse-3.3.exe");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBPatchStep extends JBPatchStep {
-		public MockableJBPatchStep(IArtifactRepository repository) {
-			super.repository = repository;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
deleted file mode 100644
index 24a96f1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-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.JBPatchZipStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-/**
- * Test the <code>JBPatchZipStep</code> processing step.
- */
-public class JBPatchZipStepTest extends TestCase {
-
-	//	/**
-	//	 * This is a disabled "unit test" that was used to generate the data needed for real test.
-	//	 * @throws IOException
-	//	 */
-	//	public void testGenerateTestData() throws IOException {
-	//
-	//		File sar32 = TestData.getTempFile("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-	//		File sar33 = TestData.getTempFile("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-	//
-	//		File diff = File.createTempFile("org.eclipse.jdt_3.2.0-3.3.0", ".jbdiff");
-	//		JBDiff.bsdiff(sar32, sar33, diff);
-	//	}
-
-	/**
-	 * Test patching the <b>normalized</b> jars. This is indicated by the extension ".njar".
-	 * 
-	 * @throws IOException
-	 */
-	public void testPatchOrgEclipseJdt32to33() throws IOException {
-
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		ProcessingStep patcher = new MockableJBPatchZipStep(repoMock);
-		ProcessingStepDescriptor descriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor context = new ArtifactDescriptor(key);
-		patcher.initialize(descriptor, context);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		patcher.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		assertTrue("Different resulting njar.", Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBPatchZipStep extends JBPatchZipStep {
-		public MockableJBPatchZipStep(IArtifactRepository repository) {
-			super.repository = repository;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
deleted file mode 100644
index 2633a4a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig)
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.zip.ZipInputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.jardelta.JarDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-
-public class JarDeltaProcessorTest extends TestCase {
-
-	public JarDeltaProcessorTest(String name) {
-		super(name);
-	}
-
-	public JarDeltaProcessorTest() {
-		super("");
-	}
-
-	public void testProcessing() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-		ProcessingStep step = new MockableJarDeltaProcessorStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.0.0.2"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		step.initialize(stepDescriptor, descriptor);
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "testdata_1.0.0.1-2.jar");
-		FileUtils.copyStream(inputStream, true, step, true);
-		destination.close();
-
-		inputStream = TestData.get("optimizers", "testdata_1.0.0.2.jar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		ZipInputStream expectedJar = new ZipInputStream(new ByteArrayInputStream(expected.toByteArray()));
-		ZipInputStream testJar = new ZipInputStream(new ByteArrayInputStream(destination.toByteArray()));
-		TestData.assertEquals(expectedJar, testJar);
-		expectedJar.close();
-		testJar.close();
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJarDeltaProcessorStep extends JarDeltaProcessorStep {
-		public MockableJarDeltaProcessorStep(IArtifactRepository repository) {
-			super();
-			this.repository = repository;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/AutomatedTests.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/AutomatedTests.java
deleted file mode 100644
index 54771de..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/AutomatedTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.optimizers;
-
-import junit.framework.*;
-
-/**
- * @since 1.0
- */
-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.sar.AllTests.suite());
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestActivator.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestActivator.java
deleted file mode 100644
index cd68760..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestActivator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.optimizers;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * @since 1.0
- */
-public class TestActivator implements BundleActivator {
-
-	public static final String PI = "org.eclipse.equinox.p2.tests.optimizers"; //$NON-NLS-1$
-	private static BundleContext bundleContext;
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		bundleContext = null;
-	}
-
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestData.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestData.java
deleted file mode 100644
index 21567a4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/optimizers/TestData.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  Red Hat, Inc. (Andrew Overholt) - add getFile method
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.optimizers;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import junit.framework.Assert;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-
-/**
- * <code>TestData</code> helps with handling of test data.
- */
-public class TestData {
-
-	private static final String TEST_DATA_ROOT_FOLDER = "testData";
-	private static final String PREFIX_SEPERATOR = "~";
-
-	/**
-	 * Get an input stream from the resource testDataName within the folder 
-	 * testDataFolder of the testData folder of this project.
-	 * @param testDataFolder
-	 * @param testDataName
-	 * @return input stream for the test data
-	 * @throws IOException
-	 */
-	public static InputStream get(String testDataFolder, String testDataName) throws IOException {
-		return new BufferedInputStream(TestActivator.getContext().getBundle().getEntry(TEST_DATA_ROOT_FOLDER + "/" + testDataFolder + "/" + testDataName).openStream());
-	}
-
-	/**
-	 * Get a File from the resource testDataName within the folder 
-	 * testDataFolder of the testData folder of this project.
-	 * @param testDataFolder
-	 * @return test data File
-	 * @throws IOException
-	 */
-	public static File getFile(String testDataFolder, String testDataName) throws IOException {
-		return new File(FileLocator.toFileURL(TestActivator.getContext().getBundle().getEntry(TEST_DATA_ROOT_FOLDER + "/" + testDataFolder + "/" + testDataName)).getPath());
-	}
-
-	/**
-	 * Create a temporary file for the test data. The temporary file will be deleted 
-	 * when the jvm exists. If testDataName contains an extension this extension will
-	 * be used as suffix for the temporary file.
-	 * @param testDataFolder
-	 * @param testDataName
-	 * @return temporary file with test data
-	 * @throws IOException
-	 */
-	public static File getTempFile(String testDataFolder, String testDataName) throws IOException {
-		File temp = createTempFile(testDataName);
-		OutputStream out = new FileOutputStream(temp);
-		FileUtils.copyStream(get(testDataFolder, testDataName), true, out, true);
-		return temp;
-	}
-
-	/**
-	 * Create a temporary file. This file will be deleted if the jvm exits. 
-	 * If testDataName contains an extension this extension will be used as 
-	 * suffix for the temporary file.
-	 * @param testDataName
-	 * @return temporary file
-	 * @throws IOException
-	 */
-	public static File createTempFile(String testDataName) throws IOException {
-		int i = testDataName.lastIndexOf('.');
-		File temp = (i == -1) ? File.createTempFile(testDataName + PREFIX_SEPERATOR, ".tmp") : File.createTempFile(testDataName.substring(0, i) + PREFIX_SEPERATOR, testDataName.substring(i));
-		temp.deleteOnExit();
-		return temp;
-	}
-
-	/**
-	 * Assert equality of files.
-	 * @param expected
-	 * @param actual
-	 * @throws IOException
-	 */
-	public static void assertEquals(File expected, File actual) throws IOException {
-		Assert.assertEquals("Files have different lengths.", expected.length(), actual.length());
-		TestData.assertEquals(new BufferedInputStream(new FileInputStream(expected)), new BufferedInputStream(new FileInputStream(actual)));
-	}
-
-	/**
-	 * Assert equality of input streams.
-	 * @param expected
-	 * @param actual
-	 * @throws IOException
-	 */
-	public static void assertEquals(InputStream expected, InputStream actual) throws IOException {
-		try {
-			int readExpected = 0;
-			int readActual = 0;
-			int count = 0;
-			while (readActual != -1 && readExpected != -1) {
-				readActual = actual.read();
-				readExpected = expected.read();
-				Assert.assertEquals("Different bytes at " + count, readExpected, readActual);
-				count++;
-			}
-		} finally {
-			if (expected != null)
-				expected.close();
-			if (actual != null)
-				actual.close();
-		}
-	}
-
-	/**
-	 * Assert equality of zip input streams.
-	 * @param input1
-	 * @param input2
-	 * @throws IOException
-	 */
-	public static void assertEquals(ZipInputStream input1, ZipInputStream input2) throws IOException {
-		Map jar1 = getEntries(input1);
-		Map jar2 = getEntries(input2);
-		for (Iterator i = jar1.keySet().iterator(); i.hasNext();) {
-			String name = (String) i.next();
-			Object[] file1 = (Object[]) jar1.get(name);
-			Object[] file2 = (Object[]) jar2.remove(name);
-			Assert.assertNotNull(file2);
-
-			ZipEntry entry1 = (ZipEntry) file1[0];
-			ZipEntry entry2 = (ZipEntry) file2[0];
-			// compare the entries
-			Assert.assertTrue(entry1.getName().equals(entry2.getName()));
-			Assert.assertTrue(entry1.getSize() == entry2.getSize());
-			//	TODO for now skip over the timestamp as they seem to be different
-			// assertTrue(entry1.getTime() == entry2.getTime());
-			Assert.assertTrue(entry1.isDirectory() == entry2.isDirectory());
-			Assert.assertTrue(entry1.getCrc() == entry2.getCrc());
-			Assert.assertTrue(entry1.getMethod() == entry2.getMethod());
-
-			// check the content of the entries
-			Assert.assertTrue(Arrays.equals((byte[]) file1[1], (byte[]) file2[1]));
-		}
-
-		// ensure that we have consumed all of the entries in the second JAR
-		Assert.assertTrue(jar2.size() == 0);
-	}
-
-	private static Map getEntries(ZipInputStream input) throws IOException {
-		Map result = new HashMap();
-		while (true) {
-			ZipEntry entry = input.getNextEntry();
-			if (entry == null)
-				return result;
-
-			ByteArrayOutputStream content = new ByteArrayOutputStream();
-			FileUtils.copyStream(input, false, content, true);
-			input.closeEntry();
-			result.put(entry.getName(), new Object[] {entry, content.toByteArray()});
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/AllTests.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
deleted file mode 100644
index 172fd68..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import junit.framework.*;
-
-/**
- * Performs all sar tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(DirectByteArrayOutputStreamTest.class);
-		suite.addTestSuite(SarTest.class);
-		suite.addTestSuite(SarEntryTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
deleted file mode 100644
index 576a8ec..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-
-/**
- * Test the <code>DirectByteArrayOutputStream</code>
- */
-public class DirectByteArrayOutputStreamTest extends TestCase {
-
-	private static final String JUST11BYTES = "just11bytes";
-	private static final int ELEVEN = JUST11BYTES.getBytes().length;
-
-	/**
-	 * Test the constraints of the DBAOS
-	 * 
-	 * @throws IOException
-	 */
-	public void testDBAOSConstraints() throws IOException {
-		DirectByteArrayOutputStream out = new DirectByteArrayOutputStream(1024);
-		out.write(JUST11BYTES.getBytes());
-		assertEquals(ELEVEN, out.getBufferLength());
-		assertEquals(ELEVEN, out.toByteArray().length);
-		assertNotSame(out.toByteArray(), out.getBuffer());
-		assertEquals(1024, out.getBuffer().length);
-		assertEquals(JUST11BYTES, new String(out.getBuffer(), 0, out.getBufferLength()));
-		ByteArrayInputStream in = out.getInputStream();
-		assertEquals(ELEVEN, in.available());
-		byte[] elevenBytes = new byte[ELEVEN];
-		in.read(elevenBytes);
-		assertTrue(Arrays.equals(JUST11BYTES.getBytes(), elevenBytes));
-		assertEquals(-1, in.read());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarEntryTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarEntryTest.java
deleted file mode 100644
index 6ea0c2f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarEntryTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.sar.SarEntry;
-
-public class SarEntryTest extends TestCase {
-
-	public void testJavaToDosTimeAndBack() {
-		final long minute = 1000l * 60l;
-		long now = (System.currentTimeMillis() / minute) * minute;
-		long dos = SarEntry.javaToDosTime(now);
-		assertEquals(now, SarEntry.dosToJavaTime(dos));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarTest.java b/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
deleted file mode 100644
index 8b8dcc3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.p2.tests.optimizers.TestData;
-
-/**
- * Test the sar stuff.
- */
-public class SarTest extends TestCase {
-
-	//	public void testGenerateTestDataNJarAndSarFromJar32() throws IOException {
-	//		InputStream jar32 = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.jar");
-	//		generateNJarAndSar("org.eclipse.jdt_3.2.0.v20060605-1400", jar32);
-	//	}
-	//
-	//	public void testGenerateTestDataNJarAndSarFromJar33() throws IOException {
-	//		InputStream jar32 = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.jar");
-	//		generateNJarAndSar("org.eclipse.jdt_3.3.0.v20070607-1300", jar32);
-	//	}
-	//
-	//	private void generateNJarAndSar(String name, InputStream jar) throws IOException {
-	//		File njar = File.createTempFile(name, ".njar");
-	//		OutputStream njarOut = new BufferedOutputStream(new FileOutputStream(njar));
-	//
-	//		SarUtil.normalize(jar, njarOut);
-	//
-	//		File sar = File.createTempFile(name, ".sar");
-	//		SarUtil.zipToSar(njar, sar);
-	//	}
-
-	public void testJarToSarForJdt320() throws IOException {
-		InputStream jdt320Jar = TestData.get("optimizers", "org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		InputStream jdt320Sar = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		doJarToSar(jdt320Jar, jdt320Sar);
-	}
-
-	public void testSarToJarForJdt320() throws IOException {
-		InputStream jdt320Sar = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		InputStream jdt320Jar = TestData.get("optimizers", "org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		doSarToJar(jdt320Sar, jdt320Jar);
-	}
-
-	public void testJarToSarForJdt330() throws IOException {
-		InputStream jdt330Jar = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		InputStream jdt330Sar = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		doJarToSar(jdt330Jar, jdt330Sar);
-	}
-
-	public void testSarToJarForJdt330() throws IOException {
-		InputStream jdt330Sar = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		InputStream jdt330Jar = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		doSarToJar(jdt330Sar, jdt330Jar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	private void doJarToSar(InputStream jar, InputStream expectedSar) throws IOException {
-		File sar = TestData.createTempFile("doJarToSar.sar");
-		OutputStream sarOut = new BufferedOutputStream(new FileOutputStream(sar));
-
-		SarUtil.zipToSar(jar, sarOut);
-
-		InputStream sarIn = new BufferedInputStream(new FileInputStream(sar));
-		TestData.assertEquals(sarIn, expectedSar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	private void doSarToJar(InputStream sar, InputStream expectedJar) throws IOException {
-		File jar = TestData.createTempFile("doSarToJar.jar");
-		OutputStream jarOut = new BufferedOutputStream(new FileOutputStream(jar));
-
-		SarUtil.sarToZip(sar, jarOut);
-
-		InputStream jarIn = new BufferedInputStream(new FileInputStream(jar));
-		TestData.assertEquals(jarIn, expectedJar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testZipToSarAndBack() throws IOException {
-		File originalZipFile = TestData.getTempFile("sar", "test.zip");
-		File sarFile = TestData.createTempFile("test.sar");
-		File recreatedZipFile = TestData.createTempFile("test.zip");
-
-		long before = System.currentTimeMillis();
-		SarUtil.zipToSar(originalZipFile, sarFile);
-		System.out.println("zipToSar took: " + (System.currentTimeMillis() - before));
-
-		before = System.currentTimeMillis();
-		SarUtil.sarToZip(sarFile, recreatedZipFile);
-		System.out.println("sarToZip took: " + (System.currentTimeMillis() - before));
-
-		TestData.assertEquals(originalZipFile, recreatedZipFile);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testNormalizeOnFiles() throws IOException {
-		File alienZip = TestData.getTempFile("sar", "alien.zip");
-
-		File normalizedAlienZip = TestData.createTempFile("normalizedalien.zip");
-		SarUtil.normalize(alienZip, normalizedAlienZip);
-
-		assertTrue(alienZip.length() != normalizedAlienZip.length());
-
-		File renormalizedAlienZip = TestData.createTempFile("renormalizedalien.zip");
-		SarUtil.normalize(normalizedAlienZip, renormalizedAlienZip);
-
-		TestData.assertEquals(normalizedAlienZip, renormalizedAlienZip);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testNormalizeOnStreames() throws IOException {
-		InputStream alienZip = TestData.get("sar", "alien.zip");
-		ByteArrayOutputStream normalizedAlienZip = new ByteArrayOutputStream();
-		ByteArrayOutputStream renormalizedAlienZip = new ByteArrayOutputStream();
-		try {
-			SarUtil.normalize(alienZip, normalizedAlienZip);
-
-			SarUtil.normalize(new ByteArrayInputStream(normalizedAlienZip.toByteArray()), renormalizedAlienZip);
-
-			assertTrue(Arrays.equals(normalizedAlienZip.toByteArray(), renormalizedAlienZip.toByteArray()));
-		} finally {
-			if (alienZip != null)
-				alienZip.close();
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/jarprocessor.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/jarprocessor.jar.pack.gz
deleted file mode 100644
index f2df489..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/jarprocessor.jar.pack.gz
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
deleted file mode 100644
index 9f52ad3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2-3.3.jbdiff b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2-3.3.jbdiff
deleted file mode 100644
index deac744..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2-3.3.jbdiff
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2.exe b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2.exe
deleted file mode 100644
index 7826d1e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.2.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.3.exe b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.3.exe
deleted file mode 100644
index c5cd8f0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/eclipse-3.3.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/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.optimizers/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.optimizers/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests.optimizers/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.optimizers/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.optimizers/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff
deleted file mode 100644
index b920d53..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/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.optimizers/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar b/bundles/org.eclipse.equinox.p2.tests.optimizers/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.optimizers/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.optimizers/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar b/bundles/org.eclipse.equinox.p2.tests.optimizers/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.optimizers/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.optimizers/testData/optimizers/testdata_1.0.0.1-2.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1-2.jar
deleted file mode 100644
index 71a546b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1-2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1.jar
deleted file mode 100644
index 49e7f90..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.2.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.2.jar
deleted file mode 100644
index 3515b0f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/optimizers/testdata_1.0.0.2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/alien.zip b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/alien.zip
deleted file mode 100644
index 9872214..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/alien.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
deleted file mode 100644
index d674aef..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
deleted file mode 100644
index 0abfe36..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
deleted file mode 100644
index 9deec2f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
deleted file mode 100644
index 842bb71..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/test.zip b/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/test.zip
deleted file mode 100644
index dde8b84..0000000
--- a/bundles/org.eclipse.equinox.p2.tests.optimizers/testData/sar/test.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/AllTests.java
index c854ffc..a963f6d 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/AllTests.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/AllTests.java
@@ -30,6 +30,7 @@
 		suite.addTestSuite(InstallBundleActionTest.class);
 		suite.addTestSuite(InstallFeatureActionTest.class);
 		suite.addTestSuite(JVMArgumentActionLogicTest.class);
+		suite.addTestSuite(LinkActionTest.class);
 		suite.addTestSuite(MarkStartedActionTest.class);
 		suite.addTestSuite(RemoveJVMArgumentActionTest.class);
 		suite.addTestSuite(RemoveProgramArgumentActionTest.class);
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/LinkActionTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/LinkActionTest.java
new file mode 100644
index 0000000..6e221fc
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/LinkActionTest.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ *  Copyright (c) 2008, 2009 IBM Corporation and others.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this 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.touchpoint.eclipse;
+
+import java.io.File;
+import java.util.*;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ActionConstants;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.LinkAction;
+import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
+import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
+import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
+import org.eclipse.equinox.internal.provisional.p2.engine.InstallableUnitOperand;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.publisher.eclipse.BundlesAction;
+import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
+import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+
+public class LinkActionTest extends AbstractProvisioningTest {
+
+	public LinkActionTest(String name) {
+		super(name);
+	}
+
+	public LinkActionTest() {
+		super("");
+	}
+
+	public void testExecuteUndo() {
+		Properties profileProperties = new Properties();
+		File installFolder = getTempFolder();
+		profileProperties.setProperty(IProfile.PROP_INSTALL_FOLDER, installFolder.toString());
+		IProfile profile = createProfile("test", null, profileProperties);
+
+		File zipSource = getTestData("1.0", "/testData/nativeTouchpoint/a.zip");
+		File zipTarget = new File(installFolder, "a.zip");
+		copy("2.0", zipSource, zipTarget);
+
+		Map parameters = new HashMap();
+		parameters.put(ActionConstants.PARM_PROFILE, profile);
+		EclipseTouchpoint touchpoint = new EclipseTouchpoint();
+		touchpoint.initializePhase(null, profile, "test", parameters);
+
+		parameters.put(ActionConstants.PARM_TARGET_DIR, installFolder.getAbsolutePath());
+		parameters.put(ActionConstants.PARM_LINK_NAME, "b.zip");
+		parameters.put(ActionConstants.PARM_LINK_TARGET, zipTarget.getAbsolutePath());
+		parameters = Collections.unmodifiableMap(parameters);
+
+		// TODO: We need a way to verify
+		// one idea is to run an executable here
+		// This is currently just going through the paces to check for any runtime exceptions
+		LinkAction action = new LinkAction();
+		action.execute(parameters);
+		// does nothing so should not alter parameters
+		action.undo(parameters);
+	}
+
+	public void testExecuteUndoWithArtifact() {
+		Properties profileProperties = new Properties();
+		File installFolder = getTempFolder();
+		profileProperties.setProperty(IProfile.PROP_INSTALL_FOLDER, installFolder.toString());
+		profileProperties.setProperty(IProfile.PROP_CACHE, installFolder.toString());
+		IProfile profile = createProfile("test", null, profileProperties);
+
+		IFileArtifactRepository bundlePool = Util.getBundlePoolRepository(profile);
+		File dirBundleSource = getTestData("1.0", "/testData/eclipseTouchpoint/bundles/directoryBased_1.0.0");
+		File targetPlugins = new File(installFolder, "plugins");
+		assertTrue(targetPlugins.mkdir());
+		File dirBundleTarget = new File(targetPlugins, "directoryBased_1.0.0");
+		copy("2.0", dirBundleSource, dirBundleTarget);
+
+		BundleDescription bundleDescription = BundlesAction.createBundleDescription(dirBundleTarget);
+		IArtifactKey key = BundlesAction.createBundleArtifactKey(bundleDescription.getSymbolicName(), bundleDescription.getVersion().toString());
+		ArtifactDescriptor descriptor = (ArtifactDescriptor) PublisherHelper.createArtifactDescriptor(key, dirBundleTarget);
+		descriptor.setProperty("artifact.folder", Boolean.TRUE.toString());
+		IInstallableUnit iu = createBundleIU(bundleDescription, dirBundleTarget.isDirectory(), key);
+		bundlePool.addDescriptor(descriptor);
+
+		Map parameters = new HashMap();
+		parameters.put(ActionConstants.PARM_PROFILE, profile);
+		EclipseTouchpoint touchpoint = new EclipseTouchpoint();
+		touchpoint.initializePhase(null, profile, "test", parameters);
+		InstallableUnitOperand operand = new InstallableUnitOperand(null, iu);
+		parameters.put("iu", operand.second());
+		touchpoint.initializeOperand(profile, operand, parameters);
+
+		parameters.put(ActionConstants.PARM_TARGET_DIR, "@artifact");
+		parameters.put(ActionConstants.PARM_LINK_NAME, "plugin.xml.link");
+		parameters.put(ActionConstants.PARM_LINK_TARGET, "plugin.xml");
+		parameters = Collections.unmodifiableMap(parameters);
+
+		// TODO: We need a way to verify
+		// one idea is to run an executable here
+		// This is currently just going through the paces to check for any runtime exceptions
+		LinkAction action = new LinkAction();
+		action.execute(parameters);
+		// does nothing so should not alter parameters
+		action.undo(parameters);
+	}
+}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/.classpath b/bundles/org.eclipse.equinox.p2.testserver/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/.project b/bundles/org.eclipse.equinox.p2.testserver/.project
deleted file mode 100644
index b31ab45..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.testserver</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.testserver/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6b94707..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-#Thu Apr 23 14:57:34 CEST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-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.testserver/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9cdad0e..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,56 +0,0 @@
-#Thu Apr 23 14:20:17 CEST 2009
-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=20
-org.eclipse.jdt.ui.staticondemandthreshold=20
-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.testserver/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.testserver/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/.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.testserver/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.testserver/META-INF/MANIFEST.MF
deleted file mode 100644
index 415da60..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Testserver
-Bundle-SymbolicName: org.eclipse.equinox.p2.testserver;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.equinox.p2.testserver.Activator
-Bundle-Vendor: Eclipse
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: org.eclipse.equinox.http,
- org.osgi.framework;version="1.3.0"
-Bundle-ActivationPolicy: lazy
-Require-Bundle: javax.servlet;bundle-version="2.4.0",
- org.eclipse.equinox.http.registry,
- org.eclipse.equinox.http.servlet;bundle-version="1.0.200",
- org.eclipse.osgi.services;bundle-version="3.2.0",
- org.eclipse.osgi.util;bundle-version="3.2.0",
- org.eclipse.osgi;bundle-version="3.5.0"
diff --git a/bundles/org.eclipse.equinox.p2.testserver/build.properties b/bundles/org.eclipse.equinox.p2.testserver/build.properties
deleted file mode 100644
index e9863e2..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml
diff --git a/bundles/org.eclipse.equinox.p2.testserver/p2 test server.launch b/bundles/org.eclipse.equinox.p2.testserver/p2 test server.launch
deleted file mode 100644
index 050aa42..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/p2 test server.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="true"/>
-<booleanAttribute key="automaticValidate" value="true"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/p2 test server"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.ecf.provider.filetransfer,org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.tools,org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.touchpoint.natives,ie.wombat.jbdiff,org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.installer,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.identity,org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.equinox.p2.extensionlocation,org.apache.commons.logging,org.eclipse.equinox.p2.metadata,org.eclipse.test.performance,org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.exemplarysetup,org.eclipse.ecf.ssl,org.eclipse.ecf.provider.filetransfer.httpclient,org.apache.commons.httpclient,org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.simpleconfigurator,org.easymock,org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.p2.repository.tools,ie.wombat.jbdiff.test,javax.servlet,org.eclipse.core.tests.harness,org.eclipse.equinox.p2.reconciler.dropins,org.sat4j.core,org.eclipse.equinox.p2.repository,org.eclipse.ecf,org.eclipse.equinox.frameworkadmin.test,org.sat4j.pb,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.tests.ui,org.apache.commons.codec,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.tests.optimizers,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.concurrent,org.eclipse.equinox.p2.console,org.eclipse.ecf.provider.filetransfer.httpclient.ssl,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.ecf.filetransfer,org.eclipse.equinox.p2.ui"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"/>
-<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.ignoreApp=true -Dosgi.noShutdown=true -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.osgi.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.osgi@:,org.eclipse.equinox.common@2:true,org.eclipse.equinox.http.servlet@default:default,javax.servlet@default:default,org.eclipse.equinox.registry@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.http@default:default,org.eclipse.equinox.p2.testserver@default:default,org.eclipse.equinox.http.servlet@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/plugin.xml b/bundles/org.eclipse.equinox.p2.testserver/plugin.xml
deleted file mode 100644
index 2b35d93..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.equinox.http.registry.servlets">
-      <servlet
-            alias="/helloworld"
-            class="org.eclipse.equinox.p2.testserver.servlets.HelloWorld">
-      </servlet>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/Activator.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/Activator.java
deleted file mode 100644
index 3a9860e..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/Activator.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver;
-
-import java.net.URI;
-import javax.servlet.ServletException;
-import org.eclipse.equinox.p2.testserver.servlets.BasicResourceDelivery;
-import org.eclipse.equinox.p2.testserver.servlets.ChopAndDelay;
-import org.eclipse.equinox.p2.testserver.servlets.ContentLengthLier;
-import org.eclipse.equinox.p2.testserver.servlets.FileMolester;
-import org.eclipse.equinox.p2.testserver.servlets.LastModifiedLier;
-import org.eclipse.equinox.p2.testserver.servlets.Redirector;
-import org.eclipse.equinox.p2.testserver.servlets.StatusCodeResponse;
-import org.eclipse.equinox.p2.testserver.servlets.TimeOut;
-import org.eclipse.equinox.p2.testserver.servlets.Truncator;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpService;
-import org.osgi.service.http.NamespaceException;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-public class Activator implements BundleActivator, ServiceTrackerCustomizer {
-	private static BundleContext context;
-	private ServiceTracker httpTracker;
-	private SecureContext secureHttpContext;
-	private SecuredArtifactsContext artifactSecuredHttpContext;
-	private static Activator instance;
-	private HttpService httpService;
-	private AlwaysFailContext alwaysFail;
-	private FlipFlopFailContext flipFlop;
-
-	private static final String SITE = "http://download.eclipse.org/eclipse/updates/3.4"; //$NON-NLS-1$
-	private static final String SITE2 = "http://www.eclipse.org/equinox/p2/testing/updateSite"; //$NON-NLS-1$
-	private static final String SITE3 = "http://download.eclipse.org/eclipse/updates/3.5-I-builds/"; //$NON-NLS-1$
-
-	public void start(BundleContext aContext) throws Exception {
-		context = aContext;
-
-		httpTracker = new ServiceTracker(context, HttpService.class.getName(), this);
-		httpTracker.open();
-		instance = this;
-	}
-
-	public void stop(BundleContext aContext) throws Exception {
-		httpTracker.close();
-		context = null;
-	}
-
-	public Object addingService(ServiceReference reference) {
-		httpService = (HttpService) context.getService(reference);
-		secureHttpContext = new SecureContext(httpService.createDefaultHttpContext());
-		artifactSecuredHttpContext = new SecuredArtifactsContext(httpService.createDefaultHttpContext());
-		alwaysFail = new AlwaysFailContext(httpService.createDefaultHttpContext());
-		flipFlop = new FlipFlopFailContext(httpService.createDefaultHttpContext());
-
-		try {
-			httpService.registerResources("/public", "/webfiles", null); //$NON-NLS-1$ //$NON-NLS-2$
-			httpService.registerResources("/private", "/webfiles", secureHttpContext); //$NON-NLS-1$ //$NON-NLS-2$
-			httpService.registerResources("/never", "/webfiles", alwaysFail); //$NON-NLS-1$ //$NON-NLS-2$
-			httpService.registerResources("/flipflop", "/webfiles", flipFlop); //$NON-NLS-1$ //$NON-NLS-2$
-
-			httpService.registerServlet("/status", new StatusCodeResponse(), null, null); //$NON-NLS-1$
-			httpService.registerServlet("/timeout", new TimeOut(), null, null); //$NON-NLS-1$
-			httpService.registerServlet("/redirect", new Redirector(), null, null); //$NON-NLS-1$
-
-			httpService.registerServlet("/truncated", new Truncator("/truncated", URI.create("/webfiles"), 50), null, null); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-			httpService.registerServlet("/molested", new FileMolester("/molested", URI.create("/webfiles"), 40), null, null); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-			// 8 bytes at a time, delay from 0 to 100 ms, in steps of 5
-			httpService.registerServlet("/decelerate", new ChopAndDelay("/decelerate", URI.create("/webfiles"), 3, 0, new LinearChange(0, 5, 100, 0)), null, null); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-
-			addProxyServices(httpService, SITE, "/proxy/"); //$NON-NLS-1$
-			addProxyServices(httpService, SITE2, "/proxy2/"); //$NON-NLS-1$
-
-			httpService.registerServlet("/proxy3/aprivate", new BasicResourceDelivery("/proxy3/aprivate", URI.create(SITE2)), null, artifactSecuredHttpContext); //$NON-NLS-1$//$NON-NLS-2$
-			httpService.registerServlet("/proxy4/aprivate", new BasicResourceDelivery("/proxy4/aprivate", URI.create(SITE3)), null, artifactSecuredHttpContext); //$NON-NLS-1$//$NON-NLS-2$
-
-		} catch (NamespaceException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (ServletException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return httpService;
-	}
-
-	/**
-	 * Adds services to a location
-	 * @param site
-	 * @param root the "mount dir" e.g. "/proxy/" "/proxy2/" etc.
-	 * @throws NamespaceException 
-	 * @throws ServletException 
-	 */
-	private void addProxyServices(HttpService httpService, String site, String root) throws ServletException, NamespaceException {
-		httpService.registerServlet(root + "truncated", new Truncator(root + "truncated", URI.create(site), 50), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "public", new BasicResourceDelivery(root + "public", URI.create(site)), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "private", new BasicResourceDelivery(root + "private", URI.create(site)), null, secureHttpContext); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "never", new BasicResourceDelivery(root + "private", URI.create(site)), null, alwaysFail); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "flipFlop", new BasicResourceDelivery(root + "private", URI.create(site)), null, flipFlop); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "molested", new FileMolester(root + "molested", URI.create(site), 40), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "decelerate", new ChopAndDelay(root + "decelerate", URI.create(site), 3, 0, new LinearChange(0, 5, 100, 0)), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "decelerate2", new ChopAndDelay(root + "decelerate2", URI.create(site), 3, 80, new LinearChange(100, 5, 105, 0)), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "readtimeout", new ChopAndDelay(root + "readtimeout", URI.create(site), 3, 10, new LinearChange(10 * 60 * 1000, 5, 5 + 10 * 60 * 1000, 0)), null, null); //$NON-NLS-1$//$NON-NLS-2$
-
-		// lie about modified time
-		httpService.registerServlet(root + "modified/zero", new LastModifiedLier(root + "modified/zero", URI.create(site), LastModifiedLier.TYPE_ZERO), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "modified/old", new LastModifiedLier(root + "modified/old", URI.create(site), LastModifiedLier.TYPE_OLD), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "modified/now", new LastModifiedLier(root + "modified/now", URI.create(site), LastModifiedLier.TYPE_NOW), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "modified/future", new LastModifiedLier(root + "modified/future", URI.create(site), LastModifiedLier.TYPE_FUTURE), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "modified/bad", new LastModifiedLier(root + "modified/bad", URI.create(site), LastModifiedLier.TYPE_BAD), null, null); //$NON-NLS-1$//$NON-NLS-2$
-
-		// lie about length
-		httpService.registerServlet(root + "length/zero", new ContentLengthLier(root + "length/zero", URI.create(site), 0), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "length/less", new ContentLengthLier(root + "length/less", URI.create(site), 90), null, null); //$NON-NLS-1$//$NON-NLS-2$
-		httpService.registerServlet(root + "length/more", new ContentLengthLier(root + "length/more", URI.create(site), 200), null, null); //$NON-NLS-1$//$NON-NLS-2$
-
-	}
-
-	public static Activator getInstance() {
-		return instance;
-	}
-
-	public HttpService getHttp() {
-		return httpService;
-	}
-
-	public void modifiedService(ServiceReference reference, Object service) {
-		// do nothing 
-	}
-
-	public void removedService(ServiceReference reference, Object service) {
-		httpService = (HttpService) service;
-		httpService.unregister("/public"); //$NON-NLS-1$
-		httpService.unregister("/private"); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/AlwaysFailContext.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/AlwaysFailContext.java
deleted file mode 100644
index 6d47118..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/AlwaysFailContext.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver;
-
-import java.net.URL;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.osgi.service.http.HttpContext;
-
-/**
- * The AlwaysFailContext can be used to add basic authentication to a path.
- * This implementation will always fail (easier to test failure logic) this way.
- */
-public class AlwaysFailContext implements HttpContext {
-	private HttpContext theDefaultContext;
-
-	public AlwaysFailContext(HttpContext defaultContext) {
-		theDefaultContext = defaultContext;
-	}
-
-	public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) {
-		// always fail
-		response.setHeader("WWW-Authenticate", "BASIC realm=\"p2 Http Testing Server (Aladdin, open sesame)\""); //$NON-NLS-1$//$NON-NLS-2$
-		response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-		return false;
-
-	}
-
-	public String getMimeType(String name) {
-		return theDefaultContext.getMimeType(name);
-	}
-
-	public URL getResource(String name) {
-		return theDefaultContext.getResource(name);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/FlipFlopFailContext.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/FlipFlopFailContext.java
deleted file mode 100644
index 2ac9e7d..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/FlipFlopFailContext.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver;
-
-import java.net.URL;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.osgi.service.http.HttpContext;
-
-/**
- * The SecureContext can be used to add basic authentication to a path.
- * It will fail on every other request to enable flaky server, or authentication testing.
- * This implementation requires the user "Aladdin" to log in with the password "open sesame".
- */
-public class FlipFlopFailContext implements HttpContext {
-	private HttpContext theDefaultContext;
-	public static int flipFlop = 0;
-
-	public FlipFlopFailContext(HttpContext defaultContext) {
-		theDefaultContext = defaultContext;
-	}
-
-	public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) {
-		String auth = request.getHeader("Authorization"); //$NON-NLS-1$
-		// Response is Aladdin:open sesame in Base64 encoding (from RFC example)
-		if (auth != null && "QWxhZGRpbjpvcGVuIHNlc2FtZQ==".equals(auth.substring(6))) //$NON-NLS-1$
-			return (flipFlop ^= 1) == 1 ? true : false;
-
-		// if not authorized or wrong user/password
-		response.setHeader("WWW-Authenticate", "BASIC realm=\"p2 Http Testing Server (Aladdin, open sesame)\""); //$NON-NLS-1$//$NON-NLS-2$
-		response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-		return false;
-
-	}
-
-	public String getMimeType(String name) {
-		return theDefaultContext.getMimeType(name);
-	}
-
-	public URL getResource(String name) {
-		return theDefaultContext.getResource(name);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/HttpConstants.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/HttpConstants.java
deleted file mode 100644
index 810ab5e..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/HttpConstants.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.testserver;
-
-public interface HttpConstants {
-	public static final String LAST_MODIFIED = "Last-Modified"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/LinearChange.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/LinearChange.java
deleted file mode 100644
index a203a1d..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/LinearChange.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.testserver;
-
-import java.util.NoSuchElementException;
-
-public class LinearChange {
-	boolean started;
-	long startValue;
-	long current;
-	long step;
-	long max;
-	long min;
-	public static final LinearChange NoChange = new LinearChange(0, 0);
-
-	public LinearChange() {
-		started = false;
-		startValue = 0;
-		current = 0;
-		step = 1;
-		max = Long.MAX_VALUE;
-		min = Long.MIN_VALUE;
-	}
-
-	public void reset() {
-		started = false;
-		current = startValue;
-	}
-
-	public LinearChange fork() {
-		LinearChange forked = new LinearChange();
-		forked.started = started;
-		forked.startValue = startValue;
-		forked.current = current;
-		forked.step = step;
-		forked.max = max;
-		forked.min = min;
-		return forked;
-	}
-
-	public LinearChange(long firstValue, long step) {
-		this();
-		current = startValue = firstValue;
-		this.step = step;
-	}
-
-	public LinearChange(long firstValue, long step, long max, long min) {
-		this(firstValue, step);
-		this.max = max;
-		this.min = min;
-	}
-
-	public long next() {
-		if (!hasNext())
-			throw new NoSuchElementException();
-		if (started)
-			current += step;
-		started = true;
-
-		return current;
-	}
-
-	public boolean hasNext() {
-		if (step == 0)
-			return false;
-		if (step > 0 && current + step > max)
-			return false;
-		if (step < 0 && current + step < min)
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/MimeLookup.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/MimeLookup.java
deleted file mode 100644
index 71c09f8..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/MimeLookup.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.testserver;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class MimeLookup {
-
-	public static final String JAR_PACK_GZ = "jar.pack.gz"; //$NON-NLS-1$
-
-	public static String getMimeType(String name) {
-		if (extMap == null)
-			initNameToMime();
-
-		// treat names with multiple "." in a special way (currently only one)
-		if (name.endsWith(JAR_PACK_GZ))
-			return (String) extMap.get(JAR_PACK_GZ);
-		int dot = name.lastIndexOf("."); //$NON-NLS-1$
-		// get the suffix, use "a" for empty as this gives the default "application/octet-stream"
-		String tmp = dot == -1 ? "a" : name.substring(dot + 1); //$NON-NLS-1$
-		tmp = (String) extMap.get(tmp);
-		return tmp == null ? "application/octet-stream" : tmp; //$NON-NLS-1$
-	}
-
-	private static Map extMap;
-	private static Map mimeMap;
-
-	public static void initNameToMime() {
-		extMap = new HashMap(data.length);
-		for (int i = 0; i < data.length; i += 2) {
-			Object key = data[i];
-			Object val = extMap.get(key);
-			if (val == null)
-				extMap.put(key, data[i]);
-		}
-
-	}
-
-	public static void initMimeToExt() {
-		mimeMap = new HashMap(data.length);
-		for (int i = 0; i < data.length; i += 2) {
-			Object key = data[i + 1];
-			Object val = mimeMap.get(key);
-			if (val == null)
-				mimeMap.put(key, data[i]);
-		}
-
-	}
-
-	public final static String[] data = { //
-	//--- typical java related mime types - higher priority
-			"bat", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"batfrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"class", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"css", "text/css", //$NON-NLS-1$ //$NON-NLS-2$
-			"cssfrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"exe", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"gif", "image/gif", //$NON-NLS-1$ //$NON-NLS-2$
-			"html", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"htmlfrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"jad", "text/vnd.sun.j2me.app-descriptor", //$NON-NLS-1$ //$NON-NLS-2$
-			"jar", "application/java-archive", //$NON-NLS-1$ //$NON-NLS-2$
-			"jar.pack.gz", "application/x-java-pack200", //$NON-NLS-1$ //$NON-NLS-2$
-			"jardiff", "application/x-java-archive-diff", //$NON-NLS-1$ //$NON-NLS-2$
-			"java", "text/x-java-source", //$NON-NLS-1$ //$NON-NLS-2$
-			"javafrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"jnlp", "application/x-java-jnlp-file", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpg", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"js", "application/x-javascript", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp3", "audio/mp3", //$NON-NLS-1$ //$NON-NLS-2$
-			"png", "image/png", //$NON-NLS-1$ //$NON-NLS-2$
-			"rss", "application/rss+xml", //$NON-NLS-1$ //$NON-NLS-2$
-			"ser", "application/x-java-serialized-object", //$NON-NLS-1$ //$NON-NLS-2$
-			"sql", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"sqlfrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"swf", "application/x-shockwave-flash", //$NON-NLS-1$ //$NON-NLS-2$
-			"txt", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"wav", "audio/wav", //$NON-NLS-1$ //$NON-NLS-2$
-			"xml", "application/xml", //$NON-NLS-1$ //$NON-NLS-2$
-			"xmlfrag", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"zip", "application/zip", //$NON-NLS-1$ //$NON-NLS-2$
-
-			//--- misc definitions
-			"3dm", "x-world/x-3dmf", //$NON-NLS-1$ //$NON-NLS-2$
-			"3dmf", "x-world/x-3dmf", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"a", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"aab", "application/x-authorware-bin", //$NON-NLS-1$ //$NON-NLS-2$
-			"aam", "application/x-authorware-map", //$NON-NLS-1$ //$NON-NLS-2$
-			"aas", "application/x-authorware-seg", //$NON-NLS-1$ //$NON-NLS-2$
-			"abc", "text/vnd.abc", //$NON-NLS-1$ //$NON-NLS-2$
-			"acgi", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"afl", "video/animaflex", //$NON-NLS-1$ //$NON-NLS-2$
-			"ai", "application/postscript", //$NON-NLS-1$ //$NON-NLS-2$
-			"aif", "audio/aiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"aif", "audio/x-aiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"aifc", "audio/aiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"aifc", "audio/x-aiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"aiff", "audio/aiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"aiff", "audio/x-aiff", //$NON-NLS-1$ //$NON-NLS-2$			
-			"aim", "application/x-aim", //$NON-NLS-1$ //$NON-NLS-2$
-			"aip", "text/x-audiosoft-intra", //$NON-NLS-1$ //$NON-NLS-2$
-			"ani", "application/x-navi-animation", //$NON-NLS-1$ //$NON-NLS-2$
-			"aps", "application/mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"arc", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"arj", "application/arj", //$NON-NLS-1$ //$NON-NLS-2$
-			"arj", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"art", "image/x-jg", //$NON-NLS-1$ //$NON-NLS-2$
-			"asf", "video/x-ms-asf", //$NON-NLS-1$ //$NON-NLS-2$
-			"asm", "text/x-asm", //$NON-NLS-1$ //$NON-NLS-2$
-			"asp", "text/asp", //$NON-NLS-1$ //$NON-NLS-2$
-			"asx", "application/x-mplayer2", //$NON-NLS-1$ //$NON-NLS-2$
-			"asx", "video/x-ms-asf", //$NON-NLS-1$ //$NON-NLS-2$
-			"asx", "video/x-ms-asf-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"au", "audio/basic", //$NON-NLS-1$ //$NON-NLS-2$
-			"au", "audio/x-au", //$NON-NLS-1$ //$NON-NLS-2$
-			"avi", "video/avi", //$NON-NLS-1$ //$NON-NLS-2$
-			"avi", "application/x-troff-msvideo", //$NON-NLS-1$ //$NON-NLS-2$
-			"avi", "video/msvideo", //$NON-NLS-1$ //$NON-NLS-2$
-			"avi", "video/x-msvideo", //$NON-NLS-1$ //$NON-NLS-2$
-			"avs", "video/avs-video", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"bcpio", "application/x-bcpio", //$NON-NLS-1$ //$NON-NLS-2$
-			"bin", "application/mac-binary", //$NON-NLS-1$ //$NON-NLS-2$
-			"bin", "application/macbinary", //$NON-NLS-1$ //$NON-NLS-2$
-			"bin", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"bin", "application/x-binary", //$NON-NLS-1$ //$NON-NLS-2$
-			"bin", "application/x-macbinary", //$NON-NLS-1$ //$NON-NLS-2$
-			"bm", "image/bmp", //$NON-NLS-1$ //$NON-NLS-2$
-			"bmp", "image/bmp", //$NON-NLS-1$ //$NON-NLS-2$
-			"bmp", "image/x-windows-bmp", //$NON-NLS-1$ //$NON-NLS-2$
-			"boo", "application/book", //$NON-NLS-1$ //$NON-NLS-2$
-			"book", "application/book", //$NON-NLS-1$ //$NON-NLS-2$
-			"boz", "application/x-bzip2", //$NON-NLS-1$ //$NON-NLS-2$
-			"bsh", "application/x-bsh", //$NON-NLS-1$ //$NON-NLS-2$
-			"bz", "application/x-bzip", //$NON-NLS-1$ //$NON-NLS-2$
-			"bz2", "application/x-bzip2", //$NON-NLS-1$ //$NON-NLS-2$
-			"c", "text/x-c", //$NON-NLS-1$ //$NON-NLS-2$
-			"c", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"c++", "text/x-c", //$NON-NLS-1$ //$NON-NLS-2$
-			"c++", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"cat", "application/vnd.ms-pki.seccat", //$NON-NLS-1$ //$NON-NLS-2$
-			"cc", "text/x-c", //$NON-NLS-1$ //$NON-NLS-2$
-			"cc", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"ccad", "application/clariscad", //$NON-NLS-1$ //$NON-NLS-2$
-			"cco", "application/x-cocoa", //$NON-NLS-1$ //$NON-NLS-2$
-			"cdf", "application/cdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"cdf", "application/x-cdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"cdf", "application/x-netcdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"cer", "application/pkix-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"cer", "application/x-x509-ca-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"cha", "application/x-chat", //$NON-NLS-1$ //$NON-NLS-2$
-			"chat", "application/x-chat", //$NON-NLS-1$ //$NON-NLS-2$
-			"class", "application/java", //$NON-NLS-1$ //$NON-NLS-2$
-			"class", "application/java-byte-code", //$NON-NLS-1$ //$NON-NLS-2$
-			"class", "application/x-java-class", //$NON-NLS-1$ //$NON-NLS-2$
-			"com", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"com", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"conf", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"cpio", "application/x-cpio", //$NON-NLS-1$ //$NON-NLS-2$
-			"cpp", "text/x-c", //$NON-NLS-1$ //$NON-NLS-2$
-			"cpt", "application/mac-compactpro", //$NON-NLS-1$ //$NON-NLS-2$
-			"cpt", "application/x-compactpro", //$NON-NLS-1$ //$NON-NLS-2$
-			"cpt", "application/x-cpt", //$NON-NLS-1$ //$NON-NLS-2$
-			"crl", "application/pkcs-crl", //$NON-NLS-1$ //$NON-NLS-2$
-			"crl", "application/pkix-crl", //$NON-NLS-1$ //$NON-NLS-2$
-			"crt", "application/pkix-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"crt", "application/x-x509-ca-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"crt", "application/x-x509-user-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"csh", "application/x-csh", //$NON-NLS-1$ //$NON-NLS-2$
-			"csh", "text/x-script.csh", //$NON-NLS-1$ //$NON-NLS-2$
-			"css", "text/css", //$NON-NLS-1$ //$NON-NLS-2$
-			"cxx", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"css", "application/x-pointplus", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"dcr", "application/x-director", //$NON-NLS-1$ //$NON-NLS-2$
-			"deepv", "application/x-deepv", //$NON-NLS-1$ //$NON-NLS-2$
-			"der", "application/x-x509-ca-cert", //$NON-NLS-1$ //$NON-NLS-2$
-			"def", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"dif", "video/x-dv", //$NON-NLS-1$ //$NON-NLS-2$
-			"dir", "application/x-director", //$NON-NLS-1$ //$NON-NLS-2$
-			"dl", "video/dl", //$NON-NLS-1$ //$NON-NLS-2$
-			"dl", "video/x-dl", //$NON-NLS-1$ //$NON-NLS-2$
-			"doc", "application/msword", //$NON-NLS-1$ //$NON-NLS-2$
-			"dot", "application/msword", //$NON-NLS-1$ //$NON-NLS-2$
-			"dp", "application/commonground", //$NON-NLS-1$ //$NON-NLS-2$
-			"drw", "application/drafting", //$NON-NLS-1$ //$NON-NLS-2$
-			"dump", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"dv", "video/x-dv", //$NON-NLS-1$ //$NON-NLS-2$
-			"dvi", "application/x-dvi", //$NON-NLS-1$ //$NON-NLS-2$
-			"dwf", "model/vnd.dwf", //$NON-NLS-1$ //$NON-NLS-2$
-			"dwg", "application/acad", //$NON-NLS-1$ //$NON-NLS-2$
-			"dwg", "image/vnd.dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"dwg", "image/x-dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"dxf", "application/dxf", //$NON-NLS-1$ //$NON-NLS-2$
-			"dxf", "image/vnd.dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"dxf", "image/x-dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"dxr", "application/x-director", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"elc", "application/x-elc", //$NON-NLS-1$ //$NON-NLS-2$
-			"env", "application/x-envoy", //$NON-NLS-1$ //$NON-NLS-2$
-			"eps", "application/postscript", //$NON-NLS-1$ //$NON-NLS-2$
-			"es", "application/x-esrehber", //$NON-NLS-1$ //$NON-NLS-2$
-			"etx", "text/x-setext", //$NON-NLS-1$ //$NON-NLS-2$
-			"exe", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"f", "text/x-fortran", //$NON-NLS-1$ //$NON-NLS-2$
-			"f", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"f77", "text/x-fortran", //$NON-NLS-1$ //$NON-NLS-2$
-			"f90", "text/x-fortran", //$NON-NLS-1$ //$NON-NLS-2$
-			"f90", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"fdf", "application/vnd.fdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"fli", "video/fli", //$NON-NLS-1$ //$NON-NLS-2$
-			"fli", "video/x-fli", //$NON-NLS-1$ //$NON-NLS-2$
-			"for", "text/x-fortran", //$NON-NLS-1$ //$NON-NLS-2$
-			"for", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"fpx", "image/vnd.fpx", //$NON-NLS-1$ //$NON-NLS-2$
-			"fpx", "image/vnd.net-fpx", //$NON-NLS-1$ //$NON-NLS-2$
-			"frl", "application/freeloader", //$NON-NLS-1$ //$NON-NLS-2$
-			"funk", "audio/make", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"g", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"g3", "image/g3fax", //$NON-NLS-1$ //$NON-NLS-2$
-			"gif", "image/gif", //$NON-NLS-1$ //$NON-NLS-2$
-			"gl", "video/gl", //$NON-NLS-1$ //$NON-NLS-2$
-			"gl", "video/x-gl", //$NON-NLS-1$ //$NON-NLS-2$
-			"gsd", "audio/x-gsm", //$NON-NLS-1$ //$NON-NLS-2$
-			"gsm", "audio/x-gsm", //$NON-NLS-1$ //$NON-NLS-2$
-			"gsp", "application/x-gsp", //$NON-NLS-1$ //$NON-NLS-2$
-			"gss", "application/x-gss", //$NON-NLS-1$ //$NON-NLS-2$
-			"gtar", "application/x-gtar", //$NON-NLS-1$ //$NON-NLS-2$
-			"gz", "application/x-compressed", //$NON-NLS-1$ //$NON-NLS-2$
-			"gz", "application/x-gzip", //$NON-NLS-1$ //$NON-NLS-2$
-			"gzip", "application/x-gzip", //$NON-NLS-1$ //$NON-NLS-2$
-			"gzip", "multipart/x-gzip", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"h", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"h", "text/x-h", //$NON-NLS-1$ //$NON-NLS-2$
-			"hdf", "application/x-hdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"help", "application/x-helpfile", //$NON-NLS-1$ //$NON-NLS-2$
-			"hgl", "application/vnd.hp-hpgl", //$NON-NLS-1$ //$NON-NLS-2$
-			"hh", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"hh", "text/x-h", //$NON-NLS-1$ //$NON-NLS-2$
-			"hlb", "text/x-script", //$NON-NLS-1$ //$NON-NLS-2$
-			"hlp", "application/hlp", //$NON-NLS-1$ //$NON-NLS-2$
-			"hlp", "application/x-helpfile", //$NON-NLS-1$ //$NON-NLS-2$
-			"hlp", "application/x-winhelp", //$NON-NLS-1$ //$NON-NLS-2$
-			"hpg", "application/vnd.hp-hpgl", //$NON-NLS-1$ //$NON-NLS-2$
-			"hpgl", "application/vnd.hp-hpgl", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/binhex", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/binhex4", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/mac-binhex", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/mac-binhex40", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/x-binhex40", //$NON-NLS-1$ //$NON-NLS-2$
-			"hqx", "application/x-mac-binhex40", //$NON-NLS-1$ //$NON-NLS-2$
-			"hta", "application/hta", //$NON-NLS-1$ //$NON-NLS-2$
-			"htc", "text/x-component", //$NON-NLS-1$ //$NON-NLS-2$
-			"htm", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"html", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"htmls", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"htt", "text/webviewhtml", //$NON-NLS-1$ //$NON-NLS-2$
-			"htx", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"ice", "x-conference/x-cooltalk", //$NON-NLS-1$ //$NON-NLS-2$
-			"ico", "image/x-icon", //$NON-NLS-1$ //$NON-NLS-2$
-			"idc", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"ief", "image/ief", //$NON-NLS-1$ //$NON-NLS-2$
-			"iefs", "image/ief", //$NON-NLS-1$ //$NON-NLS-2$
-			"iges", "application/iges", //$NON-NLS-1$ //$NON-NLS-2$
-			"iges", "model/iges", //$NON-NLS-1$ //$NON-NLS-2$
-			"igs", "application/iges", //$NON-NLS-1$ //$NON-NLS-2$
-			"igs", "model/iges", //$NON-NLS-1$ //$NON-NLS-2$
-			"ima", "application/x-ima", //$NON-NLS-1$ //$NON-NLS-2$
-			"imap", "application/x-httpd-imap", //$NON-NLS-1$ //$NON-NLS-2$
-			"inf", "application/inf", //$NON-NLS-1$ //$NON-NLS-2$
-			"ins", "application/x-internett-signup", //$NON-NLS-1$ //$NON-NLS-2$
-			"ip", "application/x-ip2", //$NON-NLS-1$ //$NON-NLS-2$
-			"isu", "video/x-isvideo", //$NON-NLS-1$ //$NON-NLS-2$
-			"it", "audio/it", //$NON-NLS-1$ //$NON-NLS-2$
-			"iv", "application/x-inventor", //$NON-NLS-1$ //$NON-NLS-2$
-			"ivr", "i-world/i-vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"ivy", "application/x-livescreen", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"jam", "audio/x-jam", //$NON-NLS-1$ //$NON-NLS-2$
-			"jav", "text/x-java-source", //$NON-NLS-1$ //$NON-NLS-2$
-			"jav", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"java", "text/x-java-source", //$NON-NLS-1$ //$NON-NLS-2$
-			"java", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"jcm", "application/x-java-commerce", //$NON-NLS-1$ //$NON-NLS-2$
-			"jfif", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jfif", "image/pjpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jfif-tbnl", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpe", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpe", "image/pjpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpeg", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpeg", "image/pjpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpg", "image/jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jpg", "image/pjpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"jps", "image/x-jps", //$NON-NLS-1$ //$NON-NLS-2$
-			"js", "application/x-javascript", //$NON-NLS-1$ //$NON-NLS-2$
-			"jut", "image/jutvision", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"kar", "audio/midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"kar", "music/x-karaoke", //$NON-NLS-1$ //$NON-NLS-2$
-			"ksh", "application/x-ksh", //$NON-NLS-1$ //$NON-NLS-2$
-			"ksh", "text/x-script.ksh", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"la", "audio/nspaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"la", "audio/x-nspaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"lam", "audio/x-liveaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"latex", "application/x-latex", //$NON-NLS-1$ //$NON-NLS-2$
-			"lha", "application/lha", //$NON-NLS-1$ //$NON-NLS-2$
-			"lha", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"lha", "application/x-lha", //$NON-NLS-1$ //$NON-NLS-2$
-			"lhx", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"list", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"lma", "audio/nspaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"lma", "audio/x-nspaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"log", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"lsp", "application/x-lisp", //$NON-NLS-1$ //$NON-NLS-2$
-			"lsp", "text/x-script.lisp", //$NON-NLS-1$ //$NON-NLS-2$
-			"lst", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"lsx", "text/x-la-asf", //$NON-NLS-1$ //$NON-NLS-2$
-			"ltx", "application/x-latex", //$NON-NLS-1$ //$NON-NLS-2$
-			"lzh", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"lzh", "application/x-lzh", //$NON-NLS-1$ //$NON-NLS-2$
-			"lzx", "application/lzx", //$NON-NLS-1$ //$NON-NLS-2$
-			"lzx", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"lzx", "application/x-lzx", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"m", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"m", "text/x-m", //$NON-NLS-1$ //$NON-NLS-2$
-			"m1v", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"m2a", "audio/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"m2v", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"m3u", "audio/x-mpequrl", //$NON-NLS-1$ //$NON-NLS-2$
-			"man", "application/x-troff-man", //$NON-NLS-1$ //$NON-NLS-2$
-			"map", "application/x-navimap", //$NON-NLS-1$ //$NON-NLS-2$
-			"mar", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"mbd", "application/mbedlet", //$NON-NLS-1$ //$NON-NLS-2$
-			"mcd", "application/mcad", //$NON-NLS-1$ //$NON-NLS-2$
-			"mcd", "application/x-mathcad", //$NON-NLS-1$ //$NON-NLS-2$
-			"mcf", "image/vasa", //$NON-NLS-1$ //$NON-NLS-2$
-			"mcf", "text/mcf", //$NON-NLS-1$ //$NON-NLS-2$
-			"mcp", "application/netmc", //$NON-NLS-1$ //$NON-NLS-2$
-			"me", "application/x-troff-me", //$NON-NLS-1$ //$NON-NLS-2$
-			"mht", "message/rfc822", //$NON-NLS-1$ //$NON-NLS-2$
-			"mhtml", "message/rfc822", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "audio/midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "application/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "audio/x-mid", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "audio/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "music/crescendo", //$NON-NLS-1$ //$NON-NLS-2$
-			"mid", "x-music/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "audio/midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "application/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "audio/x-mid", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "audio/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "music/crescendo", //$NON-NLS-1$ //$NON-NLS-2$
-			"midi", "x-music/x-midi", //$NON-NLS-1$ //$NON-NLS-2$
-			"mif", "application/x-frame", //$NON-NLS-1$ //$NON-NLS-2$
-			"mif", "application/x-mif", //$NON-NLS-1$ //$NON-NLS-2$
-			"mime", "www/mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"mime", "message/rfc822", //$NON-NLS-1$ //$NON-NLS-2$
-			"mjpg", "video/x-motion-jpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mm", "application/base64", //$NON-NLS-1$ //$NON-NLS-2$
-			"mm", "application/x-meme", //$NON-NLS-1$ //$NON-NLS-2$
-			"mme", "application/base64", //$NON-NLS-1$ //$NON-NLS-2$
-			"mod", "audio/mod", //$NON-NLS-1$ //$NON-NLS-2$
-			"mod", "audio/x-mod", //$NON-NLS-1$ //$NON-NLS-2$
-			"moov", "video/quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"mov", "video/quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"movie", "video/x-sgi-movie", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp2", "audio/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp2", "audio/x-mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp2", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp2", "video/x-mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp2", "video/x-mpeq2a", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp3", "audio/mpeg3", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp3", "audio/x-mpeg-3", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp3", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mp3", "video/x-mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpa", "audio/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpa", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpc", "application/x-project", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpe", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpeg", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpg", "audio/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpg", "video/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpga", "audio/mpeg", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpp", "application/vnd.ms-project", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpt", "application/x-project", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpv", "application/x-project", //$NON-NLS-1$ //$NON-NLS-2$
-			"mpx", "application/x-project", //$NON-NLS-1$ //$NON-NLS-2$
-			"mrc", "application/marc", //$NON-NLS-1$ //$NON-NLS-2$
-			"ms", "application/x-troff-ms", //$NON-NLS-1$ //$NON-NLS-2$
-			"mv", "video/x-sgi-movie", //$NON-NLS-1$ //$NON-NLS-2$
-			"my", "audio/make", //$NON-NLS-1$ //$NON-NLS-2$
-			"mzz", "application/x-vnd.audioexplosion.mzz", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"nap", "image/naplps", //$NON-NLS-1$ //$NON-NLS-2$
-			"naplps", "image/naplps", //$NON-NLS-1$ //$NON-NLS-2$
-			"nc", "application/x-netcdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"ncm", "application/vnd.nokia.configuration-message", //$NON-NLS-1$ //$NON-NLS-2$
-			"nif", "image/x-niff", //$NON-NLS-1$ //$NON-NLS-2$
-			"niff", "image/x-niff", //$NON-NLS-1$ //$NON-NLS-2$
-			"nix", "application/x-mix-transfer", //$NON-NLS-1$ //$NON-NLS-2$
-			"nsc", "application/x-conference", //$NON-NLS-1$ //$NON-NLS-2$
-			"nvd", "application/x-navidoc", //$NON-NLS-1$ //$NON-NLS-2$
-			"o", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"oda", "application/oda", //$NON-NLS-1$ //$NON-NLS-2$
-			"omc", "application/x-omc", //$NON-NLS-1$ //$NON-NLS-2$
-			"omcd", "application/x-omcdatamaker", //$NON-NLS-1$ //$NON-NLS-2$
-			"omcr", "application/x-omcregerator", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"p", "text/x-pascal", //$NON-NLS-1$ //$NON-NLS-2$
-			"p10", "application/pkcs10", //$NON-NLS-1$ //$NON-NLS-2$
-			"p10", "application/x-pkcs10", //$NON-NLS-1$ //$NON-NLS-2$
-			"p12", "application/pkcs-12", //$NON-NLS-1$ //$NON-NLS-2$
-			"p12", "application/x-pkcs12", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7a", "application/x-pkcs7-signature", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7c", "application/pkcs7-mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7c", "application/x-pkcs7-mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7m", "application/pkcs7-mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7m", "application/x-pkcs7-mime", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7r", "application/x-pkcs7-certreqresp", //$NON-NLS-1$ //$NON-NLS-2$
-			"p7s", "application/pkcs7-signature", //$NON-NLS-1$ //$NON-NLS-2$
-			"part", "application/pro_eng", //$NON-NLS-1$ //$NON-NLS-2$
-			"pas", "text/pascal", //$NON-NLS-1$ //$NON-NLS-2$
-			"pbm", "image/x-portable-bitmap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pcl", "application/vnd.hp-pcl", //$NON-NLS-1$ //$NON-NLS-2$
-			"pcl", "application/x-pcl", //$NON-NLS-1$ //$NON-NLS-2$
-			"pct", "image/x-pict", //$NON-NLS-1$ //$NON-NLS-2$
-			"pcx", "image/x-pcx", //$NON-NLS-1$ //$NON-NLS-2$
-			"pdb", "chemical/x-pdb", //$NON-NLS-1$ //$NON-NLS-2$
-			"pdf", "application/pdf", //$NON-NLS-1$ //$NON-NLS-2$
-			"pfunk", "audio/make", //$NON-NLS-1$ //$NON-NLS-2$
-			"pfunk", "audio/make.my.funk", //$NON-NLS-1$ //$NON-NLS-2$
-			"pgm", "image/x-portable-graymap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pgm", "image/x-portable-greymap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pic", "image/pict", //$NON-NLS-1$ //$NON-NLS-2$
-			"pict", "image/pict", //$NON-NLS-1$ //$NON-NLS-2$
-			"pkg", "application/x-newton-compatible-pkg", //$NON-NLS-1$ //$NON-NLS-2$
-			"pko", "application/vnd.ms-pki.pko", //$NON-NLS-1$ //$NON-NLS-2$
-			"pl", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"pl", "text/x-script.perl", //$NON-NLS-1$ //$NON-NLS-2$
-			"plx", "application/x-pixclscript", //$NON-NLS-1$ //$NON-NLS-2$
-			"pm", "image/x-xpixmap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pm", "text/x-script.perl-module", //$NON-NLS-1$ //$NON-NLS-2$
-			"pm4", "application/x-pagemaker", //$NON-NLS-1$ //$NON-NLS-2$
-			"pm5", "application/x-pagemaker", //$NON-NLS-1$ //$NON-NLS-2$
-			"png", "image/png", //$NON-NLS-1$ //$NON-NLS-2$
-			"pnm", "application/x-portable-anymap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pnm", "image/x-portable-anymap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pot", "application/mspowerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"pot", "application/vnd.ms-powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"pov", "model/x-pov", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppa", "application/vnd.ms-powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppm", "image/x-portable-pixmap", //$NON-NLS-1$ //$NON-NLS-2$
-			"pps", "application/mspowerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"pps", "application/vnd.ms-powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppt", "application/mspowerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppt", "application/powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppt", "application/vnd.ms-powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppt", "application/x-mspowerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"ppz", "application/mspowerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"pre", "application/x-freelance", //$NON-NLS-1$ //$NON-NLS-2$
-			"prt", "application/pro_eng", //$NON-NLS-1$ //$NON-NLS-2$
-			"ps", "application/postscript", //$NON-NLS-1$ //$NON-NLS-2$
-			"psd", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"pvu", "paleovu/x-pv", //$NON-NLS-1$ //$NON-NLS-2$
-			"pwz", "application/vnd.ms-powerpoint", //$NON-NLS-1$ //$NON-NLS-2$
-			"py", "text/x-script.phyton", //$NON-NLS-1$ //$NON-NLS-2$
-			"pyc", "applicaiton/x-bytecode.python", //$NON-NLS-1$ //$NON-NLS-2$
-			"qcp", "audio/vnd.qcelp", //$NON-NLS-1$ //$NON-NLS-2$
-			"qd3", "x-world/x-3dmf", //$NON-NLS-1$ //$NON-NLS-2$
-			"qd3d", "x-world/x-3dmf", //$NON-NLS-1$ //$NON-NLS-2$
-			"qif", "image/x-quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"qt", "video/quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"qtc", "video/x-qtc", //$NON-NLS-1$ //$NON-NLS-2$
-			"qti", "image/x-quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"qtif", "image/x-quicktime", //$NON-NLS-1$ //$NON-NLS-2$
-			"ra", "audio/x-pn-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"ra", "audio/x-pn-realaudio-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"ra", "audio/x-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"ram", "audio/x-pn-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"ras", "application/x-cmu-raster", //$NON-NLS-1$ //$NON-NLS-2$
-			"ras", "image/cmu-raster", //$NON-NLS-1$ //$NON-NLS-2$
-			"ras", "image/x-cmu-raster", //$NON-NLS-1$ //$NON-NLS-2$
-			"rast", "image/cmu-raster", //$NON-NLS-1$ //$NON-NLS-2$
-			"rexx", "text/x-script.rexx", //$NON-NLS-1$ //$NON-NLS-2$
-			"rf", "image/vnd.rn-realflash", //$NON-NLS-1$ //$NON-NLS-2$
-			"rgb", "image/x-rgb", //$NON-NLS-1$ //$NON-NLS-2$
-			"rm", "application/vnd.rn-realmedia", //$NON-NLS-1$ //$NON-NLS-2$
-			"rm", "audio/x-pn-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"rmi", "audio/mid", //$NON-NLS-1$ //$NON-NLS-2$
-			"rmm", "audio/x-pn-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"rmp", "audio/x-pn-realaudio", //$NON-NLS-1$ //$NON-NLS-2$
-			"rmp", "audio/x-pn-realaudio-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"rng", "application/ringing-tones", //$NON-NLS-1$ //$NON-NLS-2$
-			"rng", "application/vnd.nokia.ringing-tone", //$NON-NLS-1$ //$NON-NLS-2$
-			"rnx", "application/vnd.rn-realplayer", //$NON-NLS-1$ //$NON-NLS-2$
-			"roff", "application/x-troff", //$NON-NLS-1$ //$NON-NLS-2$
-			"rp", "image/vnd.rn-realpix", //$NON-NLS-1$ //$NON-NLS-2$
-			"rpm", "audio/x-pn-realaudio-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"rt", "text/richtext", //$NON-NLS-1$ //$NON-NLS-2$
-			"rt", "text/vnd.rn-realtext", //$NON-NLS-1$ //$NON-NLS-2$
-			"rtf", "application/rtf", //$NON-NLS-1$ //$NON-NLS-2$
-			"rtf", "application/x-rtf", //$NON-NLS-1$ //$NON-NLS-2$
-			"rtf", "text/richtext", //$NON-NLS-1$ //$NON-NLS-2$
-			"rtx", "application/rtf", //$NON-NLS-1$ //$NON-NLS-2$
-			"rtx", "text/richtext", //$NON-NLS-1$ //$NON-NLS-2$
-			"rv", "video/vnd.rn-realvideo", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"s", "text/x-asm", //$NON-NLS-1$ //$NON-NLS-2$
-			"s3m", "audio/s3m", //$NON-NLS-1$ //$NON-NLS-2$
-			"saveme", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"sbk", "application/x-tbook", //$NON-NLS-1$ //$NON-NLS-2$
-			"scm", "application/x-lotusscreencam", //$NON-NLS-1$ //$NON-NLS-2$
-			"scm", "text/x-script.guile", //$NON-NLS-1$ //$NON-NLS-2$
-			"scm", "text/x-script.scheme", //$NON-NLS-1$ //$NON-NLS-2$
-			"scm", "video/x-scm", //$NON-NLS-1$ //$NON-NLS-2$
-			"sdml", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"sdp", "application/sdp", //$NON-NLS-1$ //$NON-NLS-2$
-			"sdp", "application/x-sdp", //$NON-NLS-1$ //$NON-NLS-2$
-			"sdr", "application/sounder", //$NON-NLS-1$ //$NON-NLS-2$
-			"sea", "application/sea", //$NON-NLS-1$ //$NON-NLS-2$
-			"sea", "application/x-sea", //$NON-NLS-1$ //$NON-NLS-2$
-			"set", "application/set", //$NON-NLS-1$ //$NON-NLS-2$
-			"sgm", "text/sgml", //$NON-NLS-1$ //$NON-NLS-2$
-			"sgm", "text/x-sgml", //$NON-NLS-1$ //$NON-NLS-2$
-			"sgml", "text/sgml", //$NON-NLS-1$ //$NON-NLS-2$
-			"sgml", "text/x-sgml", //$NON-NLS-1$ //$NON-NLS-2$
-			"sh", "application/x-bsh", //$NON-NLS-1$ //$NON-NLS-2$
-			"sh", "application/x-sh", //$NON-NLS-1$ //$NON-NLS-2$
-			"sh", "application/x-shar", //$NON-NLS-1$ //$NON-NLS-2$
-			"sh", "text/x-script.sh", //$NON-NLS-1$ //$NON-NLS-2$
-			"shar", "application/x-bsh", //$NON-NLS-1$ //$NON-NLS-2$
-			"shar", "application/x-shar", //$NON-NLS-1$ //$NON-NLS-2$
-			"shtml", "text/html", //$NON-NLS-1$ //$NON-NLS-2$
-			"shtml", "text/x-server-parsed-html", //$NON-NLS-1$ //$NON-NLS-2$
-			"sid", "audio/x-psid", //$NON-NLS-1$ //$NON-NLS-2$
-			"sit", "application/x-sit", //$NON-NLS-1$ //$NON-NLS-2$
-			"sit", "application/x-stuffit", //$NON-NLS-1$ //$NON-NLS-2$
-			"skd", "application/x-koan", //$NON-NLS-1$ //$NON-NLS-2$
-			"skm", "application/x-koan", //$NON-NLS-1$ //$NON-NLS-2$
-			"skp", "application/x-koan", //$NON-NLS-1$ //$NON-NLS-2$
-			"skt", "application/x-koan", //$NON-NLS-1$ //$NON-NLS-2$
-			"sl", "application/x-seelogo", //$NON-NLS-1$ //$NON-NLS-2$
-			"smi", "application/smil", //$NON-NLS-1$ //$NON-NLS-2$
-			"smil", "application/smil", //$NON-NLS-1$ //$NON-NLS-2$
-			"snd", "audio/basic", //$NON-NLS-1$ //$NON-NLS-2$
-			"snd", "audio/x-adpcm", //$NON-NLS-1$ //$NON-NLS-2$
-			"sol", "application/solids", //$NON-NLS-1$ //$NON-NLS-2$
-			"spc", "application/x-pkcs7-certificates", //$NON-NLS-1$ //$NON-NLS-2$
-			"spc", "text/x-speech", //$NON-NLS-1$ //$NON-NLS-2$
-			"spl", "application/futuresplash", //$NON-NLS-1$ //$NON-NLS-2$
-			"spr", "application/x-sprite", //$NON-NLS-1$ //$NON-NLS-2$
-			"sprite", "application/x-sprite", //$NON-NLS-1$ //$NON-NLS-2$
-			"src", "application/x-wais-source", //$NON-NLS-1$ //$NON-NLS-2$
-			"ssi", "text/x-server-parsed-html", //$NON-NLS-1$ //$NON-NLS-2$
-			"ssm", "application/streamingmedia", //$NON-NLS-1$ //$NON-NLS-2$
-			"sst", "application/vnd.ms-pki.certstore", //$NON-NLS-1$ //$NON-NLS-2$
-			"step", "application/step", //$NON-NLS-1$ //$NON-NLS-2$
-			"stl", "application/sla", //$NON-NLS-1$ //$NON-NLS-2$
-			"stl", "application/vnd.ms-pki.stl", //$NON-NLS-1$ //$NON-NLS-2$
-			"stl", "application/x-navistyle", //$NON-NLS-1$ //$NON-NLS-2$
-			"stp", "application/step", //$NON-NLS-1$ //$NON-NLS-2$
-			"sv4cpio", "application/x-sv4cpio", //$NON-NLS-1$ //$NON-NLS-2$
-			"sv4crc", "application/x-sv4crc", //$NON-NLS-1$ //$NON-NLS-2$
-			"svf", "image/vnd.dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"svf", "image/x-dwg", //$NON-NLS-1$ //$NON-NLS-2$
-			"svr", "application/x-world", //$NON-NLS-1$ //$NON-NLS-2$
-			"svr", "x-world/x-svr", //$NON-NLS-1$ //$NON-NLS-2$
-			"swf", "application/x-shockwave-flash", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"t", "application/x-troff", //$NON-NLS-1$ //$NON-NLS-2$
-			"talk", "text/x-speech", //$NON-NLS-1$ //$NON-NLS-2$
-			"tar", "application/x-tar", //$NON-NLS-1$ //$NON-NLS-2$
-			"tbk", "application/toolbook", //$NON-NLS-1$ //$NON-NLS-2$
-			"tbk", "application/x-tbook", //$NON-NLS-1$ //$NON-NLS-2$
-			"tcl", "application/x-tcl", //$NON-NLS-1$ //$NON-NLS-2$
-			"tcl", "text/x-script.tcl", //$NON-NLS-1$ //$NON-NLS-2$
-			"tcsh", "text/x-script.tcsh", //$NON-NLS-1$ //$NON-NLS-2$
-			"tex", "application/x-tex", //$NON-NLS-1$ //$NON-NLS-2$
-			"texi", "application/x-texinfo", //$NON-NLS-1$ //$NON-NLS-2$
-			"texinfo", "application/x-texinfo", //$NON-NLS-1$ //$NON-NLS-2$
-			"text", "application/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"text", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-			"tgz", "application/gnutar", //$NON-NLS-1$ //$NON-NLS-2$
-			"tgz", "application/x-compressed", //$NON-NLS-1$ //$NON-NLS-2$
-			"tif", "image/tiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"tif", "image/x-tiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"tiff", "image/tiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"tiff", "image/x-tiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"tr", "application/x-troff", //$NON-NLS-1$ //$NON-NLS-2$
-			"tsi", "audio/tsp-audio", //$NON-NLS-1$ //$NON-NLS-2$
-			"tsp", "application/dsptype", //$NON-NLS-1$ //$NON-NLS-2$
-			"tsp", "audio/tsplayer", //$NON-NLS-1$ //$NON-NLS-2$
-			"tsv", "text/tab-separated-values", //$NON-NLS-1$ //$NON-NLS-2$
-			"turbot", "image/florian", //$NON-NLS-1$ //$NON-NLS-2$
-			"txt", "text/plain", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"uil", "text/x-uil", //$NON-NLS-1$ //$NON-NLS-2$
-			"uni", "text/uri-list", //$NON-NLS-1$ //$NON-NLS-2$
-			"unis", "text/uri-list", //$NON-NLS-1$ //$NON-NLS-2$
-			"unv", "application/i-deas", //$NON-NLS-1$ //$NON-NLS-2$
-			"uri", "text/uri-list", //$NON-NLS-1$ //$NON-NLS-2$
-			"uris", "text/uri-list", //$NON-NLS-1$ //$NON-NLS-2$
-			"ustar", "application/x-ustar", //$NON-NLS-1$ //$NON-NLS-2$
-			"ustar", "multipart/x-ustar", //$NON-NLS-1$ //$NON-NLS-2$
-			"uu", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"uu", "text/x-uuencode", //$NON-NLS-1$ //$NON-NLS-2$
-			"uue", "text/x-uuencode", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"vcd", "application/x-cdlink", //$NON-NLS-1$ //$NON-NLS-2$
-			"vcs", "text/x-vcalendar", //$NON-NLS-1$ //$NON-NLS-2$
-			"vda", "application/vda", //$NON-NLS-1$ //$NON-NLS-2$
-			"vdo", "video/vdo", //$NON-NLS-1$ //$NON-NLS-2$
-			"vew", "application/groupwise", //$NON-NLS-1$ //$NON-NLS-2$
-			"viv", "video/vivo", //$NON-NLS-1$ //$NON-NLS-2$
-			"viv", "video/vnd.vivo", //$NON-NLS-1$ //$NON-NLS-2$
-			"vivo", "video/vivo", //$NON-NLS-1$ //$NON-NLS-2$
-			"vivo", "video/vnd.vivo", //$NON-NLS-1$ //$NON-NLS-2$
-			"vmd", "application/vocaltec-media-desc", //$NON-NLS-1$ //$NON-NLS-2$
-			"vmf", "application/vocaltec-media-file", //$NON-NLS-1$ //$NON-NLS-2$
-			"voc", "audio/voc", //$NON-NLS-1$ //$NON-NLS-2$
-			"voc", "audio/x-voc", //$NON-NLS-1$ //$NON-NLS-2$
-			"vos", "video/vosaic", //$NON-NLS-1$ //$NON-NLS-2$
-			"vox", "audio/voxware", //$NON-NLS-1$ //$NON-NLS-2$
-			"vqe", "audio/x-twinvq-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"vqf", "audio/x-twinvq", //$NON-NLS-1$ //$NON-NLS-2$
-			"vql", "audio/x-twinvq-plugin", //$NON-NLS-1$ //$NON-NLS-2$
-			"vrml", "application/x-vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"vrml", "model/vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"vrml", "x-world/x-vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"vrt", "x-world/x-vrt", //$NON-NLS-1$ //$NON-NLS-2$
-			"vsd", "application/x-visio", //$NON-NLS-1$ //$NON-NLS-2$
-			"vst", "application/x-visio", //$NON-NLS-1$ //$NON-NLS-2$
-			"vsw", "application/x-visio", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"w60", "application/wordperfect6.0", //$NON-NLS-1$ //$NON-NLS-2$
-			"w61", "application/wordperfect6.1", //$NON-NLS-1$ //$NON-NLS-2$
-			"w6w", "application/msword", //$NON-NLS-1$ //$NON-NLS-2$
-			"wav", "audio/wav", //$NON-NLS-1$ //$NON-NLS-2$
-			"wav", "audio/x-wav", //$NON-NLS-1$ //$NON-NLS-2$
-			"wb1", "application/x-qpro", //$NON-NLS-1$ //$NON-NLS-2$
-			"wbmp", "image/vnd.wap.wbmp", //$NON-NLS-1$ //$NON-NLS-2$
-			"web", "application/vnd.xara", //$NON-NLS-1$ //$NON-NLS-2$
-			"wiz", "application/msword", //$NON-NLS-1$ //$NON-NLS-2$
-			"wk1", "application/x-123", //$NON-NLS-1$ //$NON-NLS-2$
-			"wmf", "windows/metafile", //$NON-NLS-1$ //$NON-NLS-2$
-			"wml", "text/vnd.wap.wml", //$NON-NLS-1$ //$NON-NLS-2$
-			"wmlc", "application/vnd.wap.wmlc", //$NON-NLS-1$ //$NON-NLS-2$
-			"wmls", "text/vnd.wap.wmlscript", //$NON-NLS-1$ //$NON-NLS-2$
-			"wmlsc", "application/vnd.wap.wmlscriptc", //$NON-NLS-1$ //$NON-NLS-2$
-			"word", "application/msword", //$NON-NLS-1$ //$NON-NLS-2$
-			"wpd", "application/x-wpwin", //$NON-NLS-1$ //$NON-NLS-2$
-			"wq1", "application/x-lotus", //$NON-NLS-1$ //$NON-NLS-2$
-			"wri", "application/mswrite", //$NON-NLS-1$ //$NON-NLS-2$
-			"wri", "application/x-wri", //$NON-NLS-1$ //$NON-NLS-2$
-			"wrl", "application/x-world", //$NON-NLS-1$ //$NON-NLS-2$
-			"wrl", "model/vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"wrl", "x-world/x-vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"wrz", "model/vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"wrz", "x-world/x-vrml", //$NON-NLS-1$ //$NON-NLS-2$
-			"wsc", "text/scriplet", //$NON-NLS-1$ //$NON-NLS-2$
-			"wsrc", "application/x-wais-source", //$NON-NLS-1$ //$NON-NLS-2$
-			"wtk", "application/x-wintalk", //$NON-NLS-1$ //$NON-NLS-2$
-			"xbm", "image/x-xbitmap", //$NON-NLS-1$ //$NON-NLS-2$
-			"xbm", "image/x-xbm", //$NON-NLS-1$ //$NON-NLS-2$
-			"xbm", "image/xbm", //$NON-NLS-1$ //$NON-NLS-2$
-			"xdr", "video/x-amt-demorun", //$NON-NLS-1$ //$NON-NLS-2$
-			"xgz", "xgl/drawing", //$NON-NLS-1$ //$NON-NLS-2$
-			"xif", "image/vnd.xiff", //$NON-NLS-1$ //$NON-NLS-2$
-			"xl", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xla", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xla", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xla", "application/x-msexcel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlb", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlb", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlb", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlc", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlc", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlc", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xld", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xld", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlk", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlk", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xll", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xll", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xll", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlm", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlm", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlm", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xls", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xls", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xls", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xls", "application/x-msexcel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlt", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlt", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlv", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlv", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlw", "application/excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlw", "application/vnd.ms-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlw", "application/x-excel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xlw", "application/x-msexcel", //$NON-NLS-1$ //$NON-NLS-2$
-			"xm", "audio/xm", //$NON-NLS-1$ //$NON-NLS-2$
-			"xml", "application/xml", //$NON-NLS-1$ //$NON-NLS-2$
-			"xml", "text/xml", //$NON-NLS-1$ //$NON-NLS-2$
-			"xmz", "xgl/movie", //$NON-NLS-1$ //$NON-NLS-2$
-			"xpix", "application/x-vnd.ls-xpix", //$NON-NLS-1$ //$NON-NLS-2$
-			"xpm", "image/x-xpixmap", //$NON-NLS-1$ //$NON-NLS-2$
-			"xpm", "image/xpm", //$NON-NLS-1$ //$NON-NLS-2$
-			"x-png", "image/png", //$NON-NLS-1$ //$NON-NLS-2$
-			"xsr", "video/x-amt-showrun", //$NON-NLS-1$ //$NON-NLS-2$
-			"xwd", "image/x-xwd", //$NON-NLS-1$ //$NON-NLS-2$
-			"xwd", "image/x-xwindowdump", //$NON-NLS-1$ //$NON-NLS-2$
-			"xyz", "chemical/x-pdb", //$NON-NLS-1$ //$NON-NLS-2$
-
-			"z", "application/x-compress", //$NON-NLS-1$ //$NON-NLS-2$
-			"z", "application/x-compressed", //$NON-NLS-1$ //$NON-NLS-2$
-			"zip", "application/x-compressed", //$NON-NLS-1$ //$NON-NLS-2$
-			"zip", "application/x-zip-compressed", //$NON-NLS-1$ //$NON-NLS-2$
-			"zip", "application/zip", //$NON-NLS-1$ //$NON-NLS-2$
-			"zip", "multipart/x-zip", //$NON-NLS-1$ //$NON-NLS-2$
-			"zoo", "application/octet-stream", //$NON-NLS-1$ //$NON-NLS-2$
-			"zsh", "text/x-script.zsh", //$NON-NLS-1$ //$NON-NLS-2$
-	};
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureAction.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureAction.java
deleted file mode 100755
index af7142d..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureAction.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.testserver;
-
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.security.*;
-import org.osgi.framework.Bundle;
-
-/**
- * Utility class to execute common privileged code.
- */
-public class SecureAction {
-	// make sure we use the correct controlContext;
-	private AccessControlContext controlContext;
-
-	/**
-	 * Constructs a new SecureAction object.  The constructed SecureAction object 
-	 * uses the caller's AccessControlContext to perform security checks 
-	 */
-	public SecureAction() {
-		// save the control context to be used.
-		this.controlContext = AccessController.getContext();
-	}
-
-	/**
-	 * Gets a resource from a bundle.
-	 * @param bundle the bundle to get the resource from
-	 * @param name The name of the resource
-	 * @return The URL of the resource
-	 */
-	
-	public URL getBundleResource(final Bundle bundle, final String name) {
-		if (System.getSecurityManager() == null)
-		     return bundle.getResource(name);
-		return (URL) AccessController.doPrivileged(new PrivilegedAction() {
-			public Object run() {
-				return bundle.getResource(name);
-			}
-		}, controlContext);
-	}
-	
-	public URLConnection openURL(final URL url) throws IOException {
-		if (System.getSecurityManager() == null)
-		    return open(url);
-		try {	
-			return (URLConnection) AccessController.doPrivileged(new PrivilegedExceptionAction() {
-				public Object run() throws IOException {
-					return open(url);
-				}
-			}, controlContext);  
-		} catch(PrivilegedActionException ex) {
-			throw (IOException) ex.getException();
-		}
-	}  
-	
-	URLConnection open(final URL url)throws IOException
-	{
-		URLConnection connection = url.openConnection();
-        connection.connect(); /* establish connection to check permissions */
-        return connection;
-	}
-	
-	/**
-	 * Returns a system property.  Same as calling
-	 * System.getProperty(String,String).
-	 * @param property the property key.
-	 * @param def the default value if the property key does not exist.
-	 * @return the value of the property or the def value if the property
-	 * does not exist.
-	 */
-	public String getProperty(final String property, final String def) {
-		if (System.getSecurityManager() == null)
-			return System.getProperty(property, def);
-		return (String) AccessController.doPrivileged(new PrivilegedAction() {
-			public Object run() {
-				return System.getProperty(property, def);
-			}
-		}, controlContext);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureContext.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureContext.java
deleted file mode 100644
index a9fc4e5..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecureContext.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver;
-
-import java.net.URL;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.osgi.service.http.HttpContext;
-
-/**
- * The SecureContext can be used to add basic authentication to a path.
- * This implementation requires the user "Aladdin" to log in with the password "open sesame".
- */
-public class SecureContext implements HttpContext {
-	private HttpContext theDefaultContext;
-
-	public SecureContext(HttpContext defaultContext) {
-		theDefaultContext = defaultContext;
-	}
-
-	public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) {
-		String auth = request.getHeader("Authorization"); //$NON-NLS-1$
-		// Response is Aladdin:open sesame in Base64 encoding (from RFC example)
-		if (auth != null && "QWxhZGRpbjpvcGVuIHNlc2FtZQ==".equals(auth.substring(6))) //$NON-NLS-1$
-			return true;
-
-		// if not authorized or wrong user/password
-		response.setHeader("WWW-Authenticate", "BASIC realm=\"p2 Http Testing Server (Aladdin, open sesame)\""); //$NON-NLS-1$//$NON-NLS-2$
-		response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-		return false;
-
-	}
-
-	public String getMimeType(String name) {
-		return theDefaultContext.getMimeType(name);
-	}
-
-	public URL getResource(String name) {
-		return theDefaultContext.getResource(name);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecuredArtifactsContext.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecuredArtifactsContext.java
deleted file mode 100644
index 4b627f6..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/SecuredArtifactsContext.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.osgi.service.http.HttpContext;
-
-/**
- * The SecureContext can be used to add basic authentication to a path.
- * This implementation requires the user "Aladdin" to log in with the password "open sesame".
- */
-public class SecuredArtifactsContext extends SecureContext {
-
-	public SecuredArtifactsContext(HttpContext defaultContext) {
-		super(defaultContext);
-	}
-
-	public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) {
-		String path = request.getRequestURI();
-		if (path == null)
-			return true;
-
-		if (path.indexOf("features/") != -1 //$NON-NLS-1$
-				|| path.indexOf("plugins/") != -1 //$NON-NLS-1$
-				|| path.indexOf("binaries/") != -1) //$NON-NLS-1$
-			return super.handleSecurity(request, response);
-
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/BasicResourceDelivery.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/BasicResourceDelivery.java
deleted file mode 100644
index 13dc0cf..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/BasicResourceDelivery.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  IBM Corporation - initial API and implementation
- *  Cloudsmith Inc. - this copy and adaption to abstract servlet
- *******************************************************************************/
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.equinox.p2.testserver.Activator;
-import org.eclipse.equinox.p2.testserver.HttpConstants;
-import org.eclipse.equinox.p2.testserver.MimeLookup;
-import org.eclipse.equinox.p2.testserver.SecureAction;
-import org.osgi.service.http.HttpService;
-
-public class BasicResourceDelivery extends HttpServlet {
-	private static final long serialVersionUID = 1L;
-	// private static final String CHARSET = "utf-8"; //$NON-NLS-1$
-	private SecureAction secureAction;
-	private String alias;
-	private URI path;
-	protected static final String defaultMimeType = "application/octet-stream"; //$NON-NLS-1$
-
-	/**
-	 * Delivers resources from the bundle, or from an absolute URI
-	 */
-	public BasicResourceDelivery(String theAlias, URI thePath) {
-		secureAction = new SecureAction();
-		alias = theAlias;
-		path = thePath;
-	}
-
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		URI resource = null;
-		try {
-			resource = getFilename(request.getRequestURI());
-		} catch (URISyntaxException e) {
-			/* ignore - just leave resource == null */
-		}
-
-		URL url = null;
-		if (resource != null) {
-			if (!resource.isAbsolute())
-				url = getServletContext().getResource(resource.getPath());
-			else
-				url = resource.toURL();
-		}
-
-		if (url == null) {
-			fileNotFound(resource, request, response);
-			return;
-		}
-
-		// process cache control
-		URLConnection conn = secureAction.openURL(url);
-
-		long modifiedSince = request.getDateHeader("If-Modified-Since"); //$NON-NLS-1$
-		if (modifiedSince >= 0) {
-			long modified = getLastModified(conn);
-			if ((modified > 0) && (modifiedSince >= modified)) {
-				response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
-				return;
-			}
-		}
-		InputStream in;
-		try {
-			in = conn.getInputStream();
-		} catch (IOException ex) {
-			fileNotFound(resource, request, response);
-			return;
-		}
-		try {
-			// always set the default charset
-			// not in Servlet 2.1 // response.setCharacterEncoding(CHARSET);
-			deliver(conn, in, resource.toString(), request, response); // TODO: modify to resource==URI ?
-		} finally {
-			in.close();
-		}
-	}
-
-	protected void deliver(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		this.doDeliver(conn, in, filename, request, response);
-	}
-
-	/** 
-	 * Default method delivering content from a file. Subclasses should override this method
-	 * to deliver "broken content" (e.g. truncated, mismatched content length etc.).
-	 * This default method performs the same delivery as the default "register resource" in the
-	 * http service.
-	 * @param conn - The URLConnection to the resource
-	 * @param in - InputStream to read from
-	 * @param filename - the filename being read
-	 * @param request - the servlet request
-	 * @param response - the servlet response
-	 * @throws IOException - on errors
-	 */
-	protected void doDeliver(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		// set when the resource was modified
-		addDateHeader(response, HttpConstants.LAST_MODIFIED, getLastModified(conn));
-		int statusCode = HttpHeaderToStatus(conn.getHeaderField(0));
-
-		response.setStatus(statusCode != -1 ? HttpServletResponse.SC_OK : statusCode);
-
-		int contentlength = getContentLength(conn);
-		if (contentlength >= 0) {
-			response.setContentLength(contentlength);
-
-			String mimeType = computeMimeType(filename, conn);
-			response.setContentType(mimeType);
-
-			// We want to use a writer if we are sending text
-			if (mimeType.startsWith("text/")) //$NON-NLS-1$
-			{
-				PrintWriter writer = response.getWriter();
-
-				writer.flush(); /* write the headers and unbuffer the output */
-
-				BufferedReader reader = new BufferedReader(new InputStreamReader(in));
-
-				char buffer[] = new char[4096];
-				int read;
-				while ((read = reader.read(buffer, 0, buffer.length)) != -1) {
-					writer.write(buffer, 0, read);
-				}
-			} else {
-				ServletOutputStream out = response.getOutputStream();
-
-				out.flush(); /* write the headers and unbuffer the output */
-
-				byte buffer[] = new byte[4096];
-				int read;
-				while ((read = in.read(buffer, 0, buffer.length)) != -1) {
-					out.write(buffer, 0, read);
-					out.flush();
-				}
-			}
-		}
-	}
-
-	protected void fileNotFound(URI file, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		response.sendError(HttpServletResponse.SC_NOT_FOUND, (file == null ? "<no file>" : file.toString()) + " not found"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	protected void doHead(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		URI resource = null;
-		try {
-			resource = getFilename(request.getRequestURI());
-		} catch (URISyntaxException e) {
-			/* ignore - just leave resource == null */
-		}
-
-		URL url = null;
-		if (resource != null) {
-			if (!resource.isAbsolute())
-				url = getServletContext().getResource(resource.getPath());
-			else
-				url = resource.toURL();
-		}
-
-		if (url == null) {
-			fileNotFound(resource, request, response);
-			return;
-		}
-		URLConnection conn = secureAction.openURL(url);
-		// always set default charset
-		// Not in Servlet 2.1 // response.setCharacterEncoding(CHARSET);
-		doDeliverHead(resource.toString(), conn, request, response); // TODO: change API to use URI?
-	}
-
-	protected void deliverHead(String filename, URLConnection conn, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		this.doDeliverHead(filename, conn, request, response);
-	}
-
-	protected void doDeliverHead(String filename, URLConnection conn, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		int contentlength = getContentLength(conn);
-		int statusCode = HttpHeaderToStatus(conn.getHeaderField(0));
-		// set status = ok if there was no http header...
-		response.setStatus(statusCode == -1 ? HttpServletResponse.SC_OK : statusCode);
-		if (contentlength >= 0) {
-			response.setContentLength(contentlength);
-
-			String mimeType = computeMimeType(filename, conn);
-			response.setContentType(mimeType);
-			long modified = getLastModified(conn);
-			addDateHeader(response, HttpConstants.LAST_MODIFIED, modified);
-		} else {
-			super.doHead(request, response);
-		}
-
-	}
-
-	public int HttpHeaderToStatus(String httpHeader) {
-		if (httpHeader == null)
-			return -1;
-		try {
-			return Integer.valueOf((httpHeader.substring(9, 12))).intValue();
-		} catch (IndexOutOfBoundsException e) {
-			return -1;
-		} catch (NumberFormatException e) {
-			return -1;
-		}
-	}
-
-	/**
-	 * Override to lie about last modified
-	 * @param conn
-	 * @return time in ms
-	 */
-	protected long getLastModified(URLConnection conn) {
-		return conn.getLastModified();
-	}
-
-	/**
-	 * Override to lie about content length
-	 * @param conn
-	 * @return length in bytes
-	 */
-	protected int getContentLength(URLConnection conn) {
-		return conn.getContentLength();
-	}
-
-	protected URI getFilename(String filename) throws URISyntaxException {
-		//If the requested URI is equal to the Registeration's alias, send the file
-		//corresponding to the alias.  Otherwise, we have request for a file in an
-		//registered directory (the file was not directly registered itself).
-		if (filename.equals(alias)) {
-			filename = path.getPath();
-		} else {
-			// The file we re looking for is the registered resource (alias) + the rest of the
-			// filename that is not part of the registered resource.  For example, if we export
-			// /a to /tmp and we have a request for /a/b/foo.txt, then /tmp is our directory
-			// (file.toString()) and /b/foo.txt is the rest.
-			// The result is that we open the file /tmp/b/foo.txt.
-
-			int aliaslen = alias.length();
-			int pathlen = path.getPath().length();
-
-			if (pathlen == 1) /* path == "/" */
-			{
-				if (aliaslen > 1) /* alias != "/" */
-				{
-					filename = filename.substring(aliaslen);
-				}
-			} else /* path != "/" */
-			{
-				StringBuffer buf = new StringBuffer(aliaslen + pathlen);
-				buf.append(path.getPath());
-
-				if (aliaslen == 1) /* alias == "/" */
-				{
-					buf.append(filename);
-				} else /* alias != "/" */
-				{
-					buf.append(filename.substring(aliaslen));
-				}
-
-				filename = buf.toString();
-			}
-		}
-		return new URI(path.getScheme(), path.getUserInfo(), path.getHost(), path.getPort(), filename, path.getQuery(), path.getFragment());
-		// return (filename);
-	}
-
-	/**
-	 * This method returns the correct MIME type of a given URI by first checking
-	 * the HttpContext::getMimeType and, if null, checking the httpservice's MIMETypes table.
-	 * return mimetype with charset=utf-8 for all text/... types
-	 */
-	protected String computeMimeType(String name, URLConnection conn) {
-		String mimeType = computeMimeType2(name, conn);
-		if (mimeType.startsWith("text/")) //$NON-NLS-1$
-			return mimeType + "; charset=utf-8"; //$NON-NLS-1$
-		return mimeType;
-	}
-
-	protected String computeMimeType2(String name, URLConnection conn) {
-		// use type set in connection if it is available
-		String mimeType = conn.getContentType();
-		if (mimeType != null) {
-			return (mimeType);
-		}
-		// use type from context
-		mimeType = getServletContext().getMimeType(name);
-		if (mimeType != null) {
-			return (mimeType);
-		}
-		// try the "extras"
-		return MimeLookup.getMimeType(name);
-	}
-
-	public HttpService getHttpService() {
-		return Activator.getInstance().getHttp();
-	}
-
-	public static final DateFormat PATTERN_RFC1123 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US); //$NON-NLS-1$
-
-	/**
-	 * Support setting date header - in servlet > 2.1 it is possible to call this method directly on the HttpResponse.
-	 * @param response
-	 * @param name
-	 * @param timestamp
-	 */
-	public void addDateHeader(HttpServletResponse response, String name, long timestamp) {
-		DateFormat df = PATTERN_RFC1123;
-		// must always be GMT
-		df.setTimeZone(TimeZone.getTimeZone("GMT")); //$NON-NLS-1$
-		response.setHeader(name, df.format(new Date(timestamp)));
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ChopAndDelay.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ChopAndDelay.java
deleted file mode 100644
index c8e823c..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ChopAndDelay.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.net.URLConnection;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.equinox.p2.testserver.LinearChange;
-
-/**
- * The ChopAndDelay deliver the content chopped up in smaller packets and adds delay
- * between packets.
- * 
- */
-public class ChopAndDelay extends BasicResourceDelivery {
-
-	int chopFactor;
-	private LinearChange delayFunction;
-	private long msDelay;
-	private int fastPercent;
-
-	/**
-	 * Create a file molester that turns content into gibberish.
-	 * 
-	 * @param theAlias the path this servlet is registered under
-	 * @param thePath the path to use as root for the alias
-	 * @param chopFactor - a value between 1 and 12 where 1 is one byte, and 12 is 4k bytes at a time.
-	 * @param delayFunction - function returning a series of delay values
-	 */
-	public ChopAndDelay(String theAlias, URI thePath, int chopFactor, int fastPercent, LinearChange delayFunction) {
-		super(theAlias, thePath);
-		if (chopFactor < 1 || chopFactor > 12)
-			throw new IllegalArgumentException("chopFactor must be between 1 and 12 (inclusive) - was:" + Integer.valueOf(chopFactor)); //$NON-NLS-1$
-		this.chopFactor = chopFactor;
-		if (fastPercent < 0 || fastPercent > 100)
-			throw new IllegalArgumentException("fastPercent must be 0-100 - was:" + Integer.valueOf(fastPercent)); //$NON-NLS-1$
-		this.fastPercent = fastPercent;
-		this.delayFunction = delayFunction;
-		msDelay = 0L;
-		this.delayFunction = delayFunction;
-		if (this.delayFunction.hasNext())
-			msDelay = delayFunction.next();
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	protected void deliver(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		// chop up all files
-		doChop(conn, in, filename, request, response);
-	}
-
-	protected void doChop(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		LinearChange delayer = delayFunction.fork();
-		int contentlength = conn.getContentLength();
-		if (contentlength >= 0) {
-			response.setContentLength(contentlength);
-
-			String mimeType = computeMimeType(filename, conn);
-			response.setContentType(mimeType);
-
-			// We want to use a writer if we are sending text
-			if (mimeType.startsWith("text/")) //$NON-NLS-1$
-			{
-				PrintWriter writer = response.getWriter();
-
-				writer.flush(); /* write the headers and unbuffer the output */
-
-				BufferedReader reader = new BufferedReader(new InputStreamReader(in));
-
-				int chunksize = 1 << chopFactor;
-				char buffer[] = new char[4096];
-				int read;
-				int totalRead = 0;
-				boolean delay = fastPercent == 0 ? true : false;
-				while ((read = reader.read(buffer, 0, buffer.length)) != -1) {
-					int nChunks = read / chunksize + (read % chunksize > 0 ? 1 : 0);
-					for (int i = 0; i < nChunks; i++) {
-						writer.write(buffer, i * chunksize, Math.min(chunksize, read - i * chunksize));
-						writer.flush();
-						if (delay && msDelay > 0)
-							try {
-								Thread.sleep(msDelay);
-							} catch (InterruptedException e) {
-								// ignore
-							}
-						if (delay && delayer.hasNext())
-							msDelay = delayer.next();
-					}
-					totalRead += read;
-					if (totalRead > contentlength * fastPercent / 100)
-						delay = true;
-				}
-			} else {
-				ServletOutputStream out = response.getOutputStream();
-
-				out.flush(); /* write the headers and unbuffer the output */
-
-				int chunksize = 1 << chopFactor;
-				byte buffer[] = new byte[4096];
-				int read;
-				int totalRead = 0;
-				boolean delay = fastPercent == 0 ? true : false;
-				while ((read = in.read(buffer, 0, buffer.length)) != -1) {
-					int nChunks = read / chunksize + (read % chunksize > 0 ? 1 : 0);
-					for (int i = 0; i < nChunks; i++) {
-						out.write(buffer, i * chunksize, Math.min(chunksize, read - i * chunksize));
-						out.flush();
-						if (delay && msDelay > 0)
-							try {
-								Thread.sleep(msDelay);
-							} catch (InterruptedException e) {
-								// ignore
-							}
-						if (delay && delayer.hasNext())
-							msDelay = delayer.next();
-					}
-					totalRead += read;
-					if (totalRead > contentlength * fastPercent / 100)
-						delay = true;
-				}
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ContentLengthLier.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ContentLengthLier.java
deleted file mode 100644
index 98a0377..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/ContentLengthLier.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.net.URI;
-import java.net.URLConnection;
-
-public class ContentLengthLier extends BasicResourceDelivery {
-
-	double keepFactor;
-
-	/**
-	 * The ContentLengthLier sets the content length to a percentage of the original length.
-	 * Values between 0 and 200 can be used (to lie about files being both smaller < 100, or larger > 100).
-	 * 
-	 * @param theAlias
-	 * @param thePath
-	 * @param keepPercent - how much to lie between 0 and 200 (inclusive)
-	 */
-	public ContentLengthLier(String theAlias, URI thePath, int keepPercent) {
-		super(theAlias, thePath);
-		if (keepPercent < 0 || keepPercent > 200)
-			throw new IllegalArgumentException("keepPercent must be between 0 and 200 - was:" + Integer.valueOf(keepPercent)); //$NON-NLS-1$
-		keepFactor = keepPercent / 100.0;
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	protected int getContentLength(URLConnection conn) {
-		int contentLength = conn.getContentLength();
-		return (contentLength >= 0) ? (int) (contentLength * keepFactor) : contentLength;
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/FileMolester.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/FileMolester.java
deleted file mode 100644
index 3a54852..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/FileMolester.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.net.URLConnection;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * The FileMolester will keep a certain amount of the file from the beginning, and return
- * garbage/gibberish for the rest of the file's content. The garbage is produced by shifting every
- * byte 1 bit to the left.
- * 
- * The idea for keeping some percentage is to support keeping xml headers / doctype etc.
- */
-public class FileMolester extends BasicResourceDelivery {
-
-	int keepLength;
-
-	/**
-	 * Create a file molester that turns content into gibberish.
-	 * 
-	 * @param theAlias the path this servlet is registered under
-	 * @param thePath the path to use as root for the alias
-	 * @param keepLength - how many bytes in the beginning that will be unmolested
-	 */
-	public FileMolester(String theAlias, URI thePath, int keepLength) {
-		super(theAlias, thePath);
-		if (keepLength < 0)
-			throw new IllegalArgumentException("keepLength must be >= 0 - was:" + Integer.valueOf(keepLength)); //$NON-NLS-1$
-		this.keepLength = keepLength;
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	protected void deliver(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		// molest all files
-		doMolest(conn, in, filename, request, response);
-	}
-
-	protected void doMolest(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		int contentlength = conn.getContentLength();
-		if (contentlength >= 0) {
-			response.setContentLength(contentlength);
-
-			String mimeType = computeMimeType(filename, conn);
-			response.setContentType(mimeType);
-
-			// We want to use a writer if we are sending text
-			if (mimeType.startsWith("text/")) //$NON-NLS-1$
-			{
-				PrintWriter writer = response.getWriter();
-
-				writer.flush(); /* write the headers and unbuffer the output */
-
-				BufferedReader reader = new BufferedReader(new InputStreamReader(in));
-
-				char buffer[] = new char[4096];
-				int read;
-				int written = 0;
-				while ((read = reader.read(buffer, 0, buffer.length)) != -1) {
-					if (written + read > keepLength)
-						molest(buffer, written, read);
-					writer.write(buffer, 0, read);
-					written += read;
-				}
-			} else {
-				ServletOutputStream out = response.getOutputStream();
-
-				out.flush(); /* write the headers and unbuffer the output */
-
-				byte buffer[] = new byte[4096];
-				int read;
-				int written = 0;
-				while ((read = in.read(buffer, 0, buffer.length)) != -1) {
-					if (written + read > keepLength)
-						molest(buffer, written, read);
-					out.write(buffer, 0, read);
-					written += read;
-				}
-			}
-		}
-	}
-
-	/** Molest a char buffer */
-	private void molest(char[] buffer, int written, int read) {
-		int start = keepLength - written;
-		if (start > read)
-			return;
-		for (int i = start < 0 ? 0 : start; i < read; i++)
-			buffer[i] = (char) (buffer[i] << 1);
-	}
-
-	/** Molest a byte buffer */
-	private void molest(byte[] buffer, int written, int read) {
-		int start = keepLength - written;
-		if (start > read)
-			return;
-		for (int i = start < 0 ? 0 : start; i < read; i++)
-			buffer[i] = (byte) (buffer[i] << 1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/HelloWorld.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/HelloWorld.java
deleted file mode 100644
index 7bc6828..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/HelloWorld.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Simple "smoke test" servlet - for manual testing that the http server is running and is
- * capable of running servlets. 
- */
-public class HelloWorld extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		response.setContentType("text/html"); //$NON-NLS-1$
-		PrintWriter writer = response.getWriter();
-		writer.println("<html>"); //$NON-NLS-1$
-		writer.println("<body>"); //$NON-NLS-1$
-		writer.println("Hello, Equinox Embedded HTTP World"); //$NON-NLS-1$
-		writer.println("<br/>"); //$NON-NLS-1$
-		writer.println("</body>"); //$NON-NLS-1$
-		writer.println("</html>"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/LastModifiedLier.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/LastModifiedLier.java
deleted file mode 100644
index 84d568c..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/LastModifiedLier.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.net.URI;
-import java.net.URLConnection;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Manipulates the last modified time of serviced files.
- * The manipulator will set all modified times to 0 if TYPE_ZERO is used, to 1 if TYPE_OLD is used,
- * to the current time if TYPE_NOW is used, and a value 24 hours into the future if TYPE_FUTURE is used.
- * (Future values are not allowed in HTTP - the server should guard against them and force the value
- * to be no bigger than the response date).
- * The TYPE_BAD will produce a HTTP header with wrong format for the date value (fails date parsing).
- *
- */
-public class LastModifiedLier extends BasicResourceDelivery {
-
-	public static final int TYPE_ZERO = 1;
-	public static final int TYPE_OLD = 2;
-	public static final int TYPE_NOW = 3;
-	public static final int TYPE_FUTURE = 4;
-	public static final int TYPE_BAD = 5;
-	private static final int TYPE_LAST = TYPE_BAD;
-
-	private int type;
-
-	/**
-	 * The LastModifiedLier returns a last modified time according to the parameter timeType.
-	 * It can be TYPE_ZERO, TYPE_OLD, TYPE_NOW, TYPE_FUTURE, or TYPE_BAD.
-	 * 
-	 * @param theAlias
-	 * @param thePath
-	 * @param timeType - a TYPE_XXX constant defining what time to return
-	 */
-	public LastModifiedLier(String theAlias, URI thePath, int timeType) {
-		super(theAlias, thePath);
-		if (timeType < TYPE_ZERO || timeType > TYPE_LAST)
-			throw new IllegalArgumentException("unknown timeType, was:" + Integer.valueOf(timeType)); //$NON-NLS-1$
-		type = timeType;
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	protected long getLastModified(URLConnection conn) {
-		// ignore real value and lie based on constant
-		return getLastModified();
-	}
-
-	private long getLastModified() {
-		switch (type) {
-			case TYPE_ZERO :
-				return 0L;
-			case TYPE_OLD :
-				return 1000L;
-			case TYPE_NOW :
-				return System.currentTimeMillis();
-			case TYPE_FUTURE :
-				return System.currentTimeMillis() + 24 * 60 * 60 * 1000;
-		}
-		// should not happen
-		return 0L;
-	}
-
-	public void addDateHeader(HttpServletResponse response, String name, long timestamp) {
-		if (type != TYPE_BAD)
-			super.addDateHeader(response, name, timestamp);
-		else
-			response.setHeader(name, "intentionally-bad-date"); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Redirector.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Redirector.java
deleted file mode 100644
index ab875af..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Redirector.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Redirects n times, before redirecting to final location (a path on same server).
- * 
- */
-public class Redirector extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		response.setContentType("text/html"); //$NON-NLS-1$
-		PrintWriter writer = response.getWriter();
-		doStatus(request, response, writer);
-	}
-
-	protected void doStatus(HttpServletRequest request, HttpServletResponse response, PrintWriter writer) {
-		String requestPath = request.getRequestURI();
-		String[] result = requestPath.split("/"); //$NON-NLS-1$
-		if (result.length < 3 && !"redirect".equalsIgnoreCase(result[1])) //$NON-NLS-1$
-		{
-			getServletContext().log("Error Servlet requires being configured to get /redirect/count paths. Example /redirect/500, got" + requestPath); //$NON-NLS-1$
-			return;
-		}
-		// get the error code
-		int iterations = 0;
-		try {
-			iterations = Integer.parseInt(result[2]);
-		} catch (NumberFormatException e) {
-			response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-			getServletContext().log("Number format exception in /redirect/count path.", e); //$NON-NLS-1$
-			return;
-		}
-		String redirectPath;
-		if (iterations == 0) {
-			if (result.length > 3)
-				redirectPath = requestPath.substring("/redirect/0".length()); //$NON-NLS-1$
-			else
-				redirectPath = null;
-		} else {
-			redirectPath = "/redirect/" + Integer.valueOf(iterations - 1); //$NON-NLS-1$
-			for (int i = 3; i < result.length; i++)
-				redirectPath += "/" + result[i]; //$NON-NLS-1$
-		}
-
-		if (redirectPath != null) {
-			// perform a redirect
-			URI location = null;
-			try {
-				location = new URI(request.getScheme(), null, request.getServerName(), request.getServerPort(), //
-						redirectPath, null, null);
-			} catch (URISyntaxException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-				response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-				htmlPage(writer, "Internal error constructing redirect URL", false); //$NON-NLS-1$
-				return;
-			}
-
-			response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
-			response.setHeader("Location", location.toString()); //$NON-NLS-1$
-		} else {
-			// set the errorCode as the response and write a message
-			if (writer != null)
-				htmlPage(writer, "Redirected Successfully", false); //$NON-NLS-1$
-		}
-	}
-
-	public void doHead(HttpServletRequest request, HttpServletResponse response) {
-		// produce same response as for GET, but no content (writer == null)
-		doStatus(request, response, null);
-	}
-
-	private void htmlPage(PrintWriter writer, String body, boolean consoleOutput) {
-		if (consoleOutput)
-			System.err.println(body);
-
-		writer.println("<html>"); //$NON-NLS-1$
-		writer.println("<body>"); //$NON-NLS-1$
-		writer.println(body);
-		writer.println("<br/>"); //$NON-NLS-1$
-		writer.println("</body>"); //$NON-NLS-1$
-		writer.println("</html>"); //$NON-NLS-1$
-		writer.flush();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/StatusCodeResponse.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/StatusCodeResponse.java
deleted file mode 100644
index d162dcd..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/StatusCodeResponse.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Produces a response with a status code specified in the request URI.
- * Requires to be registered for "/status" path. The request is made on the format
- * "/status/code/" where code is the HTTP integer status code. The path after /code/ can be
- * anything - it is always ignored.
- * The response to GET produces HTML text "Requested status: code".
- * The response to HEAD just produces the status header response.
- * 
- */
-public class StatusCodeResponse extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		response.setContentType("text/html"); //$NON-NLS-1$
-		PrintWriter writer = response.getWriter();
-		doStatus(request, response, writer);
-	}
-
-	protected void doStatus(HttpServletRequest request, HttpServletResponse response, PrintWriter writer) {
-		String requestPath = request.getRequestURI();
-		String[] result = requestPath.split("/"); //$NON-NLS-1$
-		if (result.length < 3 && !"status".equalsIgnoreCase(result[1])) //$NON-NLS-1$
-		{
-			getServletContext().log("Error Servlet requires being configured to get /status/statuscode paths. Example /status/500, got" + requestPath); //$NON-NLS-1$
-			return;
-		}
-		// get the error code
-		int errorCode = 0;
-		try {
-			errorCode = Integer.parseInt(result[2]);
-		} catch (NumberFormatException e) {
-			response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-			getServletContext().log("Number format exception in /status/statuscode path.", e); //$NON-NLS-1$
-			return;
-		}
-
-		// set the errorCode as the response and write a message
-		response.setStatus(errorCode);
-		if (writer != null)
-			htmlPage(writer, "Requested Status: " + Integer.valueOf(errorCode), false); //$NON-NLS-1$
-	}
-
-	public void doHead(HttpServletRequest request, HttpServletResponse response) {
-		// produce same reponse as for GET, but no content (writer == null)
-		doStatus(request, response, null);
-	}
-
-	private void htmlPage(PrintWriter writer, String body, boolean consoleOutput) {
-		if (consoleOutput)
-			System.err.println(body);
-
-		writer.println("<html>"); //$NON-NLS-1$
-		writer.println("<body>"); //$NON-NLS-1$
-		writer.println(body);
-		writer.println("<br/>"); //$NON-NLS-1$
-		writer.println("</body>"); //$NON-NLS-1$
-		writer.println("</html>"); //$NON-NLS-1$
-		writer.flush();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/TimeOut.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/TimeOut.java
deleted file mode 100644
index e5544cd..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/TimeOut.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * This servlet is a "black hole" - it just sleeps for an hour on any request.
- *
- */
-public class TimeOut extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-	private static long MINUTES_MS = 1000 * 60; // minutes in ms
-
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) {
-		doDelay();
-	}
-
-	private void doDelay() {
-		// Do nothing...
-		try {
-			Thread.sleep(10 * MINUTES_MS); // sleep 10 minutes
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected void doHead(HttpServletRequest request, HttpServletResponse response) {
-		doDelay();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Truncator.java b/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Truncator.java
deleted file mode 100644
index 17c4bf6..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/src/org/eclipse/equinox/p2/testserver/servlets/Truncator.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, Cloudsmith Inc and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Cloudsmith Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.p2.testserver.servlets;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.net.URLConnection;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class Truncator extends BasicResourceDelivery {
-
-	double keepFactor;
-
-	public Truncator(String theAlias, URI thePath, int keepPercent) {
-		super(theAlias, thePath);
-		if (keepPercent < 0 || keepPercent > 100)
-			throw new IllegalArgumentException("keepPercent must be between 0 and 100 - was:" + Integer.valueOf(keepPercent)); //$NON-NLS-1$
-		keepFactor = keepPercent / 100.0;
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	protected void deliver(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		// truncate all files
-		doTruncate(conn, in, filename, request, response);
-	}
-
-	protected void doTruncate(URLConnection conn, InputStream in, String filename, HttpServletRequest request, HttpServletResponse response) throws IOException {
-		int contentlength = conn.getContentLength();
-		if (contentlength >= 0) {
-			response.setContentLength(contentlength);
-
-			String mimeType = computeMimeType(filename, conn);
-			response.setContentType(mimeType);
-
-			// We want to use a writer if we are sending text
-			if (mimeType.startsWith("text/")) //$NON-NLS-1$
-			{
-				PrintWriter writer = response.getWriter();
-
-				writer.flush(); /* write the headers and unbuffer the output */
-
-				BufferedReader reader = new BufferedReader(new InputStreamReader(in));
-
-				char buffer[] = new char[4096];
-				int read;
-				int written = 0;
-				while ((read = reader.read(buffer, 0, buffer.length)) != -1) {
-					read = cap(contentlength, written, read);
-					writer.write(buffer, 0, read);
-					written += read;
-				}
-			} else {
-				ServletOutputStream out = response.getOutputStream();
-
-				out.flush(); /* write the headers and unbuffer the output */
-
-				byte buffer[] = new byte[4096];
-				int read;
-				int written = 0;
-				while ((read = in.read(buffer, 0, buffer.length)) != -1) {
-					read = cap(contentlength, written, read);
-					out.write(buffer, 0, read);
-					written += read;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns read if entire amount should be read. Returns a lower number if
-	 * written + read > keepPercent of total
-	 * @param total
-	 * @param written
-	 * @param read
-	 * @return read, or a lower number if cap is reached
-	 */
-	private int cap(int total, int written, int read) {
-		int cap = (int) (keepFactor * total);
-		return (read + written) > cap ? cap - written : read;
-	}
-
-	protected void deliverHead(String filename, URLConnection conn, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		// deliver normal head response
-		super.doDeliverHead(filename, conn, request, response);
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/artifacts.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/artifacts.xml
deleted file mode 100644
index 19e55d7..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/artifacts.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?artifactRepository class='org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository' version='1.0.0'?>
-<repository name='Good Test Repository' type='org.eclipse.equinox.p2.artifact.repository.simpleRepository' version='1' description='Good test repository description'>
-  <properties size='3'>
-    <property name='p2.compressed' value='false'/>
-    <property name='p2.timestamp' value='1218734853468'/>
-    <property name='p2.system' value='false'/>
-  </properties>
-  <mappings size='3'>
-    <rule filter='(&amp; (classifier=osgi.bundle))' output='${repoUrl}/plugins/${id}_${version}.jar'/>
-    <rule filter='(&amp; (classifier=binary))' output='${repoUrl}/binary/${id}_${version}'/>
-    <rule filter='(&amp; (classifier=org.eclipse.update.feature))' output='${repoUrl}/features/${id}_${version}.jar'/>
-  </mappings>
-  <artifacts size='2'>
-    <artifact classifier='osgi.bundle' id='aaPlugin' version='1.0.0'>
-      <properties size='3'>
-        <property name='artifact.size' value='469'/>
-        <property name='download.size' value='469'/>
-        <property name='download.contentType' value='application/zip'/>
-      </properties>
-    </artifact>
-    <artifact classifier='org.eclipse.update.feature' id='aaFeature' version='1.0.0'>
-      <properties size='2'>
-        <property name='artifact.size' value='670'/>
-        <property name='download.size' value='670'/>
-      </properties>
-    </artifact>
-  </artifacts>
-</repository>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/features/aaFeature_1.0.0.jar b/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/features/aaFeature_1.0.0.jar
deleted file mode 100644
index f800a9a..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/features/aaFeature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/plugins/aaPlugin_1.0.0.jar b/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/plugins/aaPlugin_1.0.0.jar
deleted file mode 100644
index 65ff62b..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/plugins/aaPlugin_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/readme.txt b/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/readme.txt
deleted file mode 100644
index 6fcc19b..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/ar/simple/readme.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a very simple artifact repository containing a single group IU (a feature), and
-a single bundle IU. This repository is used by ArtifactRepositoryManagerTest
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.html b/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.html
deleted file mode 100644
index c07f8d2..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-<body>
-<h1>Welcome to the p2 test server</h1>
-<p>You can access all files under the "webfiles" folder in this bundle via either a "public" or "private"
-pseudoroot. Try the public link <a href="http://localhost:8080/public/index.html">here</a></p>
-<p>To access using a login, password, you simply use the pseudoroot "/private", and you will be asked to
-log in. The credentials are: user: <b>Aladdin</b>, password: <b>open sesame</b>. Try it
-<a href="http://localhost:8080/private/index.html">here</a></p>
-<p>The following real content is registered:</p>
-<ul>
-<li>/proxy/private/ - goes to http://http://download.eclipse.org/eclipse/updates/3.4, but requires authentication.</li>
-<li>/proxy/public/ - goes to http://http://download.eclipse.org/eclipse/updates/3.4, (useful in redirects).</li>
-<li>/proxy/never/ - goes to http://http://download.eclipse.org/eclipse/updates/3.4, but always fail authentication.</li>
-<li>/proxy/flipFlop/ - goes to http://http://download.eclipse.org/eclipse/updates/3.4, but fails authentication every second attempt.</li>
-<li>/proxy/truncated - goes to updates/3.4, but truncates all files</li>
-<li>/proxy/molested - goes to updates/3.4, but generates gibberish for all files</li>
-<li>/proxy/decelerate - goes to updates/3.4, but delivers files in very small delayed packets - delay increases.</li>
-<li>/proxy/decelerate2 - like /proxy/decelerate, but does not start delay until 80% of file has been processed. Good for progress bar testing.</li>
-<li>/proxy/readtimeout - When 10% of file has been processed, it delays deliver 10 minutes. Good for progress bar/cancel testing.</li>
-<li>/proxy/modified/... - goes to updates/3.4, but delivers various errors in "last modified" (see below)
-	<ul><li>.../zero - all times are returned as 0</li>
-		<li>.../old - all times are very old</li>
-		<li>.../now - all times are the same as the request time</li>
-		<li>.../future - all times are in the future (which is illegal in HTTP)</li>
-		<li>.../bad - the time is not a date at all - the client should throw an error</li>
-	</ul>
-</li>
-<li>/proxy/length/... - goes to updates/3.4, but delivers various content length errors (see below)
-	<ul><li>.../zero - length is reported as 0 (but all content written to stream)</li>
-		<li>.../less - less than the correct size is reported (all content written)</li>
-		<li>.../more - double the correct size is reported (but only available content is written)</li>
-	</ul>
-</li>
-</li>/proxy2/... - goes to http://www.eclipse.org/equinox/p2/testing/updateSite - the same
-paths as for /proxy/... are available.
-</li>
-</li>/proxy3/aprivate/... - goes to http://www.eclipse.org/equinox/p2/testing/updateSite. This proxy makes
-the subpaths .../plugins, and .../features, private.
-</li>
-</ul>
-<p>The content listed below is also available and can be accessed under:
-<ul><li>/public</li>
-<li>/private</li>
-<li>/never</li>
-<li>/flipFlop</li>
-<li>/truncated</li>
-<li>/molested</li>
-</ul>
-<p>Content</p>
-<ul>
-<li>.../ar/simple - a simple artifact repo with a feature and a plugin, uses artifact.xml</li>
-<li>.../mdr/composite - a composite meta data repository - consisting of two mdrs</li>
-<li>.../mdr/composite/one - a regular meta data repostory, uses content.xml</li>
-<li>.../updatesite - a classic update site with site.xml, features and plugins subdirectory</li>
-</ul>
-<p>The following two URL's are also available</p>
-<ul>
-<li>/timeout/ - a black hole - sleeps 10 minutes and produces no response.</li>
-<li>/status/nnn/xxxxx - returns the status-code "nnn", and text/html
-content, The xxxxx part is ignored. e.g. http://localhost:8080/status/500/ignored/part</li>
-<li>/redirect/nnn[/location] - redirects nnn times before redirecting to "location" - if no
-location is stated, a final page with message 'Redirected Successfully' is displayed.
-</ul>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.xml
deleted file mode 100644
index 9e25031..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/index.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<body>
-<h1>Welcome to the p2 test server</h1>
-<p>You can access all files under the "webfiles" folder in this bundle via either a "public" or "private"
-pseudoroot. Try the public link <a href="http://localhost:8080/public/index.html">here</a></p>
-<p>To access using a login, password, you simply use the pseudoroot "/private", and you will be asked to
-log in. The credentials are: user: <b>Aladdin</b>, password: <b>open sesame</b>. Try it
-<a href="http://localhost:8080/private/index.html">here</a></p>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/compositeContent.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/compositeContent.xml
deleted file mode 100644
index af4be35..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/compositeContent.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeMetadataRepository version='1.0.0'?>
-<repository name='metadata name' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
-  <properties size='2'>
-    <property name='p2.compressed' value='false'/>
-    <property name='p2.timestamp' value='1234'/>
-  </properties>
-  <children size='2'>
-    <child location='one'/>
-    <child location='two'/>
-  </children>
-</repository>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/one/content.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/one/content.xml
deleted file mode 100644
index 41f172f..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/one/content.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?metadataRepository class='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1.0.0'?>
-<repository name='Good Test Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1' description='Good test repository description'>
-  <properties size='3'>
-    <property name='p2.system' value='true'/>
-    <property name='p2.timestamp' value='1221680367875'/>
-    <property name='site.checksum' value='2404093275'/>
-  </properties>
-  <units size='5'>
-    <unit id='test.feature.feature.jar' version='1.0.0'>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.jar' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/>
-        <provided namespace='org.eclipse.update.feature' name='test.feature' version='1.0.0'/>
-      </provides>
-      <filter>
-        (org.eclipse.update.install.features=true)
-      </filter>
-      <artifacts size='1'>
-        <artifact classifier='org.eclipse.update.feature' id='test.feature' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='zipped'>
-            true
-          </instruction>
-        </instructions>
-      </touchpointData>
-      <licenses size='1'>
-        <license url='http://www.example.com/license'>
-          [Enter License Description here.]
-        </license>
-      </licenses>
-      <copyright url='http://www.example.com/copyright'>
-        [Enter Copyright Description here.]
-      </copyright>
-    </unit>
-    <unit id='test.bundle' version='1.0.0' singleton='false'>
-      <update id='test.bundle' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='1'>
-        <property name='org.eclipse.equinox.p2.partial.iu' value='true'/>
-      </properties>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.bundle' version='1.0.0'/>
-        <provided namespace='osgi.bundle' name='test.bundle' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
-      </provides>
-      <artifacts size='1'>
-        <artifact classifier='osgi.bundle' id='test.bundle' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='manifest'>
-          </instruction>
-        </instructions>
-      </touchpointData>
-    </unit>
-    <unit id='test.fragment' version='1.0.0' singleton='false'>
-      <update id='test.fragment' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='1'>
-        <property name='org.eclipse.equinox.p2.partial.iu' value='true'/>
-      </properties>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.fragment' version='1.0.0'/>
-        <provided namespace='osgi.bundle' name='test.fragment' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
-      </provides>
-      <artifacts size='1'>
-        <artifact classifier='osgi.bundle' id='test.fragment' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='manifest'>
-          </instruction>
-        </instructions>
-      </touchpointData>
-    </unit>
-    <unit id='test.feature.feature.group' version='1.0.0' singleton='false'>
-      <update id='test.feature.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='5'>
-        <property name='org.eclipse.equinox.p2.name' value='%featurename'/>
-        <property name='org.eclipse.equinox.p2.description' value='[Enter Feature Description here.]'/>
-        <property name='org.eclipse.equinox.p2.description.url' value='http://www.example.com/description'/>
-        <property name='org.eclipse.equinox.p2.type.group' value='true'/>
-        <property name='df_LT.featurename' value='j the feature'/>
-      </properties>
-      <provides size='2'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.group' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/>
-      </provides>
-      <requires size='3'>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.bundle' range='[1.0.0,1.0.0]'/>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.fragment' range='[1.0.0,1.0.0]'/>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.jar' range='[1.0.0,1.0.0]'>
-          <filter>
-            (org.eclipse.update.install.features=true)
-          </filter>
-        </required>
-      </requires>
-      <touchpoint id='null' version='0.0.0'/>
-      <licenses size='1'>
-        <license url='http://www.example.com/license'>
-          [Enter License Description here.]
-        </license>
-      </licenses>
-      <copyright url='http://www.example.com/copyright'>
-        [Enter Copyright Description here.]
-      </copyright>
-    </unit>
-    <unit id='Default' version='0.0.0'>
-      <properties size='3'>
-        <property name='org.eclipse.equinox.p2.name' value='Uncategorized'/>
-        <property name='org.eclipse.equinox.p2.description' value='Default category for otherwise uncategorized features'/>
-        <property name='org.eclipse.equinox.p2.type.category' value='true'/>
-      </properties>
-      <provides size='1'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='Default' version='0.0.0'/>
-      </provides>
-      <requires size='1'>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.group' range='[1.0.0,1.0.0]'/>
-      </requires>
-      <touchpoint id='null' version='0.0.0'/>
-    </unit>
-  </units>
-</repository>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/two/content.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/two/content.xml
deleted file mode 100644
index fd315db..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/mdr/composite/two/content.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?metadataRepository class='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1.0.0'?>
-<repository name='update site: file:/C:/1target/provmiddle/org.eclipse.equinox.p2.tests/testData/updatesite/site' type='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1'>
-  <properties size='3'>
-    <property name='p2.system' value='true'/>
-    <property name='p2.timestamp' value='1221680367875'/>
-    <property name='site.checksum' value='2404093275'/>
-  </properties>
-  <units size='5'>
-    <unit id='test.feature.feature.jar' version='1.0.0'>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.jar' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/>
-        <provided namespace='org.eclipse.update.feature' name='test.feature' version='1.0.0'/>
-      </provides>
-      <filter>
-        (org.eclipse.update.install.features=true)
-      </filter>
-      <artifacts size='1'>
-        <artifact classifier='org.eclipse.update.feature' id='test.feature' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='zipped'>
-            true
-          </instruction>
-        </instructions>
-      </touchpointData>
-      <licenses size='1'>
-        <license url='http://www.example.com/license'>
-          [Enter License Description here.]
-        </license>
-      </licenses>
-      <copyright url='http://www.example.com/copyright'>
-        [Enter Copyright Description here.]
-      </copyright>
-    </unit>
-    <unit id='test.bundle' version='1.0.0' singleton='false'>
-      <update id='test.bundle' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='1'>
-        <property name='org.eclipse.equinox.p2.partial.iu' value='true'/>
-      </properties>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.bundle' version='1.0.0'/>
-        <provided namespace='osgi.bundle' name='test.bundle' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
-      </provides>
-      <artifacts size='1'>
-        <artifact classifier='osgi.bundle' id='test.bundle' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='manifest'>
-          </instruction>
-        </instructions>
-      </touchpointData>
-    </unit>
-    <unit id='test.fragment' version='1.0.0' singleton='false'>
-      <update id='test.fragment' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='1'>
-        <property name='org.eclipse.equinox.p2.partial.iu' value='true'/>
-      </properties>
-      <provides size='3'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.fragment' version='1.0.0'/>
-        <provided namespace='osgi.bundle' name='test.fragment' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
-      </provides>
-      <artifacts size='1'>
-        <artifact classifier='osgi.bundle' id='test.fragment' version='1.0.0'/>
-      </artifacts>
-      <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
-      <touchpointData size='1'>
-        <instructions size='1'>
-          <instruction key='manifest'>
-          </instruction>
-        </instructions>
-      </touchpointData>
-    </unit>
-    <unit id='test.feature.feature.group' version='1.0.0' singleton='false'>
-      <update id='test.feature.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
-      <properties size='5'>
-        <property name='org.eclipse.equinox.p2.name' value='%featurename'/>
-        <property name='org.eclipse.equinox.p2.description' value='[Enter Feature Description here.]'/>
-        <property name='org.eclipse.equinox.p2.description.url' value='http://www.example.com/description'/>
-        <property name='org.eclipse.equinox.p2.type.group' value='true'/>
-        <property name='df_LT.featurename' value='j the feature'/>
-      </properties>
-      <provides size='2'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.group' version='1.0.0'/>
-        <provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/>
-      </provides>
-      <requires size='3'>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.bundle' range='[1.0.0,1.0.0]'/>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.fragment' range='[1.0.0,1.0.0]'/>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.jar' range='[1.0.0,1.0.0]'>
-          <filter>
-            (org.eclipse.update.install.features=true)
-          </filter>
-        </required>
-      </requires>
-      <touchpoint id='null' version='0.0.0'/>
-      <licenses size='1'>
-        <license url='http://www.example.com/license'>
-          [Enter License Description here.]
-        </license>
-      </licenses>
-      <copyright url='http://www.example.com/copyright'>
-        [Enter Copyright Description here.]
-      </copyright>
-    </unit>
-    <unit id='Default' version='0.0.0'>
-      <properties size='3'>
-        <property name='org.eclipse.equinox.p2.name' value='Uncategorized'/>
-        <property name='org.eclipse.equinox.p2.description' value='Default category for otherwise uncategorized features'/>
-        <property name='org.eclipse.equinox.p2.type.category' value='true'/>
-      </properties>
-      <provides size='1'>
-        <provided namespace='org.eclipse.equinox.p2.iu' name='Default' version='0.0.0'/>
-      </provides>
-      <requires size='1'>
-        <required namespace='org.eclipse.equinox.p2.iu' name='test.feature.feature.group' range='[1.0.0,1.0.0]'/>
-      </requires>
-      <touchpoint id='null' version='0.0.0'/>
-    </unit>
-  </units>
-</repository>
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/features/test.feature_1.0.0.jar b/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/features/test.feature_1.0.0.jar
deleted file mode 100644
index 80bbc69..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/features/test.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.bundle_1.0.0.jar b/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.bundle_1.0.0.jar
deleted file mode 100644
index 00dd829..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.bundle_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.fragment_1.0.0.jar b/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.fragment_1.0.0.jar
deleted file mode 100644
index d033e2e..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/plugins/test.fragment_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/site.xml b/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/site.xml
deleted file mode 100644
index 4e61977..0000000
--- a/bundles/org.eclipse.equinox.p2.testserver/webfiles/updatesite/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/test.feature_1.0.0.jar" id="test.feature" version="1.0.0"/>
-</site>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
index d5d246e..0194025 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
@@ -68,6 +68,16 @@
  <extension
        point="org.eclipse.equinox.p2.engine.actions">
     <action
+          class="org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.LinkAction"
+          name="ln"
+          touchpointType="org.eclipse.equinox.p2.osgi"
+          touchpointVersion="1.0.0"
+          version="1.0.0">
+    </action>
+ </extension>
+ <extension
+       point="org.eclipse.equinox.p2.engine.actions">
+    <action
           class="org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.CollectAction"
           name="collect"
           touchpointType="org.eclipse.equinox.p2.osgi"
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
index 27a6819..4e7cf5e 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
@@ -32,7 +32,7 @@
 	public static final String PARM_IU = "iu"; //$NON-NLS-1$
 
 	private static final String NATIVE_TOUCHPOINT_ID = "org.eclipse.equinox.p2.touchpoint.natives"; //$NON-NLS-1$
-	private static List NATIVE_ACTIONS = Arrays.asList(new String[] {"ln", "mkdir", "rmdir"}); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
+	private static List NATIVE_ACTIONS = Arrays.asList(new String[] {"mkdir", "rmdir"}); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
 	private static final String VALIDATE_PROFILE = "org.eclipse.equinox.internal.p2.touchpoint.eclipse.validateProfile"; //$NON-NLS-1$
 
 	private static Map manipulators = new WeakHashMap();
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/LinkAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/LinkAction.java
new file mode 100644
index 0000000..e18ef9b
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/LinkAction.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ *  Copyright (c) 2008, 2009 IBM Corporation and others.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ *      IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
+
+import java.io.*;
+import java.util.Map;
+import org.eclipse.core.runtime.*;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
+import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
+import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
+import org.eclipse.osgi.util.NLS;
+
+//This is basically a copy of the ln action in the native touchpoint only it provides @artifact support and does not support the backup store.
+//We should just use the native touchpoint copy when we have a replacement for the use of @artifact in parameters
+public class LinkAction extends ProvisioningAction {
+	public static final String ID = "ln"; //$NON-NLS-1$
+
+	public IStatus execute(Map parameters) {
+		String targetDir = (String) parameters.get(ActionConstants.PARM_TARGET_DIR);
+		if (targetDir == null)
+			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_TARGET_DIR, ID));
+
+		if (targetDir.equals(ActionConstants.PARM_ARTIFACT)) {
+			try {
+				targetDir = resolveArtifactParam(parameters);
+			} catch (CoreException e) {
+				return e.getStatus();
+			}
+			File dir = new File(targetDir);
+			if (!dir.isDirectory()) {
+				return Util.createError(NLS.bind(Messages.artifact_not_directory, dir));
+			}
+		}
+
+		String linkTarget = (String) parameters.get(ActionConstants.PARM_LINK_TARGET);
+		if (linkTarget == null)
+			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_LINK_TARGET, ID));
+
+		String linkName = (String) parameters.get(ActionConstants.PARM_LINK_NAME);
+		if (linkName == null)
+			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_LINK_NAME, ID));
+
+		String force = (String) parameters.get(ActionConstants.PARM_LINK_FORCE);
+
+		ln(targetDir, linkTarget, linkName, Boolean.valueOf(force).booleanValue());
+		return Status.OK_STATUS;
+	}
+
+	public IStatus undo(Map parameters) {
+		return null;
+	}
+
+	/**
+	 * Creates a link to the source file linkTarget - the created link is targetDir/linkName. 
+	 * TODO: Only runs on systems with a "ln -s" command supported.
+	 * TODO: Does not report errors if the "ln -s" fails
+	 * @param targetDir the directory where the link is created
+	 * @param linkTarget the source
+	 * @param linkName the name of the created link
+	 * @param force if overwrite of existing file should be performed.
+	 */
+	private void ln(String targetDir, String linkTarget, String linkName, boolean force) {
+
+		Runtime r = Runtime.getRuntime();
+		try {
+			Process process = r.exec(new String[] {"ln", "-s" + (force ? "f" : ""), linkTarget, targetDir + IPath.SEPARATOR + linkName}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			readOffStream(process.getErrorStream());
+			readOffStream(process.getInputStream());
+			try {
+				process.waitFor();
+			} catch (InterruptedException e) {
+				// mark thread interrupted and continue
+				Thread.currentThread().interrupt();
+			}
+		} catch (IOException e) {
+			// ignore
+		}
+	}
+
+	private void readOffStream(InputStream inputStream) {
+		BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+		try {
+			while (reader.readLine() != null) {
+				// do nothing
+			}
+		} catch (IOException e) {
+			// ignore
+		} finally {
+			try {
+				reader.close();
+			} catch (IOException e) {
+				// ignore
+			}
+		}
+	}
+
+	private static String resolveArtifactParam(Map parameters) throws CoreException {
+		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
+		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
+		IArtifactKey[] artifacts = iu.getArtifacts();
+		if (artifacts == null || artifacts.length == 0)
+			throw new CoreException(Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu)));
+
+		IArtifactKey artifactKey = artifacts[0];
+
+		File fileLocation = Util.getArtifactFile(artifactKey, profile);
+		if (fileLocation == null || !fileLocation.exists())
+			throw new CoreException(Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey)));
+		return fileLocation.getAbsolutePath();
+	}
+}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.cvsignore b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.cvsignore
deleted file mode 100644
index 23c798c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-repository
-buildDirectory
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.project b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.project
deleted file mode 100644
index 96fb3bc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.cloud.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/Build Cloud Example.launch b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/Build Cloud Example.launch
deleted file mode 100644
index 9da6e2c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/Build Cloud Example.launch
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.examples.rcp.cloud.releng"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml}"/>
-<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
-</launchConfiguration>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties
deleted file mode 100644
index 3f64da7..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties
+++ /dev/null
@@ -1,119 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-product=/org.eclipse.equinox.p2.examples.rcp.cloud/cloud.product
-runPackager=true
-
-p2.gathering=true
-		p2.metadata.repo=file:${builder}/repository
-p2.artifact.repo=file:${builder}/repository
-
-#Set the name of the archive that will result from the product build.
-#archiveNamePrefix=
-
-# The prefix that will be used in the generated archive.
-archivePrefix=eclipse
-
-# The location underwhich all of the build output will be collected.
-collectingFolder=${archivePrefix}
-
-# The list of {os, ws, arch} configurations to build.  This 
-# value is a '&' separated list of ',' separate triples.  For example, 
-#     configs=win32,win32,x86 & linux,motif,x86
-# By default the value is *,*,*
-configs = win32, win32, x86
-#configs=win32, win32, x86 & \
-#	linux, gtk, ppc &\
-# linux, gtk, x86 & \
-#	linux, gtk, x86_64 & \
-#	linux, motif, x86 & \
-#	solaris, motif, sparc & \
-#	solaris, gtk, sparc & \
-#	aix, motif, ppc & \
-#	hpux, motif, PA_RISC & \
-#	macosx, carbon, ppc
-
-#Allow cycles involving at most one bundle that needs to be compiled with the rest being binary bundles.
-allowBinaryCycles = true
-
-# Type of build.  Used in naming the build output.  Typically this value is
-# one of I, N, M, S, ...
-buildType=I
-
-# ID of the build.  Used in naming the build output.
-buildId=TestBuild
-
-# Label for the build.  Used in naming the build output
-buildLabel=${buildType}.${buildId}
-
-# Timestamp for the build.  Used in naming the build output
-timestamp=007
-
-#this property indicates whether the resolution should be done in development mode (i.e. ignore multiple bundles with singletons)
-resolution.devMode=false
-
-skipBase=true
-skipMaps=true
-skipFetch=true
-
-
-############# JAVA COMPILER OPTIONS ##############
-# For this example:
-# We specify the JRE locations for CDC-1.1/Foundation-1.1 and J2SE-1.5
-# because these are the required execution environments defined for the 
-# bundles in the example. 
-
-# The location of the Java jars to compile against.  Typically the rt.jar for your JDK/JRE
-#bootclasspath=${java.home}/lib/rt.jar
-
-# If using an IBM VM, use
-#bootclasspath=${java.home}/lib/core.jar;${java.home}/lib/vm.jar
-
-# specific JRE locations to compile against. These values are used to compile bundles specifying a 
-# Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
-#CDC-1.0/Foundation-1.0= /path/to/rt.jar
-CDC-1.1/Foundation-1.1=${java.home}/lib/rt.jar
-#OSGi/Minimum-1.0=
-#OSGi/Minimum-1.1=
-#JRE-1.1=
-#J2SE-1.2=
-#J2SE-1.3=
-#J2SE-1.4=
-J2SE-1.5=${java.home}/lib/rt.jar
-#JavaSE-1.6=
-#PersonalJava-1.1=
-#PersonalJava-1.2=
-#CDC-1.0/PersonalBasis-1.0=
-#CDC-1.0/PersonalJava-1.0=
-#CDC-1.1/PersonalBasis-1.1=
-#CDC-1.1/PersonalJava-1.1=
-
-# Specify the output format of the compiler log when eclipse jdt is used
-logExtension=.log
-
-# Whether or not to include debug info in the output jars
-javacDebugInfo=false 
-
-# Whether or not to fail the build if there are compiler errors
-javacFailOnError=true
-
-# Enable or disable verbose mode of the compiler
-javacVerbose=true
-
-# Extra arguments for the compiler. These are specific to the java compiler being used.
-#compilerArg=
-
-# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
-#javacSource=1.3
-
-# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
-#javacTarget=1.1
-
-
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml
deleted file mode 100644
index 2f1b9a9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/buildProduct.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<project default="main">
-	<target name="main">
-		<property name="baseLocation" value="${eclipse.home}"/>
-		<!-- by default, check for deltapack co-located with eclipse -->
-		<property name="deltapack" value="${eclipse.home}/../deltapack/eclipse"/>
-
-		<!-- Check that we have a deltapack -->
-		<available property="haveDeltaPack" file="${deltapack}"/>
-		<fail unless="haveDeltaPack" message="The deltapack is required to build this product.  Please edit buildProduct.xml or set the &quot;deltapack&quot; property." />
-			
-		<property name="builder" value="${basedir}" />
-		<property name="buildDirectory" value="${basedir}/buildDirectory"/>
-		<property name="pluginPath" value="${basedir}/..${path.separator}${deltapack}" />
-		<property name="buildTempFolder" value="${buildDirectory}" />
-			
-		<ant antfile="${eclipse.pdebuild.scripts}/productBuild/productBuild.xml" />
-
-		<move todir="${basedir}">
-			<fileset dir="${buildDirectory}/I.TestBuild" includes="*.zip"/>
-		</move>
-
-		<!-- refresh the workspace -->
-		<eclipse.convertPath fileSystemPath="${basedir}" property="resourcePath"/>
-		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/readme.txt b/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/readme.txt
deleted file mode 100644
index eb0d089..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/readme.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This project is a releng builder for the org.eclipse.equinox.p2.examples.rcp.cloud project.
-
-1) This build requires 3.5M6 or later
-
-2) This build requires the deltapack.  By default it looks beside the eclipse install for "deltapack/eclipse/*".  
-   If your deltapack is located elsewhere, set the "deltapack" property or edit the buildProduct.xml file.  The
-   version of the deltapack used should match the version of the eclipse that is running.
-
-3) Due to bug 268867, if the buildDirectory/buildRepo is deleted/cleaned, then the repo must also be removed from 
-   the workspace Available Software Sites preferences.
-    
-4) Use the included launch config, or run buildProduct.xml as an ant build using the same JRE as the workspace
-
-5) The build.properties file specifically defines the JRE's for CDC-1.1/Foundation-1.1 and
-   J2SE-1.5 because these are the required bundle execution environments in the example.
-   The build should be run on a 1.5 VM.
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.classpath b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.project b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.project
deleted file mode 100644
index 9276cae..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.cloud</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/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 88da5d4..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Thu Mar 12 11:04:59 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/META-INF/MANIFEST.MF b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/META-INF/MANIFEST.MF
deleted file mode 100644
index 5c908b5..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: RCP Mail (Cloud Update Example)
-Bundle-SymbolicName: org.eclipse.equinox.p2.examples.rcp.cloud; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.equinox.p2.examples.rcp.cloud.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.equinox.p2.ui;bundle-version="1.0.100",
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.extensionlocation;bundle-version="1.0.100",
- org.eclipse.equinox.p2.updatesite;bundle-version="1.0.0",
- org.eclipse.equinox.p2.director;bundle-version="1.0.100",
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100",
- org.eclipse.equinox.p2.core;bundle-version="1.0.100",
- org.eclipse.ecf;bundle-version="3.0.0",
- org.eclipse.ecf.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.identity;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer.httpclient;bundle-version="3.0.0",
- org.apache.commons.codec;bundle-version="1.2.0",
- org.apache.commons.httpclient;bundle-version="3.0.1",
- org.eclipse.equinox.p2.ui.sdk.scheduler;bundle-version="1.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/build.properties
deleted file mode 100644
index 5c50a00..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               product_lg.gif,\
-               splash.bmp,\
-               plugin.properties
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/cloud.product b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/cloud.product
deleted file mode 100644
index 2ec6ba1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/cloud.product
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="RCP Mail Example (Cloud Update)" id="org.eclipse.equinox.p2.examples.rcp.cloud.product" application="org.eclipse.equinox.p2.examples.rcp.cloud.application" version="1.0.0.qualifier" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Mail template created by PDE
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-   <splash
-      location="org.eclipse.equinox.p2.examples.rcp.cloud" />
-   <launcher name="cloud">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.apache.commons.httpclient"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <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.ecf.provider.filetransfer.httpclient"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
-      <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.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.cloud"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.publisher"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.ui"/>
-      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler"/>
-      <plugin id="org.eclipse.equinox.p2.updatechecker"/>
-      <plugin id="org.eclipse.equinox.p2.updatesite"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.security"/>
-      <plugin id="org.eclipse.equinox.security.ui"/>
-      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <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.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-
-</product>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/mail.ico b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/mail.ico
deleted file mode 100644
index b000061..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/mail.ico
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.gif b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.icns b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample2.gif b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample3.gif b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/p2.inf b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/p2.inf
deleted file mode 100644
index 48f31a3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-instructions.configure=\
-  addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\
-  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.properties b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.properties
deleted file mode 100644
index cdf457c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# RCP Mail Plug-in Resources
-#
-Update.command=Check for Updates
-Update.command.mnemonic=U
-Install.command=Install New Software...
-Install.command.mnemonic=S
-installedSoftwarePage = Installed Software
-installHistoryPage = Installation History
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.xml b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.xml
deleted file mode 100644
index f708f9a..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/plugin.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.p2.examples.rcp.cloud.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="RCP Perspective"
-            class="org.eclipse.equinox.p2.examples.rcp.cloud.Perspective"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.cloud.View"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.cloud.NavigationView"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.cloud.category"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.cloud.category"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.cloud.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.cloud.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.examples.rcp.cloud.application"
-            name="RCP Mail Example (Cloud Update)">
-         <property
-               name="aboutText"
-               value="RCP Mail template created by PDE">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-      </product>
-   </extension>
-      <extension
-         point="org.eclipse.ui.installationPages">
-          <page
-            name="%installedSoftwarePage"
-            class="org.eclipse.equinox.internal.provisional.p2.ui.dialogs.InstalledSoftwarePage"
-            id="10.org.eclipse.equinox.p2.examples.rcp.cloud.InstalledSoftwarePage">
-          </page>
-          <page
-            name="%installHistoryPage"
-            class="org.eclipse.equinox.internal.provisional.p2.ui.dialogs.RevertProfilePage"
-            id="11.org.eclipse.equinox.p2.examples.rcp.cloud.RevertProfilePage">
-          </page>
-          
-      </extension>
-       <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%Update.command"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.command.update">
-      </command>
-      <command
-            name="%Install.command"
-            id="org.eclipse.equinox.p2.examples.rcp.cloud.command.install">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            commandId="org.eclipse.equinox.p2.examples.rcp.cloud.command.update"
-            class="org.eclipse.equinox.p2.examples.rcp.cloud.p2.UpdateHandler">
-      </handler>
-      <handler
-            commandId="org.eclipse.equinox.p2.examples.rcp.cloud.command.install"
-            class="org.eclipse.equinox.p2.examples.rcp.cloud.p2.InstallNewSoftwareHandler">
-      </handler>
-   </extension>
-     <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:tools?after=additions">
-            <command
-                  commandId="org.eclipse.equinox.p2.examples.rcp.cloud.command.update"
-            	  mnemonic="%Update.command.mnemonic"
-                  id="org.eclipse.equinox.p2.examples.rcp.cloud.menu.update">
-            </command>
-                        
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:tools?after=org.eclipse.equinox.p2.examples.rcp.cloud.menu.update">
-            <command
-                  commandId="org.eclipse.equinox.p2.examples.rcp.cloud.command.install"
-            	  mnemonic="%Install.command.mnemonic"
-                  id="org.eclipse.equinox.p2.examples.rcp.cloud.menu.install">
-            </command>
-      </menuContribution>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/product_lg.gif b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/splash.bmp b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Activator.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Activator.java
deleted file mode 100644
index c12d07d..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Activator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.equinox.p2.examples.rcp.cloud.p2.CloudPolicy;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.examples.rcp.cloud";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	ServiceRegistration policyRegistration;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		/// XXX register the p2 UI policy
-		registerP2Policy(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		// XXX unregister the UI policy
-		policyRegistration.unregister();
-		policyRegistration = null;
-		super.stop(context);
-		
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-	
-	private void registerP2Policy(BundleContext context) {
-		policyRegistration = context.registerService(Policy.class.getName(), new CloudPolicy(), null);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Application.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Application.java
deleted file mode 100644
index cf495c3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Application.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationActionBarAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 8064f40..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    // XXX we want to show preferences
-    private IWorkbenchAction preferencesAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-    public static final String M_TOOLS = "tools";
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        // XXX we want to show auto update preferences
-        preferencesAction = ActionFactory.PREFERENCES.create(window);
-        register(preferencesAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        // XXX add a tools menu
-        MenuManager toolsMenu = new MenuManager("&Tools", M_TOOLS);            
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        menuBar.add(toolsMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // XXX add preferences to tools
-        toolsMenu.add(preferencesAction);
-        // XXX add a group for new other tools contributions
-        toolsMenu.add(new Separator());
-        toolsMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        
-        // Help
-        helpMenu.add(aboutAction);
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 717a4fa..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return Perspective.ID;
-	} 
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index a71e1b3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        // XXX Set the status line and progress indicator so that update
-        // information can be shown there
-        configurer.setShowStatusLine(true);
-		configurer.setShowProgressIndicator(true);
-
-    }
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ICommandIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ICommandIds.java
deleted file mode 100644
index 6bf884c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.equinox.p2.examples.rcp.cloud.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.equinox.p2.examples.rcp.cloud.openMessage";
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/MessagePopupAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/MessagePopupAction.java
deleted file mode 100644
index 85324ba..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.cloud.Activator.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/NavigationView.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/NavigationView.java
deleted file mode 100644
index c58a558..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.cloud.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/OpenViewAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/OpenViewAction.java
deleted file mode 100644
index 317e073..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.cloud.Activator.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Perspective.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Perspective.java
deleted file mode 100644
index 63299ce..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/Perspective.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	/**
-	 * The ID of the perspective as specified in the extension.
-	 */
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.cloud.perspective";
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/View.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/View.java
deleted file mode 100644
index d215e5b..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.cloud;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.cloud.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/CloudPolicy.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/CloudPolicy.java
deleted file mode 100644
index bc962fb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/CloudPolicy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.cloud.p2;
-
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.IUViewQueryContext;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-
-/**
- * CloudPolicy defines the RCP Cloud Example policies for the p2 UI. The policy
- * is registered as an OSGi service when the example bundle starts.
- * 
- * @since 3.5
- */
-public class CloudPolicy extends Policy {
-	public CloudPolicy() {
-		// XXX User has no access to manipulate repositories
-		setRepositoryManipulator(null);
-
-		// XXX Default view is by category
-		IUViewQueryContext queryContext = new IUViewQueryContext(
-				IUViewQueryContext.AVAILABLE_VIEW_BY_CATEGORY);
-		setQueryContext(queryContext);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/InstallNewSoftwareHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/InstallNewSoftwareHandler.java
deleted file mode 100644
index 9e08c2e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/InstallNewSoftwareHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.examples.rcp.cloud.p2;
-
-import org.eclipse.equinox.internal.provisional.p2.ui.IProvHelpContextIds;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.InstallWizard;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.ProvisioningWizardDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * InstallNewSoftwareHandler invokes the install wizard
- * 
- * @since 3.5
- */
-public class InstallNewSoftwareHandler extends PreloadingRepositoryHandler {
-
-	/**
-	 * The constructor.
-	 */
-	public InstallNewSoftwareHandler() {
-		super();
-	}
-
-	protected void doExecute(String profileId, QueryableMetadataRepositoryManager manager) {
-		InstallWizard wizard = new InstallWizard(Policy.getDefault(), profileId, null, null, manager);
-		WizardDialog dialog = new ProvisioningWizardDialog(getShell(), wizard);
-		dialog.create();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(), IProvHelpContextIds.INSTALL_WIZARD);
-
-		dialog.open();
-	}
-
-	protected boolean waitForPreload() {
-		// If there is no way for the user to manipulate repositories,
-		// then we may as well wait for existing repos to load so that
-		// content is available.  If the user can manipulate the
-		// repositories, then we don't wait, because we don't know which
-		// ones they want to work with.
-		return Policy.getDefault().getRepositoryManipulator() == null;
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/Messages.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/Messages.java
deleted file mode 100644
index 2e228a7..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/Messages.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.cloud.p2;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.p2.examples.rcp.cloud.p2.messages"; //$NON-NLS-1$
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-	public static String InstallNewSoftwareHandler_LoadRepositoryJobLabel;
-	public static String UpdateHandler_NoSitesMessage;
-	public static String UpdateHandler_NoSitesTitle;
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/PreloadingRepositoryHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/PreloadingRepositoryHandler.java
deleted file mode 100644
index 8b2213a..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/PreloadingRepositoryHandler.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.cloud.p2;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * PreloadingRepositoryHandler provides background loading of repositories
- * before executing the provisioning handler.
- * 
- * @since 3.5
- */
-abstract class PreloadingRepositoryHandler extends AbstractHandler {
-
-	Object LOAD_FAMILY = new Object();
-
-	/**
-	 * The constructor.
-	 */
-	public PreloadingRepositoryHandler() {
-		// constructor
-	}
-
-	/**
-	 * Execute the command.
-	 */
-	public Object execute(ExecutionEvent event) {
-		final String profileId = IProfileRegistry.SELF;
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				doExecuteAndLoad(profileId, preloadRepositories());
-			}
-		});
-		return null;
-	}
-
-	void doExecuteAndLoad(final String profileId, boolean preloadRepositories) {
-		// cancel any load that is already running
-		Job.getJobManager().cancel(LOAD_FAMILY);
-		final QueryableMetadataRepositoryManager queryableManager = new QueryableMetadataRepositoryManager(
-				Policy.getDefault().getQueryContext(), false);
-		if (preloadRepositories) {
-			Job loadJob = new Job(
-					Messages.InstallNewSoftwareHandler_LoadRepositoryJobLabel) {
-
-				protected IStatus run(IProgressMonitor monitor) {
-					queryableManager.loadAll(monitor);
-					return Status.OK_STATUS;
-				}
-
-				public boolean belongsTo(Object family) {
-					return family == LOAD_FAMILY;
-				}
-
-			};
-			if (waitForPreload()) {
-				loadJob.addJobChangeListener(new JobChangeAdapter() {
-					public void done(IJobChangeEvent event) {
-						if (PlatformUI.isWorkbenchRunning())
-							if (event.getResult().isOK()) {
-								PlatformUI.getWorkbench().getDisplay()
-										.asyncExec(new Runnable() {
-											public void run() {
-												doExecute(profileId,
-														queryableManager);
-											}
-										});
-							}
-					}
-				});
-				loadJob.setUser(true);
-				loadJob.schedule();
-
-			} else {
-				loadJob.setSystem(true);
-				loadJob.setUser(false);
-				loadJob.schedule();
-				doExecute(profileId, queryableManager);
-			}
-		} else {
-			doExecute(profileId, queryableManager);
-		}
-	}
-
-	protected abstract void doExecute(String profileId,
-			QueryableMetadataRepositoryManager manager);
-
-	protected boolean preloadRepositories() {
-		return true;
-	}
-
-	protected boolean waitForPreload() {
-		return true;
-	}
-
-	/**
-	 * Return a shell appropriate for parenting dialogs of this handler.
-	 * 
-	 * @return a Shell
-	 */
-	protected Shell getShell() {
-		return ProvUI.getDefaultParentShell();
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/UpdateHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/UpdateHandler.java
deleted file mode 100644
index 1668b09..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/UpdateHandler.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.cloud.p2;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.ui.ElementQueryDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.actions.UpdateAction;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.ProfileElement;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.RepositoryManipulator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * UpdateHandler invokes the check for updates UI
- * 
- * @since 3.4
- */
-public class UpdateHandler extends PreloadingRepositoryHandler {
-
-	boolean hasNoRepos = false;
-
-	/**
-	 * The constructor.
-	 */
-	public UpdateHandler() {
-		// constructor
-	}
-
-	protected void doExecute(String profileId, QueryableMetadataRepositoryManager manager) {
-		if (hasNoRepos) {
-			boolean goToSites = MessageDialog.openQuestion(getShell(), Messages.UpdateHandler_NoSitesTitle, Messages.UpdateHandler_NoSitesMessage);
-			if (goToSites) {
-				Policy.getDefault().getRepositoryManipulator().manipulateRepositories(getShell());
-			}
-			return;
-		}
-		// get the profile roots
-		ElementQueryDescriptor queryDescriptor = Policy.getDefault().getQueryProvider().getQueryDescriptor(new ProfileElement(null, profileId));
-		Collection collection = queryDescriptor.performQuery(null);
-		final IInstallableUnit[] roots = new IInstallableUnit[collection.size()];
-		Iterator iter = collection.iterator();
-		int i = 0;
-		while (iter.hasNext()) {
-			roots[i] = (IInstallableUnit) ProvUI.getAdapter(iter.next(), IInstallableUnit.class);
-			i++;
-		}
-		// now create an update action whose selection is all the roots
-		UpdateAction action = new UpdateAction(Policy.getDefault(), new ISelectionProvider() {
-
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-				// not dynamic
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection(roots);
-			}
-
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-				// not dynamic
-			}
-
-			public void setSelection(ISelection selection) {
-				// not mutable
-
-			}
-		}, profileId, false);
-		action.setRepositoryManager(manager);
-		action.run();
-	}
-
-	protected boolean preloadRepositories() {
-		hasNoRepos = false;
-		RepositoryManipulator repoMan = Policy.getDefault().getRepositoryManipulator();
-		if (repoMan != null && repoMan.getKnownRepositories().length == 0) {
-			hasNoRepos = true;
-			return false;
-		}
-		return super.preloadRepositories();
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/messages.properties b/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/messages.properties
deleted file mode 100644
index e16c867..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.cloud/src/org/eclipse/equinox/p2/examples/rcp/cloud/p2/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-
-InstallNewSoftwareHandler_LoadRepositoryJobLabel=Contacting Software Sites
-UpdateHandler_NoSitesMessage=There are no update sites to search.  Do you wish to open the "Available Software Sites" preferences?
-UpdateHandler_NoSitesTitle=No Updates Found
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/.project b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/.project
deleted file mode 100644
index 593704f..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/Build PrestartUpdate Example.launch b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/Build PrestartUpdate Example.launch
deleted file mode 100644
index d0ceb13..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/Build PrestartUpdate Example.launch
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml}"/>
-<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
-</launchConfiguration>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/build.properties
deleted file mode 100644
index 4435817..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/build.properties
+++ /dev/null
@@ -1,119 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-product=/org.eclipse.equinox.p2.examples.rcp.prestartupdate/prestartupdate.product
-runPackager=true
-
-p2.gathering=true
-		p2.metadata.repo=file:${builder}/repository
-p2.artifact.repo=file:${builder}/repository
-
-#Set the name of the archive that will result from the product build.
-#archiveNamePrefix=
-
-# The prefix that will be used in the generated archive.
-archivePrefix=eclipse
-
-# The location underwhich all of the build output will be collected.
-collectingFolder=${archivePrefix}
-
-# The list of {os, ws, arch} configurations to build.  This 
-# value is a '&' separated list of ',' separate triples.  For example, 
-#     configs=win32,win32,x86 & linux,motif,x86
-# By default the value is *,*,*
-configs = win32, win32, x86
-#configs=win32, win32, x86 & \
-#	linux, gtk, ppc &\
-# linux, gtk, x86 & \
-#	linux, gtk, x86_64 & \
-#	linux, motif, x86 & \
-#	solaris, motif, sparc & \
-#	solaris, gtk, sparc & \
-#	aix, motif, ppc & \
-#	hpux, motif, PA_RISC & \
-#	macosx, carbon, ppc
-
-#Allow cycles involving at most one bundle that needs to be compiled with the rest being binary bundles.
-allowBinaryCycles = true
-
-# Type of build.  Used in naming the build output.  Typically this value is
-# one of I, N, M, S, ...
-buildType=I
-
-# ID of the build.  Used in naming the build output.
-buildId=TestBuild
-
-# Label for the build.  Used in naming the build output
-buildLabel=${buildType}.${buildId}
-
-# Timestamp for the build.  Used in naming the build output
-timestamp=007
-
-#this property indicates whether the resolution should be done in development mode (i.e. ignore multiple bundles with singletons)
-resolution.devMode=false
-
-skipBase=true
-skipMaps=true
-skipFetch=true
-
-
-############# JAVA COMPILER OPTIONS ##############
-# For this example:
-# We specify the JRE locations for CDC-1.1/Foundation-1.1 and J2SE-1.5
-# because these are the required execution environments defined for the 
-# bundles in the example. 
-
-# The location of the Java jars to compile against.  Typically the rt.jar for your JDK/JRE
-#bootclasspath=${java.home}/lib/rt.jar
-
-# If using an IBM VM, use
-#bootclasspath=${java.home}/lib/core.jar;${java.home}/lib/vm.jar
-
-# specific JRE locations to compile against. These values are used to compile bundles specifying a 
-# Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
-#CDC-1.0/Foundation-1.0= /path/to/rt.jar
-CDC-1.1/Foundation-1.1=${java.home}/lib/rt.jar
-#OSGi/Minimum-1.0=
-#OSGi/Minimum-1.1=
-#JRE-1.1=
-#J2SE-1.2=
-#J2SE-1.3=
-#J2SE-1.4=
-J2SE-1.5=${java.home}/lib/rt.jar
-#JavaSE-1.6=
-#PersonalJava-1.1=
-#PersonalJava-1.2=
-#CDC-1.0/PersonalBasis-1.0=
-#CDC-1.0/PersonalJava-1.0=
-#CDC-1.1/PersonalBasis-1.1=
-#CDC-1.1/PersonalJava-1.1=
-
-# Specify the output format of the compiler log when eclipse jdt is used
-logExtension=.log
-
-# Whether or not to include debug info in the output jars
-javacDebugInfo=false 
-
-# Whether or not to fail the build if there are compiler errors
-javacFailOnError=true
-
-# Enable or disable verbose mode of the compiler
-javacVerbose=true
-
-# Extra arguments for the compiler. These are specific to the java compiler being used.
-#compilerArg=
-
-# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
-#javacSource=1.3
-
-# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
-#javacTarget=1.1
-
-
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml
deleted file mode 100644
index 2f1b9a9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/buildProduct.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<project default="main">
-	<target name="main">
-		<property name="baseLocation" value="${eclipse.home}"/>
-		<!-- by default, check for deltapack co-located with eclipse -->
-		<property name="deltapack" value="${eclipse.home}/../deltapack/eclipse"/>
-
-		<!-- Check that we have a deltapack -->
-		<available property="haveDeltaPack" file="${deltapack}"/>
-		<fail unless="haveDeltaPack" message="The deltapack is required to build this product.  Please edit buildProduct.xml or set the &quot;deltapack&quot; property." />
-			
-		<property name="builder" value="${basedir}" />
-		<property name="buildDirectory" value="${basedir}/buildDirectory"/>
-		<property name="pluginPath" value="${basedir}/..${path.separator}${deltapack}" />
-		<property name="buildTempFolder" value="${buildDirectory}" />
-			
-		<ant antfile="${eclipse.pdebuild.scripts}/productBuild/productBuild.xml" />
-
-		<move todir="${basedir}">
-			<fileset dir="${buildDirectory}/I.TestBuild" includes="*.zip"/>
-		</move>
-
-		<!-- refresh the workspace -->
-		<eclipse.convertPath fileSystemPath="${basedir}" property="resourcePath"/>
-		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/readme.txt b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/readme.txt
deleted file mode 100644
index e0ab34e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate.releng/readme.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This project is a releng builder for the org.eclipse.equinox.p2.examples.rcp.prestartupdate project.
-
-1) This build requires 3.5M6 or later
-
-2) This build requires the deltapack.  By default it looks beside the eclipse install for "deltapack/eclipse/*".  
-   If your deltapack is located elsewhere, set the "deltapack" property or edit the buildProduct.xml file.  The
-   version of the deltapack used should match the version of the eclipse that is running.
-
-3) Due to bug 268867, if the buildDirectory/buildRepo is deleted/cleaned, then the repo must also be removed from 
-   the workspace Available Software Sites preferences.
-    
-4) Use the included launch config, or run buildProduct.xml as an ant build using the same JRE as the workspace
-
-5) The build.properties file specifically defines the JRE's for CDC-1.1/Foundation-1.1 and
-   J2SE-1.5 because these are the required bundle execution environments in the example.
-   The build should be run on a 1.5 VM.
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.classpath b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.project b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.project
deleted file mode 100644
index 1646bc9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.prestartupdate</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/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 337c464..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Mar 16 12:12:08 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/META-INF/MANIFEST.MF b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/META-INF/MANIFEST.MF
deleted file mode 100644
index 8f4e5b0..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Prestartupdate
-Bundle-SymbolicName: org.eclipse.equinox.p2.examples.rcp.prestartupdate; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.equinox.p2.examples.rcp.prestartupdate.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.extensionlocation;bundle-version="1.0.100",
- org.eclipse.equinox.p2.updatesite;bundle-version="1.0.0",
- org.eclipse.equinox.p2.director;bundle-version="1.0.100",
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100",
- org.eclipse.equinox.p2.core;bundle-version="1.0.100",
- org.eclipse.ecf;bundle-version="3.0.0",
- org.eclipse.ecf.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.identity;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer.httpclient;bundle-version="3.0.0",
- org.apache.commons.codec;bundle-version="1.2.0",
- org.apache.commons.httpclient;bundle-version="3.0.1"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/build.properties
deleted file mode 100644
index bb09137..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               product_lg.gif,\
-               splash.bmp
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/mail.ico b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/mail.ico
deleted file mode 100644
index b000061..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/mail.ico
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.gif b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.icns b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample2.gif b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample3.gif b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/p2.inf b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/p2.inf
deleted file mode 100644
index 24aefb4..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-instructions.configure=\
-  addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/demos);\
-  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/demos);
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/plugin.xml b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/plugin.xml
deleted file mode 100644
index 283ed1d..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/plugin.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.p2.examples.rcp.prestartupdate.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="RCP Perspective"
-            class="org.eclipse.equinox.p2.examples.rcp.prestartupdate.Perspective"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.prestartupdate.View"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.prestartupdate.NavigationView"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.prestartupdate.category"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.prestartupdate.category"
-            id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.prestartupdate.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.prestartupdate.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.examples.rcp.prestartupdate.application"
-            name="RCP Product">
-         <property
-               name="aboutText"
-               value="RCP Mail template created by PDE">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/prestartupdate.product b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/prestartupdate.product
deleted file mode 100644
index 5e55b3e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/prestartupdate.product
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="RCP Mail Example (Pre-Startup Example)" id="org.eclipse.equinox.p2.examples.rcp.prestartupdate.product" application="org.eclipse.equinox.p2.examples.rcp.prestartupdate.application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Mail Example (Pre-Startup Example)
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-   <splash
-      location="org.eclipse.equinox.p2.examples.rcp.prestartupdate" />
-   <launcher name="prestartupdate">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="com.ibm.icu.source"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.apache.commons.httpclient"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <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.ecf.provider.filetransfer.httpclient"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
-      <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.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.prestartupdate"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.publisher"/>
-      <plugin id="org.eclipse.equinox.p2.repository"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
-      <plugin id="org.eclipse.equinox.p2.updatesite"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.security"/>
-      <plugin id="org.eclipse.equinox.security.ui"/>
-      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <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.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-   <configurations>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.prestartupdate" autoStart="true" startLevel="5" />
-   </configurations>
-
-</product>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/product_lg.gif b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/splash.bmp b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Activator.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Activator.java
deleted file mode 100644
index c08b4d7..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Activator.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-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 Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.examples.rcp.prestartupdate";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	// XXX Shared instance of bundle context
-	static BundleContext bundleContext;
-	
-	// XXX services for starting bundles
-	private static PackageAdmin packageAdmin = null;
-	private static ServiceReference packageAdminRef = null;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		bundleContext = context;
-		
-		packageAdminRef = bundleContext.getServiceReference(PackageAdmin.class.getName());
-		packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminRef);
-
-		// XXX start up the p2 infrastructure.  Normally the p2 UI does
-		// this, but we are running without UI.
-		getBundle("org.eclipse.equinox.p2.exemplarysetup").start(Bundle.START_TRANSIENT); //$NON-NLS-1$
-		getBundle("org.eclipse.equinox.frameworkadmin.equinox").start(Bundle.START_TRANSIENT); //$NON-NLS-1$
-		getBundle("org.eclipse.equinox.simpleconfigurator.manipulator").start(Bundle.START_TRANSIENT); //$NON-NLS-1$
-
-	}
-	
-	private 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;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Application.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Application.java
deleted file mode 100644
index 0f180ee..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Application.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IApplication {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationActionBarAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 68f0ad7..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // Help
-        helpMenu.add(aboutAction);
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index c5f04b9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-    
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-     */
-    public void preStartup() {
-    	// XXX check for updates before starting up.
-    	// If an update is performed, restart.
-    	if (P2Util.checkForUpdates())
-    		PlatformUI.getWorkbench().restart();
-    }
-    
-	public String getInitialWindowPerspectiveId() {
-		return Perspective.ID;
-	} 
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 2bb795c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        configurer.setShowStatusLine(false);
-    }
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ICommandIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ICommandIds.java
deleted file mode 100644
index 42a7455..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.equinox.p2.examples.rcp.prestartupdate.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.equinox.p2.examples.rcp.prestartupdate.openMessage";
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/MessagePopupAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/MessagePopupAction.java
deleted file mode 100644
index 2eb2ca9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.prestartupdate.Activator.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/NavigationView.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/NavigationView.java
deleted file mode 100644
index 77f69a2..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.prestartupdate.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/OpenViewAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/OpenViewAction.java
deleted file mode 100644
index b741fa9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.prestartupdate.Activator.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/P2Util.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/P2Util.java
deleted file mode 100644
index 2ade309..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/P2Util.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.prestartupdate;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan;
-import org.eclipse.equinox.internal.provisional.p2.engine.DefaultPhaseSet;
-import org.eclipse.equinox.internal.provisional.p2.engine.IEngine;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.repository.IRepositoryManager;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-
-public class P2Util {
-	// XXX Check for updates to this application and return true if
-	// we have installed updates and need a restart.
-	// This method is intentionally long and ugly in order to provide
-	// "one-stop-shopping" for how to check for and perform an update.
-	static boolean checkForUpdates() {
-		// Before we show a progress dialog, at least find out that we have
-		// installed content and repos to check.
-		final IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper
-				.getService(Activator.bundleContext, IProfileRegistry.class
-						.getName());
-		if (profileRegistry == null)
-			return false;
-		final IProfile profile = profileRegistry
-				.getProfile(IProfileRegistry.SELF);
-		if (profile == null)
-			return false;
-
-		// We are going to look for updates to all IU's in the profile. A
-		// different query could be used if we are looking for updates to
-		// a subset. For example, the p2 UI only looks for updates to those
-		// IU's marked with a special property.
-		final Collector collector = profile.query(InstallableUnitQuery.ANY,
-				new Collector(), null);
-		if (collector.isEmpty())
-			return false;
-		final IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper
-				.getService(Activator.bundleContext,
-						IMetadataRepositoryManager.class.getName());
-		if (manager == null)
-			return false;
-		final URI[] reposToSearch = manager
-				.getKnownRepositories(IRepositoryManager.REPOSITORIES_ALL);
-		if (reposToSearch.length == 0)
-			return false;
-		final IPlanner planner = (IPlanner) ServiceHelper.getService(
-				Activator.bundleContext, IPlanner.class.getName());
-		if (planner == null)
-			return false;
-		// Looking in all known repositories for updates for each IU in the profile
-		final boolean[] didWeUpdate = new boolean[1];
-		didWeUpdate[0] = false;
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-					throws InvocationTargetException, InterruptedException {
-				// We'll break progress up into 4 steps.
-				// 1.  Load repos - it is not strictly necessary to do this.
-				//     The planner will do it for us.  However, burying this
-				//     in the planner's progress reporting will not 
-				//     show enough progress initially, so we do it manually.
-                // 2.  Get update list
-				// 3.  Build a profile change request and get a provisioning plan
-				// 4.  Perform the provisioning plan.
-				SubMonitor sub = SubMonitor.convert(monitor,
-						"Checking for application updates...", 400);
-				// 1.  Load repos
-				SubMonitor loadMonitor = sub.newChild(100, SubMonitor.SUPPRESS_ALL_LABELS);
-				for (int i=0; i<reposToSearch.length; i++)
-					try {
-						if (loadMonitor.isCanceled())
-							throw new InterruptedException();
-						manager.loadRepository(reposToSearch[i], loadMonitor.newChild(100/reposToSearch.length));
-					} catch (ProvisionException e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
-					}
-				loadMonitor.done();
-				
-				// 2.  Get update list.
-				// First we look for replacement IU's for each IU
-				ArrayList iusWithUpdates = new ArrayList();
-				ArrayList replacementIUs = new ArrayList();
-				Iterator iter = collector.iterator();
-				ProvisioningContext pc = new ProvisioningContext(reposToSearch);
-				SubMonitor updateSearchMonitor = sub.newChild(100, SubMonitor.SUPPRESS_ALL_LABELS);
-				while (iter.hasNext()) {
-					if (updateSearchMonitor.isCanceled())
-						throw new InterruptedException();
-					IInstallableUnit iu = (IInstallableUnit) iter.next();
-					IInstallableUnit[] replacements = planner.updatesFor(iu,
-							pc, updateSearchMonitor.newChild(100/collector.size()));
-					if (replacements.length > 0) {
-						iusWithUpdates.add(iu);
-						if (replacements.length == 1)
-							replacementIUs.add(replacements[0]);
-						else {
-							IInstallableUnit repl = replacements[0];
-							for (int i = 1; i < replacements.length; i++)
-								if (replacements[i].getVersion().compareTo(
-										repl.getVersion()) > 0)
-									repl = replacements[i];
-							replacementIUs.add(repl);
-						}
-					}
-				}
-				// Did we find any updates?
-				if (iusWithUpdates.size() == 0) {
-					sub.done();
-				} else {
-					if (sub.isCanceled())
-						throw new InterruptedException();
-					// 3.  Build a profile change request and get a provisioning plan
-					ProfileChangeRequest changeRequest = new ProfileChangeRequest(
-							profile);
-					changeRequest
-							.removeInstallableUnits((IInstallableUnit[]) iusWithUpdates
-									.toArray(new IInstallableUnit[iusWithUpdates
-											.size()]));
-					changeRequest
-							.addInstallableUnits((IInstallableUnit[]) replacementIUs
-									.toArray(new IInstallableUnit[replacementIUs
-											.size()]));
-					ProvisioningPlan plan = planner.getProvisioningPlan(
-							changeRequest, pc, sub.newChild(100, SubMonitor.SUPPRESS_ALL_LABELS));
-					if (plan.getStatus().getSeverity() == IStatus.CANCEL)
-						throw new InterruptedException();
-					if (plan.getStatus().getSeverity() != IStatus.ERROR) {
-						IEngine engine = (IEngine) ServiceHelper.getService(
-								Activator.bundleContext, IEngine.class
-										.getName());
-						IArtifactRepositoryManager artifactMgr = (IArtifactRepositoryManager) ServiceHelper
-								.getService(Activator.bundleContext,
-										IArtifactRepositoryManager.class
-												.getName());
-						if (engine != null && artifactMgr != null) {
-							// 4.  Perform the provisioning plan
-							pc
-									.setArtifactRepositories(artifactMgr
-											.getKnownRepositories(IRepositoryManager.REPOSITORIES_ALL));
-							IStatus status = engine.perform(profile,
-									new DefaultPhaseSet(), plan.getOperands(),
-									pc, sub.newChild(100, SubMonitor.SUPPRESS_ALL_LABELS));
-							if (status.getSeverity() == IStatus.CANCEL)
-								throw new InterruptedException();
-							if (status.getSeverity() != IStatus.ERROR) {
-								didWeUpdate[0] = true;
-							}
-						}
-					}
-				}
-			}
-		};
-		try {
-			new ProgressMonitorDialog(null).run(true, true, runnable);
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-			return false;
-		} catch (InterruptedException e) {
-			return false;
-		}
-		return didWeUpdate[0];
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Perspective.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Perspective.java
deleted file mode 100644
index 244eca0..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/Perspective.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	/**
-	 * The ID of the perspective as specified in the extension.
-	 */
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.prestartupdate.perspective";
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/View.java b/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/View.java
deleted file mode 100644
index 38be316..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.prestartupdate/src/org/eclipse/equinox/p2/examples/rcp/prestartupdate/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.prestartupdate;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.prestartupdate.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.classpath b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.project b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.project
deleted file mode 100644
index 0b16359..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ds.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6f414e0..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Mar 16 12:11:08 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/META-INF/MANIFEST.MF b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/META-INF/MANIFEST.MF
deleted file mode 100644
index e0ee6e8..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Sdkbundlevisibility
-Bundle-SymbolicName: org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.equinox.ds,
- org.eclipse.equinox.p2.ui;bundle-version="1.0.100",
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.extensionlocation;bundle-version="1.0.100",
- org.eclipse.equinox.p2.updatesite;bundle-version="1.0.0",
- org.eclipse.equinox.p2.director;bundle-version="1.0.100",
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100",
- org.eclipse.equinox.p2.core;bundle-version="1.0.100",
- org.eclipse.ecf;bundle-version="3.0.0",
- org.eclipse.ecf.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.identity;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer.httpclient;bundle-version="3.0.0",
- org.apache.commons.codec;bundle-version="1.2.0",
- org.apache.commons.httpclient;bundle-version="3.0.1"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Service-Component: OSGI-INF/policy_component.xml
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/OSGI-INF/policy_component.xml b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/OSGI-INF/policy_component.xml
deleted file mode 100644
index adb20be..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/OSGI-INF/policy_component.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.policy">
-   <implementation class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2.AllIUsAreVisiblePolicy"/>
-   <service>
-      <provide interface="org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy"/>
-   </service>
-   <property name="service.ranking" type="Integer" value="1000"/>
-</scr:component>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/build.properties
deleted file mode 100644
index 91db6ad..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               product_lg.gif,\
-               splash.bmp,\
-               plugin.properties,\
-               OSGI-INF/
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/mail.ico b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/mail.ico
deleted file mode 100644
index b000061..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/mail.ico
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.icns b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample2.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample3.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/p2.inf b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/p2.inf
deleted file mode 100644
index 48f31a3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-instructions.configure=\
-  addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\
-  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.properties b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.properties
deleted file mode 100644
index 2dee9a5..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# RCP Mail Plug-in Resources
-#
-Update.command=Check for Updates
-Update.command.mnemonic=U
-Install.command=Install New Software...
-Install.command.mnemonic=S
-provisioningPrefPage = Install/Update
-sitesPrefPage = Available Software Sites
-installedSoftwarePage = Installed Software
-installHistoryPage = Installation History
-preferenceKeywords.general=automatic update schedule download site software install import bundle
-preferences=Update and Install Preferences
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.xml b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.xml
deleted file mode 100644
index 4847b0e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/plugin.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="RCP Perspective"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Perspective"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.View"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.NavigationView"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.application"
-            name="RCP Product">
-         <property
-               name="aboutText"
-               value="RCP Mail template created by PDE">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-      </product>
-   </extension>
-     <extension
-         point="org.eclipse.ui.installationPages">
-          <page
-            name="%installedSoftwarePage"
-            class="org.eclipse.equinox.internal.provisional.p2.ui.dialogs.InstalledSoftwarePage"
-            id="10.org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.InstalledSoftwarePage">
-          </page>
-          <page
-            name="%installHistoryPage"
-            class="org.eclipse.equinox.internal.provisional.p2.ui.dialogs.RevertProfilePage"
-            id="11.org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.RevertProfilePage">
-          </page>
-          
-      </extension>
-       <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%Update.command"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.update">
-      </command>
-      <command
-            name="%Install.command"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.install">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.update"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2.UpdateHandler">
-      </handler>
-      <handler
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.install"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2.InstallNewSoftwareHandler">
-      </handler>
-   </extension>
-     <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:tools?after=additions">
-            <command
-                  commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.update"
-            	  mnemonic="%Update.command.mnemonic"
-                  id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.menu.update">
-            </command>
-                        
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:tools?after=org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.menu.update">
-            <command
-                  commandId="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.command.install"
-            	  mnemonic="%Install.command.mnemonic"
-                  id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.menu.install">
-            </command>
-      </menuContribution>
-   </extension>
-
-      <extension
-         point="org.eclipse.ui.preferencePages">
-              <page
-            name="%provisioningPrefPage"
-            class="org.eclipse.equinox.internal.p2.ui.sdk.prefs.ProvisioningPreferencePage"
-            id="org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage">
-            <keywordReference id="org.eclipse.equinox.p2.ui.sdk.updates.general"/>
-      </page>
-      
-       <page
-            name="%sitesPrefPage"
-            category="org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage"
-            class="org.eclipse.equinox.internal.provisional.p2.ui.dialogs.RepositoryManipulationPage"
-            id="org.eclipse.equinox.internal.p2.ui.sdk.SitesPreferencePage">
-            <keywordReference id="org.eclipse.equinox.p2.ui.sdk.updates.general"/>
-      </page>
- 
-   </extension>
-
-      <extension
-   		point="org.eclipse.ui.keywords">
-      <keyword
-            label="%preferenceKeywords.general"
-            id="org.eclipse.equinox.p2.ui.sdk.updates.general"/>
-      </extension>
-      
-  	<extension 
-   		id="preferences" point="org.eclipse.core.runtime.preferences" name="%preferences">
-		<initializer class="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.PreferenceInitializer"/>
-	</extension>
-</plugin>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/product_lg.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/sdkbundlevisibility.product b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/sdkbundlevisibility.product
deleted file mode 100644
index 461b080..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/sdkbundlevisibility.product
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="RCP Mail Example (Bundle Visibility Update Example)" id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.product" application="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.application" version="1.0.0.qualifier" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Mail Example (Bundle Visibility Update Example)
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-   <splash
-      location="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility" />
-   <launcher name="sdkbundlevisibility">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="aaa"/>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.apache.commons.httpclient"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <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.ecf.provider.filetransfer.httpclient"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
-      <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.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.publisher"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.ui"/>
-      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler"/>
-      <plugin id="org.eclipse.equinox.p2.updatechecker"/>
-      <plugin id="org.eclipse.equinox.p2.updatesite"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.security"/>
-      <plugin id="org.eclipse.equinox.security.ui"/>
-      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <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.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-
-</product>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/splash.bmp b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Activator.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Activator.java
deleted file mode 100644
index 0141e95..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Activator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Application.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Application.java
deleted file mode 100644
index 2fb7972..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Application.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationActionBarAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 86b3594..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    // XXX we want to show preferences
-    private IWorkbenchAction preferencesAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-    public static final String M_TOOLS = "tools";
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        // XXX we want to show auto update preferences
-        preferencesAction = ActionFactory.PREFERENCES.create(window);
-        register(preferencesAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        // XXX add a tools menu
-        MenuManager toolsMenu = new MenuManager("&Tools", M_TOOLS);            
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        menuBar.add(toolsMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // XXX add preferences to tools
-        toolsMenu.add(preferencesAction);
-        toolsMenu.add(new Separator());
-        toolsMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        
-        // Help
-        helpMenu.add(aboutAction);
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index ce56de9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return Perspective.ID;
-	} 
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 2f51293..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        // XXX Set the status line and progress indicator so that update
-        // information can be shown there
-        configurer.setShowStatusLine(true);
-		configurer.setShowProgressIndicator(true);
-
-    }
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ICommandIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ICommandIds.java
deleted file mode 100644
index 96e8172..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.openMessage";
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/MessagePopupAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/MessagePopupAction.java
deleted file mode 100644
index a9a83e9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Activator.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/NavigationView.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/NavigationView.java
deleted file mode 100644
index 87949a3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/OpenViewAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/OpenViewAction.java
deleted file mode 100644
index 162da81..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Activator.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Perspective.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Perspective.java
deleted file mode 100644
index 08aefe1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/Perspective.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	/**
-	 * The ID of the perspective as specified in the extension.
-	 */
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.perspective";
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/View.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/View.java
deleted file mode 100644
index 66f6584..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/AllIUsAreVisiblePolicy.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/AllIUsAreVisiblePolicy.java
deleted file mode 100644
index 7524210..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/AllIUsAreVisiblePolicy.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.ColocatedRepositoryManipulator;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.IUViewQueryContext;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-
-/**
- * AllIUsAreVisiblePolicy redefines the IU visibility.  In this
- * example, the policy is declared using OSGi declarative services.
- * The declaration is in the policy_component.xml file.
- * 
- * @since 3.5
- */
-public class AllIUsAreVisiblePolicy extends Policy {
-	public AllIUsAreVisiblePolicy() {
-		// XXX Use the pref-based repository manipulator
-		setRepositoryManipulator(new ColocatedRepositoryManipulator(this, PreferenceConstants.PREF_PAGE_SITES));
-		
-		// XXX Create an IUViewQueryContext to change the visibility of the IUs shown in the UI.
-        // XXX Show the flat (non-categorized) view by default.
-		IUViewQueryContext context = new IUViewQueryContext(IUViewQueryContext.AVAILABLE_VIEW_FLAT);
-		// XXX All available IU's should be shown, not just groups/features
-		context.setVisibleAvailableIUProperty(null);
-		// XXX All installed IU's should be shown, not just the user-installed.
-		context.setVisibleInstalledIUProperty(null);
-		
-		setQueryContext(context);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/IProvSDKHelpContextIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/IProvSDKHelpContextIds.java
deleted file mode 100644
index eccbe35..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/IProvSDKHelpContextIds.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2;
-
-/**
- * Help context ids for the P2 SDK
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * @since 3.4
- */
-
-public interface IProvSDKHelpContextIds {
-	// XXX Must match the id used in the help doc
-	public static final String PREFIX = "org.eclipse.equinox.p2.ui.sdk"; //$NON-NLS-1$
-
-	public static final String PROVISIONING_PREFERENCE_PAGE = PREFIX + "provisioning_preference_page_context"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/InstallNewSoftwareHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/InstallNewSoftwareHandler.java
deleted file mode 100644
index 4dca717..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/InstallNewSoftwareHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.equinox.internal.provisional.p2.ui.IProvHelpContextIds;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.InstallWizard;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.ProvisioningWizardDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * InstallNewSoftwareHandler invokes the install wizard
- * 
- * @since 3.5
- */
-public class InstallNewSoftwareHandler extends PreloadingRepositoryHandler {
-
-	/**
-	 * The constructor.
-	 */
-	public InstallNewSoftwareHandler() {
-		super();
-	}
-
-	protected void doExecute(String profileId, QueryableMetadataRepositoryManager manager) {
-		InstallWizard wizard = new InstallWizard(Policy.getDefault(), profileId, null, null, manager);
-		WizardDialog dialog = new ProvisioningWizardDialog(getShell(), wizard);
-		dialog.create();
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(), IProvHelpContextIds.INSTALL_WIZARD);
-
-		dialog.open();
-	}
-
-	protected boolean waitForPreload() {
-		// If there is no way for the user to manipulate repositories,
-		// then we may as well wait for existing repos to load so that
-		// content is available.  If the user can manipulate the
-		// repositories, then we don't wait, because we don't know which
-		// ones they want to work with.
-		return Policy.getDefault().getRepositoryManipulator() == null;
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/Messages.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/Messages.java
deleted file mode 100644
index 8713ba2..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/Messages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2.messages"; //$NON-NLS-1$
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-	public static String InstallNewSoftwareHandler_LoadRepositoryJobLabel;
-	public static String UpdateHandler_NoSitesMessage;
-	public static String UpdateHandler_NoSitesTitle;
-	public static String ProvisioningPreferencePage_AlwaysOpenWizard;
-	public static String ProvisioningPreferencePage_BrowsingPrefsGroup;
-	public static String ProvisioningPreferencePage_ShowLatestVersions;
-	public static String ProvisioningPreferencePage_ShowAllVersions;
-	public static String ProvisioningPreferencePage_NeverOpenWizard;
-	public static String ProvisioningPreferencePage_OpenWizardIfInvalid;
-	public static String ProvisioningPreferencePage_PromptToOpenWizard;
-
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceConstants.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceConstants.java
deleted file mode 100644
index ea29eb8..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2;
-
-/**
- * @since 3.4
- */
-public class PreferenceConstants {
-	public static final String PREF_PAGE_PROVISIONING = "org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage"; //$NON-NLS-1$
-	public static final String PREF_PAGE_SITES = "org.eclipse.equinox.internal.p2.ui.sdk.SitesPreferencePage"; //$NON-NLS-1$
-	public static final String PREF_SHOW_LATEST_VERSION = "showLatestVersion"; //$NON-NLS-1$
-	public static final String PREF_OPEN_WIZARD_ON_ERROR_PLAN = "allowNonOKPlan"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceInitializer.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceInitializer.java
deleted file mode 100644
index 858b04f..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreferenceInitializer.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.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @since 3.4
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		Preferences node = new DefaultScope().getNode("org.eclipse.equinox.p2.ui.sdk"); //$NON-NLS-1$
-		node.putBoolean(PreferenceConstants.PREF_SHOW_LATEST_VERSION, true);
-		node.put(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN, MessageDialogWithToggle.PROMPT);
-	}
-
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreloadingRepositoryHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreloadingRepositoryHandler.java
deleted file mode 100644
index dec8d9b..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/PreloadingRepositoryHandler.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * PreloadingRepositoryHandler provides background loading of repositories
- * before executing the provisioning handler.
- * 
- * @since 3.5
- */
-abstract class PreloadingRepositoryHandler extends AbstractHandler {
-
-	Object LOAD_FAMILY = new Object();
-
-	/**
-	 * The constructor.
-	 */
-	public PreloadingRepositoryHandler() {
-		// constructor
-	}
-
-	/**
-	 * Execute the command.
-	 */
-	public Object execute(ExecutionEvent event) {
-		final String profileId = IProfileRegistry.SELF;
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				doExecuteAndLoad(profileId, preloadRepositories());
-			}
-		});
-		return null;
-	}
-
-	void doExecuteAndLoad(final String profileId, boolean preloadRepositories) {
-		// cancel any load that is already running
-		Job.getJobManager().cancel(LOAD_FAMILY);
-		final QueryableMetadataRepositoryManager queryableManager = new QueryableMetadataRepositoryManager(
-				Policy.getDefault().getQueryContext(), false);
-		if (preloadRepositories) {
-			Job loadJob = new Job(
-					Messages.InstallNewSoftwareHandler_LoadRepositoryJobLabel) {
-
-				protected IStatus run(IProgressMonitor monitor) {
-					queryableManager.loadAll(monitor);
-					return Status.OK_STATUS;
-				}
-
-				public boolean belongsTo(Object family) {
-					return family == LOAD_FAMILY;
-				}
-
-			};
-			if (waitForPreload()) {
-				loadJob.addJobChangeListener(new JobChangeAdapter() {
-					public void done(IJobChangeEvent event) {
-						if (PlatformUI.isWorkbenchRunning())
-							if (event.getResult().isOK()) {
-								PlatformUI.getWorkbench().getDisplay()
-										.asyncExec(new Runnable() {
-											public void run() {
-												doExecute(profileId,
-														queryableManager);
-											}
-										});
-							}
-					}
-				});
-				loadJob.setUser(true);
-				loadJob.schedule();
-
-			} else {
-				loadJob.setSystem(true);
-				loadJob.setUser(false);
-				loadJob.schedule();
-				doExecute(profileId, queryableManager);
-			}
-		} else {
-			doExecute(profileId, queryableManager);
-		}
-	}
-
-	protected abstract void doExecute(String profileId,
-			QueryableMetadataRepositoryManager manager);
-
-	protected boolean preloadRepositories() {
-		return true;
-	}
-
-	protected boolean waitForPreload() {
-		return true;
-	}
-
-	/**
-	 * Return a shell appropriate for parenting dialogs of this handler.
-	 * 
-	 * @return a Shell
-	 */
-	protected Shell getShell() {
-		return ProvUI.getDefaultParentShell();
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/ProvisioningPreferencePage.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/ProvisioningPreferencePage.java
deleted file mode 100644
index 9a049f9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/ProvisioningPreferencePage.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.p2;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility.Activator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-
-/**
- * Preference page for general provisioning preferences.
- * 
- * @since 3.4
- */
-
-public class ProvisioningPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	private Group browsingGroup, validateGroup;
-	private Button showLatestRadio, showAllRadio;
-	private Button alwaysShowFailedPlan, neverShowFailedPlan, promptOnFailedPlan;
-
-	protected Control createContents(Composite parent) {
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IProvSDKHelpContextIds.PROVISIONING_PREFERENCE_PAGE);
-
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		container.setLayout(layout);
-
-		// Group for show all versions vs. show latest
-		browsingGroup = new Group(container, SWT.NONE);
-		browsingGroup.setText(Messages.ProvisioningPreferencePage_BrowsingPrefsGroup);
-		layout = new GridLayout();
-		layout.numColumns = 3;
-		browsingGroup.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		browsingGroup.setLayoutData(gd);
-
-		showLatestRadio = new Button(browsingGroup, SWT.RADIO);
-		showLatestRadio.setText(Messages.ProvisioningPreferencePage_ShowLatestVersions);
-		gd = new GridData();
-		gd.horizontalSpan = 3;
-		showLatestRadio.setLayoutData(gd);
-
-		showAllRadio = new Button(browsingGroup, SWT.RADIO);
-		showAllRadio.setText(Messages.ProvisioningPreferencePage_ShowAllVersions);
-		gd = new GridData();
-		gd.horizontalSpan = 3;
-		showAllRadio.setLayoutData(gd);
-
-		//Group for validating a failed plan
-		validateGroup = new Group(container, SWT.NONE);
-		validateGroup.setText(Messages.ProvisioningPreferencePage_OpenWizardIfInvalid);
-		layout = new GridLayout();
-		layout.numColumns = 3;
-		validateGroup.setLayout(layout);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		validateGroup.setLayoutData(gd);
-
-		alwaysShowFailedPlan = new Button(validateGroup, SWT.RADIO);
-		alwaysShowFailedPlan.setText(Messages.ProvisioningPreferencePage_AlwaysOpenWizard);
-		gd = new GridData();
-		gd.horizontalSpan = 3;
-		alwaysShowFailedPlan.setLayoutData(gd);
-
-		neverShowFailedPlan = new Button(validateGroup, SWT.RADIO);
-		neverShowFailedPlan.setText(Messages.ProvisioningPreferencePage_NeverOpenWizard);
-		gd = new GridData();
-		gd.horizontalSpan = 3;
-		neverShowFailedPlan.setLayoutData(gd);
-
-		promptOnFailedPlan = new Button(validateGroup, SWT.RADIO);
-		promptOnFailedPlan.setText(Messages.ProvisioningPreferencePage_PromptToOpenWizard);
-		gd = new GridData();
-		gd.horizontalSpan = 3;
-		promptOnFailedPlan.setLayoutData(gd);
-
-		initialize();
-
-		Dialog.applyDialogFont(container);
-		return container;
-
-	}
-
-	private void initialize() {
-		Preferences pref = Activator.getDefault().getPluginPreferences();
-		showLatestRadio.setSelection(pref.getBoolean(PreferenceConstants.PREF_SHOW_LATEST_VERSION));
-		showAllRadio.setSelection(!pref.getBoolean(PreferenceConstants.PREF_SHOW_LATEST_VERSION));
-		String openWizard = pref.getString(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN);
-		alwaysShowFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.ALWAYS));
-		neverShowFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.NEVER));
-		promptOnFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.PROMPT));
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-		Preferences pref = Activator.getDefault().getPluginPreferences();
-		showLatestRadio.setSelection(pref.getDefaultBoolean(PreferenceConstants.PREF_SHOW_LATEST_VERSION));
-		showAllRadio.setSelection(!pref.getDefaultBoolean(PreferenceConstants.PREF_SHOW_LATEST_VERSION));
-		String openWizard = pref.getDefaultString(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN);
-		alwaysShowFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.ALWAYS));
-		neverShowFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.NEVER));
-		promptOnFailedPlan.setSelection(openWizard.equals(MessageDialogWithToggle.PROMPT));
-	}
-
-	public boolean performOk() {
-		Preferences pref = Activator.getDefault().getPluginPreferences();
-		pref.setValue(PreferenceConstants.PREF_SHOW_LATEST_VERSION, showLatestRadio.getSelection());
-		if (alwaysShowFailedPlan.getSelection())
-			pref.setValue(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN, MessageDialogWithToggle.ALWAYS);
-		else if (neverShowFailedPlan.getSelection())
-			pref.setValue(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN, MessageDialogWithToggle.NEVER);
-		else
-			pref.setValue(PreferenceConstants.PREF_OPEN_WIZARD_ON_ERROR_PLAN, MessageDialogWithToggle.PROMPT);
-
-		Activator.getDefault().savePluginPreferences();
-		return true;
-	}
-
-	public void init(IWorkbench workbench) {
-		// Nothing to do
-	}
-
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/UpdateHandler.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/UpdateHandler.java
deleted file mode 100644
index 891be7e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/UpdateHandler.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.examples.rcp.sdkbundlevisibility.p2;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.ui.ElementQueryDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.actions.UpdateAction;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.ProfileElement;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.RepositoryManipulator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * UpdateHandler invokes the check for updates UI
- * 
- * @since 3.4
- */
-public class UpdateHandler extends PreloadingRepositoryHandler {
-
-	boolean hasNoRepos = false;
-
-	/**
-	 * The constructor.
-	 */
-	public UpdateHandler() {
-		// constructor
-	}
-
-	protected void doExecute(String profileId, QueryableMetadataRepositoryManager manager) {
-		if (hasNoRepos) {
-			boolean goToSites = MessageDialog.openQuestion(getShell(), Messages.UpdateHandler_NoSitesTitle, Messages.UpdateHandler_NoSitesMessage);
-			if (goToSites) {
-				Policy.getDefault().getRepositoryManipulator().manipulateRepositories(getShell());
-			}
-			return;
-		}
-		// get the profile roots
-		ElementQueryDescriptor queryDescriptor = Policy.getDefault().getQueryProvider().getQueryDescriptor(new ProfileElement(null, profileId));
-		Collection collection = queryDescriptor.performQuery(null);
-		final IInstallableUnit[] roots = new IInstallableUnit[collection.size()];
-		Iterator iter = collection.iterator();
-		int i = 0;
-		while (iter.hasNext()) {
-			roots[i] = (IInstallableUnit) ProvUI.getAdapter(iter.next(), IInstallableUnit.class);
-			i++;
-		}
-		// now create an update action whose selection is all the roots
-		UpdateAction action = new UpdateAction(Policy.getDefault(), new ISelectionProvider() {
-
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-				// not dynamic
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection(roots);
-			}
-
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-				// not dynamic
-			}
-
-			public void setSelection(ISelection selection) {
-				// not mutable
-
-			}
-		}, profileId, false);
-		action.setRepositoryManager(manager);
-		action.run();
-	}
-
-	protected boolean preloadRepositories() {
-		hasNoRepos = false;
-		RepositoryManipulator repoMan = Policy.getDefault().getRepositoryManipulator();
-		if (repoMan != null && repoMan.getKnownRepositories().length == 0) {
-			hasNoRepos = true;
-			return false;
-		}
-		return super.preloadRepositories();
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/messages.properties b/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/messages.properties
deleted file mode 100644
index 21475c1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkbundlevisibility/src/org/eclipse/equinox/p2/examples/rcp/sdkbundlevisibility/p2/messages.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-
-InstallNewSoftwareHandler_LoadRepositoryJobLabel=Contacting Software Sites
-UpdateHandler_NoSitesMessage=There are no update sites to search.  Do you wish to open the "Available Software Sites" preferences?
-UpdateHandler_NoSitesTitle=No Updates Found
-ProvisioningPreferencePage_AlwaysOpenWizard=&Open the wizard anyway to review or change selections
-ProvisioningPreferencePage_BrowsingPrefsGroup=Browsing for updates
-ProvisioningPreferencePage_ShowLatestVersions=Show only the &latest versions of available software
-ProvisioningPreferencePage_ShowAllVersions=Show all &versions of available software
-ProvisioningPreferencePage_NeverOpenWizard=&Report the problems and do not open the wizard
-ProvisioningPreferencePage_OpenWizardIfInvalid=When software selected for an install wizard may not be compatible
-ProvisioningPreferencePage_PromptToOpenWizard=&Ask me what to do when it happens
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.classpath b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.project b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.project
deleted file mode 100644
index ca9f8bc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates</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/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1fe1140..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Mar 16 11:53:51 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/META-INF/MANIFEST.MF b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/META-INF/MANIFEST.MF
deleted file mode 100644
index d3eaf0c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Sdknoautoupdates
-Bundle-SymbolicName: org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.equinox.p2.ui;bundle-version="1.0.100",
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.extensionlocation;bundle-version="1.0.100",
- org.eclipse.equinox.p2.updatesite;bundle-version="1.0.0",
- org.eclipse.equinox.p2.director;bundle-version="1.0.100",
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100",
- org.eclipse.equinox.p2.core;bundle-version="1.0.100",
- org.eclipse.ecf;bundle-version="3.0.0",
- org.eclipse.ecf.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.identity;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer.httpclient;bundle-version="3.0.0",
- org.apache.commons.codec;bundle-version="1.2.0",
- org.apache.commons.httpclient;bundle-version="3.0.1",
- org.eclipse.equinox.p2.ui.sdk;bundle-version="1.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/build.properties
deleted file mode 100644
index 4b6aaf2..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               product_lg.gif,\
-               splash.bmp
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/mail.ico b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/mail.ico
deleted file mode 100644
index b000061..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/mail.ico
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.icns b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample2.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample3.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/p2.inf b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/p2.inf
deleted file mode 100644
index 48f31a3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-instructions.configure=\
-  addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\
-  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/plugin.xml b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/plugin.xml
deleted file mode 100644
index e786d29..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/plugin.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="RCP Perspective"
-            class="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.Perspective"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.View"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.NavigationView"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.application"
-            name="RCP Product">
-         <property
-               name="aboutText"
-               value="RCP Mail template created by PDE">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/product_lg.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/sdknoautoupdates.product b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/sdknoautoupdates.product
deleted file mode 100644
index 09e70ab..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/sdknoautoupdates.product
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="RCP Mail Example (No Automatic Updates)" id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.product" application="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.application" version="1.0.0.qualifier" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Mail Example (No Automatic Updates)
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-   <splash
-      location="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates" />
-   <launcher name="sdknoautoupdates">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.apache.commons.httpclient"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <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.ecf.provider.filetransfer.httpclient"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
-      <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.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.publisher"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.ui"/>
-      <plugin id="org.eclipse.equinox.p2.ui.sdk"/>
-      <plugin id="org.eclipse.equinox.p2.updatesite"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.security"/>
-      <plugin id="org.eclipse.equinox.security.ui"/>
-      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <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.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-
-</product>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/splash.bmp b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Activator.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Activator.java
deleted file mode 100644
index c23f925..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Activator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Application.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Application.java
deleted file mode 100644
index 3279bab..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Application.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationActionBarAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 0794fc4..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    // XXX we want to show all update preferences
-    private IWorkbenchAction preferencesAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        //XXX preferences action
-        preferencesAction = ActionFactory.PREFERENCES.create(window);
-        register(preferencesAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        // XXX Window menu
-        MenuManager windowMenu = new MenuManager("&Window", IWorkbenchActionConstants.M_WINDOW);
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        // XXX Window menu
-        menuBar.add(windowMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // XXX Window menu
-        windowMenu.add(preferencesAction);
-        
-        // Help
-        // XXX add an additions group because this is what SDK UI expects
-        helpMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        helpMenu.add(new Separator());
-        helpMenu.add(aboutAction);
-
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 183ba01..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return Perspective.ID;
-	} 
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 94a996d..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        // XXX We set the status line and progress indicator so that update
-        // information can be shown there
-        configurer.setShowStatusLine(true);
-		configurer.setShowProgressIndicator(true);
-    }
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ICommandIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ICommandIds.java
deleted file mode 100644
index 018fef1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.openMessage";
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/MessagePopupAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/MessagePopupAction.java
deleted file mode 100644
index 09cf1f9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.Activator.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/NavigationView.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/NavigationView.java
deleted file mode 100644
index 8eeaa6e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/OpenViewAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/OpenViewAction.java
deleted file mode 100644
index e559179..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.Activator.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Perspective.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Perspective.java
deleted file mode 100644
index dbe205e..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/Perspective.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	/**
-	 * The ID of the perspective as specified in the extension.
-	 */
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.perspective";
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/View.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/View.java
deleted file mode 100644
index ec39948..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates/src/org/eclipse/equinox/p2/examples/rcp/sdknoautoupdates/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdknoautoupdates.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.classpath b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.project b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.project
deleted file mode 100644
index bdfbea8..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.examples.rcp.sdkui</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/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0168ffa..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Mar 16 11:26:17 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/META-INF/MANIFEST.MF b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/META-INF/MANIFEST.MF
deleted file mode 100644
index 58bab24..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: RCP Mail (SDK UI)
-Bundle-SymbolicName: org.eclipse.equinox.p2.examples.rcp.sdkui; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.equinox.p2.examples.rcp.sdkui.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.equinox.p2.ui;bundle-version="1.0.100",
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="1.0.0",
- org.eclipse.equinox.p2.extensionlocation;bundle-version="1.0.100",
- org.eclipse.equinox.p2.updatesite;bundle-version="1.0.0",
- org.eclipse.equinox.p2.director;bundle-version="1.0.100",
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100",
- org.eclipse.equinox.p2.core;bundle-version="1.0.100",
- org.eclipse.ecf;bundle-version="3.0.0",
- org.eclipse.ecf.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.identity;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="3.0.0",
- org.eclipse.ecf.provider.filetransfer.httpclient;bundle-version="3.0.0",
- org.apache.commons.codec;bundle-version="1.2.0",
- org.apache.commons.httpclient;bundle-version="3.0.1",
- org.eclipse.equinox.p2.ui.sdk;bundle-version="1.0.0",
- org.eclipse.equinox.p2.ui.sdk.scheduler;bundle-version="1.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/build.properties b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/build.properties
deleted file mode 100644
index 4b6aaf2..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               product_lg.gif,\
-               splash.bmp
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/mail.ico b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/mail.ico
deleted file mode 100644
index b000061..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/mail.ico
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.icns b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample2.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample3.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/p2.inf b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/p2.inf
deleted file mode 100644
index 48f31a3..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-instructions.configure=\
-  addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\
-  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/plugin.xml b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/plugin.xml
deleted file mode 100644
index 7dd5511..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/plugin.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.p2.examples.rcp.sdkui.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="RCP Perspective"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkui.Perspective"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkui.View"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.equinox.p2.examples.rcp.sdkui.NavigationView"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdkui.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.equinox.p2.examples.rcp.sdkui.category"
-            id="org.eclipse.equinox.p2.examples.rcp.sdkui.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkui.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.equinox.p2.examples.rcp.sdkui.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.examples.rcp.sdkui.application"
-            name="RCP Product">
-         <property
-               name="aboutText"
-               value="RCP Mail template created by PDE">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/product_lg.gif b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/sdkui.product b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/sdkui.product
deleted file mode 100644
index 4ce26a1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/sdkui.product
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="RCP Mail Example (with p2 SDK UI)" id="org.eclipse.equinox.p2.examples.rcp.sdkui.product" application="org.eclipse.equinox.p2.examples.rcp.sdkui.application" version="1.0.0.qualifier" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Mail Example (with p2 SDK UI)
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-   <splash
-      location="org.eclipse.equinox.p2.examples.rcp.sdkui" />
-   <launcher name="sdkui">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.apache.commons.httpclient"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <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.ecf.provider.filetransfer.httpclient"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
-      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
-      <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.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.examples.rcp.sdkui"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.publisher"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.ui"/>
-      <plugin id="org.eclipse.equinox.p2.ui.sdk"/>
-      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler"/>
-      <plugin id="org.eclipse.equinox.p2.updatechecker"/>
-      <plugin id="org.eclipse.equinox.p2.updatesite"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.security"/>
-      <plugin id="org.eclipse.equinox.security.ui"/>
-      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <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.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-
-</product>
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/splash.bmp b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Activator.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Activator.java
deleted file mode 100644
index be08d5a..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Activator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.examples.rcp.sdkui";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Application.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Application.java
deleted file mode 100644
index 333f4c6..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Application.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationActionBarAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 588f010..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    // XXX we want to show all update preferences
-    private IWorkbenchAction preferencesAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        //XXX preferences action
-        preferencesAction = ActionFactory.PREFERENCES.create(window);
-        register(preferencesAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        // XXX Window menu
-        MenuManager windowMenu = new MenuManager("&Window", IWorkbenchActionConstants.M_WINDOW);
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        // XXX Window menu
-        menuBar.add(windowMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // XXX Window menu
-        windowMenu.add(preferencesAction);
-        
-        // Help
-        // XXX add an additions group because this is what SDK UI expects
-        helpMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        helpMenu.add(new Separator());
-        helpMenu.add(aboutAction);
-
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index effefa1..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return Perspective.ID;
-	} 
-	
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 0391fe0..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        // XXX We set the status line and progress indicator so that update
-        // information can be shown there
-        configurer.setShowStatusLine(true);
-		configurer.setShowProgressIndicator(true);
-    }
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ICommandIds.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ICommandIds.java
deleted file mode 100644
index 1f4928f..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.equinox.p2.examples.rcp.sdkui.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.equinox.p2.examples.rcp.sdkui.openMessage";
-    
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/MessagePopupAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/MessagePopupAction.java
deleted file mode 100644
index 2237493..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdkui.Activator.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/NavigationView.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/NavigationView.java
deleted file mode 100644
index 5afca7c..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkui.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/OpenViewAction.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/OpenViewAction.java
deleted file mode 100644
index ea54ddf..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.equinox.p2.examples.rcp.sdkui.Activator.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Perspective.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Perspective.java
deleted file mode 100644
index d25e023..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/Perspective.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	/**
-	 * The ID of the perspective as specified in the extension.
-	 */
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkui.perspective";
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/View.java b/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/View.java
deleted file mode 100644
index 7a3b021..0000000
--- a/examples/org.eclipse.equinox.p2.examples.rcp.sdkui/src/org/eclipse/equinox/p2/examples/rcp/sdkui/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.equinox.p2.examples.rcp.sdkui;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.equinox.p2.examples.rcp.sdkui.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/org.eclipse.equinox.p2.releng/.project b/org.eclipse.equinox.p2.releng/.project
deleted file mode 100644
index 5383151..0000000
--- a/org.eclipse.equinox.p2.releng/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/HOW TO RUN.txt b/org.eclipse.equinox.p2.releng/HOW TO RUN.txt
deleted file mode 100644
index 4db026a..0000000
--- a/org.eclipse.equinox.p2.releng/HOW TO RUN.txt
+++ /dev/null
@@ -1 +0,0 @@
-See http://wiki.eclipse.org/Equinox_Provisioning_Getting_Started
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/Provisioning base.target b/org.eclipse.equinox.p2.releng/Provisioning base.target
deleted file mode 100644
index a2b01aa..0000000
--- a/org.eclipse.equinox.p2.releng/Provisioning base.target
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.2"?>
-
-<target name="Provisioning base">
-
-   <location path="d:\targets\provisioning-base"/>
-
-   <content>
-      <plugins>
-         <plugin id="org.eclipse.core.jobs"/>
-         <plugin id="org.eclipse.equinox.app"/>
-         <plugin id="org.eclipse.equinox.common"/>
-         <plugin id="org.eclipse.equinox.launcher"/>
-         <plugin id="org.eclipse.equinox.registry"/>
-         <plugin id="org.eclipse.osgi"/>
-         <plugin id="org.eclipse.osgi.services"/>
-         <plugin id="org.junit"/>
-      </plugins>
-      <features>
-      </features>
-      <extraLocations>
-         <location path="D:\targets\equinox\eclipse"/>
-      </extraLocations>
-   </content>
-
-</target>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
index 51517c9..d88e78e 100644
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
+++ b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
+# 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
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.properties
deleted file mode 100644
index 5080f8e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.properties
+++ /dev/null
@@ -1,125 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Equinox p2 Agent feature 
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "description" property - description of the feature
-description=p2 Agent
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2008, 2009 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
index 63ec9a5..9e8571f 100644
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
+++ b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
@@ -1,36 +1,34 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.equinox.p2.agent.feature"
-      label="%featureName"
-      provider-name="%providerName"
+      label="Equinox p2 Agent"
       version="1.0.100.qualifier">
 
-   <description>
-      %description
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
    </description>
 
-   <copyright>
-      %copyright
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
    </copyright>
 
-   <license url="%licenseURL">
-      %license
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
    </license>
 
-
    <requires>
-      <import plugin="org.eclipse.ecf" version="3.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.filetransfer" version="3.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.identity" version="3.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.provider.filetransfer" version="3.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.provider.filetransfer.ssl" version="1.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.ssl" version="1.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.provider.filetransfer.httpclient" version="3.0.0.v20090505-1437" match="compatible"/>
-      <import plugin="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" version="1.0.0.v20090505-1437" match="compatible"/>
+      <import plugin="org.eclipse.ecf" version="3.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.filetransfer" version="3.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.identity" version="3.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.provider.filetransfer" version="3.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.provider.filetransfer.ssl" version="1.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.ssl" version="1.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.provider.filetransfer.httpclient" version="3.0.0" match="compatible"/>
+      <import plugin="org.eclipse.ecf.provider.filetransfer.httpclient.ssl" version="1.0.0" match="compatible"/>
       <import plugin="org.apache.commons.codec" version="1.3.0" match="compatible"/>
       <import plugin="org.apache.commons.httpclient" version="3.1.0" match="compatible"/>
    </requires>
-   
+
    <plugin
          id="org.eclipse.equinox.p2.director"
          download-size="0"
@@ -227,11 +225,4 @@
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
-         id="org.eclipse.equinox.security.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
 </feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
index 51517c9..d88e78e 100644
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
+++ b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
+# 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
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
index c07bba5..32d1ed1 100644
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
+++ b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
+# 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
diff --git a/org.eclipse.equinox.p2.releng/ecf.psf b/org.eclipse.equinox.p2.releng/ecf.psf
deleted file mode 100644
index 15aa7df..0000000
--- a/org.eclipse.equinox.p2.releng/ecf.psf
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/framework/bundles/org.eclipse.ecf,org.eclipse.ecf"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/framework/bundles/org.eclipse.ecf.filetransfer,org.eclipse.ecf.filetransfer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/framework/bundles/org.eclipse.ecf.identity,org.eclipse.ecf.identity"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/providers/bundles/org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient,org.eclipse.ecf.provider.filetransfer.httpclient"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl,org.eclipse.ecf.provider.filetransfer.httpclient.ssl"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.provider.filetransfer.ssl"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/framework/bundles/org.eclipse.ecf.ssl,org.eclipse.ecf.ssl"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/components/bundles/org.eclipse.equinox.concurrent,org.eclipse.equinox.concurrent"/>
-
-<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.commons.codec,org.apache.commons.codec,v1_2_0"/>
-<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.commons.httpclient,org.apache.commons.httpclient,v3_0_1"/>
-<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.commons.logging,org.apache.commons.logging,v1_0_4"/>
-</provider>
-</psf>
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/projectSet-extssh.psf b/org.eclipse.equinox.p2.releng/projectSet-extssh.psf
deleted file mode 100644
index b5c1ff8..0000000
--- a/org.eclipse.equinox.p2.releng/projectSet-extssh.psf
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.jarprocessor"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.director.app"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.directorywatcher"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.eclipse"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.engine"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.installer,org.eclipse.equinox.p2.installer"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.console"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.touchpoint.natives"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.tests"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests.optimizers,org.eclipse.equinox.p2.tests.optimizers"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests.ui,org.eclipse.equinox.p2.tests.ui"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.testserver,org.eclipse.equinox.p2.testserver"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.p2.exemplarysetup"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.garbagecollector"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.reconciler.dropins"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.core"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/org.eclipse.equinox.p2.releng,org.eclipse.equinox.p2.releng"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.metadata.generator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.optimizers"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.processors"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.artifact.repository"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.metadata.repository"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.repository.tools"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.selfhosting"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.admin"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.ui.sdk.scheduler"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.equinox.p2.ui.admin.rcp"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.updatechecker"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.updatesite"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.extensionlocation,org.eclipse.equinox.p2.extensionlocation"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools,org.eclipse.equinox.p2.tools"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.simpleconfigurator.manipulator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin.equinox"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.test,org.eclipse.equinox.frameworkadmin.test"/>
-
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.core.tests.harness,org.eclipse.core.tests.harness"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.test.performance,org.eclipse.test.performance"/>
-
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http,org.eclipse.equinox.http"/>
-
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff,ie.wombat.jbdiff"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff.test,ie.wombat.jbdiff.test"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.sar"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.core,org.sat4j.core_v2.1.0,v2_1_0"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.pb,org.sat4j.pb_v2.1.0,v2_1_0"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.easymock,org.easymock,v2_4"/>
-
-</provider>
-</psf>
diff --git a/org.eclipse.equinox.p2.releng/projectSet.psf b/org.eclipse.equinox.p2.releng/projectSet.psf
deleted file mode 100644
index f7229ba..0000000
--- a/org.eclipse.equinox.p2.releng/projectSet.psf
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.jarprocessor"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.director.app"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.directorywatcher"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.eclipse"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.engine"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.installer,org.eclipse.equinox.p2.installer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.console"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.touchpoint.natives"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.tests"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests.ui,org.eclipse.equinox.p2.tests.ui"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests.optimizers,org.eclipse.equinox.p2.tests.optimizers"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.testserver,org.eclipse.equinox.p2.testserver"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.p2.exemplarysetup"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.garbagecollector"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.reconciler.dropins"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.core"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/org.eclipse.equinox.p2.releng,org.eclipse.equinox.p2.releng"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.metadata.generator"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.optimizers"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.processors"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.artifact.repository"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.metadata.repository"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.repository.tools"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.selfhosting"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.admin"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.ui.sdk.scheduler"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.equinox.p2.ui.admin.rcp"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.updatechecker"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.updatesite"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.extensionlocation,org.eclipse.equinox.p2.extensionlocation"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools,org.eclipse.equinox.p2.tools"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin.equinox"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.test,org.eclipse.equinox.frameworkadmin.test"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.simpleconfigurator.manipulator"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator"/>
-
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.core.tests.harness,org.eclipse.core.tests.harness"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.test.performance,org.eclipse.test.performance"/>
-
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http,org.eclipse.equinox.http"/>
-
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff,ie.wombat.jbdiff"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff.test,ie.wombat.jbdiff.test"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.sar"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.core,org.sat4j.core_v2.1.0,v2_1_0"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.pb,org.sat4j.pb_v2.1.0,v2_1_0"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.easymock,org.easymock,v2_4"/>
-
-</provider>
-</psf>