Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov2018-06-01 08:21:21 +0000
committerAlexander Kurtakov2018-06-01 12:22:18 +0000
commitc98a1d4f43b728e0864fe0c166bc6aae9e420b46 (patch)
tree0de0d6c2caa82c6367842b8b6980cfe05e326a44
parentbe993aad6aacf83e22132e03eb9ca41a577d240e (diff)
downloadrt.equinox.p2-c98a1d4f43b728e0864fe0c166bc6aae9e420b46.tar.gz
rt.equinox.p2-c98a1d4f43b728e0864fe0c166bc6aae9e420b46.tar.xz
rt.equinox.p2-c98a1d4f43b728e0864fe0c166bc6aae9e420b46.zip
Bug 512407 - Let's dump 'ie.wombat.jbdiff' and related from GitI20180601-0915I20180601-0900
repository Never have been published in our repo so safe to remove. Removed parts that used it but these bundles are not in the repo also so safe again. It is sure that if/when jbdiff is really used it should be added to Orbit and used proper instead of keeping it's source in our repo. Change-Id: Iac3cccd08d3019d70d1d18632a761d20bad444b8 Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
-rw-r--r--bundles/ie.wombat.jbdiff.test/.classpath7
-rw-r--r--bundles/ie.wombat.jbdiff.test/.project28
-rw-r--r--bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs4
-rw-r--r--bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF13
-rw-r--r--bundles/ie.wombat.jbdiff.test/build.properties4
-rw-r--r--bundles/ie.wombat.jbdiff.test/forceQualifierUpdate.txt2
-rw-r--r--bundles/ie.wombat.jbdiff.test/pom.xml14
-rw-r--r--bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java45
-rw-r--r--bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java112
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exebin180224 -> 0 bytes
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exebin53248 -> 0 bytes
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/null.data0
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/one.data1
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data1
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/onehundred.data1
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/onehundredX.data1
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jarbin772717 -> 0 bytes
-rw-r--r--bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jarbin996050 -> 0 bytes
-rw-r--r--bundles/ie.wombat.jbdiff/.classpath7
-rw-r--r--bundles/ie.wombat.jbdiff/.project28
-rw-r--r--bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs4
-rw-r--r--bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF11
-rw-r--r--bundles/ie.wombat.jbdiff/about.html50
-rw-r--r--bundles/ie.wombat.jbdiff/build.properties4
-rw-r--r--bundles/ie.wombat.jbdiff/forceQualifierUpdate.txt2
-rw-r--r--bundles/ie.wombat.jbdiff/pom.xml14
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java612
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java241
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt29
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt51
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java132
-rw-r--r--bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt7
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF4
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml14
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java75
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java61
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java62
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java280
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF6
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml10
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java54
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java54
-rw-r--r--bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product1
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/pom.xml2
-rw-r--r--pom.xml2
49 files changed, 5 insertions, 2074 deletions
diff --git a/bundles/ie.wombat.jbdiff.test/.classpath b/bundles/ie.wombat.jbdiff.test/.classpath
deleted file mode 100644
index 751c8f2e5..000000000
--- 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 ac8a8a03f..000000000
--- 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 dc78f95cd..000000000
--- 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 0c5082bd7..000000000
--- 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 adc5f2301..000000000
--- a/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +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.qualifier
-Bundle-Activator: ie.wombat.jbdiff.test.Activator
-Import-Package: org.osgi.framework;version="1.3.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.junit,
- ie.wombat.jbdiff
-Automatic-Module-Name: ie.wombat.jbdiff.test
diff --git a/bundles/ie.wombat.jbdiff.test/build.properties b/bundles/ie.wombat.jbdiff.test/build.properties
deleted file mode 100644
index 34d2e4d2d..000000000
--- 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/forceQualifierUpdate.txt b/bundles/ie.wombat.jbdiff.test/forceQualifierUpdate.txt
deleted file mode 100644
index 56f1032a8..000000000
--- a/bundles/ie.wombat.jbdiff.test/forceQualifierUpdate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# To force a version qualifier update add the bug here
-Bug 403352 - Update all parent versions to match our build stream
diff --git a/bundles/ie.wombat.jbdiff.test/pom.xml b/bundles/ie.wombat.jbdiff.test/pom.xml
deleted file mode 100644
index efee50058..000000000
--- a/bundles/ie.wombat.jbdiff.test/pom.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.eclipse.equinox.p2</groupId>
- <artifactId>rt.equinox.p2</artifactId>
- <version>4.9.0-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <groupId>ie.wombat.jbdiff</groupId>
- <artifactId>ie.wombat.jbdiff.test</artifactId>
- <version>0.1.0-SNAPSHOT</version>
- <packaging>eclipse-test-plugin</packaging>
-</project>
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 0d0bb3f2a..000000000
--- 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 5f5e7d8f7..000000000
--- 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 7826d1ed8..000000000
--- 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 c5cd8f038..000000000
--- 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 e69de29bb..000000000
--- 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 56a6051ca..000000000
--- 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 bb1077fd5..000000000
--- 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 edd4e96b7..000000000
--- 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 cb96be8dd..000000000
--- 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 f772f865e..000000000
--- 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 a78ea76fa..000000000
--- 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 751c8f2e5..000000000
--- 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 76d444192..000000000
--- 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 d46233b2e..000000000
--- 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 f99d27198..000000000
--- 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 950e19447..000000000
--- 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 7faa6485f..000000000
--- a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Jbdiff Plug-in
-Bundle-SymbolicName: ie.wombat.jbdiff
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.osgi.framework;version="1.3.0"
-Bundle-ActivationPolicy: lazy
-Export-Package: ie.wombat.jbdiff
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Automatic-Module-Name: ie.wombat.jbdiff
diff --git a/bundles/ie.wombat.jbdiff/about.html b/bundles/ie.wombat.jbdiff/about.html
deleted file mode 100644
index bf09c26d6..000000000
--- 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 34d2e4d2d..000000000
--- 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/forceQualifierUpdate.txt b/bundles/ie.wombat.jbdiff/forceQualifierUpdate.txt
deleted file mode 100644
index 56f1032a8..000000000
--- a/bundles/ie.wombat.jbdiff/forceQualifierUpdate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# To force a version qualifier update add the bug here
-Bug 403352 - Update all parent versions to match our build stream
diff --git a/bundles/ie.wombat.jbdiff/pom.xml b/bundles/ie.wombat.jbdiff/pom.xml
deleted file mode 100644
index 8491dd628..000000000
--- a/bundles/ie.wombat.jbdiff/pom.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.eclipse.equinox.p2</groupId>
- <artifactId>rt.equinox.p2</artifactId>
- <version>4.9.0-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <groupId>ie.wombat.jbdiff</groupId>
- <artifactId>ie.wombat.jbdiff</artifactId>
- <version>0.1.0-SNAPSHOT</version>
- <packaging>eclipse-plugin</packaging>
-</project>
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 711fbd425..000000000
--- 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 7f91ecf1b..000000000
--- 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 8b8b4d503..000000000
--- 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 82356621e..000000000
--- 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 54d5eaf8d..000000000
--- 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 dd65be179..000000000
--- 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/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
index 0bf5d65c0..aa3c74647 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
@@ -8,14 +8,12 @@ Bundle-Vendor: %providerName
Bundle-Localization: plugin
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
Require-Bundle: org.eclipse.equinox.common,
org.eclipse.equinox.p2.artifact.repository
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.app;version="1.0.0",
+Import-Package: 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.sar,
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
index fb0e4f618..19b064544 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
+++ b/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
@@ -13,12 +13,6 @@
</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>
@@ -27,12 +21,4 @@
<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/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 5ccc054b2..000000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, 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.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.OptimizerApplication;
-import org.eclipse.equinox.p2.core.ProvisionException;
-import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository;
-import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
-
-/**
- * The optimizer <code>Application</code> for JBDiff based optimizations.
- */
-public class Application extends OptimizerApplication {
-
- 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 = getArtifactRepositoryManager();
- if (manager == null)
- // TODO log here
- return null;
- return manager.loadRepository(location, null);
- }
-
- 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 1a18338b6..000000000
--- 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, 2010 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.p2.repository.artifact.IArtifactRepository;
-import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
-
-/**
- *
- */
-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 98919ba51..000000000
--- 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, 2010 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.p2.repository.artifact.IArtifactRepository;
-import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
-
-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 994e0f7cf..000000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 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.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler;
-import org.eclipse.equinox.p2.core.ProvisionException;
-import org.eclipse.equinox.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.query.IQueryResult;
-import org.eclipse.equinox.p2.repository.artifact.*;
-import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
-import org.eclipse.equinox.p2.repository.artifact.spi.ProcessingStepDescriptor;
-
-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<IArtifactDescriptor> ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR = new ArtifactDescriptorVersionComparator();
- private static final Comparator<IArtifactKey> 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 + ")");
- IQueryResult<IArtifactKey> queryResult = repository.query(ArtifactKeyQuery.ALL_KEYS, null);
- IArtifactKey[][] keys = getSortedRelatedArtifactKeys(queryResult);
- 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(IQueryResult<IArtifactKey> artifactKeys) {
- Map<IArtifactKey, List<IArtifactKey>> map = new HashMap<IArtifactKey, List<IArtifactKey>>();
- for (Iterator<IArtifactKey> iter = artifactKeys.iterator(); iter.hasNext();) {
- IArtifactKey nxt = iter.next();
- IArtifactKey freeKey = new VersionlessArtifactKey(nxt);
- List<IArtifactKey> values = map.get(freeKey);
- if (values == null) {
- values = new ArrayList<IArtifactKey>();
- map.put(freeKey, values);
- }
- values.add(nxt);
- }
- IArtifactKey[][] lists = new IArtifactKey[map.size()][];
- int i = 0;
- for (List<IArtifactKey> artifactKeyList : map.values()) {
- IArtifactKey[] relatedArtifactKeys = 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);
- IProcessingStepDescriptor patchStep = new ProcessingStepDescriptor(strategy, predecessorData, true);
- IProcessingStepDescriptor[] steps = new IProcessingStepDescriptor[] {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(repository.getProvisioningAgent(), 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<IArtifactDescriptor> completeDescriptors = new ArrayList<IArtifactDescriptor>(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 = 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<IArtifactDescriptor> {
- public int compare(IArtifactDescriptor artifactDescriptor0, IArtifactDescriptor artifactDescriptor1) {
- return -1 * artifactDescriptor0.getArtifactKey().getVersion().compareTo(artifactDescriptor1.getArtifactKey().getVersion());
- }
- }
-
- static final class ArtifactKeyVersionComparator implements Comparator<IArtifactKey> {
- public int compare(IArtifactKey artifactKey0, IArtifactKey artifactKey1) {
- return -1 * artifactKey0.getVersion().compareTo(artifactKey1.getVersion());
- }
- }
-}
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
index 30c284123..aa28a13ec 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
@@ -7,14 +7,12 @@ Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.processors.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package: org.eclipse.equinox.internal.p2.artifact.processors;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jardelta;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;x-internal:=true
+ org.eclipse.equinox.internal.p2.artifact.processors.jardelta;x-internal:=true
Require-Bundle: org.eclipse.equinox.common,
org.eclipse.equinox.p2.artifact.repository
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.internal.p2.artifact.optimizers,
+Import-Package: org.eclipse.equinox.internal.p2.artifact.optimizers,
org.eclipse.equinox.internal.p2.core.helpers,
org.eclipse.equinox.internal.p2.sar,
org.eclipse.equinox.p2.core;version="[2.0.0,3.0.0)",
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
index 2b083618c..cf1ebf12f 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
+++ b/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
@@ -6,14 +6,4 @@
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/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 5a4a4ea17..000000000
--- 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, 2010 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.p2.repository.artifact.spi.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 f65358ca2..000000000
--- 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, 2010 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.p2.repository.artifact.spi.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.tests.reconciler.product/reconciler.product b/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product
index 42bc85c1e..9a98304d8 100644
--- a/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product
+++ b/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product
@@ -24,7 +24,6 @@
<plugins>
<plugin id="com.ibm.icu"/>
- <plugin id="ie.wombat.jbdiff"/>
<plugin id="javax.annotation"/>
<plugin id="javax.inject"/>
<plugin id="javax.xml"/>
diff --git a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
index 52d576d36..70231344b 100644
--- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.tests;singleton:=true
-Bundle-Version: 1.7.100.qualifier
+Bundle-Version: 1.7.200.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.equinox.p2.tests.TestActivator
Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.equinox.p2.tests/pom.xml b/bundles/org.eclipse.equinox.p2.tests/pom.xml
index 7698f8876..c62828f44 100644
--- a/bundles/org.eclipse.equinox.p2.tests/pom.xml
+++ b/bundles/org.eclipse.equinox.p2.tests/pom.xml
@@ -16,7 +16,7 @@
<groupId>org.eclipse.equinox</groupId>
<artifactId>org.eclipse.equinox.p2.tests</artifactId>
- <version>1.7.100-SNAPSHOT</version>
+ <version>1.7.200-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<properties>
diff --git a/pom.xml b/pom.xml
index ea7a543c6..e52d8aaf6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,8 +111,6 @@
</build>
<modules>
- <module>bundles/ie.wombat.jbdiff</module>
- <module>bundles/ie.wombat.jbdiff.test</module>
<module>bundles/org.eclipse.equinox.frameworkadmin</module>
<module>bundles/org.eclipse.equinox.frameworkadmin.equinox</module>
<module>bundles/org.eclipse.equinox.frameworkadmin.test</module>

Back to the top