This commit was manufactured by cvs2svn to create tag 'GANYMEDE_SR1_RC2'.
diff --git a/features/org.eclipse.epp.installer-feature/.project b/features/org.eclipse.epp.installer-feature/.project
deleted file mode 100644
index 7afe00b..0000000
--- a/features/org.eclipse.epp.installer-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.epp.installer-feature/build.properties b/features/org.eclipse.epp.installer-feature/build.properties
deleted file mode 100644
index b3a611b..0000000
--- a/features/org.eclipse.epp.installer-feature/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/features/org.eclipse.epp.installer-feature/feature.properties b/features/org.eclipse.epp.installer-feature/feature.properties
deleted file mode 100644
index 6a7d4ea..0000000
--- a/features/org.eclipse.epp.installer-feature/feature.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-featureName = Eclipse Installer (EPP)
-featureProvider = Eclipse.org
diff --git a/features/org.eclipse.epp.installer-feature/feature.xml b/features/org.eclipse.epp.installer-feature/feature.xml
deleted file mode 100644
index 5425a4c..0000000
--- a/features/org.eclipse.epp.installer-feature/feature.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.epp.installer"
-      label="%featureName"
-      version="0.5.0"
-      provider-name="%featureProvider">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.epp.installer.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.epp.installer.core.linux"
-         os="linux"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.epp.installer.core.win32"
-         os="win32"
-         ws="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.epp.installer.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.epp.installer.archive"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.epp.sfx.archive"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.epp.installer.tools-feature/.project b/features/org.eclipse.epp.installer.tools-feature/.project
deleted file mode 100644
index 88af52a..0000000
--- a/features/org.eclipse.epp.installer.tools-feature/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.tools-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.epp.installer.tools-feature/build.properties b/features/org.eclipse.epp.installer.tools-feature/build.properties
deleted file mode 100644
index b3a611b..0000000
--- a/features/org.eclipse.epp.installer.tools-feature/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/features/org.eclipse.epp.installer.tools-feature/feature.properties b/features/org.eclipse.epp.installer.tools-feature/feature.properties
deleted file mode 100644
index 6a7d4ea..0000000
--- a/features/org.eclipse.epp.installer.tools-feature/feature.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-featureName = Eclipse Installer (EPP)
-featureProvider = Eclipse.org
diff --git a/features/org.eclipse.epp.installer.tools-feature/feature.xml b/features/org.eclipse.epp.installer.tools-feature/feature.xml
deleted file mode 100644
index e3d789e..0000000
--- a/features/org.eclipse.epp.installer.tools-feature/feature.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.epp.installer.tools"
-      label="%featureName"
-      version="0.5.0"
-      provider-name="%featureProvider">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.epp.sfx.archive.ant"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.epp.sfx.tools"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/plugins/org.eclipse.epp.installer.archive/.classpath b/plugins/org.eclipse.epp.installer.archive/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.archive/.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/plugins/org.eclipse.epp.installer.archive/.project b/plugins/org.eclipse.epp.installer.archive/.project
deleted file mode 100644
index 9e689f0..0000000
--- a/plugins/org.eclipse.epp.installer.archive/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.archive</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/plugins/org.eclipse.epp.installer.archive/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.archive/META-INF/MANIFEST.MF
deleted file mode 100644
index d34063c..0000000
--- a/plugins/org.eclipse.epp.installer.archive/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EPP Archives Supporting Plug-in
-Bundle-SymbolicName: org.eclipse.epp.installer.archive;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-ClassPath: archiveAntSFXSupport.jar
-Export-Package: org.eclipse.epp.installer.archive
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ant.core
diff --git a/plugins/org.eclipse.epp.installer.archive/build.properties b/plugins/org.eclipse.epp.installer.archive/build.properties
deleted file mode 100644
index 8a79670..0000000
--- a/plugins/org.eclipse.epp.installer.archive/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               schema/,\
-               archiveAntSFXSupport.jar
-source.archiveAntSFXSupport.jar = src/
diff --git a/plugins/org.eclipse.epp.installer.archive/plugin.xml b/plugins/org.eclipse.epp.installer.archive/plugin.xml
deleted file mode 100644
index 4e405fb..0000000
--- a/plugins/org.eclipse.epp.installer.archive/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="archive" name="%archiveName" schema="schema/archive.exsd"/>
-   <extension
-         point="org.eclipse.ant.core.extraClasspathEntries">
-      <extraClasspathEntry
-            library="archiveAntSFXSupport.jar">
-      </extraClasspathEntry>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.installer.archive/schema/archive.exsd b/plugins/org.eclipse.epp.installer.archive/schema/archive.exsd
deleted file mode 100644
index 266555d..0000000
--- a/plugins/org.eclipse.epp.installer.archive/schema/archive.exsd
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.archive">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.archive" id="archive" name="%archiveName"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="archive" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="archive">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/ArchiveException.java b/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/ArchiveException.java
deleted file mode 100644
index 8d75a8e..0000000
--- a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/ArchiveException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.epp.installer.archive;
-
-import java.io.IOException;
-
-public class ArchiveException extends IOException {
-
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 4453776154285994150L;
-
-	/**
-	 * Constructs an <code>ZipException</code> with <code>null</code> as its
-	 * error detail message.
-	 */
-	public ArchiveException() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>ArchiveException</code> with the specified detail
-	 * message.
-	 * 
-	 * @param s
-	 *            the detail message.
-	 */
-
-	public ArchiveException(String s) {
-		super(s);
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/Archives.java b/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/Archives.java
deleted file mode 100644
index a901fbf..0000000
--- a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/Archives.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.eclipse.epp.installer.archive;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-
-public class Archives {
-
-	private final static String ARCHIVE_EXTENSION = "org.eclipse.epp.installer.archive.archive";
-
-	private static IArchiveFactory[] archiveFactories;
-
-	private static void loadFactories() {
-		IConfigurationElement[] cfg = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(ARCHIVE_EXTENSION);
-
-		List factories = new ArrayList();
-		for (int i = 0; i < cfg.length; i++) {
-			try {
-				IArchiveFactory factory = (IArchiveFactory) cfg[i]
-						.createExecutableExtension("class");
-				factories.add(factory);
-			} catch (CoreException ce) {
-				ce.printStackTrace();
-			}
-		}
-		factories.toArray(archiveFactories = new IArchiveFactory[factories
-				.size()]);
-	}
-
-	public synchronized static IArchive createArchive(File file) throws IOException {
-		if (archiveFactories == null)
-			loadFactories();
-
-		for (int i = 0; i < archiveFactories.length; i++) {
-			if (archiveFactories[i].isArchive(file))
-				return archiveFactories[i].createArchive(file);
-		}
-		return null;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchive.java b/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchive.java
deleted file mode 100644
index ff960e6..0000000
--- a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchive.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/ 
-
-package org.eclipse.epp.installer.archive;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Iterator;
-
-public interface IArchive {
-
-	String getName();
-	
-	Iterator entries(); 
-	
-    /**
-     * Returns the archive file entry for the specified name, or null
-     * if not found.
-     *
-     * @param name the name of the entry
-     * @return the archive file entry, or null if not found
-     * @throws IllegalStateException if the archive file has been closed
-     */
-    public IArchiveEntry getEntry(String name);
-	
-    /**
-     * Returns an input stream for reading the contents of the specified
-     * archive file entry.
-     *
-     * <p> Closing this archive file will, in turn, close all input
-     * streams that have been returned by invocations of this method.
-     *
-     * @param entry the archive file entry
-     * @return the input stream for reading the contents of the specified
-     * archive file entry.
-     * @throws ArchiveException if an archive format error has occurred
-     * @throws IOException if an I/O error has occurred
-     * @throws IllegalStateException if the archive file has been closed
-     */
-    public InputStream getInputStream(IArchiveEntry entry) throws IOException;
-	
-	
-	void close() throws IOException;
-}
diff --git a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveEntry.java b/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveEntry.java
deleted file mode 100644
index ebb77fb..0000000
--- a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveEntry.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/ 
-
-package org.eclipse.epp.installer.archive;
-
-/**
- * Interface representing an archive entry.
- * 
- * @author Andrey Platov
- */
-public interface IArchiveEntry {
-
-    /**
-     * Returns the name of the entry.
-     * @return the name of the entry
-     */
-	String getName();
-	
-    /**
-     * Returns true if this is a directory entry. 
-     * @return true if this is a directory entry
-     */
-	boolean isDirectory();
-
-
-    /**
-     * Returns original size of the entry data.
-     * @return original size of the entry data
-     */
-	long getSize();
-	
-    /**
-     * Returns modification time of the entry
-     * @return modification time of the entry
-     */
-    long getTime();	
-}
diff --git a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveFactory.java b/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveFactory.java
deleted file mode 100644
index 6f230e9..0000000
--- a/plugins/org.eclipse.epp.installer.archive/src/org/eclipse/epp/installer/archive/IArchiveFactory.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.epp.installer.archive;
-
-import java.io.File;
-import java.io.IOException;
-
-public interface IArchiveFactory {
-
-	boolean isArchive(File file);
-	
-	IArchive createArchive(File file) throws IOException;
-}
diff --git a/plugins/org.eclipse.epp.installer.console/.classpath b/plugins/org.eclipse.epp.installer.console/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.console/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.console/.cvsignore b/plugins/org.eclipse.epp.installer.console/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.console/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.console/.project b/plugins/org.eclipse.epp.installer.console/.project
deleted file mode 100644
index ab11e38..0000000
--- a/plugins/org.eclipse.epp.installer.console/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.console</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.installer.console/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.console/META-INF/MANIFEST.MF
deleted file mode 100644
index 653e5c6..0000000
--- a/plugins/org.eclipse.epp.installer.console/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Console
-Bundle-SymbolicName: org.eclipse.epp.installer.console;singleton:=true
-Bundle-Version: 1.0.0
-Export-Package: org.eclipse.epp.installer.internal.console,
- org.eclipse.epp.installer.internal.console.steps
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.epp.installer.core
diff --git a/plugins/org.eclipse.epp.installer.console/build-project.xml b/plugins/org.eclipse.epp.installer.console/build-project.xml
deleted file mode 100644
index 52a6e01..0000000
--- a/plugins/org.eclipse.epp.installer.console/build-project.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project default="build_all" basedir=".">
-	<import file="../com.instantiations.eclipse.shared_build/build-macros.xml" />
-
-	<!-- ================================================= 
-		Build this project as part of a bundle
-	-->
-	<target name="build_all">
-		<basename file="." property="Local-Name" />
-		<property name="Local-Temp"
-		          location="${Project-Out}/../../${Local-Name}" />
-
-		<compile_lib eclipsetarget="3.1"
-		             oldconfig="eclipse_3.1"
-		             source="src"
-		             tempSrcDir="${Local-Temp}/src"
-		             destDir="${Local-Temp}/bin" />
-
-		<!-- Installer Classes... others projects add to the *.jar, so set update=true. -->
-		<mkdir dir="${Project-Out}/lib/swt-installer/" />
-		<zip destfile="${Project-Out}/lib/swt-installer/swt-installer.jar"
-		     update="true">
-			<fileset dir="${Local-Temp}/bin" />
-		</zip>
-
-		<!-- Installer Source ... Others projects add to the *.jar, so set update=true. -->
-		<mkdir dir="${Project-Out}/lib/swt-installer/src/swt-installer" />
-		<zip destfile="${Project-Out}/lib/swt-installer/src/swt-installer/src.zip"
-		     update="true">
-			<fileset dir="src" />			
-		</zip>
-
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.console/build.properties b/plugins/org.eclipse.epp.installer.console/build.properties
deleted file mode 100644
index b107977..0000000
--- a/plugins/org.eclipse.epp.installer.console/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.. = src/
-bin.includes = META-INF/,\
-               .
diff --git a/plugins/org.eclipse.epp.installer.console/plugin.xml b/plugins/org.eclipse.epp.installer.console/plugin.xml
deleted file mode 100644
index ed43b1d..0000000
--- a/plugins/org.eclipse.epp.installer.console/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.epp.installer.core.installer">
-      <installer
-            class="org.eclipse.epp.installer.internal.console.ConsoleInstaller"
-            environmentId="console"> 
-      </installer>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/Console.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/Console.java
deleted file mode 100644
index 444d5ad..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/Console.java
+++ /dev/null
@@ -1,232 +0,0 @@
-package org.eclipse.epp.installer.internal.console;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * A wrapper around {@link java.lang.System#in} and {@link java.lang.System#out} providing
- * additional functionality related to displaying information and prompting the user.
- */
-public class Console
-{
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Input methods
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Display the specified message and wait for the user's input. The line of text
-	 * entered by the user (@see #readLine()) is compared against the acceptable
-	 * responses. If the text entered either equals an acceptable responce or is a single
-	 * character and matches the first upper case character in an acceptable response,
-	 * then that response is returned otherwise the message is redisplayed and user
-	 * prompted again.
-	 * 
-	 * @param message the message to be displayed
-	 * @return <code>OK_STATUS</code> if "Yes" else <code>CANCEL_STATUS</code>
-	 */
-	public IStatus promptYesNo(String message) throws IOException {
-		String yes = "Yes";
-		String no = "No";
-		return prompt(message, new String[] { yes, no }).equals(yes) ? Status.OK_STATUS
-				: Status.CANCEL_STATUS;
-	}
-
-	/**
-	 * Display the specified message and wait for the user's input. The line of text
-	 * entered by the user (@see #readLine()) is compared against the acceptable
-	 * responses. If the text entered either equals an acceptable responce or is a single
-	 * character and matches the first upper case character in an acceptable response,
-	 * then that response is returned otherwise the message is redisplayed and user
-	 * prompted again.
-	 * 
-	 * @param message the message to be displayed
-	 * @param responses an array of acceptable responses (not <code>null</code>, not
-	 *            empty, contains no <code>null</code>s)
-	 * @return one of the acceptable responses
-	 */
-	public String prompt(String message, String[] responces) throws IOException {
-		String answer;
-		do {
-			answer = promptOnce(message, responces);
-		}
-		while (answer == null);
-		return answer;
-	}
-
-	/**
-	 * Display the specified message and wait for the user's input. The line of text
-	 * entered by the user (@see #readLine()) is compared against the acceptable
-	 * responses. If the text entered either equals an acceptable responce or is a single
-	 * character and matches the first upper case character in an acceptable response,
-	 * then that response is returned otherwise <code>null</code> is returned.
-	 * 
-	 * @param message the message to be displayed
-	 * @param responses an array of acceptable responses (not <code>null</code>, not
-	 *            empty, contains no <code>null</code>s)
-	 * @return one of the acceptable responses or <code>null</code> in any other case
-	 */
-	public String promptOnce(String message, String[] responses) throws IOException {
-
-		// Show the user the message plus a list of possible responses
-
-		write(message);
-		write(" ( ");
-		for (int i = 0; i < responses.length; i++) {
-			if (i != 0)
-				write(", ");
-			write(responses[i]);
-		}
-		write(" ): ");
-
-		// Check to see if the user's response matches an acceptable response
-		// or the first uppercase character of an acceptable response
-
-		String line = readLine();
-		if (line == null)
-			return null;
-		for (int i = 0; i < responses.length; i++) {
-			if (line.equalsIgnoreCase(responses[i]))
-				return responses[i];
-			if (line.length() == 1) {
-				char firstInputChar = Character.toUpperCase(line.charAt(0));
-				if (firstInputChar == firstUpper(responses[i]))
-					return responses[i];
-			}
-		}
-
-		return null;
-	}
-	
-	public String[] prompt(String message, String[] responces,boolean printResponses,String delimetr) throws IOException {
-		String answer[];
-		do {
-			answer = promptOnce(message, responces,printResponses,delimetr);
-		}
-		while (answer == null);
-		return answer;
-	}
-	
-	public String[] promptOnce(String message, String[] responses,boolean printResponses,String delimetr) throws IOException {
-
-		// Show the user the message plus a list of possible responses
-		String[] ret;
-	
-		write(message);
-		if(printResponses){
-		write(" ( ");
-		for (int i = 0; i < responses.length; i++) {
-			if (i != 0)
-				write(", ");
-			write(responses[i]);
-		}
-		write(" ): ");
-		}
-		// Check to see if the user's response matches an acceptable response
-		// or the first uppercase character of an acceptable response
-
-		String line = readLine();
-		if (line == null)
-			return null;
-		StringTokenizer strTokenizer = new StringTokenizer(line,delimetr);
-		ret = new String[strTokenizer.countTokens()];
-		int counter=0;
-		while(strTokenizer.hasMoreElements())
-		{
-			String token=strTokenizer.nextToken();
-				
-		for (int i = 0; i < responses.length; i++) {
-			if (token.equalsIgnoreCase(responses[i]))
-				 ret[counter++]  = responses[i];
-			else{
-			if (token.length() == 1) {
-				char firstInputChar = Character.toUpperCase(token.charAt(0));
-				if (firstInputChar == firstUpper(responses[i]))
-					ret[counter++]  = responses[i];
-				else{ /*this.writeln("null 1");return null*/;}
-			}else { /*this.writeln("null 2");return null*/;}//ret[counter++]=null;
-			}
-		}
-		}
-		if(counter==0) return null;
-		return ret;
-	}
-
-	
-	
-	
-	
-
-	/**
-	 * Read a line from the console
-	 * 
-	 * @return <code>null</code> or non-empty line
-	 */
-	public String readLine() throws IOException {
-		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
-		String line = br.readLine();
-		if (line.equals(""))
-			return null;
-		return line;
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Output methods
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Append the specified text to the console
-	 * 
-	 * @param text the text to be appended
-	 */
-	public void more(String text) throws IOException {
-		if (text == null)
-			return;
-		String[] lines = text.split("\n");
-		for (int i = 0; i < lines.length; i++) {
-			if (i != 0 && i % 24 == 0) {
-				System.out.println("-- more --");
-				readLine();
-			}			
-			System.out.println(lines[i]);
-		}
-	}
-	
-	public void write(String text) throws IOException {
-		System.out.print(text);
-	}
-
-	public void writeln(String text) throws IOException {
-		System.out.println(text);
-	}
-	
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Utility methods
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Answer the first upper case character in the specified string
-	 * 
-	 * @return first uppercase character or zero if none found
-	 */
-	public static char firstUpper(String str) {
-		char firstUpperChar = 0;
-		char[] codechars = str.toCharArray();
-		for (int i = 0; i < codechars.length; i++) {
-			if (Character.isUpperCase(codechars[i])) {
-				return codechars[i];
-			}
-		}
-		return firstUpperChar;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleInstaller.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleInstaller.java
deleted file mode 100644
index c845bbf..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleInstaller.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.eclipse.epp.installer.internal.console;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.steps.ChoiceStep;
-import org.eclipse.epp.installer.core.steps.ChooseLocationStep;
-import org.eclipse.epp.installer.core.steps.ChooseProductStep;
-import org.eclipse.epp.installer.core.steps.CustomizeStep;
-import org.eclipse.epp.installer.core.steps.PromptUserStep;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-import org.eclipse.epp.installer.core.steps.SelectInstallTypeStep;
-import org.eclipse.epp.installer.core.steps.ShowWarningsStep;
-import org.eclipse.epp.installer.internal.console.steps.ChoiceConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.ChooseLocationConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.ChooseProductConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.CustomizeConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.PromptUserConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.RunOperationsConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.ScrollablePromptUserConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.SelectInstallTypeConsoleStep;
-import org.eclipse.epp.installer.internal.console.steps.ShowWarningConsoleStep;
-
-
-/**
- * Copyied and refactored <code>ConsoleInstaller</code>
- */
-public class ConsoleInstaller extends Installer
-{
-	private Console console;
-	
-	public static final String PLUGIN_ID = "com.instantiations.installer.console";
-	
-	public ConsoleInstaller() {
-		console = new Console();
-		addAdapter(ChooseLocationStep.class, ChooseLocationConsoleStep.class);
-		addAdapter(PromptUserStep.class, PromptUserConsoleStep.class);
-		addAdapter(ScrollablePromptUserStep.class, ScrollablePromptUserConsoleStep.class);
-		addAdapter(ChoiceStep.class, ChoiceConsoleStep.class);
-		
-		
-		addAdapter(ChooseProductStep.class, ChooseProductConsoleStep.class);
-		addAdapter(CustomizeStep.class, CustomizeConsoleStep.class);
-		addAdapter(SelectInstallTypeStep.class, SelectInstallTypeConsoleStep.class);
-		addAdapter(ShowWarningsStep.class, ShowWarningConsoleStep.class);
-		addAdapter(RunOperationsStep.class, RunOperationsConsoleStep.class);
-		
-		// TODO: add left steps and adapters
-	}
-	
-	protected Class getRequiredAdapterType() {
-		return IConsoleStep.class;
-	}
-	
-	/**
-	 * Perform a step of installation process.
-	 * 
-	 * @param step
-	 *            the step to perform.
-	 * @return <code>OK_STATUS</code> if the installation should continue,
-	 *         <code>CANCEL_STATUS</code> if the user canceled the installation,
-	 *         <code>STEP_NOT_SUPPORTED</code> if the step is of unsupported type, or
-	 *         <code>ERROR</code> if other problem has occurred.
-	 */
-	protected IStatus performStep(IInstallStep step) {
-		IConsoleStep consoleStep = (IConsoleStep)step.getAdapter(IConsoleStep.class);
-		if (consoleStep == null) return STEP_NOT_SUPPORTED;
-		try {
-			return consoleStep.prompt(console);
-		} catch (Exception e) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0, e.getMessage(), e);
-		}
-	}
-
-	public String getEnvironmentId() {
-		return "console";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleStep.java
deleted file mode 100644
index 4879053..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/ConsoleStep.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.epp.installer.internal.console;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-
-/**
- * Adapter used to return install step.
- */
-public abstract class ConsoleStep implements IConsoleStep {
-
-	private IInstallStep step;
-
-	/**
-	 * Construct new instance of  ConsoleStep.
-	 * @param step IInstallStep
-	 */
-	public ConsoleStep(IInstallStep step) {
-		this.step = step;
-	}
-	
-	/**
-	 * Return associated instal lstep. 
-	 * @return IInstallStep associated install step.
-	 */
-	public IInstallStep getInstallStep() {
-		return step;
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/IConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/IConsoleStep.java
deleted file mode 100644
index f638c4f..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/IConsoleStep.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.eclipse.epp.installer.internal.console;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-
-
-/**
- * A console based installer will first check that the install step has an
- * adapter implementing this interface interface and then call
- * {@link #prompt(Console)} once for the receiver to display information to the
- * user, prompt the user for input and cache that input into the install options
- * object.
- */
-public interface IConsoleStep {
-
-	/**
-	 * Return associated install step instance.
-	 * @return associated install step.
-	 */
-	IInstallStep getInstallStep();
-	
-	/**
-	 * Called so that the operation can interact with the user via the console.
-	 * 
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> if the installation should continue,
-	 *         <code>CANCEL_STATUS</code> if the user canceled the installation, or
-	 *         throw an exception if a problem has occurred.
-	 */
-	IStatus prompt(Console console) throws Exception;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChoiceConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChoiceConsoleStep.java
deleted file mode 100644
index b89558c..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChoiceConsoleStep.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ChoiceStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ChoiceConsoleStep extends ConsoleStep {
-
-	private static final String ACCEPT = "Accept";
-	private static final String DECLINE = "Decline";
-	private static final String[] RESPONSES = new String[] { ACCEPT, DECLINE };
-	
-	public ChoiceConsoleStep(IInstallStep step) {
-		super(step);
-	}
-
-	/**
-	 * Display an "End User License Agreement" with prompt to accept it and wait for the
-	 * user's input.
-	 * 
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> if user accepted,
-	 *         <code>CANCEL_STATUS</code> if users declined, or
-	 *         throw an exception if a problem has occurred.
-	 */
-	public IStatus prompt(Console console) throws Exception {
-		ChoiceStep step = (ChoiceStep) getInstallStep();
-		step.aboutToStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		if(step.getChoiceText()!=null)	console.more(step.getChoiceText());
-		
-		String answer = console.prompt("Your answer?", RESPONSES);
-
-		if (step.getOptionName() != null) {
-			step.getOptions().set(
-					step.getOptionName(),
-					answer.equals(ACCEPT) ? step
-							.getAcceptString() : step.getDeclineString());
-		}
-
-		if (answer.equals(ACCEPT)) {
-			return Status.OK_STATUS;
-		} else {
-			if (step.getContinueOnDecline())
-				return Status.OK_STATUS;
-			else
-				return Status.CANCEL_STATUS;
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseLocationConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseLocationConsoleStep.java
deleted file mode 100644
index 1535faf..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseLocationConsoleStep.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ChooseLocationStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-import org.eclipse.epp.installer.internal.console.IConsoleStep;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ChooseLocationConsoleStep extends ConsoleStep {
-
-	public ChooseLocationConsoleStep(IInstallStep step) {
-		super(step);
-	}
-
-	/**
-	 * Do prompt user to input the installation path in loop until specified path will
-	 * pass validation (the path is not empty and absolute).
-	 * 
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> if user specified correct path, or
-	 *         throw an exception if a problem has occurred.
-	 */
-	public IStatus prompt(Console console) throws Exception {
-		IStatus result;
-		String defaultPath =Variables.resolve(getInstallStep().getOptions().getString(
-				InstallOptions.OPTION_INSTALL_DIR), getInstallStep().getOptions());  
-			
-		String path;
-		while (true) {
-			console.writeln("Specify install location)");
-			console.writeln("Press Enter for default: "+defaultPath+" ");
-			path = console.readLine();
-			if (path == null)
-				path = defaultPath;
-			result = ChooseLocationStep.validatePath(path);
-			if (result.getSeverity() != IStatus.ERROR)
-				break;
-			console.write("ERROR: " + result.getMessage());
-		}
-		getInstallStep().getOptions().set(InstallOptions.OPTION_INSTALL_DIR,
-				path);
-	
-		return result;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseProductConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseProductConsoleStep.java
deleted file mode 100644
index 54114ce..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ChooseProductConsoleStep.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.console.steps;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.product.IProductInstallation;
-import org.eclipse.epp.installer.core.product.IProductLocator;
-import org.eclipse.epp.installer.core.steps.ChooseProductStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-
-
-/**
- * @author kap
- *
- */
-public class ChooseProductConsoleStep extends ConsoleStep{
-
-	public ChooseProductConsoleStep(IInstallStep step) {
-		super(step);
-	
-	}
-
-	public IStatus prompt(Console console) throws Exception {
-		ChooseProductStep step = (ChooseProductStep) getInstallStep();
-		
-		step.aboutToStep();
-		IProductLocator locator;
-		locator = step.getLocator();
-		// will be used later
-		String Compatibility=step.getCompatibility();
-		String productPath = new String();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-	
-		IProductInstallation[] installations = step.findAllInstallations();
-		//IProductInstallation choosenProduct;
-		
-		String[] responses = new String[installations.length+2];
-		responses[0] = "0";
-		if (installations.length > 0) 
-			for (int i = 0; i < installations.length; i++){ 
-				console.writeln(String.valueOf(i+1)+" - "+installations[i].getProductDir().getAbsolutePath());
-				responses[i+1]=String.valueOf(i+1);
-			}
-		responses[installations.length+1] = "-1";
-		
-		console.writeln("input number for choose product (0 - for input user defind dir,\",\" as delimetr)");
-		console.writeln("-1 for cancel installation");
-		
-		String[] answers = (console.prompt("Posible answers ",responses,true,","));
-		
-		String[] productPaths = new String[answers.length];
-		for(int i=0;i<answers.length;i++)
-		{
-			int productId = Integer.parseInt(answers[i]);
-			if(productId<0) return Status.CANCEL_STATUS;
-			
-			if(productId>0 && productId<=installations.length)
-			{ 
-				productPath=installations[productId-1].getProductDir().getAbsolutePath();
-				
-			}else
-			{
-				console.writeln("Please input full product path\n");
-				productPath = console.readLine();
-				if (productPath != null){ 
-					
-					if (locator.isProductInstallation(new File(productPath)))
-						;
-					else  return Status.CANCEL_STATUS;
-				}else return Status.CANCEL_STATUS;
-				
-			}	
-		
-			
-			IProductInstallation product = locator.createProductInstallation(new File(productPath));
-			productPaths[i]=productPath;
-			if (!locator.hasModificationPermissions(product)){
-				console.writeln("You have no permission to modify installation\n"+productPath);
-				if(console.promptYesNo("Proceed anyway?")==Status.CANCEL_STATUS) return Status.CANCEL_STATUS;
-				
-				
-			return Status.CANCEL_STATUS;
-			}
-			
-			
-			//console.writeln("choose product finish "+getInstallStep().getOptions().getString(step.getOptionName()));
-			
-			getInstallStep().getOptions().set(
-					step.getOptionName(),
-					InstallOptions.arrayToPathList(productPaths));
-			
-		}
-			
-		
-		
-		
-		
-		
-		
-		
-		
-		return step.verifyStep();
-	}
-
-	// deprecated
-	private int getChoosenProductNumber(Console console)  throws Exception 
-	{
-		String answer = console.readLine();
-			
-		if(answer==null) return 0;
-		try{
-		  return Integer.parseInt(answer);
-		}catch(NumberFormatException  e)
-		{
-			console.writeln("incorect input");
-			return -1;
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/CustomizeConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/CustomizeConsoleStep.java
deleted file mode 100644
index 46898b1..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/CustomizeConsoleStep.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.CustomizeStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-public class CustomizeConsoleStep extends ConsoleStep{
-
-	public CustomizeConsoleStep(IInstallStep step) {
-		super(step);
-		// TODO Auto-generated constructor stub
-	}
-
-	public IStatus prompt(Console console) throws Exception {
-		// TODO Auto-generated method stub default custom will be used
-		CustomizeStep step = (CustomizeStep) getInstallStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		if(step.getText()!=null) console.writeln(step.getText());
-	
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/PromptUserConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/PromptUserConsoleStep.java
deleted file mode 100644
index 408d88a..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/PromptUserConsoleStep.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.PromptUserStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-import org.eclipse.epp.installer.internal.console.IConsoleStep;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class PromptUserConsoleStep extends ConsoleStep {
-
-	public PromptUserConsoleStep(IInstallStep step) {
-		super(step);
-	}
-
-	/**
-	 * Display step's text and prompt user to continue installation.
-	 * 
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> if "Yes",
-	 *         <code>CANCEL_STATUS</code> if "No", or
-	 *         throw an exception if a problem has occurred.
-	 */
-	public IStatus prompt(Console console) throws Exception {
-		PromptUserStep step = (PromptUserStep) getInstallStep();
-		step.aboutToStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		if(step.getText()!=null) console.writeln(step.getText());
-	
-		
-		return console.promptYesNo("Continue installation?");
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/RunOperationsConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/RunOperationsConsoleStep.java
deleted file mode 100644
index a5e508d..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/RunOperationsConsoleStep.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.core.operations.UndoInstallOperation;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleInstaller;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-;
-
-public class RunOperationsConsoleStep extends ConsoleStep{
-
-	public RunOperationsConsoleStep(IInstallStep step) {
-		super(step);
-	
-	}
-
-	public IStatus prompt(Console console) throws Exception {
-		final IStatus[] status = new IStatus[1];
-		RunOperationsStep step = (RunOperationsStep) getInstallStep();
-		step.aboutToStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		
-		try {
-			status[0] = step.verifyStep();
-			
-		} catch(Exception e) {
-			status[0] = new Status(IStatus.ERROR, ConsoleInstaller.PLUGIN_ID, 0,
-					"error running operations", e);
-		}				
-		if(status[0].getSeverity() >= IStatus.ERROR) {
-			if(status[0].getSeverity() == IStatus.CANCEL ) {
-				console.writeln("Installing canceled.");
-			}
-			else {
-			}
-			if (step.canRollback()) {
-				InstallOperation rollback = new UndoInstallOperation(step.getInstaller().getInstallLog());
-				try {
-
-					getOperationRunnable(rollback).run(null);
-
-				}
-				catch (Exception e) {
-					return new Status(IStatus.ERROR, ConsoleInstaller.PLUGIN_ID, 0, "error running operations", e);
-
-				}
-			}			
-		}
-		return Status.OK_STATUS;
-	}
-
-	
-	private RunnableWithProgress getOperationRunnable(final InstallOperation operation) {
-		return new RunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-					throws InvocationTargetException, InterruptedException {
-				RunOperationsStep step = (RunOperationsStep) getInstallStep();
-				step.run(operation, monitor);
-				
-			}
-		};		
-	}
-		
-	
-	
-	
-	private interface  RunnableWithProgress{ 
-	
-		public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException;
-	
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ScrollablePromptUserConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ScrollablePromptUserConsoleStep.java
deleted file mode 100644
index 16930c8..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ScrollablePromptUserConsoleStep.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ScrollablePromptUserConsoleStep extends ConsoleStep {
-
-	public ScrollablePromptUserConsoleStep(IInstallStep step) {
-		super(step);
-	}
-
-	/**
-	 * Display step's text and prompt user to continue installation.
-	 * 
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> if "Yes",
-	 *         <code>CANCEL_STATUS</code> if "No", or
-	 *         throw an exception if a problem has occurred.
-	 */
-	public IStatus prompt(Console console) throws Exception {
-		
-		ScrollablePromptUserStep step = (ScrollablePromptUserStep) getInstallStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		if(step.getText()!=null) console.writeln(step.getText());
-		
-		return console.promptYesNo("Continue installation?");
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/SelectInstallTypeConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/SelectInstallTypeConsoleStep.java
deleted file mode 100644
index d958ec6..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/SelectInstallTypeConsoleStep.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.InstallType;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.SelectInstallTypeStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-/**
- * @author kap
- *
- */
-public class SelectInstallTypeConsoleStep extends ConsoleStep{
-
-	public SelectInstallTypeConsoleStep(IInstallStep step) {
-		super(step);
-	}
-
-	public IStatus prompt(Console console) throws Exception {
-
-		
-		SelectInstallTypeStep step = (SelectInstallTypeStep) getInstallStep();
-		step.aboutToStep();
-		Object[] types = step.getInstallTypes().toArray();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		
-		
-		String[] responses = new String[types.length];
-		for(int i=0;i<types.length;i++)
-		{
-			console.writeln(String.valueOf(i+1)+" - "+((InstallType)types[i]).getName());
-			responses[i]=String.valueOf(i+1);
-		}
-		int typeId = Integer.parseInt(console.prompt("posible answers ",responses));
-		IStatus status = SelectInstallTypeStep.validateProductString(((InstallType)types[typeId]).getName());
-		step.updateOption(((InstallType)types[typeId]));
-		
-		
-		return status;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ShowWarningConsoleStep.java b/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ShowWarningConsoleStep.java
deleted file mode 100644
index e1f615b..0000000
--- a/plugins/org.eclipse.epp.installer.console/src/org/eclipse/epp/installer/internal/console/steps/ShowWarningConsoleStep.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.console.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ShowWarningsStep;
-import org.eclipse.epp.installer.internal.console.Console;
-import org.eclipse.epp.installer.internal.console.ConsoleStep;
-
-
-
-/**
- * @author kap
- *
- */
-public class ShowWarningConsoleStep extends ConsoleStep {
-
-	public ShowWarningConsoleStep(IInstallStep step) {
-		super(step);
-		
-	}
-
-	/**
-	 * Display warning list if there were any during installation process.
-	 * @param console
-	 *            the console used to interact with the user.
-	 * @return <code>OK_STATUS</code> 
-	 */
-	
-	public IStatus prompt(Console console) throws Exception {
-		
-		ShowWarningsStep step = (ShowWarningsStep) getInstallStep();
-		step.aboutToStep();
-		if(step.getTitle()!=null) console.writeln(step.getTitle());
-		if(step.getDescription()!=null)console.writeln(step.getDescription());
-		if(step.getWarningText()!=null)console.more(step.getWarningText());
-		
-		return step.verifyStep();
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/.classpath b/plugins/org.eclipse.epp.installer.core.linux/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.core.linux/.cvsignore b/plugins/org.eclipse.epp.installer.core.linux/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.core.linux/.project b/plugins/org.eclipse.epp.installer.core.linux/.project
deleted file mode 100644
index 11d3dab..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.core.linux</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/plugins/org.eclipse.epp.installer.core.linux/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.core.linux/META-INF/MANIFEST.MF
deleted file mode 100644
index fc86f3b..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.epp.installer.core.linux;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %fragmentProvider
-Fragment-Host: org.eclipse.epp.installer.core;bundle-version="0.5.0"
-Bundle-ClassPath: .
-Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86))
diff --git a/plugins/org.eclipse.epp.installer.core.linux/build-project.xml b/plugins/org.eclipse.epp.installer.core.linux/build-project.xml
deleted file mode 100644
index 5b9cdcc..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/build-project.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project default="build_all" basedir=".">
-	<import file="../com.instantiations.eclipse.shared_build/build-macros.xml" />
-
-	<!-- ================================================= 
-		Build this project as part of a bundle
-	-->
-	<target name="build_all">
-		<basename file="." property="Local-Name" />
-		<property name="Local-Temp"
-		          location="${Project-Out}/../../${Local-Name}" />
-
-		<compile_lib eclipseTarget="3.1"
-		             oldconfig="eclipse_3.1"
-		             source="src"
-		             tempSrcDir="${Local-Temp}/src"
-		             destDir="${Local-Temp}/bin" />
-
-		<!-- Installer Classes -->
-		<mkdir dir="${Project-Out}/lib/linux" />
-		<zip destfile="${Project-Out}/lib/linux/linux.jar">
-			<fileset dir="${Local-Temp}/bin" />
-		</zip>
-
-		<!-- Installer Source -->
-		<mkdir dir="${Project-Out}/lib/linux/src/linux/" />
-		<zip destfile="${Project-Out}/lib/linux/src/linux/src.zip">
-			<fileset dir="src" />
-		</zip>
-
-		<!-- Libraries -->
-		<mkdir dir="${Project-Out}/lib" />
-		<copy todir="${Project-Out}/lib">
-			<fileset dir="lib" />
-		</copy>
-
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.linux/fragment.xml b/plugins/org.eclipse.epp.installer.core.linux/fragment.xml
deleted file mode 100644
index c786d37..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/fragment.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<fragment>
-   <extension
-         point="org.eclipse.epp.installer.core.platform">
-      <platform
-            class="org.eclipse.epp.installer.core.Linux">
-      </platform>
-   </extension>
-
-</fragment>
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/about.html b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/about.html
deleted file mode 100644
index 691ecaa..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/about.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-</head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 21, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Except for the files listed below, all Content shall be defined as the "SWT" and are provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at
-<a href="http://www.eclipse.org/legal/epl-v10.html" target="_blank">http://www.eclipse.org/legal/epl-v10.html</a>.  For purposes of the EPL, &quot;Program&quot; shall mean the SWT.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Third Party Content</h3>
-
-<h4>Gnome Binding</h4>
-
-<p>The &quot;Gnome Binding&quot; is a binding to the Gnome API.  The Content may include any or all of the following files:</p>
-
-<p>The following files in the plug-in JAR shall be defined as the native code portion of the Gnome Binding:</p>
-<ul>
-	<li>libswt-gnome-gtk-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
-</ul>
-
-<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the Gnome Binding:</p>
-<ul>
-	<li>The contents of the directory org/eclipse/swt/internal/gnome (but not including any sub-directories)</li>
-</ul>
-
-<p>The Gnome Binding contains portions of Gnome (&quot;Library&quot;).  Gnome is made available by The Free Software Foundation.  Use of the Library is governed by the terms and
-conditions of the GNU Lesser General Public License Version 2.1 (&quot;LGPL&quot;).  Use of the Gnome Binding on a standalone
-basis, is also governed by the terms and conditions of the LGPL.  A copy of the LGPL is provided with the Content (<a href="about_files/lgpl-v21.txt" target="_blank">about_files/lgpl-v21.txt</a>) and is also available at
-<a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">http://www.gnu.org/licenses/lgpl.html</a>.</p>
-
-<p>In accordance with Section 6 of the LGPL, you may combine or link a "work that uses the Library" (e.g. the SWT) with the Library to produce a work
-containing portions of the Library (e.g. the Gnome Binding) and distribute that work under the terms of your choice (e.g. the EPL) provided you comply with all
-other terms and conditions of Section 6 as well as other Sections of the LGPL.  Please note, if you modify the Gnome Binding such modifications shall be
-governed by the terms and conditions of the LGPL.  Also note, the terms of the EPL permit you to modify the combined work and the source code of the combined
-work is provided for debugging purposes so there is no need to reverse engineer the combined work.</p>
-
-<h4>GTK+ Binding</h4>
-
-<p>The &quot;GTK+ Binding&quot; is a binding to the GTK+ API.  The Content may include any or all of the following files:</p>
-
-<p>The following files in the plug-in JAR shall be defined as the native code portion of the GTK+ Binding:</p>
-<ul>
-	<li>libswt-atk-gtk-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
-	<li>libswt-pi-gtk-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
-</ul>
-
-<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the GTK+ Binding:</p>
-<ul>
-	<li>The contents of the directory org/eclipse/swt/internal/accessibility/gtk (but not including any sub-directories)</li>
-	<li>The contents of the directory org/eclipse/swt/internal/cde (but not including any sub-directories)</li>
-	<li>The contents of the directory org/eclipse/swt/internal/gtk (but not including any sub-directories)</li>
-	<li>The contents of the directory org/eclipse/swt/internal/kde (but not including any sub-directories)</li>				
-</ul>
-
-<p>The GTK+ Binding contains portions of GTK+ (&quot;Library&quot;).  GTK+ is made available by The Free Software Foundation.  Use of the Library is governed by the terms and
-conditions of the GNU Lesser General Public License Version 2.1 (&quot;LGPL&quot;).  Use of the GTK+ Binding on a standalone
-basis, is also governed by the terms and conditions of the LGPL.  A copy of the LGPL is provided with the Content (<a href="about_files/lgpl-v21.txt" target="_blank">about_files/lgpl-v21.txt</a>) and is also available at
-<a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">http://www.gnu.org/licenses/lgpl.html</a>.</p>
-
-<p>In accordance with Section 6 of the LGPL, you may combine or link a "work that uses the Library" (e.g. the SWT) with the Library to produce a work
-containing portions of the Library (e.g. the GTK+ Binding) and distribute that work under the terms of your choice (e.g. the EPL) provided you comply with all
-other terms and conditions of Section 6 as well as other Sections of the LGPL.  Please note, if you modify the GTK+ Binding such modifications shall be
-governed by the terms and conditions of the LGPL.  Also note, the terms of the EPL permit you to modify the combined work and the source code of the combined
-work is provided for debugging purposes so there is no need to reverse engineer the combined work.</p>
-
-<h4>Mozilla Binding</h4>
-
-<p>The &quot;Mozilla Binding&quot; is a binding to the Mozilla API.  The Content may include any or all of the following files:</p>
-
-<p>The following files in the plug-in JAR shall be defined as the native code portion of the Mozilla Binding:</p>
-<ul>
-	<li>libswt-mozilla-gtk-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
-</ul>
-
-<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the Mozilla Binding:</p>
-<ul>
-	<li>The contents of the directory org/eclipse/swt/internal/mozilla (but not including any sub-directories)</li>
-</ul>
-
-<p>The Mozilla Binding contains portions of Mozilla (&quot;Mozilla&quot;).  Mozilla is made available by Mozilla.org.  Use of Mozilla is governed by the terms and
-conditions of the Mozilla Public License Version 1.1 (&quot;MPL&quot;).  A copy of the MPL is provided with the Content (<a href="about_files/mpl-v11.txt" target="_blank">about_files/mpl-v11.txt</a>) and is also available at
-<a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html</a>.</p>
-
-<h4>Cairo Binding</h4>
-
-<p>The &quot;Cairo Binding&quot; is a binding to the Cairo API.  The Content may include any or all of the following files:</p>
-
-<p>The following files in the plug-in JAR shall be defined as the native code portion of the Cairo Binding:</p>
-<ul>
-	<li>libswt-cairo-gtk-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
-</ul>
-
-<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the Cairo Binding:</p>
-<ul>
-	<li>The contents of the directory org/eclipse/swt/internal/cairo (but not including any sub-directories)</li>
-</ul>
-
-<p>The Cairo Binding contains portions of Cairo (&quot;Cairo&quot;).  Cairo is made available by the Cairo project at
-<a href="http://www.cairographics.org" target="_blank">http://www.cairographics.org</a>.  Use of Cairo by the Cairo Binding is governed by the terms and
-conditions of the Mozilla Public License Version 1.1 (&quot;MPL&quot;).  A copy of the MPL is
-provided with the Content (<a href="about_files/mpl-v11.txt" target="_blank">about_files/mpl-v11.txt</a>) and is also available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>.</p>
-
-<h4>Cairo for Linux</h4>
-
-<p>Refer to the file <a href="about_files/about_cairo.html">about_files/about_cairo.html</a> for licensing details about &quot;Cairo for Linux&quot;.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/cairo.so.1 b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/cairo.so.1
deleted file mode 100644
index ef41d05..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/cairo.so.1
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-atk-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-atk-gtk-3139.so
deleted file mode 100644
index 4cd118c..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-atk-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-awt-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-awt-gtk-3139.so
deleted file mode 100644
index 4bf47d8..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-awt-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-cairo-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-cairo-gtk-3139.so
deleted file mode 100644
index de1b136..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-cairo-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gnome-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gnome-gtk-3139.so
deleted file mode 100644
index 41f83ad..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gnome-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gtk-3139.so
deleted file mode 100644
index ccf617f..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-mozilla-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-mozilla-gtk-3139.so
deleted file mode 100644
index 120468b..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-mozilla-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-pi-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-pi-gtk-3139.so
deleted file mode 100644
index 6fc3306..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86/swt-pi-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about.html b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about.html
deleted file mode 100644
index 3eee199..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>24 June, 2004</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  With the exception of the files listed below, all Content should be defined as the &quot;SWT&quot; and
-is provided to you under the terms and conditions of the Common Public License Version 1.0 (&quot;CPL&quot;).
-A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; shall mean the SWT.</p>
-
-<h3>Third Party Content</h3>
-
-<h4>GTK+ Binding</h4>
-
-<p>The following files shall be defined as the &quot;GTK+ Binding&quot;:
-<ul>
-	<li>os/linux/amd64/libswt-atk-gtk-3063.so</li>
-	<li>os/linux/amd64/libswt-pi-gtk-3063.so</li>
-	<li>ws/gtk/swt-pi.jar</li>
-	<li>ws/gtk/swt-pisrc.zip</li>
-</ul>
-
-<p>The GTK+ Binding contains portions of GTK+ (&quot;Library&quot;).  GTK+ is made available by The Free Software Foundation.  Use of the Library is governed by the terms and
-conditions of the GNU Lesser General Public License Version 2.1 (&quot;LGPL&quot;).  Use of the GTK+ Binding on a standalone
-basis, is also governed by the terms and conditions of the LGPL.  A copy of the LGPL is provided with the Content and is also available at
-<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a>.</p>
-
-<p>In accordance with Section 6 of the LGPL, you may combine or link a "work that uses the Library" (e.g. the SWT) with the Library to produce a work
-containing portions of the Library (e.g. the GTK+ Binding) and distribute that work under the terms of your choice (e.g. the CPL) provided you comply with all
-other terms and conditions of Section 6 as well as other Sections of the LGPL.  Please note, if you modify the GTK+ Binding such modifications shall be
-governed by the terms and conditions of the LGPL.  Also note, the terms of the CPL permit you to modify the combined work and the source code of the combined
-work is provided for debugging purposes so there is no need to reverse engineer the combined work.</p>
-
-<h4>Mozilla Binding</h4>
-
-<p>The following files shall be defined as the &quot;Mozilla Binding&quot;:
-<ul>
-	<li>ws/gtk/swt-mozilla.jar</li>
-	<li>ws/gtk/swt-mozillasrc.zip</li>
-</ul>
-
-<p>The Mozilla Binding contains portions of Mozilla (&quot;Mozilla&quot;).  Mozilla is made available by Mozilla.org.  Use of Mozilla is governed by the terms and
-conditions of the Mozilla Public License Version 1.1 (&quot;MPL&quot;).  A copy of the MPL is provided with the Content and is also available at
-<a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>.</p>
-
-<h3>Contributions</h3>
-
-<p>If you wish to provide Contributions related to the SWT, such Contributions shall be made under the terms of the CPL.  If you wish to make
-Contributions related to the GTK+ Binding such Contributions shall be made under the terms of the LGPL and the CPL (with respect to portions
-of the contribution for which you are the copyright holder).  If you wish to make Contributions related to the Mozilla Binding such 
-Contributions shall be made under the terms of the MPL.</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about_cairo.html b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about_cairo.html
deleted file mode 100644
index d02ceb0..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/about_cairo.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>July 27, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation has included the following package for your convenience:</p> 
-
-<h4>Cairo 0.4.0 for Linux</h4>
-
-<p>Cairo for Linux (&quot;Cairo&quot;) is developed by The Cairo Project (<a href="http://www.cairographics.org" target="_blank">http://www.cairographics.org</a>):</p>
-
-<p>Cairo is delivered in the following file (&quot;Cairo Library&quot;):</p>
-<ul>
-    <li>libcairo.so.1</li>
-</ul>
-
-<p>which was compiled from Cairo source code available at <a href="http://www.cairographics.org/snapshots" target="_blank">http://www.cairographics.org/snapshots</a>.</p>
-
-<p>Your use of the Cairo code in binary form is subject to
-the terms and conditions of Mozilla Public License Version 1.1 (&quot;MPL&quot;).  A copy of the MPL is provided (<a href="mpl-v11.txt" target="blank">mpl-v11.txt</a>)
-and is also available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html.</a>
-
-<h4>pixman 0.1.4</h4>
-
-<p>pixman (&quot;pixman&quot;) is packaged within the Cairo Library and was compiled from source code available at
-<a href="http://www.cairographics.org/snapshots" target="_blank">http://www.cairographics.org/snapshots</a>.
-pixman includes the following packages:</p>
-
-<ul>
-	<li>libpixregion</li>
-	<li>libic</li>
-	<li>slim</li>
-</ul>
-
-<p>Pixman is:</p>
-
-<blockquote>
-Copyright &copy; 1998, 2004 Keith Packard<br>
-Copyright &copy; 2000 SuSE, Inc.<br>
-Copyright &copy; 2003 Carl Worth<br>
-Copyright &copy; 1987, 1998  The Open Group<br>
-Copyright &copy; 2005 Red Hat, Inc<br>
-Copyright &copy; 2003 Richard Henderson<br>
-Copyright &copy; 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-</blockquote>
-
-<p>Your use of pixman is subject to the terms and conditions of the licenses in <a href="pixman-licenses.txt" target="blank">pixman-licenses.txt</a>.</p>
-
-<p>If you did not receive the Cairo Library directly from the Eclipse Foundation, the package is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply its use.  Check the Redistributor's license that was provided with the content.  If no such license exists, contact the Redistributor.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cairo.so.1 b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cairo.so.1
deleted file mode 100644
index 6cd99b9..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cairo.so.1
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cpl-v10.html b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and<BR CLEAR="LEFT">
-b) in the case of each subsequent Contributor:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf.  </FONT><FONT SIZE="2">Contributions do not include additions to the Program which:  (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form.  This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents.  The patent license shall not apply to any other combinations which include the Contribution.  No hardware per se is licensed hereunder.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">c)	Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity.  Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise.  As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any.  For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">d)	Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">iv)	states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like.  While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors.   Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering.  The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement.  In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations.  The Indemnified Contributor may participate in any such claim at its own expense.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">For example, a Contributor might include the Program in a commercial product offering, Product X.  That Contributor is then a Commercial Contributor.  If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.  Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance.  If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable.  However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted  and may only be modified in the following manner. The Agreement Steward reserves the right to </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">Each new version of the Agreement will be given a distinguishing version number.  The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose.  Each party waives its rights to a jury trial in any resulting litigation.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/lgpl-v21.txt b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/lgpl-v21.txt
deleted file mode 100644
index 807db79..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/lgpl-v21.txt
+++ /dev/null
@@ -1,506 +0,0 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/mpl-v11.txt b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/mpl-v11.txt
deleted file mode 100644
index 7714141..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/mpl-v11.txt
+++ /dev/null
@@ -1,470 +0,0 @@
-                          MOZILLA PUBLIC LICENSE
-                                Version 1.1
-
-                              ---------------
-
-1. Definitions.
-
-     1.0.1. "Commercial Use" means distribution or otherwise making the
-     Covered Code available to a third party.
-
-     1.1. "Contributor" means each entity that creates or contributes to
-     the creation of Modifications.
-
-     1.2. "Contributor Version" means the combination of the Original
-     Code, prior Modifications used by a Contributor, and the Modifications
-     made by that particular Contributor.
-
-     1.3. "Covered Code" means the Original Code or Modifications or the
-     combination of the Original Code and Modifications, in each case
-     including portions thereof.
-
-     1.4. "Electronic Distribution Mechanism" means a mechanism generally
-     accepted in the software development community for the electronic
-     transfer of data.
-
-     1.5. "Executable" means Covered Code in any form other than Source
-     Code.
-
-     1.6. "Initial Developer" means the individual or entity identified
-     as the Initial Developer in the Source Code notice required by Exhibit
-     A.
-
-     1.7. "Larger Work" means a work which combines Covered Code or
-     portions thereof with code not governed by the terms of this License.
-
-     1.8. "License" means this document.
-
-     1.8.1. "Licensable" means having the right to grant, to the maximum
-     extent possible, whether at the time of the initial grant or
-     subsequently acquired, any and all of the rights conveyed herein.
-
-     1.9. "Modifications" means any addition to or deletion from the
-     substance or structure of either the Original Code or any previous
-     Modifications. When Covered Code is released as a series of files, a
-     Modification is:
-          A. Any addition to or deletion from the contents of a file
-          containing Original Code or previous Modifications.
-
-          B. Any new file that contains any part of the Original Code or
-          previous Modifications.
-
-     1.10. "Original Code" means Source Code of computer software code
-     which is described in the Source Code notice required by Exhibit A as
-     Original Code, and which, at the time of its release under this
-     License is not already Covered Code governed by this License.
-
-     1.10.1. "Patent Claims" means any patent claim(s), now owned or
-     hereafter acquired, including without limitation,  method, process,
-     and apparatus claims, in any patent Licensable by grantor.
-
-     1.11. "Source Code" means the preferred form of the Covered Code for
-     making modifications to it, including all modules it contains, plus
-     any associated interface definition files, scripts used to control
-     compilation and installation of an Executable, or source code
-     differential comparisons against either the Original Code or another
-     well known, available Covered Code of the Contributor's choice. The
-     Source Code can be in a compressed or archival form, provided the
-     appropriate decompression or de-archiving software is widely available
-     for no charge.
-
-     1.12. "You" (or "Your")  means an individual or a legal entity
-     exercising rights under, and complying with all of the terms of, this
-     License or a future version of this License issued under Section 6.1.
-     For legal entities, "You" includes any entity which controls, is
-     controlled by, or is under common control with You. For purposes of
-     this definition, "control" means (a) the power, direct or indirect,
-     to cause the direction or management of such entity, whether by
-     contract or otherwise, or (b) ownership of more than fifty percent
-     (50%) of the outstanding shares or beneficial ownership of such
-     entity.
-
-2. Source Code License.
-
-     2.1. The Initial Developer Grant.
-     The Initial Developer hereby grants You a world-wide, royalty-free,
-     non-exclusive license, subject to third party intellectual property
-     claims:
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Initial Developer to use, reproduce,
-          modify, display, perform, sublicense and distribute the Original
-          Code (or portions thereof) with or without Modifications, and/or
-          as part of a Larger Work; and
-
-          (b) under Patents Claims infringed by the making, using or
-          selling of Original Code, to make, have made, use, practice,
-          sell, and offer for sale, and/or otherwise dispose of the
-          Original Code (or portions thereof).
-
-          (c) the licenses granted in this Section 2.1(a) and (b) are
-          effective on the date Initial Developer first distributes
-          Original Code under the terms of this License.
-
-          (d) Notwithstanding Section 2.1(b) above, no patent license is
-          granted: 1) for code that You delete from the Original Code; 2)
-          separate from the Original Code;  or 3) for infringements caused
-          by: i) the modification of the Original Code or ii) the
-          combination of the Original Code with other software or devices.
-
-     2.2. Contributor Grant.
-     Subject to third party intellectual property claims, each Contributor
-     hereby grants You a world-wide, royalty-free, non-exclusive license
-
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Contributor, to use, reproduce, modify,
-          display, perform, sublicense and distribute the Modifications
-          created by such Contributor (or portions thereof) either on an
-          unmodified basis, with other Modifications, as Covered Code
-          and/or as part of a Larger Work; and
-
-          (b) under Patent Claims infringed by the making, using, or
-          selling of  Modifications made by that Contributor either alone
-          and/or in combination with its Contributor Version (or portions
-          of such combination), to make, use, sell, offer for sale, have
-          made, and/or otherwise dispose of: 1) Modifications made by that
-          Contributor (or portions thereof); and 2) the combination of
-          Modifications made by that Contributor with its Contributor
-          Version (or portions of such combination).
-
-          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
-          effective on the date Contributor first makes Commercial Use of
-          the Covered Code.
-
-          (d)    Notwithstanding Section 2.2(b) above, no patent license is
-          granted: 1) for any code that Contributor has deleted from the
-          Contributor Version; 2)  separate from the Contributor Version;
-          3)  for infringements caused by: i) third party modifications of
-          Contributor Version or ii)  the combination of Modifications made
-          by that Contributor with other software  (except as part of the
-          Contributor Version) or other devices; or 4) under Patent Claims
-          infringed by Covered Code in the absence of Modifications made by
-          that Contributor.
-
-3. Distribution Obligations.
-
-     3.1. Application of License.
-     The Modifications which You create or to which You contribute are
-     governed by the terms of this License, including without limitation
-     Section 2.2. The Source Code version of Covered Code may be
-     distributed only under the terms of this License or a future version
-     of this License released under Section 6.1, and You must include a
-     copy of this License with every copy of the Source Code You
-     distribute. You may not offer or impose any terms on any Source Code
-     version that alters or restricts the applicable version of this
-     License or the recipients' rights hereunder. However, You may include
-     an additional document offering the additional rights described in
-     Section 3.5.
-
-     3.2. Availability of Source Code.
-     Any Modification which You create or to which You contribute must be
-     made available in Source Code form under the terms of this License
-     either on the same media as an Executable version or via an accepted
-     Electronic Distribution Mechanism to anyone to whom you made an
-     Executable version available; and if made available via Electronic
-     Distribution Mechanism, must remain available for at least twelve (12)
-     months after the date it initially became available, or at least six
-     (6) months after a subsequent version of that particular Modification
-     has been made available to such recipients. You are responsible for
-     ensuring that the Source Code version remains available even if the
-     Electronic Distribution Mechanism is maintained by a third party.
-
-     3.3. Description of Modifications.
-     You must cause all Covered Code to which You contribute to contain a
-     file documenting the changes You made to create that Covered Code and
-     the date of any change. You must include a prominent statement that
-     the Modification is derived, directly or indirectly, from Original
-     Code provided by the Initial Developer and including the name of the
-     Initial Developer in (a) the Source Code, and (b) in any notice in an
-     Executable version or related documentation in which You describe the
-     origin or ownership of the Covered Code.
-
-     3.4. Intellectual Property Matters
-          (a) Third Party Claims.
-          If Contributor has knowledge that a license under a third party's
-          intellectual property rights is required to exercise the rights
-          granted by such Contributor under Sections 2.1 or 2.2,
-          Contributor must include a text file with the Source Code
-          distribution titled "LEGAL" which describes the claim and the
-          party making the claim in sufficient detail that a recipient will
-          know whom to contact. If Contributor obtains such knowledge after
-          the Modification is made available as described in Section 3.2,
-          Contributor shall promptly modify the LEGAL file in all copies
-          Contributor makes available thereafter and shall take other steps
-          (such as notifying appropriate mailing lists or newsgroups)
-          reasonably calculated to inform those who received the Covered
-          Code that new knowledge has been obtained.
-
-          (b) Contributor APIs.
-          If Contributor's Modifications include an application programming
-          interface and Contributor has knowledge of patent licenses which
-          are reasonably necessary to implement that API, Contributor must
-          also include this information in the LEGAL file.
-
-               (c)    Representations.
-          Contributor represents that, except as disclosed pursuant to
-          Section 3.4(a) above, Contributor believes that Contributor's
-          Modifications are Contributor's original creation(s) and/or
-          Contributor has sufficient rights to grant the rights conveyed by
-          this License.
-
-     3.5. Required Notices.
-     You must duplicate the notice in Exhibit A in each file of the Source
-     Code.  If it is not possible to put such notice in a particular Source
-     Code file due to its structure, then You must include such notice in a
-     location (such as a relevant directory) where a user would be likely
-     to look for such a notice.  If You created one or more Modification(s)
-     You may add your name as a Contributor to the notice described in
-     Exhibit A.  You must also duplicate this License in any documentation
-     for the Source Code where You describe recipients' rights or ownership
-     rights relating to Covered Code.  You may choose to offer, and to
-     charge a fee for, warranty, support, indemnity or liability
-     obligations to one or more recipients of Covered Code. However, You
-     may do so only on Your own behalf, and not on behalf of the Initial
-     Developer or any Contributor. You must make it absolutely clear than
-     any such warranty, support, indemnity or liability obligation is
-     offered by You alone, and You hereby agree to indemnify the Initial
-     Developer and every Contributor for any liability incurred by the
-     Initial Developer or such Contributor as a result of warranty,
-     support, indemnity or liability terms You offer.
-
-     3.6. Distribution of Executable Versions.
-     You may distribute Covered Code in Executable form only if the
-     requirements of Section 3.1-3.5 have been met for that Covered Code,
-     and if You include a notice stating that the Source Code version of
-     the Covered Code is available under the terms of this License,
-     including a description of how and where You have fulfilled the
-     obligations of Section 3.2. The notice must be conspicuously included
-     in any notice in an Executable version, related documentation or
-     collateral in which You describe recipients' rights relating to the
-     Covered Code. You may distribute the Executable version of Covered
-     Code or ownership rights under a license of Your choice, which may
-     contain terms different from this License, provided that You are in
-     compliance with the terms of this License and that the license for the
-     Executable version does not attempt to limit or alter the recipient's
-     rights in the Source Code version from the rights set forth in this
-     License. If You distribute the Executable version under a different
-     license You must make it absolutely clear that any terms which differ
-     from this License are offered by You alone, not by the Initial
-     Developer or any Contributor. You hereby agree to indemnify the
-     Initial Developer and every Contributor for any liability incurred by
-     the Initial Developer or such Contributor as a result of any such
-     terms You offer.
-
-     3.7. Larger Works.
-     You may create a Larger Work by combining Covered Code with other code
-     not governed by the terms of this License and distribute the Larger
-     Work as a single product. In such a case, You must make sure the
-     requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
-     If it is impossible for You to comply with any of the terms of this
-     License with respect to some or all of the Covered Code due to
-     statute, judicial order, or regulation then You must: (a) comply with
-     the terms of this License to the maximum extent possible; and (b)
-     describe the limitations and the code they affect. Such description
-     must be included in the LEGAL file described in Section 3.4 and must
-     be included with all distributions of the Source Code. Except to the
-     extent prohibited by statute or regulation, such description must be
-     sufficiently detailed for a recipient of ordinary skill to be able to
-     understand it.
-
-5. Application of this License.
-
-     This License applies to code to which the Initial Developer has
-     attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
-     6.1. New Versions.
-     Netscape Communications Corporation ("Netscape") may publish revised
-     and/or new versions of the License from time to time. Each version
-     will be given a distinguishing version number.
-
-     6.2. Effect of New Versions.
-     Once Covered Code has been published under a particular version of the
-     License, You may always continue to use it under the terms of that
-     version. You may also choose to use such Covered Code under the terms
-     of any subsequent version of the License published by Netscape. No one
-     other than Netscape has the right to modify the terms applicable to
-     Covered Code created under this License.
-
-     6.3. Derivative Works.
-     If You create or use a modified version of this License (which you may
-     only do in order to apply it to code which is not already Covered Code
-     governed by this License), You must (a) rename Your license so that
-     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
-     "MPL", "NPL" or any confusingly similar phrase do not appear in your
-     license (except to note that your license differs from this License)
-     and (b) otherwise make it clear that Your version of the license
-     contains terms which differ from the Mozilla Public License and
-     Netscape Public License. (Filling in the name of the Initial
-     Developer, Original Code or Contributor in the notice described in
-     Exhibit A shall not of themselves be deemed to be modifications of
-     this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
-     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
-     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
-     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
-     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
-     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
-     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
-     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
-     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
-     8.1.  This License and the rights granted hereunder will terminate
-     automatically if You fail to comply with terms herein and fail to cure
-     such breach within 30 days of becoming aware of the breach. All
-     sublicenses to the Covered Code which are properly granted shall
-     survive any termination of this License. Provisions which, by their
-     nature, must remain in effect beyond the termination of this License
-     shall survive.
-
-     8.2.  If You initiate litigation by asserting a patent infringement
-     claim (excluding declatory judgment actions) against Initial Developer
-     or a Contributor (the Initial Developer or Contributor against whom
-     You file such action is referred to as "Participant")  alleging that:
-
-     (a)  such Participant's Contributor Version directly or indirectly
-     infringes any patent, then any and all rights granted by such
-     Participant to You under Sections 2.1 and/or 2.2 of this License
-     shall, upon 60 days notice from Participant terminate prospectively,
-     unless if within 60 days after receipt of notice You either: (i)
-     agree in writing to pay Participant a mutually agreeable reasonable
-     royalty for Your past and future use of Modifications made by such
-     Participant, or (ii) withdraw Your litigation claim with respect to
-     the Contributor Version against such Participant.  If within 60 days
-     of notice, a reasonable royalty and payment arrangement are not
-     mutually agreed upon in writing by the parties or the litigation claim
-     is not withdrawn, the rights granted by Participant to You under
-     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
-     the 60 day notice period specified above.
-
-     (b)  any software, hardware, or device, other than such Participant's
-     Contributor Version, directly or indirectly infringes any patent, then
-     any rights granted to You by such Participant under Sections 2.1(b)
-     and 2.2(b) are revoked effective as of the date You first made, used,
-     sold, distributed, or had made, Modifications made by that
-     Participant.
-
-     8.3.  If You assert a patent infringement claim against Participant
-     alleging that such Participant's Contributor Version directly or
-     indirectly infringes any patent where such claim is resolved (such as
-     by license or settlement) prior to the initiation of patent
-     infringement litigation, then the reasonable value of the licenses
-     granted by such Participant under Sections 2.1 or 2.2 shall be taken
-     into account in determining the amount or value of any payment or
-     license.
-
-     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
-     all end user license agreements (excluding distributors and resellers)
-     which have been validly granted by You or any distributor hereunder
-     prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
-     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
-     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
-     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
-     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
-     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
-     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
-     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
-     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
-     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
-     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
-     The Covered Code is a "commercial item," as that term is defined in
-     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
-     software" and "commercial computer software documentation," as such
-     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
-     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
-     all U.S. Government End Users acquire Covered Code with only those
-     rights set forth herein.
-
-11. MISCELLANEOUS.
-
-     This License represents the complete agreement concerning subject
-     matter hereof. If any provision of this License is held to be
-     unenforceable, such provision shall be reformed only to the extent
-     necessary to make it enforceable. This License shall be governed by
-     California law provisions (except to the extent applicable law, if
-     any, provides otherwise), excluding its conflict-of-law provisions.
-     With respect to disputes in which at least one party is a citizen of,
-     or an entity chartered or registered to do business in the United
-     States of America, any litigation relating to this License shall be
-     subject to the jurisdiction of the Federal Courts of the Northern
-     District of California, with venue lying in Santa Clara County,
-     California, with the losing party responsible for costs, including
-     without limitation, court costs and reasonable attorneys' fees and
-     expenses. The application of the United Nations Convention on
-     Contracts for the International Sale of Goods is expressly excluded.
-     Any law or regulation which provides that the language of a contract
-     shall be construed against the drafter shall not apply to this
-     License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
-     As between Initial Developer and the Contributors, each party is
-     responsible for claims and damages arising, directly or indirectly,
-     out of its utilization of rights under this License and You agree to
-     work with Initial Developer and Contributors to distribute such
-     responsibility on an equitable basis. Nothing herein is intended or
-     shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
-     Initial Developer may designate portions of the Covered Code as
-     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
-     Developer permits you to utilize portions of the Covered Code under
-     Your choice of the NPL or the alternative licenses, if any, specified
-     by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
-     ``The contents of this file are subject to the Mozilla Public License
-     Version 1.1 (the "License"); you may not use this file except in
-     compliance with the License. You may obtain a copy of the License at
-     http://www.mozilla.org/MPL/
-
-     Software distributed under the License is distributed on an "AS IS"
-     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-     License for the specific language governing rights and limitations
-     under the License.
-
-     The Original Code is ______________________________________.
-
-     The Initial Developer of the Original Code is ________________________.
-     Portions created by ______________________ are Copyright (C) ______
-     _______________________. All Rights Reserved.
-
-     Contributor(s): ______________________________________.
-
-     Alternatively, the contents of this file may be used under the terms
-     of the _____ license (the  "[___] License"), in which case the
-     provisions of [______] License are applicable instead of those
-     above.  If you wish to allow use of your version of this file only
-     under the terms of the [____] License and not to allow others to use
-     your version of this file under the MPL, indicate your decision by
-     deleting  the provisions above and replace  them with the notice and
-     other provisions required by the [___] License.  If you do not delete
-     the provisions above, a recipient may use your version of this file
-     under either the MPL or the [___] License."
-
-     [NOTE: The text of this Exhibit A may differ slightly from the text of
-     the notices in the Source Code files of the Original Code. You should
-     use the text of this Exhibit A rather than the text found in the
-     Original Code Source Code for Your Modifications.]
-
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/pixman-licenses.txt b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/pixman-licenses.txt
deleted file mode 100644
index 5d8dca6..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/pixman-licenses.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-libpixregion
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-----------------------------------------------------------------------
-libic
-
-Copyright © 2001 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission.  Keith Packard makes no
-representations about the suitability of this software for any purpose.  It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-----------------------------------------------------------------------
-slim
-
-slim is Copyright © 2003 Richard Henderson
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Richard Henderson not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  Richard Henderson
-makes no representations about the suitability of this software for
-any purpose.  It is provided "as is" without express or implied
-warranty.
-
-RICHARD HENDERSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL RICHARD HENDERSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-atk-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-atk-gtk-3139.so
deleted file mode 100644
index 31c1f9c..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-atk-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-awt-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-awt-gtk-3139.so
deleted file mode 100644
index 621dde8..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-awt-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-cairo-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-cairo-gtk-3139.so
deleted file mode 100644
index 935c918..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-cairo-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gnome-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gnome-gtk-3139.so
deleted file mode 100644
index a75c158..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gnome-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gtk-3139.so
deleted file mode 100644
index fc3addc..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-mozilla-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-mozilla-gtk-3139.so
deleted file mode 100644
index 4a21b7a..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-mozilla-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-pi-gtk-3139.so b/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-pi-gtk-3139.so
deleted file mode 100644
index 5f933a8..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/lib/linux-x86_64/swt-pi-gtk-3139.so
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/core/Linux.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/core/Linux.java
deleted file mode 100644
index 13106cd..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/core/Linux.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.io.File;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.IPlatform;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Platform;
-import org.eclipse.epp.installer.core.operations.CleanupRegisteredProductsOperation;
-import org.eclipse.epp.installer.core.operations.RegisterProductOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.OperationProxyManager;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-import org.eclipse.epp.installer.internal.linux.core.EclipseRegistry;
-import org.eclipse.epp.installer.internal.linux.core.ProductRegistry;
-import org.eclipse.epp.installer.internal.linux.core.RemoveRegistryKeyAction;
-import org.eclipse.epp.installer.internal.linux.core.RemoveRegistryValueAction;
-import org.eclipse.epp.installer.internal.linux.core.operations.CleanupLinuxRegistryOperation;
-import org.eclipse.epp.installer.internal.linux.core.operations.CreateRegistryKeyOperation;
-import org.eclipse.epp.installer.internal.linux.core.operations.LinuxRegisterProductOperation;
-import org.eclipse.epp.installer.internal.linux.core.operations.RegistrySetValueOperation;
-
-
-public class Linux extends OperationProxyManager implements IPlatform {
-	
-	public final static String PLUGIN_ID = "org.eclipse.epp.installer.core.linux";	
-	
-	public void initialize() {
-		//register linux-specific rollback actions
-		InstallLog.registerAction(CreateRegistryKeyOperation.REGISTRY_CREATE_KEY, new RemoveRegistryKeyAction());
-		InstallLog.registerAction(RegistrySetValueOperation.REGISTRY_SET_VALUE, new RemoveRegistryValueAction());
-		//add linux-specific environment variables
-		String folderPath = "/opt";
-		Platform.setVar("ProgramFiles", folderPath);
-		
-		// register operation stubs		
-		registerOperationStub(RegisterProductOperation.class, LinuxRegisterProductOperation.class);
-		registerOperationStub(CleanupRegisteredProductsOperation.class, CleanupLinuxRegistryOperation.class);
-		
-	}
-
-	public int GetDriveType(String driveRootPath) {
-		//TODO: add corrections here. For example checks for network shares. And other.
-		return IPlatform.DRIVE_FIXED;
-	}
-
-	public boolean canRead(File file) {
-		return file.canRead();
-	}
-
-	public boolean canWrite(File file) {
-		return file.canWrite();
-	}
-	
-	public String[] readEclipseLocationsFromRegistry() {
-		return EclipseRegistry.readEclipseLocationsFromRegistry();
-	}
-
-	public String[] readPreviousProductInstallLocations(InstallOptions options) {
-		return ProductRegistry.readPreviousProductInstallLocations(options); 
-	}
-
-	public String[] otherEclipseLocations() {
-		String homeFolder = System.getProperty("user.home");
-		if( homeFolder == null )
-			return null;
-		return new String[] {
-			homeFolder,
-			homeFolder + File.separator + "Desktop"
-		};
-	}
-
-	public StubOperation resolveProxyOperation(ProxyOperation operation) {
-		return this.resolveProxy(operation);
-	}
-
-	public boolean setFileCreationTime(String path, long time) {
-		return false;
-	}
-
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		initialize();
-	}
-
-	public IStatus readProductUninstallPropertiesFromRegistry(InstallOptions installOptions, Map productProperties) {
-		throw new UnsupportedOperationException("Not implemented");
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/EclipseRegistry.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/EclipseRegistry.java
deleted file mode 100644
index 749b83e..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/EclipseRegistry.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class EclipseRegistry {
-
-	/**
-	 * The name of the value in the product registry that contains the product
-	 * installation location. Used by Rational Studio 6.0
-	 */
-	private static final String LOCATION_VALUE_NAME = "location";
-
-	/**
-	 * The name of the value in the product registry that contains the product
-	 * installation location. Used by WebSphere Application Developer 5.x
-	 */
-	private static final String INSTALLDIR_VALUE_NAME = "installdir";
-
-	private static final String RATIONAL_SDP_KEY1 = "IBM/Rational/Software Development Platform/products";
-
-	private static final String RATIONAL_SDP_KEY2 = "IBM/Rational/SoftwareDevelopmentPlatform/products";
-
-	private static final String WEBSPHERE_STUDIO_20_KEY = "IBM/WebSphere Studio/2.0/product";
-
-	private static final String WEBSPHERE_STUDIO_21_KEY = "IBM/WebSphere Studio/2.1/product";
-
-	/** No instances */
-	private EclipseRegistry() {
-	}
-
-	/**
-	 * Answer possible IBM installation locations extracted from the registry
-	 * 
-	 * @return an array of paths to Eclipse (not <code>null</code>, contains
-	 *         no <code>null</code>s)
-	 */
-	public static String[] readEclipseLocationsFromRegistry() {
-		List result = new ArrayList();
-
-		addEclipseLocations(RATIONAL_SDP_KEY1, LOCATION_VALUE_NAME, result);
-		addEclipseLocations(RATIONAL_SDP_KEY2, LOCATION_VALUE_NAME, result);
-		addEclipseLocations(WEBSPHERE_STUDIO_20_KEY, INSTALLDIR_VALUE_NAME,
-				result);
-		addEclipseLocations(WEBSPHERE_STUDIO_21_KEY, INSTALLDIR_VALUE_NAME,
-				result);
-
-		String[] resultAsArray = new String[result.size()];
-		result.toArray(resultAsArray);
-		return resultAsArray;
-	}
-
-	/**
-	 * Extract install directories from the registry if possible
-	 * 
-	 * @param keyPath
-	 *            the registry key containing subkeys to be examined (not
-	 *            <code>null</code>)
-	 * @param locationString
-	 *            name of subKey field which contains installation location
-	 * @param result
-	 *            installation location
-	 */
-	private static void addEclipseLocations(String keyPath,
-			String locationString, List result) {
-
-		Markers.MarkerKey keys[] = Markers.openKeys(keyPath);
-
-		if (keys != null)
-			for (int i = 0; i < keys.length; ++i) {
-				Markers.MarkerKey key = keys[i];
-
-				if (key.isValid()) {
-					try {
-						String location = key.getValue(locationString);
-						if (location != null && location.trim().length() > 0)
-							result.add(location);
-					} catch (IOException e) {						
-						// e.printStackTrace();
-					}
-				}
-			}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/Markers.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/Markers.java
deleted file mode 100644
index 3bcc88e..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/Markers.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.epp.installer.core.IPlatform;
-import org.eclipse.epp.installer.core.Platform;
-
-
-public class Markers {
-
-	/**
-	 * Represent makers registry key.
-	 * 
-	 */
-	public static class MarkerKey {
-		/**
-		 * Key Path.
-		 */
-		private File keyPath;
-
-		private String keyName;
-
-		MarkerKey(File path, String keyName) {
-			this.keyPath = path;
-			this.keyName = keyName;
-		}
-
-		public boolean isValid() {
-			if (!keyPath.exists()) {
-				return keyPath.mkdirs();
-			}
-			return true;
-		}
-		public boolean isExist() {
-			if( isValid()) {
-				File keyFile = new File(this.keyPath, this.keyName);
-				return keyFile.exists();
-			}
-			return false;
-		}
-
-		/**
-		 * Set specified value into value. @see Properties for more information about value format.
-		 * @param valueName.
-		 * @param value.
-		 * @return <code>false</code> if value can't be setted.
-		 * @throws IOException if file operations exception occured.
-		 */
-		public boolean setValue(String valueName, String value)
-				throws IOException {
-			if (!isValid()) {
-				return false;
-			}
-			File keyFile = new File(this.keyPath, this.keyName);
-			Properties properties = new Properties();
-			if (keyFile.exists()) {
-				FileInputStream fis = new FileInputStream(keyFile);
-				if (fis != null) {
-					properties.load(fis);
-				} else {
-					return false;
-				}
-			}
-			properties.setProperty(valueName, value);
-			FileOutputStream fos = new FileOutputStream(keyFile);
-			if (fos == null) {
-				return false;
-			}
-			properties.store(fos, null);
-
-			return true;
-		}
-		
-		public String getValue( String valueName ) throws IOException {
-			if (!isValid()) {
-				return null;
-			}
-			File keyFile = new File(this.keyPath, this.keyName);
-			Properties properties = new Properties();
-			if (keyFile.exists()) {
-				FileInputStream fis = new FileInputStream(keyFile);
-				if (fis != null) {
-					properties.load(fis);
-				} else {
-					return null;
-				}
-			}
-			if( properties.containsKey(valueName) ) {
-				return properties.getProperty(valueName);
-			}
-			return null;
-		}
-
-		public boolean removeValue(String valueName) throws IOException {
-			if (!isValid()) {
-				return false;
-			}
-			File keyFile = new File(this.keyPath, this.keyName);
-			Properties properties = new Properties();
-			if (keyFile.exists()) {
-				FileInputStream fis = new FileInputStream(keyFile);
-				if (fis != null) {
-					properties.load(fis);
-				} else {
-					return false;
-				}
-			}
-			if( properties.containsKey(valueName)) {
-				properties.remove(valueName);				
-			}
-			else {
-				return true;
-			}
-			FileOutputStream fos = new FileOutputStream(keyFile);
-			if (fos == null) {
-				return false;
-			}
-			properties.store(fos, null);
-
-			return true;
-		}
-	}
-
-	/**
-	 * Opens root key value.
-	 * 
-	 * @return
-	 */
-	public static MarkerKey openKey(String root, String keyName) {
-		MarkerKey key = new MarkerKey(new File( getRoot() + root), keyName);
-		if (key.isValid()) {
-			return key;
-		}
-		return null;
-	}
-	
-	public static String getRoot() {
-
-		if(canWrite(new File("/etc/"))) return "/etc/";
-		else return System.getProperty("user.home");
-	}
-
-	public static MarkerKey[] openKeys(String root) {
-		File keyPath = new File( getRoot() + root);
-		if( !keyPath.exists() ) {
-			return null;
-		}
-		File[] files = keyPath.listFiles();
-		
-		List keys = new ArrayList();
-		
-		for( int i = 0; i < files.length; ++ i ) {
-			File file = files[i];
-			if( file.isFile() ) {
-				keys.add( new MarkerKey(keyPath, file.getName()));
-			}
-		}
-		MarkerKey[] keysAsArray = new MarkerKey[keys.size()];
-		keys.toArray(keysAsArray);
-		return keysAsArray;
-	}
-
-	public static boolean removeKey(String root) {
-		File file = new File( getRoot() + root );
-		if (file.exists()) {
-			return file.delete();
-		}
-		return true;
-	}
-	
-	private static boolean canRead(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canRead(file);
-		}
-		// in case there is no platform implementation
-		return file.canRead();
-	}
-	
-	private static boolean canWrite(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canWrite(file);
-		}
-		// in case there is no platform implementation
-		return file.canWrite();
-	}
-	
-	//permissions
-	public static boolean checkWriteRootPermissions(String root) {
-		IPath path = new Path(getRoot() + root);
-		path = path.makeAbsolute();
-		for (int i = 0; i <= path.segmentCount(); ++i) {
-			IPath segment = path.removeLastSegments(i);
-			//System.out.println("Checking:" + segment);
-			File pathFile = segment.toFile();
-			if (pathFile.exists()) {
-				if (!pathFile.isDirectory()) {
-					return false;
-				}
-				if (!canWrite(pathFile)) {
-					return false;
-				}
-				if (!canRead(pathFile)) {
-					return false;
-				}
-				break;
-			}
-		}
-		return true;
-	}
-	public static String checkWriteRootPermissionsAt(String root) {
-		IPath path = new Path(getRoot() + root);
-		path = path.makeAbsolute();
-		for (int i = 0; i <= path.segmentCount(); ++i) {
-			IPath segment = path.removeLastSegments(i);
-			//System.out.println("Checking:" + segment);
-			File pathFile = segment.toFile();
-			if (pathFile.exists()) {
-				if (!pathFile.isDirectory()) {
-					return segment.toOSString();
-				}
-				if (!canWrite(pathFile)) {
-					return segment.toOSString();
-				}
-				if (!canRead(pathFile)) {
-					return segment.toOSString();
-				}
-				break;
-			}
-		}
-		return "";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/MarkersComparableWarning.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/MarkersComparableWarning.java
deleted file mode 100644
index 686bd44..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/MarkersComparableWarning.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.operations.IWarningComparableStatus;
-
-
-public class MarkersComparableWarning extends Status implements
-		IWarningComparableStatus {
-	private String fMarkersPath;
-	public MarkersComparableWarning(String path, int severity, String pluginId, int code, String message, Throwable exception) {
-		super(severity, pluginId, code, message, exception);
-		this.fMarkersPath = path;
-	}
-	public boolean equals(Object obj) {
-		if(obj instanceof MarkersComparableWarning ) {
-			MarkersComparableWarning w = (MarkersComparableWarning)obj;
-			return this.fMarkersPath.equals(w.fMarkersPath);
-		}
-		return super.equals(obj);
-	}	
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/ProductRegistry.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/ProductRegistry.java
deleted file mode 100644
index 237b324..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/ProductRegistry.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-
-
-public class ProductRegistry {
-
-	/**
-	 * Registry path used to store value in.
-	 */
-	public static final String REGISTRY_SOFTWARE_KEY = "/Instantiations/Installer";
-
-	public static final String LOCATION_VALUE_NAME = "location";
-
-	/** No instances */
-	private ProductRegistry() {
-	}
-
-	private static String getResolvedString(String string, InstallOptions options) {
-		return Variables.resolve(options.getString(string), options);
-	}
-	
-	private static String getProductPath(InstallOptions options) {
-		String productPath = REGISTRY_SOFTWARE_KEY + "/"
-				+ getResolvedString(IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER, options) + "/" 
-				+ getResolvedString(IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, options);
-		return productPath;
-	}	
-
-	public static String[] readPreviousProductInstallLocations(
-			InstallOptions options) {
-		List result = new ArrayList();
-
-		String productPath = getProductPath(options);		
-		Markers.MarkerKey[] keys = Markers.openKeys(productPath);
-		if (keys != null) {
-			for( int i = 0; i < keys.length; ++i) {
-				Markers.MarkerKey key = keys[i];
-				if( key.isValid() ) {
-					try {
-						String location = key.getValue(LOCATION_VALUE_NAME);
-						if( location != null ) {
-							result.add( location );
-						}
-					}
-					catch( IOException ex ) {
-						if( options.isVerbose() ) {
-							ex.printStackTrace();
-						}
-					}
-				}
-			}
-		}
-			
-		String[] resultAsArray = new String[result.size()];
-		result.toArray(resultAsArray);
-		return resultAsArray;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryKeyAction.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryKeyAction.java
deleted file mode 100644
index ee2ba2c..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryKeyAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Linux;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.linux.core.Markers.MarkerKey;
-
-
-public class RemoveRegistryKeyAction implements IRollbackAction {
-
-	public IStatus rollback(InstallLogEntry entry) {
-		String arg = entry.getArgument();
-
-		if( !Markers.checkWriteRootPermissions(arg) ) {			
-			return new MarkersComparableWarning(arg, IStatus.WARNING,
-					Linux.PLUGIN_ID, 0, "Failed to access Markers registry at:"
-							+ arg, null);
-		}
-		MarkerKey[] subKeys = Markers.openKeys( arg );
-		if (subKeys == null) {
-			return new Status(IStatus.INFO, Linux.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-					null);
-		}
-		if (subKeys.length == 0)
-			if( !Markers.removeKey( arg ) ) {
-				return new Status(IStatus.INFO, Linux.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						null);
-			}
-		return Status.OK_STATUS;
-	}
-
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Removing registry value: {0}",
-				new Object[] { entry.getArgument() });
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryValueAction.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryValueAction.java
deleted file mode 100644
index 04bf453..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/RemoveRegistryValueAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Linux;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-
-public class RemoveRegistryValueAction implements IRollbackAction {
-
-	public IStatus rollback(InstallLogEntry entry) {
-		String arg = entry.getArgument();
-		String[] values = arg.split(":");
-		String keyPath = values[ 0 ]; 
-		String keyName = values[ 1 ];
-		String name = values[ 2 ];
-
-		if( !Markers.checkWriteRootPermissions(keyPath) ) {
-			return new MarkersComparableWarning(keyPath, IStatus.WARNING,
-					Linux.PLUGIN_ID, 0, "Failed to access Markers registry at:"
-							+ keyPath, null);
-		}
-		Markers.MarkerKey key = Markers.openKey( keyPath, keyName );
-		if( key != null ) {
-			try {
-				if( key.removeValue( name ) ) {
-					return Status.OK_STATUS; 
-				}
-				else {
-					return new Status(IStatus.ERROR, Linux.PLUGIN_ID,
-							IErrorConstants.ERROR_REGISTRY_ERROR,
-							"Can't remove marker key value: " + name,
-							null);
-				}
-			}
-			catch( IOException e ) {				
-				return new Status(IStatus.ERROR, Linux.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR,
-						"Can't remove marker key value: " + name,
-						e);			
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Removing registry value: {0}",
-				new Object[] { entry.getArgument() });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CleanupLinuxRegistryOperation.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CleanupLinuxRegistryOperation.java
deleted file mode 100644
index e6c4089..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CleanupLinuxRegistryOperation.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core.operations;
-
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.ISingleton;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-
-
-public class CleanupLinuxRegistryOperation extends StubOperation implements
-ISequence, ISingleton{
-
-	public CleanupLinuxRegistryOperation(ProxyOperation operation) {
-		super(operation);
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CreateRegistryKeyOperation.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CreateRegistryKeyOperation.java
deleted file mode 100644
index 773e9ca..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/CreateRegistryKeyOperation.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core.operations;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Linux;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.linux.core.Markers;
-import org.eclipse.epp.installer.internal.linux.core.MarkersComparableWarning;
-
-
-public class CreateRegistryKeyOperation extends InstallOperation {
-	/**
-	 * Log entry opcode for this operation.
-	 */
-	public final static int REGISTRY_CREATE_KEY = (int) 'K';
-
-	/**
-	 * Registry path in HKEY_LOCAL_MACHINE.
-	 */
-	private String path;
-
-	/**
-	 * Registry key name.
-	 */
-	private String name;
-
-	/**
-	 * Construct new instance of CreateRegistryKeyOperation, with path and key
-	 * name.
-	 * 
-	 * @param path
-	 *            registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name
-	 *            key name.
-	 */
-	public CreateRegistryKeyOperation(String path, String name) {
-		this.path = path;
-		this.name = name;
-	}
-
-	protected IStatus run(Context installer) {
-		if (!Markers.checkWriteRootPermissions(path)) {
-			String atPath = Markers.checkWriteRootPermissionsAt(path);
-			return new MarkersComparableWarning(atPath, IStatus.WARNING,
-					Linux.PLUGIN_ID, 0, "Failed to access Markers registry at:"
-							+ path, null);
-		}
-		Markers.MarkerKey key = Markers.openKey(path, name);
-		if (key != null) {
-			installer.getInstallLog()
-					.addEntry(
-							new InstallLogEntry(REGISTRY_CREATE_KEY, path + "/"
-									+ name));
-			return Status.OK_STATUS;
-		} else {
-			return new Status(IStatus.ERROR, Linux.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't create marker key: " + name, null);
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/LinuxRegisterProductOperation.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/LinuxRegisterProductOperation.java
deleted file mode 100644
index 99bf145..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/LinuxRegisterProductOperation.java
+++ /dev/null
@@ -1,249 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core.operations;
-
-import java.io.IOException;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.ISingleton;
-import org.eclipse.epp.installer.core.operations.RegisterProductOperation;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-import org.eclipse.epp.installer.internal.linux.core.Markers;
-import org.eclipse.epp.installer.internal.linux.core.ProductRegistry;
-import org.eclipse.epp.installer.internal.linux.core.Markers.MarkerKey;
-
-
-/**
- * RegisterProductOperation used to create correct path to installer product.
- * 
- */
-public class LinuxRegisterProductOperation extends StubOperation implements
-		ISequence, ISingleton {
-
-	public LinuxRegisterProductOperation(ProxyOperation operation ) {
-		super( operation );
-	}
-	
-	protected InstallOptions getOptions() {
-		return ((RegisterProductOperation)this.getProxyOperation()).getInstallOptions();
-	}
-	
-	private String getResolvedString(String string) {
-		InstallOptions options = this.getOptions();
-		return Variables.resolve(options.getString(string), options);
-	}
-
-	/**
-	 * Retrieve and resolve a value for either the first option key, or if failing that,
-	 * then the second option key.
-	 * 
-	 * @param keys the keys used to retrieve value from install options. This method tries
-	 *            the first key and if that fails, tries the second, and so on in order,
-	 *            stopping when a key is found to have a value or all keys have been
-	 *            tried.
-	 * @return the resolved value or null if undetermined
-	 */
-	private String getResolvedOption(String[] keys) {
-		InstallOptions options = getOptions();
-		String value = null;
-		for (int i = 0; i < keys.length; i++) {
-			String eachKey = keys[i];
-			if (eachKey != null && eachKey.length() != 0) {
-				value = options.getString(eachKey);
-				if (value != null && value.length() > 0)
-					break;
-			}
-		}
-		if (value != null)
-			value = Variables.resolve(value, options);
-		return value;
-	}
-	
-	private boolean keyExists(String path, String name) {
-		MarkerKey key = Markers.openKey(path, name);
-		if (key != null)
-			return key.isExist();
-		return false;
-	}
-	
-	private boolean valueEquals(String path, String name, String field, String value) {
-		MarkerKey key = Markers.openKey(path, name);
-		if (key != null) {
-			try {
-				String v = key.getValue(field);
-				if (v != null && v.trim().length() > 0)
-					if (v.equals(value))
-						return true;
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return false;
-	}
-	
-	// TODO: javadoc
-	private String addKey(String path, String name, String field, String value) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0
-				&& field != null && field.length() != 0 && value != null) {
-			String regPath = path + "/" + name;
-			String nameWithNumber = name;
-			int number = 0;
-
-			while (true) {
-				if (!keyExists(path, nameWithNumber)) {
-
-					createRegistryKeyOperation(path, nameWithNumber);
-					addRegistryValueOperation(path, nameWithNumber, field, value);
-					break;
-				} else if (valueEquals(path, nameWithNumber, field, value)) {
-
-					// create key and add value even if they are exists in
-					// order to add log record
-					createRegistryKeyOperation(path, nameWithNumber);
-					addRegistryValueOperation(path, nameWithNumber, field, value); 
-					break;
-				}
-				nameWithNumber = name + " (" + number + ")";
-				regPath = path + "/" + nameWithNumber;
-				number++;
-			}
-			return regPath;
-		}
-		System.out.println("addKey: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		System.out.println("   field: " + field);
-		System.out.println("   value: " + value);
-		return null;
-	}
-	
-	// TODO: javadoc
-	private String addKey(String path, String[] optionKeys, String field, String value) {
-		if (optionKeys != null && optionKeys.length != 0) {
-			String name = getResolvedOption(optionKeys);
-			return addKey(path, name, field, value);
-		}
-		System.out.println("addKey: invalid argument");
-		System.out.println("   optionKeys: " + optionKeys);
-		return null;
-	}
-	
-	private boolean addRegistryValueOperation(String path, String name, String field, String[] optionKeys) {
-		String value = getResolvedOption(optionKeys);
-		if (value != null) {
-			return addRegistryValueOperation(path, name, field, value);
-		}
-		System.out.println("RegistrySetValueOperation: cannot resolve keys");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		System.out.println("   field: " + field);
-		StringBuffer buf = new StringBuffer(100);
-		for (int i = 0; i < optionKeys.length; i++) {
-			buf.append(i == 0 ? "   keys: " : ", ");
-			buf.append(optionKeys[i]);
-		}
-		System.out.println(buf.toString());
-		return false;
-	}
-
-	private boolean addRegistryValueOperation(String path, String name, String field, String value) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0 && field != null && field.length() != 0 && value != null) {
-			add(new RegistrySetValueOperation(path, name, field, value));
-			return true;
-		}
-		System.out.println("RegistrySetValueOperation: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		System.out.println("   field: " + field);
-		System.out.println("   value: " + value);
-		return false;
-	}
-	
-	private String createRegistryKeyOperation(String path, String[] optionKeys, boolean checkExistance) {
-		String name = getResolvedOption(optionKeys);
-		if (name != null && name.length() != 0) {
-			return createRegistryKeyOperation(path, name, checkExistance);
-		}
-		System.out.println("CreateRegistryKeyOperation: cannot resolve keys");
-		System.out.println("   path: " + path);
-		StringBuffer buf = new StringBuffer(100);
-		for (int i = 0; i < optionKeys.length; i++) {
-			buf.append(i == 0 ? "   keys: " : ", ");
-			buf.append(optionKeys[i]);
-		}
-		System.out.println(buf.toString());
-		return null;
-	}
-
-	private String createRegistryKeyOperation(String path, String[] optionKeys) {
-		return createRegistryKeyOperation(path, optionKeys, false);
-	}
-	
-	private String createRegistryKeyOperation(String path, String name, boolean checkExistance) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0) {
-			if (checkExistance) {
-				if (!keyExists(path, name)) // do nothing if key is already created
-					add(new CreateRegistryKeyOperation(path, name));
-			} else {
-				add(new CreateRegistryKeyOperation(path, name));
-			}
-			return path + "/" + name;
-		}
-		System.out.println("CreateRegistryKeyOperation: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		return null;
-	}
-
-	private String createRegistryKeyOperation(String path, String name) {
-		return createRegistryKeyOperation(path, name, false);
-	}
-	
-	/**
-	 * Add needed sub oprtations to set of Prerequisites.
-	 * 
-	 * @throws Exception
-	 */
-	public void prepare() throws Exception {
-		// String productName =
-		// getResolvedString(InstallOptions.OPTION_PRODUCT_NAME);
-		String installDir = getResolvedString(InstallOptions.OPTION_INSTALL_DIR);
-		// 
-
-		String publisherRegPath = createRegistryKeyOperation(ProductRegistry.REGISTRY_SOFTWARE_KEY, new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER, InstallOptions.OPTION_PUBLISHER
-		});
-		if (publisherRegPath != null) {
-
-			String productNameRegPath = createRegistryKeyOperation(publisherRegPath, new String[]{
-				IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, InstallOptions.OPTION_PRODUCT_NAME
-			});
-			if (productNameRegPath != null) {
-
-				addKey(productNameRegPath,
-						new String[] {
-								IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_VERSION,
-								InstallOptions.OPTION_PRODUCT_VERSION },
-						ProductRegistry.LOCATION_VALUE_NAME, installDir);
-			}
-		}
-	}
-
-	/**
-	 * Return operation name.
-	 */
-	public String toString() {
-		return "Registering product...";
-	}
-	
-	// singleton operation.
-	public boolean equals(Object obj) {
-		return getClass().isInstance(obj);
-	}
-
-	public int hashCode() {
-		return getClass().hashCode();
-	}	
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RegistrySetValueOperation.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RegistrySetValueOperation.java
deleted file mode 100644
index 4e65e97..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RegistrySetValueOperation.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core.operations;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Linux;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.linux.core.Markers;
-import org.eclipse.epp.installer.internal.linux.core.MarkersComparableWarning;
-
-
-/**
- * RegistrySetValueOperation used to set value of specified Windows registry
- * key.<br/>
- * 
- * Key should be pressent in HKEY_LOCAL_MACHINE section of registry to perform
- * this operation.<br/> To create key you can use:
- * {@link org.eclipse.epp.installer.internal.linux.core.operations.CreateRegistryKeyOperation }.<br/>
- * 
- * Only string value are supported at the moment.<br/>
- * 
- * This operation is Windows only specific.<br/>
- */
-public class RegistrySetValueOperation extends InstallOperation {
-
-	/**
-	 * Log entry opcode for this operation.
-	 */
-	public final static int REGISTRY_SET_VALUE = (int) 'V';
-
-	/**
-	 * Registry path.
-	 */
-	private String path;
-
-	/**
-	 * Registry key name.
-	 */
-	private String keyName;
-	
-	/**
-	 * Registry key value name.
-	 */
-	private String name;
-
-	/**
-	 * Value to set.
-	 */
-	private Object value;
-
-	/**
-	 * Construct new instance of RegistrySetValueOperation, with path, key name
-	 * and value.
-	 * 
-	 * @param path
-	 *            registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name
-	 *            key name.
-	 * @param value
-	 *            value to set.
-	 */
-	public RegistrySetValueOperation(String path, String keyName, String name, Object value) {
-		this.path = path;
-		this.keyName = keyName;
-		this.name = name;		
-		this.value = value;
-	}
-
-	/**
-	 * Run specified operation.
-	 * 
-	 * To successful perform of this operation, user must have rights to write
-	 * into HKEY_LOCAL_MACHINE section of registry.
-	 * 
-	 * @return execution status code. If operation coul'd not be performed then
-	 *         error status with ERROR_REGISTRY_ERROR code are returned. See
-	 *         {@link org.eclipse.epp.installer.core.IErrorConstants } for
-	 *         details.
-	 */
-	protected IStatus run(Context installer) {
-		if( !Markers.checkWriteRootPermissions(path) ) {
-			String atPath = Markers.checkWriteRootPermissionsAt(path);
-			return new MarkersComparableWarning(atPath, IStatus.WARNING,
-					Linux.PLUGIN_ID, 0, "Failed to access Markers registry at:"
-							+ path, null);
-		}
-		Markers.MarkerKey key = Markers.openKey(path, keyName);
-		if (key.isValid()) {
-			try {
-				String sValue = null;
-				if (value instanceof String) {
-					sValue = (String) value;
-				} else {
-					sValue = value.toString();
-				}
-				if (key.setValue(name, sValue)) {
-					installer.getInstallLog().addEntry(new InstallLogEntry(REGISTRY_SET_VALUE, path + ":" + keyName + ":" + name));
-					return Status.OK_STATUS;
-				}
-			} catch (IOException e) {
-				return new Status(IStatus.ERROR, Linux.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR,
-						"Can't set marker key value: " + name + " to " + value,
-						e);
-			}
-		}
-		return new Status(IStatus.ERROR, Linux.PLUGIN_ID,
-				IErrorConstants.ERROR_REGISTRY_ERROR,
-				"Can't create marker key: " + name, null);
-	}
-
-	/**
-	 * Return operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Writing registry value {0}.",
-				new Object[] { name });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RemoveRegistryKeyOperation.java b/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RemoveRegistryKeyOperation.java
deleted file mode 100644
index 75effe2..0000000
--- a/plugins/org.eclipse.epp.installer.core.linux/src/org/eclipse/epp/installer/internal/linux/core/operations/RemoveRegistryKeyOperation.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.epp.installer.internal.linux.core.operations;
-
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-public class RemoveRegistryKeyOperation extends InstallOperation {
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/.classpath b/plugins/org.eclipse.epp.installer.core.win32/.classpath
deleted file mode 100644
index d84eedc..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="registry"/>
-	<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/plugins/org.eclipse.epp.installer.core.win32/.cvsignore b/plugins/org.eclipse.epp.installer.core.win32/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.core.win32/.project b/plugins/org.eclipse.epp.installer.core.win32/.project
deleted file mode 100644
index da57778..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.core.win32</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/plugins/org.eclipse.epp.installer.core.win32/ICE_JNIRegistry.dll b/plugins/org.eclipse.epp.installer.core.win32/ICE_JNIRegistry.dll
deleted file mode 100644
index 5463a70..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/ICE_JNIRegistry.dll
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.win32/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.core.win32/META-INF/MANIFEST.MF
deleted file mode 100644
index 3d3b918..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.epp.installer.core.win32;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %fragmentProvider
-Fragment-Host: org.eclipse.epp.installer.core;bundle-version="0.5.0"
-Bundle-ClassPath: .
-Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))
diff --git a/plugins/org.eclipse.epp.installer.core.win32/build.properties b/plugins/org.eclipse.epp.installer.core.win32/build.properties
deleted file mode 100644
index 34dd7aa..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/,\
-           registry/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               fragment.xml,\
-               ICE_JNIRegistry.dll,\
-               os.dll
diff --git a/plugins/org.eclipse.epp.installer.core.win32/fragment.xml b/plugins/org.eclipse.epp.installer.core.win32/fragment.xml
deleted file mode 100644
index b325b2c..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/fragment.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<fragment>
-   <extension
-         point="org.eclipse.epp.installer.core.platform">
-      <platform
-            class="org.eclipse.epp.installer.core.Win32">
-      </platform>
-   </extension>
-
-</fragment>
diff --git a/plugins/org.eclipse.epp.installer.core.win32/os.dll b/plugins/org.eclipse.epp.installer.core.win32/os.dll
deleted file mode 100644
index 432eaea..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/os.dll
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/HexNumberFormat.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/HexNumberFormat.java
deleted file mode 100644
index 3a15472..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/HexNumberFormat.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.lang.*;
-import java.text.*;
-import java.util.*;
-
-/**
- * The HexNumberFormat class implements the code necessary
- * to format and parse Hexidecimal integer numbers.
- *
- * @version 3.1.3
- *
- * @author Timothy Gerard Endres, <a href="mailto:time@ice.com">time@ice.com</a>.
- * @see java.text.NumberFormat
- */
-
-public
-class		HexNumberFormat
-extends		Format
-	{																
-	static public final String		RCS_ID = "$Id: HexNumberFormat.java,v 1.1 2007/05/28 15:17:52 akazantse Exp $";
-	static public final String		RCS_REV = "$Revision: 1.1 $";
-
-	private static char[]		lowChars;
-	private static char[]		uprChars;
-
-	private int					count;
-	private String				pattern;
-	private static char[]		hexChars;
-
-	static
-		{
-		HexNumberFormat.lowChars = new char[20];
-		HexNumberFormat.uprChars = new char[20];
-		
-		HexNumberFormat.uprChars[0] = HexNumberFormat.lowChars[0] = '0';
-		HexNumberFormat.uprChars[1] = HexNumberFormat.lowChars[1] = '1';
-		HexNumberFormat.uprChars[2] = HexNumberFormat.lowChars[2] = '2';
-		HexNumberFormat.uprChars[3] = HexNumberFormat.lowChars[3] = '3';
-		HexNumberFormat.uprChars[4] = HexNumberFormat.lowChars[4] = '4';
-		HexNumberFormat.uprChars[5] = HexNumberFormat.lowChars[5] = '5';
-		HexNumberFormat.uprChars[6] = HexNumberFormat.lowChars[6] = '6';
-		HexNumberFormat.uprChars[7] = HexNumberFormat.lowChars[7] = '7';
-		HexNumberFormat.uprChars[8] = HexNumberFormat.lowChars[8] = '8';
-		HexNumberFormat.uprChars[9] = HexNumberFormat.lowChars[9] = '9';
-		HexNumberFormat.uprChars[10] = 'A'; HexNumberFormat.lowChars[10] = 'a';
-		HexNumberFormat.uprChars[11] = 'B'; HexNumberFormat.lowChars[11] = 'b';
-		HexNumberFormat.uprChars[12] = 'C'; HexNumberFormat.lowChars[12] = 'c';
-		HexNumberFormat.uprChars[13] = 'D'; HexNumberFormat.lowChars[13] = 'd';
-		HexNumberFormat.uprChars[14] = 'E'; HexNumberFormat.lowChars[14] = 'e';
-		HexNumberFormat.uprChars[15] = 'F'; HexNumberFormat.lowChars[15] = 'f';
-		}
-
-    static public final HexNumberFormat
-	getInstance()
-		{
-		return new HexNumberFormat( "XXXXXXXX" );
-		}
-
-	public
-	HexNumberFormat( String pattern )
-		{
-		super();
-		this.pattern = pattern;
-		this.count = pattern.length();
-		this.hexChars =
-			( pattern.charAt(0) == 'X'
-				? HexNumberFormat.uprChars
-				: HexNumberFormat.lowChars );
-		}
-
-	public String
-	format( int hexNum )
-		throws IllegalArgumentException
-		{
-		FieldPosition pos = new FieldPosition(0);
-		StringBuffer hexBuf = new StringBuffer(8);
-
-		this.format( new Integer( hexNum ), hexBuf, pos );
-
-		return hexBuf.toString();
-		}
-
-	public StringBuffer
-	format( Object hexInt, StringBuffer appendTo, FieldPosition fieldPos )
-		throws IllegalArgumentException
-		{
-		char[] hexBuf = new char[16];
-		
-		int end = fieldPos.getEndIndex();
-		int beg = fieldPos.getBeginIndex();
-
-		int hexNum = ((Integer) hexInt).intValue();
-
-		for ( int i = 7 ; i >= 0 ; --i )
-			{
-			hexBuf[i] = this.hexChars[ (hexNum & 0x0F) ];
-			hexNum = hexNum >> 4;
-			}
-
-		for ( int i = (8 - this.count) ; i < 8 ; ++i )
-			{
-			appendTo.append( hexBuf[i] );
-			}
-
-		return appendTo;
-		}
-
-	public int
-	parse( String source )
-		throws ParseException
-		{
-		throw new ParseException( "unimplemented!", 0 );
-		}
-
-	public Object
-	parseObject( String source, ParsePosition pos )
-		{
-		return null;
-		}
-
-	}
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchKeyException.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchKeyException.java
deleted file mode 100644
index e733fef..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchKeyException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-/**
- * This exception is used to indicate that no such key exists in the registry.
- *
- * @version 3.1.3
- *
- * @author Timothy Gerard Endres,
- *    <a href="mailto:time@ice.com">time@ice.com</a>.
- */
-
-public class
-NoSuchKeyException extends RegistryException
-	{
-	static public final String	RCS_ID = "$Id: NoSuchKeyException.java,v 1.1 2007/05/28 15:17:52 akazantse Exp $";
-	static public final String	RCS_REV = "$Revision: 1.1 $";
-	static public final String	RCS_NAME = "$Name:  $";
-
-	public
-	NoSuchKeyException()
-		{
-		super();
-		}
-
-	public
-	NoSuchKeyException( String msg )
-		{
-		super( msg, Registry.ERROR_FILE_NOT_FOUND );
-		}
-
-	public
-	NoSuchKeyException( String msg, int regErr )
-		{
-		super( msg, regErr );
-		}
-
-	}
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchValueException.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchValueException.java
deleted file mode 100644
index 1bc67f9..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/NoSuchValueException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-/**
- * This exception is used to indicate that no such key exists in the registry.
- *
- * @version 3.1.3
- *
- * @version $Revision: 1.1 $
- * @author Timothy Gerard Endres,
- *    <a href="mailto:time@ice.com">time@ice.com</a>.
- */
-
-public class
-NoSuchValueException extends RegistryException
-	{
-	static public final String	RCS_ID = "$Id: NoSuchValueException.java,v 1.1 2007/05/28 15:17:52 akazantse Exp $";
-	static public final String	RCS_REV = "$Revision: 1.1 $";
-	static public final String	RCS_NAME = "$Name:  $";
-
-	public
-	NoSuchValueException()
-		{
-		super();
-		}
-
-	public
-	NoSuchValueException( String msg )
-		{
-		super( msg, Registry.ERROR_FILE_NOT_FOUND );
-		}
-
-	public
-	NoSuchValueException( String msg, int regErr )
-		{
-		super( msg, regErr );
-		}
-
-	}
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegBinaryValue.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegBinaryValue.java
deleted file mode 100644
index 1c71d02..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegBinaryValue.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-
-
-/**
- * The RegBinaryValue class represents a binary value in the
- * registry (REG_BINARY).
- *
- * @version 3.1.3
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryKey
- */
-
-public class
-RegBinaryValue extends RegistryValue
-	{
-	byte[]		data;
-	int			dataLen;
-
-
-	public
-	RegBinaryValue( RegistryKey key, String name )
-		{
-		super( key, name, RegistryValue.REG_BINARY );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegBinaryValue( RegistryKey key, String name, int type )
-		{
-		super( key, name, type );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegBinaryValue( RegistryKey key, String name, byte[] data )
-		{
-		super( key, name, RegistryValue.REG_BINARY );
-		this.setData( data );
-		}
-
-	public byte[]
-	getData()
-		{
-		return this.data;
-		}
-
-	public int
-	getLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setData( byte[] data )
-		{
-		this.data = data;
-		this.dataLen = data.length;
-		}
-
-	public byte[]
-	getByteData()
-		{
-		return this.data;
-		}
-
-	public int
-	getByteLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setByteData( byte[] data )
-		{
-		this.data = data;
-		this.dataLen = data.length;
-		}
-
-	public void
-	export( PrintWriter out )
-		{
-		out.println( "\"" + this.getName() + "\"=hex:\\" );
-		RegistryValue.exportHexData( out, this.data );
-		}
-
-	}
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegDWordValue.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegDWordValue.java
deleted file mode 100644
index 15690f0..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegDWordValue.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.PrintWriter;
-
-
-/**
- * The RegDWordValue class represents a double word, or
- * integer, value in the registry (REG_DWORD).
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryKey
- *
- * @version 3.1.3
- *
- */
-
-public class
-RegDWordValue extends RegistryValue
-	{
-	int		data;
-	int		dataLen;
-
-	public
-	RegDWordValue( RegistryKey key, String name )
-		{
-		super( key, name, RegistryValue.REG_DWORD );
-		this.data = 0;
-		this.dataLen = 0;
-		}
-
-	public
-	RegDWordValue( RegistryKey key, String name, int type )
-		{
-		super( key, name, type );
-		this.data = 0;
-		this.dataLen = 0;
-		}
-
-	public
-	RegDWordValue( RegistryKey key, String name, int type, int data )
-		{
-		super( key, name, RegistryValue.REG_DWORD );
-		this.setData( data );
-		}
-
-	public int
-	getData()
-		{
-		return this.data;
-		}
-
-	public int
-	getLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setData( int data )
-		{
-		this.data = data;
-		this.dataLen = 1;
-		}
-
-	public byte[]
-	getByteData()
-		{
-		byte[] result = new byte[4];
-
-		result[0] = (byte) ( (this.data >> 24) & 255 );
-		result[1] = (byte) ( (this.data >> 16) & 255 );
-		result[2] = (byte) ( (this.data >> 8)  & 255 );
-		result[3] = (byte) (  this.data        & 255 );
-
-		return result;
-		}
-
-	public int
-	getByteLength()
-		{
-		return 4;
-		}
-
-	public void
-	setByteData( byte[] data )
-		{
-		int newValue =
-			  ( (((int) data[0]) << 24) & 0xFF000000 )
-			| ( (((int) data[1]) << 16) & 0x00FF0000 )
-			| ( (((int) data[2]) << 8)  & 0x0000FF00 )
-			| (  ((int) data[3])        & 0x000000FF );
-
-		this.setData( newValue );
-		}
-
-	public void
-	export( PrintWriter out )
-		{
-		out.print( "\"" + this.getName() + "\"=" );
-
-		HexNumberFormat nFmt =
-			new HexNumberFormat( "xxxxxxxx" );
-
-		out.println( "dword:" + nFmt.format( this.getData() ) );
-		}
-
-	}
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegMultiStringValue.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegMultiStringValue.java
deleted file mode 100644
index 5ab6452..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegMultiStringValue.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.PrintWriter;
-
-
-/**
- * The RegMultiStringValue class represents a multiple
- * string, or string array, value in the registry
- * (REG_MULTI_SZ).
- *
- * @version 3.1.3
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryKey
- */
-
-public class
-RegMultiStringValue extends RegistryValue
-	{
-	String[]	data;
-	int			dataLen;
-
-
-	public
-	RegMultiStringValue( RegistryKey key, String name )
-		{
-		super( key, name, RegistryValue.REG_MULTI_SZ );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegMultiStringValue( RegistryKey key, String name, int type )
-		{
-		super( key, name, type );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegMultiStringValue( RegistryKey key, String name, String[] data )
-		{
-		super( key, name, RegistryValue.REG_MULTI_SZ );
-		this.setData( data );
-		}
-
-	public String[]
-	getData()
-		{
-		return this.data;
-		}
-
-	public int
-	getLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setData( String[] data )
-		{
-		this.data = data;
-		this.dataLen = data.length;
-		}
-
-	public byte[]
-	getByteData()
-		{
-		int len = this.getByteLength();
-
-		int ri = 0;
-		byte[] result = new byte[len];
-		for ( int i = 0 ; i < this.dataLen ; ++i )
-			{
-			byte[] strBytes = this.data[i].getBytes();
-
-			for ( int j = 0 ; j < strBytes.length ; ++j )
-				result[ri++] = strBytes[j];
-
-			result[ri++] = 0;
-			}
-
-		return result;
-		}
-
-	public int
-	getByteLength()
-		{
-		int len = 0;
-		for ( int i = 0 ; i < this.dataLen ; ++i )
-			len += this.data[i].length() + 1;
-
-		return len;
-		}
-
-	public void
-	setByteData( byte[] data )
-		{
-		int start;
-		int count = 0;
-
-		for ( int i = 0 ; i < data.length ; ++i )
-			{
-			if ( data[i] == 0 )
-				count++;
-			}
-
-		int si = 0;
-		String[] newData = new String[ count ];
-		for ( int i = start = 0 ; i < data.length ; ++i )
-			{
-			if ( data[i] == 0 )
-				{
-				newData[si] = new String( data, start, (i - start) );
-				start = si;
-				}
-			}
-
-		this.setData( newData );
-		}
-
-	public void
-	export( PrintWriter out )
-		{
-		byte[]	hexData;
-		int		dataLen = 0;
-
-		out.println( "\"" + this.getName() + "\"=hex(7):\\" );
-
-		for ( int i = 0 ; i < this.data.length ; ++i )
-			{
-			dataLen += this.data[i].length() + 1;
-			}
-
-		++dataLen;
-
-		int idx = 0;
-		hexData = new byte[ dataLen ];
-
-		for ( int i = 0 ; i < this.data.length ; ++i )
-			{
-			int strLen = this.data[i].length();
-			byte[] strBytes = this.data[i].getBytes();
-
-			System.arraycopy
-				( strBytes, 0, hexData, idx, strLen );
-			
-			idx += strLen;
-
-			hexData[ idx++ ] = 0;
-			}
-
-		hexData[ idx++ ] = 0;
-
-		RegistryValue.exportHexData( out, hexData );
-		}
-
-	}
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegStringValue.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegStringValue.java
deleted file mode 100644
index d93e676..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegStringValue.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.PrintWriter;
-
-
-/**
- * The RegStringValue class represents a string value in the
- * registry (REG_SZ, and REG_EXPAND_SZ).
- *
- * @version 3.1.3
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryKey
- */
-
-public class
-RegStringValue extends RegistryValue
-	{
-	String		data;
-	int			dataLen;
-
-
-	public
-	RegStringValue( RegistryKey key, String name )
-		{
-		super( key, name, RegistryValue.REG_SZ );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegStringValue( RegistryKey key, String name, int type )
-		{
-		super( key, name, type );
-		this.data = null;
-		this.dataLen = 0;
-		}
-
-	public
-	RegStringValue( RegistryKey key, String name, String data )
-		{
-		super( key, name, RegistryValue.REG_SZ );
-		this.setData( data );
-		}
-
-	public String
-	getData()
-		{
-		return this.data;
-		}
-
-	public int
-	getLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setData( String data )
-		{
-		this.data = data;
-		this.dataLen = data.length();
-		}
-
-	public byte[]
-	getByteData()
-		{
-		return this.data.getBytes();
-		}
-
-	public int
-	getByteLength()
-		{
-		return this.dataLen;
-		}
-
-	public void
-	setByteData( byte[] data )
-		{
-		this.setData( new String( data ) );
-		}
-
-	public void
-	export( PrintWriter out )
-		{
-		if ( this.getName().length() == 0 )
-			out.print( "@=" );
-		else
-			out.print( "\"" + this.getName() + "\"=" );
-
-		out.println( "\"" + this.getData() + "\"" );
-		}
-
-	}
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/Registry.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/Registry.java
deleted file mode 100644
index a01fa02..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/Registry.java
+++ /dev/null
@@ -1,1363 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.*;
-import java.util.*;
-
-
-/**
- * The Registry class provides is used to load the native
- * library DLL, as well as a placeholder for the top level
- * keys, error codes, and utility methods.
- *
- * @version 3.1.3
- *
- */
-
-public class
-Registry
-	{
-	/**
-	 * The following statics are the top level keys.
-	 * Without these, there is no way to get "into"
-	 * the registry, since the RegOpenSubkey() call
-	 * requires an existing key which contains the
-	 * subkey.
-	 */
-	public static RegistryKey		HKEY_CLASSES_ROOT;
-	public static RegistryKey		HKEY_CURRENT_USER;
-	public static RegistryKey		HKEY_LOCAL_MACHINE;
-	public static RegistryKey		HKEY_USERS;
-	public static RegistryKey		HKEY_PERFORMANCE_DATA;
-	public static RegistryKey		HKEY_CURRENT_CONFIG;
-	public static RegistryKey		HKEY_DYN_DATA;
-
-	/**
-	 * This is a key for ICE's testing purposes.
-	 */
-	private static RegistryKey		HKEY_ICE_TESTKEY = null;
-	/**
-	 * These are predefined keys ($0-$9) used to make the
-	 * testing program easier to use (less typing).
-	 */
-	private static String[]			preDefines;
-
-	/**
-	 * These are the Registry API error codes, which can
-	 * be returned via the RegistryException.
-	 */
-	public static final int			ERROR_SUCCESS = 0;
-	public static final int			ERROR_FILE_NOT_FOUND = 2;
-	public static final int			ERROR_ACCESS_DENIED = 5;
-	public static final int			ERROR_INVALID_HANDLE = 6;
-	public static final int			ERROR_INVALID_PARAMETER = 87;
-	public static final int			ERROR_CALL_NOT_IMPLEMENTED = 120;
-	public static final int			ERROR_INSUFFICIENT_BUFFER = 122;
-	public static final int			ERROR_LOCK_FAILED = 167;
-	public static final int			ERROR_TRANSFER_TOO_LONG = 222;
-	public static final int			ERROR_MORE_DATA = 234;
-	public static final int			ERROR_NO_MORE_ITEMS = 259;
-	public static final int			ERROR_BADDB = 1009;
-	public static final int			ERROR_BADKEY = 1010;
-	public static final int			ERROR_CANTOPEN = 1011;
-	public static final int			ERROR_CANTREAD = 1012;
-	public static final int			ERROR_CANTWRITE = 1013;
-	public static final int			ERROR_REGISTRY_RECOVERED = 1014;
-	public static final int			ERROR_REGISTRY_CORRUPT = 1015;
-	public static final int			ERROR_REGISTRY_IO_FAILED = 1016;
-	public static final int			ERROR_NOT_REGISTRY_FILE = 1017;
-	public static final int			ERROR_KEY_DELETED = 1018;
-
-	/**
-	 * These are used by dumpHex().
-	 */
-	private static final int		ROW_BYTES = 16;
-	private static final int		ROW_QTR1 = 3;
-	private static final int		ROW_HALF = 7;
-	private static final int		ROW_QTR2 = 11;
-
-
-	/**
-	 * This is the last key used by the test program ($$).
-	 */
-	private static String			saveKey = null;
-	/**
-	 * This is a Hashtable which maps nams to the top level keys.
-	 */
-	private static Hashtable		topLevelKeys = null;
-
-
-	/**
-	 * If true, debug the fv parameters and computation.
-	 */
-	public boolean		debugLevel;
-
-	/**
-	 * Loads the DLL needed for the native methods, creates the
-	 * toplevel keys, fills the hashtable that maps various names
-	 * to the toplevel keys.
-	 */
-
-	static
-		{
-		try {
-			System.loadLibrary( "ICE_JNIRegistry" );
-			}
-		catch ( UnsatisfiedLinkError e )
-			{
-			System.err.println
-				( "ERROR You have not installed the DLL named '"
-					+ "ICE_JNIRegistry.DLL'.\n\t" + e.getMessage() );
-			}
-		catch ( SecurityException e )
-			{
-			System.err.println
-				( "ERROR You do not have permission to load the DLL named '"
-					+ "ICE_JNIRegistry.DLL'.\n\t" + e.getMessage() );
-			}
-
-		Registry.HKEY_CLASSES_ROOT =
-			new RegistryKey( 0x80000000, "HKEY_CLASSES_ROOT" );
-
-		Registry.HKEY_CURRENT_USER =
-			new RegistryKey( 0x80000001, "HKEY_CURRENT_USER" );
-
-		Registry.HKEY_LOCAL_MACHINE =
-			new RegistryKey( 0x80000002, "HKEY_LOCAL_MACHINE" );
-
-		Registry.HKEY_USERS =
-			new RegistryKey( 0x80000003, "HKEY_USERS" );
-
-		Registry.HKEY_PERFORMANCE_DATA =
-			new RegistryKey( 0x80000004, "HKEY_PERFORMANCE_DATA" );
-
-		Registry.HKEY_CURRENT_CONFIG =
-			new RegistryKey( 0x80000005, "HKEY_CURRENT_CONFIG" );
-
-		Registry.HKEY_DYN_DATA =
-			new RegistryKey( 0x80000006, "HKEY_DYN_DATA" );
-
-
-		Registry.topLevelKeys = new Hashtable( 16 );
-
-		topLevelKeys.put( "HKCR",					Registry.HKEY_CLASSES_ROOT );
-		topLevelKeys.put( "HKEY_CLASSES_ROOT",		Registry.HKEY_CLASSES_ROOT );
-
-		topLevelKeys.put( "HKCU",					Registry.HKEY_CURRENT_USER );
-		topLevelKeys.put( "HKEY_CURRENT_USER",		Registry.HKEY_CURRENT_USER );
-
-		topLevelKeys.put( "HKLM",					Registry.HKEY_LOCAL_MACHINE );
-		topLevelKeys.put( "HKEY_LOCAL_MACHINE",		Registry.HKEY_LOCAL_MACHINE );
-
-		topLevelKeys.put( "HKU",					Registry.HKEY_USERS );
-		topLevelKeys.put( "HKUS",					Registry.HKEY_USERS );
-		topLevelKeys.put( "HKEY_USERS",				Registry.HKEY_USERS );
-
-		topLevelKeys.put( "HKPD",					Registry.HKEY_PERFORMANCE_DATA );
-		topLevelKeys.put( "HKEY_PERFORMANCE_DATA",	Registry.HKEY_PERFORMANCE_DATA );
-
-		topLevelKeys.put( "HKCC",					Registry.HKEY_PERFORMANCE_DATA );
-		topLevelKeys.put( "HKEY_CURRENT_CONFIG",	Registry.HKEY_PERFORMANCE_DATA );
-
-		topLevelKeys.put( "HKDD",					Registry.HKEY_PERFORMANCE_DATA );
-		topLevelKeys.put( "HKEY_DYN_DATA",			Registry.HKEY_PERFORMANCE_DATA );
-		}
-
-	/**
-	 * Get a top level key by name using the top level key Hashtable.
-	 *
-	 * @param keyName The name of the top level key.
-	 * @return The top level RegistryKey, or null if unknown keyName.
-	 *
-	 * @see topLevelKeys
-	 */
-
-	public static RegistryKey
-	getTopLevelKey( String keyName )
-		{
-		return (RegistryKey)
-			Registry.topLevelKeys.get( keyName );
-		}
-
-	/**
-	 * Open a subkey of a given top level key.
-	 *
-	 * @param topKey The top level key containing the subkey.
-	 * @param keyName The subkey's name.
-	 * @param access The access flag for the newly opened key.
-	 * @return The newly opened RegistryKey.
-	 *
-	 * @see RegistryKey
-	 */
-
-	public static RegistryKey
-	openSubkey( RegistryKey topKey, String keyName, int access )
-		{
-		RegistryKey		subKey = null;
-
-		try { subKey = topKey.openSubKey( keyName, access ); }
-		catch ( NoSuchKeyException ex )
-			{
-			subKey = null;
-			}
-		catch ( RegistryException ex )
-			{
-			subKey = null;
-			}
-
-		return subKey;
-		}
-
-	/**
-	 * Get the description of a Registry error code.
-	 *
-	 * @param errCode The error code from a RegistryException
-	 * @return The description of the error code.
-	 */
-
-	public static String
-	getErrorMessage( int errCode )
-		{
-		switch ( errCode )
-			{
-			case ERROR_SUCCESS: return "success";
-			case ERROR_FILE_NOT_FOUND: return "key or value not found";
-			case ERROR_ACCESS_DENIED: return "access denied";
-			case ERROR_INVALID_HANDLE: return "invalid handle";
-			case ERROR_INVALID_PARAMETER: return "invalid parameter";
-			case ERROR_CALL_NOT_IMPLEMENTED: return "call not implemented";
-			case ERROR_INSUFFICIENT_BUFFER: return "insufficient buffer";
-			case ERROR_LOCK_FAILED: return "lock failed";
-			case ERROR_TRANSFER_TOO_LONG: return "transfer was too long";
-			case ERROR_MORE_DATA: return "more data buffer needed";
-			case ERROR_NO_MORE_ITEMS: return "no more items";
-			case ERROR_BADDB: return "bad database";
-			case ERROR_BADKEY: return "bad key";
-			case ERROR_CANTOPEN: return "can not open";
-			case ERROR_CANTREAD: return "can not read";
-			case ERROR_CANTWRITE: return "can not write";
-			case ERROR_REGISTRY_RECOVERED: return "registry recovered";
-			case ERROR_REGISTRY_CORRUPT: return "registry corrupt";
-			case ERROR_REGISTRY_IO_FAILED: return "registry IO failed";
-			case ERROR_NOT_REGISTRY_FILE: return "not a registry file";
-			case ERROR_KEY_DELETED: return "key has been deleted";
-			}
-
-		return "errCode=" + errCode;
-		}
-
-	/**
-	 * Export the textual definition for a registry key to a file.
-	 * The resulting file can be re-loaded via RegEdit.
-	 *
-	 * @param pathName The pathname of the file into which to export.
-	 * @param key The registry key definition to export.
-	 * @param descend If true, descend and export all subkeys.
-	 *
-     * @exception  NoSuchKeyException  Thrown by openSubKey().
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public static void
-	exportRegistryKey( String pathName, RegistryKey key, boolean descend )
-		throws java.io.IOException, NoSuchKeyException, RegistryException
-		{
-		PrintWriter out =
-			new PrintWriter(
-				new FileWriter( pathName ) );
-
-		out.println( "REGEDIT4" );
-		out.println( "" );
-
-		key.export( out, descend );
-
-		out.flush();
-		out.close();
-		}
-
-	/**
-	 * The main() method is used to test the Registry package.
-	 */
-
-	public static void
-	main( String argv[] )
-		{
-		Registry.preDefines = new String[10];
-
-		Registry.preDefines[0] = "HKLM\\System\\CurrentControlSet\\control";
-		Registry.preDefines[1] = "HKLM\\Software";
-		Registry.preDefines[2] = "HKLM\\Software\\Miscrosoft";
-		Registry.preDefines[3] = "HKLM\\Software\\Microsoft\\Windows"
-									+ "\\CurrentVersion";
-		Registry.preDefines[4] = "HKLM\\Software\\Microsoft\\Windows"
-									+ "\\CurrentVersion\\ProfileList";
-		Registry.preDefines[5] = "HKCU\\Software";
-		Registry.preDefines[6] = "HKCU\\Software\\Microsoft";
-		Registry.preDefines[7] = "HKCU\\AppEvents";
-		Registry.preDefines[8] = "HKCU\\AppEvents\\Schemes";
-		Registry.preDefines[9] = "HKCU\\AppEvents\\Schemes";
-
-		try {
-			Registry.HKEY_ICE_TESTKEY =
-				Registry.HKEY_CURRENT_USER.openSubKey
-					( "Software\\ICE Engineering\\test" );
-			}
-		catch ( NoSuchKeyException ex )
-			{
-			}
-		catch ( RegistryException ex )
-			{
-			}
-
-		if ( argv.length > 0 )
-			{
-			Registry.subMain( argv );
-			}
-		else
-			{
-			String inLine;
-			String saveLine = null;
-			BufferedReader input =
-				new BufferedReader
-					( new InputStreamReader( System.in ) );
-
-			for ( ; ; )
-				{
-				System.out.print( "command: " );
-				System.out.flush();
-
-				try { inLine = input.readLine(); }
-					catch ( IOException ex )
-						{ inLine = null; }
-				
-				if ( inLine == null || inLine.length() == 0 )
-					break;
-				
-				if ( inLine.equalsIgnoreCase( "help" ) )
-					{
-					Registry.usage( null );
-					continue;
-					}
-
-				String[] subArgs;
-				if ( inLine.equals( "!!" ) && saveLine != null )
-					{
-					subArgs =
-						Registry.parseArgumentString( saveLine );
-					}
-				else
-					{
-					subArgs =
-						Registry.parseArgumentString( inLine );
-					saveLine = inLine;
-					}
-
-				Registry.subMain( subArgs );
-				}
-			}
-		}
-
-	/**
-	 * Print the usage/help information.
-	 */
-
-	public static void
-	usage( String message )
-		{
-		if ( message != null )
-			System.err.println( message );
-
-		System.err.println
-			( "keys regKey -- print the key names" );
-		System.err.println
-			( "values regKey -- print the value names" );
-		System.err.println
-			( "data regKey subKey -- print the key's data" );
-		System.err.println
-			( "string regKey subKey -- print REG_SZ key's string" );
-		System.err.println
-			( "setbin regKey subKey  binaryString -- set REG_BINARY" );
-		System.err.println
-			( "setdw regKey subKey int -- set REG_DWORD" );
-		System.err.println
-			( "setstr regKey subKey string -- set REG_SZ" );
-		System.err.println
-			( "setmulti regKey subKey semiColonString -- set REG_MULTI_SZ" );
-		System.err.println
-			( "delkey regKey subKey -- delete key 'subKey' of regKey" );
-		System.err.println
-			( "delval regKey subKey -- delete value 'subKey' of regKey" );
-		System.err.println
-			( "export regKey fileName -- export registry key to fileName" );
-		System.err.println
-			( "expand regKey valueName -- expand string value" );
-		
-		System.err.println( "" );
-		
-		System.err.println
-			( "!! -- repeats last command" );
-		System.err.println
-			( "$$ -- re-uses previous keyname" );
-		System.err.println
-			( "Predefined Key Prefixes: (e.g. $0-9)" );
-		for ( int idx = 0 ; idx < Registry.preDefines.length ; ++idx )
-			System.err.println
-				( "   $" + idx + "=" + Registry.preDefines[idx] );
-		}
-
-	/**
-	 * The actual main method, which is called for each command.
-	 */
-
-	public static void
-	subMain( String argv[] )
-		{
-		int				index;
-		RegistryKey		key;
-		RegistryKey		subKey;
-		RegistryKey		topKey = null;
-		boolean			isRemote = false;
-		String			topKeyName = null;
-		String			hostName = null;
-
-		if ( argv.length < 1 || argv[0].equals( "help" ) )
-			{
-			Registry.usage( null );
-			return;
-			}
-
-		if ( argv.length < 2 )
-			{
-			Registry.usage( null );
-			return;
-			}
-
-		String keyName = argv[1];
-		
-		if ( Registry.saveKey != null
-				&& keyName.equals( "$$" ) )
-			{
-			keyName = Registry.saveKey;
-			}
-		else if ( keyName.equals( "@@" ) )
-			{
-			keyName = "HKCU\\Software\\ICE Engineering\\test";
-			}
-		else
-			{
-			char ch1 = keyName.charAt(0);
-			char ch2 = keyName.charAt(1);
-
-			if ( ch1 == '$' && ch2 >= '0' && ch2 <= '9' )
-				{
-				int pIdx = (ch2 - '0');
-				if ( Registry.preDefines[ pIdx ] != null )
-					{
-					if ( keyName.length() < 3 )
-						keyName = Registry.preDefines[ pIdx ];
-					else
-						keyName =
-							Registry.preDefines[ pIdx ]
-							+ keyName.substring( 2 );
-					}
-				else
-					{
-					System.err.println
-						( "Predefine '" + keyName + "' not defined." );
-					return;
-					}
-				}
-			else
-				{
-				Registry.saveKey = argv[1];
-				}
-			}
-
-		if ( keyName.startsWith( "\\\\" ) )
-			{
-			isRemote = true;
-			index = keyName.indexOf( '\\', 2 );
-			hostName = keyName.substring( 2, index );
-			keyName = keyName.substring( index + 1 );
-			}
-
-		index = keyName.indexOf( '\\' );
-
-		if ( index < 0 )
-			{
-			//
-			// "topLevelKeyname"
-			//
-			topKeyName = keyName;
-			keyName = null;
-			}
-		else if ( index < 4 )
-			{
-			//
-			// INVALID KEYNAME, topLevelName too short
-			//
-			System.err.println
-				( "Invalid key '" + keyName
-					+ "', top level key name too short." );
-			return;
-			}
-		else
-			{
-			//
-			// "topLevelKeyname\subKey\subKey\..."
-			//
-			topKeyName = keyName.substring( 0, index );
-
-			if ( (index + 1) >= keyName.length() )
-				keyName = null;
-			else
-				keyName = keyName.substring( index + 1 );
-			}
-
-		topKey = Registry.getTopLevelKey( topKeyName );
-		if ( topKey == null )
-			{
-			System.err.println
-				( "ERROR, toplevel key '" + topKeyName
-					+ "' not resolved!" );
-			return;
-			}
-
-		if ( isRemote )
-			{
-			System.err.println
-				( "REMOTE Key host='" + hostName + "'" );
-			
-			RegistryKey remoteKey = null;
-
-			try {
-				remoteKey = topKey.connectRegistry( hostName );
-				}
-			catch ( NoSuchKeyException ex )
-				{
-				System.err.println
-					( "ERROR No such key connecting to '"
-						+ hostName + "', " + ex.getMessage() );
-				return;
-				}
-			catch ( RegistryException ex )
-				{
-				System.err.println
-					( "ERROR errCode=" + ex.getErrorCode()
-						+ "' connecting to '" + hostName
-						+ "', " + ex.getMessage() );
-				return;
-				}
-
-			if ( remoteKey != null )
-				{
-				topKey = remoteKey;
-				}
-			}
-
-
-		//
-		// P R O C E S S    C O M M A N D S
-		//
-
-		if ( argv[0].equalsIgnoreCase( "create" ) )
-			{
-			Registry.createCommand( topKey, keyName );
-			}
-		else if ( argv[0].equalsIgnoreCase( "setbin" ) )
-			{
-			Registry.setBinaryCommand
-				( topKey, keyName, argv[2], argv[3] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "setdw" ) )
-			{
-			Registry.setBinaryCommand
-				( topKey, keyName, argv[2], argv[3] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "setstr" ) )
-			{
-			Registry.setStringCommand
-				( topKey, keyName, argv[2], argv[3] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "setmulti" ) )
-			{
-			Registry.setMultiStringCommand
-				( topKey, keyName, argv[2], argv[3] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "keys" ) )
-			{
-			Registry.listKeysCommand( topKey, keyName );
-			}
-		else if ( argv[0].equalsIgnoreCase( "values" ) )
-			{
-			Registry.listValuesCommand( topKey, keyName );
-			}
-		else if ( argv[0].equalsIgnoreCase( "delkey" ) )
-			{
-			Registry.deleteKeyCommand( topKey, keyName, argv[2] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "delval" ) )
-			{
-			Registry.deleteValueCommand( topKey, keyName, argv[2] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "data" ) )
-			{
-			Registry.getDataCommand( topKey, keyName, argv[2] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "string" ) )
-			{
-			Registry.getStringCommand( topKey, keyName, argv[2] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "export" ) )
-			{
-			Registry.exportKeyCommand( topKey, keyName, argv[2] );
-			}
-		else if ( argv[0].equalsIgnoreCase( "expand" ) )
-			{
-			Registry.expandStringCommand( topKey, keyName, argv[2] );
-			}
-		}
-
-	private static void
-	exportKeyCommand(
-			RegistryKey topKey, String keyName, String pathName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		try { Registry.exportRegistryKey( pathName, subKey, true ); }
-		catch ( IOException ex )
-			{
-			System.err.println
-				( "IO Exception: '" + ex.getMessage() + "'" );
-			}
-		catch ( NoSuchKeyException ex )
-			{
-			System.err.println
-				( "Error, encountered non-existent key during export." );
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR registry error=" + ex.getErrorCode()
-					+ ", " + ex.getMessage() );
-			}
-		}
-
-	private static void
-	getDataCommand(
-			RegistryKey topKey, String keyName, String valueName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		RegistryValue	data = null;
-
-		try { data = subKey.getValue( valueName ); }
-		catch ( NoSuchValueException ex )
-			{
-			System.err.println
-				( "Value '" + valueName + "' does not exist." );
-			return;
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR registry error=" + ex.getErrorCode()
-					+ ", " + ex.getMessage() );
-			return;
-			}
-
-		System.err.println
-			( "Value '" + valueName + "' is " + data.toString() );
-
-		if ( data instanceof RegStringValue )
-			{
-			RegStringValue val = (RegStringValue) data;
-			System.err.println( "REG_SZ '" + val.getData() + "'" );
-			}
-		else if ( data instanceof RegMultiStringValue )
-			{
-			RegMultiStringValue val = (RegMultiStringValue) data;
-			String[] args = val.getData();
-			for ( int idx = 0 ; idx < args.length ; ++idx )
-				System.err.println
-					( "REG_MULTI_SZ[" + idx + "] '"
-						+ args[idx] + "'" );
-			}
-		else if ( data instanceof RegDWordValue )
-			{
-			RegDWordValue val = (RegDWordValue) data;
-
-			HexNumberFormat xFmt =
-				new HexNumberFormat( "XXXXXXXX" );
-
-			System.err.println(
-				"REG_DWORD"
-				+ ( (RegistryValue.REG_DWORD_BIG_ENDIAN
-						== val.getType())
-							? "_BIG_ENDIAN" : "" )
-				+ " '" + val.getData() + "' [x"
-				+ xFmt.format( val.getData() ) + "]" );
-			}
-		else
-			{
-			RegBinaryValue val = (RegBinaryValue) data;
-			/*
-			System.err.println( "BINARY: len=" + val.getLength() );
-			System.err.println( "BINARY: [0]=" + val.getData()[0] );
-			System.err.println( "BINARY: [1]=" + val.getData()[1] );
-			System.err.println( "BINARY: [2]=" + val.getData()[2] );
-			System.err.println( "BINARY: [3]=" + val.getData()[3] );
-			*/
-			Registry.dumpHexData
-				( System.err,
-					"REG_BINARY '" + val.getName()
-						+ "', len=" + val.getLength(),
-					val.getData(), val.getLength() );
-			}
-		}
-
-	private static void
-	getStringCommand(
-			RegistryKey topKey, String keyName, String valueName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		try {
-			String value = subKey.getStringValue( valueName );
-			System.err.println
-				( "String Value " + valueName + "='" + value + "'" );
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR getting value '" + valueName + "', "
-					+ ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	expandStringCommand(
-			RegistryKey topKey, String keyName, String valueName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		try {
-			String value = subKey.getStringValue( valueName );
-			System.err.println
-				( "String Value " + valueName + "='" + value + "'" );
-			value = RegistryKey.expandEnvStrings( value );
-			System.err.println
-				( "Expanded Value " + valueName + "='" + value + "'" );
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR getting value '" + valueName + "', "
-					+ ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	deleteKeyCommand(
-			RegistryKey topKey, String keyName, String deleteKeyName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		try { subKey.deleteSubKey( deleteKeyName ); }
-		catch ( NoSuchKeyException ex )
-			{
-			System.err.println
-				( "Key '" + keyName + "\\"
-					+ deleteKeyName + "' does not exist." );
-			return;
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR deleting key '" + keyName
-					+ "', " + ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	deleteValueCommand(
-			RegistryKey topKey, String keyName, String valueName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		try { subKey.deleteValue( valueName ); }
-		catch ( NoSuchValueException ex )
-			{
-			System.err.println
-				( "Value '" + valueName + "' does not exist." );
-			return;
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR deleting value '" + valueName
-					+ "', " + ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	listKeysCommand( RegistryKey topKey, String keyName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		try {
-			Enumeration en = subKey.keyElements();
-			for ( int kIdx = 0 ; en.hasMoreElements() ; ++kIdx )
-				{
-				String keyStr = (String) en.nextElement();
-				System.err.println
-					( "Subkey[" + kIdx + "] = '" + keyStr + "'" );
-				}
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR getting key enumerator, "
-					+ ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	listValuesCommand( RegistryKey topKey, String keyName )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_READ );
-
-		if ( subKey == null )
-			return;
-		
-		try {
-			Enumeration en = subKey.valueElements();
-			for ( int kIdx = 0 ; en.hasMoreElements() ; ++kIdx )
-				{
-				String name = (String) en.nextElement();
-				System.err.println
-					( "Value Name[" + kIdx + "] = '" + name + "'" );
-				}
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR getting value enumerator, "
-					+ ex.getMessage() );
-			return;
-			}
-		}
-
-	private static void
-	setDWordCommand(
-			RegistryKey topKey, String keyName,
-			String valueName, String data )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		int anInt;
-		try { anInt = Integer.parseInt( data ); }
-		catch ( NumberFormatException ex )
-			{
-			System.err.println
-				( "ERROR bad int: '" + ex.getMessage() + "'" );
-			return;
-			}
-
-		RegDWordValue val = new RegDWordValue( subKey, valueName );
-		val.setData( anInt );
-		
-		Registry.setValue( subKey, val );
-		}
-	
-	private static void
-	setMultiStringCommand(
-			RegistryKey topKey, String keyName,
-			String valueName, String data )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		String[] strArray =
-			Registry.splitString( data, ";" );
-
-		RegMultiStringValue val =
-			new RegMultiStringValue
-				( subKey, valueName, strArray );
-
-		Registry.setValue( subKey, val );
-		}
-
-	private static void
-	setStringCommand(
-			RegistryKey topKey, String keyName,
-			String valueName, String data )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		RegStringValue val =
-			new RegStringValue( subKey, valueName, data );
-
-		Registry.setValue( subKey, val );
-		}
-
-	private static void
-	setBinaryCommand(
-			RegistryKey topKey, String keyName,
-			String valueName, String data )
-		{
-		RegistryKey subKey =
-			Registry.openSubKeyVerbose
-				( topKey, keyName, RegistryKey.ACCESS_WRITE );
-
-		if ( subKey == null )
-			return;
-
-		byte[] binData = data.getBytes();
-
-		RegBinaryValue val =
-			new RegBinaryValue( subKey, valueName, binData );
-
-		Registry.setValue( subKey, val );
-		}
-
-	private static void
-	createCommand( RegistryKey topKey, String keyName )
-		{
-		RegistryKey		subKey;
-
-		try {
-			subKey =
-				topKey.createSubKey
-					( keyName, "", RegistryKey.ACCESS_WRITE );
-			}
-		catch ( RegistryException ex )
-			{
-			subKey = null;
-			System.err.println
-				( "ERROR creating subKey: " + ex.getMessage() );
-			}
-
-		if ( subKey != null )
-			{
-			try {
-				subKey.flushKey();
-				subKey.closeKey();
-				}
-			catch ( RegistryException ex )
-				{
-				subKey = null;
-				System.err.println
-					( "ERROR flushing and closing key: "
-						+ ex.getMessage() );
-				}
-			}
-
-		if ( subKey != null )
-			{
-			System.err.println
-				( "SUCCEEDED "
-					+ ( subKey.wasCreated()
-						? "Creating" : "Opening via create" )
-					+ " Key '" + keyName + "'" );
-			}
-		else
-			{
-			System.err.println
-				( "FAILED Creating Key '" + keyName + "'" );
-			}
-		}
-
-	private static RegistryKey
-	openSubKeyVerbose( RegistryKey topKey, String keyName, int access )
-		{
-		RegistryKey		subKey = null;
-
-		try { subKey = topKey.openSubKey( keyName, access ); }
-		catch ( NoSuchKeyException ex )
-			{
-			subKey = null;
-			System.err.println
-				( "Key '" + keyName + "' does not exist." );
-			}
-		catch ( RegistryException ex )
-			{
-			subKey = null;
-			System.err.println
-				( "ERROR registry error=" + ex.getErrorCode()
-					+ ", " + ex.getMessage() );
-			}
-
-		return subKey;
-		}
-
-	private static void
-	setValue( RegistryKey subKey, RegistryValue value )
-		{
-		try {
-			subKey.setValue( value );
-			subKey.flushKey();
-			}
-		catch ( RegistryException ex )
-			{
-			System.err.println
-				( "ERROR setting MULTI_SZ value '"
-					+ value.getName() + "', " + ex.getMessage() );
-			}
-		}
-
-	public static void
-	dumpHexData( PrintStream out, String title, byte[] buf, int numBytes )
-		{
-		PrintWriter wrtr =
-			new PrintWriter( new OutputStreamWriter( out ) );
-
-		Registry.dumpHexData( wrtr, title, buf, 0, numBytes );
-		}
-
-	public static void
-	dumpHexData(
-			PrintWriter out, String title,
-			byte[] buf, int offset, int numBytes )
-		{
-		int			rows, residue, i, j;
-		byte[]		save_buf= new byte[ ROW_BYTES+2 ];
-		char[]		hex_buf = new char[ 4 ];
-		char[]		idx_buf = new char[ 8 ];
-		char[]		hex_chars = new char[20];
-		
-		hex_chars[0] = '0';
-		hex_chars[1] = '1';
-		hex_chars[2] = '2';
-		hex_chars[3] = '3';
-		hex_chars[4] = '4';
-		hex_chars[5] = '5';
-		hex_chars[6] = '6';
-		hex_chars[7] = '7';
-		hex_chars[8] = '8';
-		hex_chars[9] = '9';
-		hex_chars[10] = 'A';
-		hex_chars[11] = 'B';
-		hex_chars[12] = 'C';
-		hex_chars[13] = 'D';
-		hex_chars[14] = 'E';
-		hex_chars[15] = 'F';
-		
-		out.println( title + " - " + numBytes + " bytes." );
-
-		rows = (numBytes + (ROW_BYTES-1)) / ROW_BYTES;
-		residue = (numBytes % ROW_BYTES);
-
-		for ( i = 0 ; i < rows ; i++ )
-			{
-			int hexVal = (i * ROW_BYTES);
-			idx_buf[0] = hex_chars[ ((hexVal >> 12) & 15) ];
-			idx_buf[1] = hex_chars[ ((hexVal >> 8) & 15) ];
-			idx_buf[2] = hex_chars[ ((hexVal >> 4) & 15) ];
-			idx_buf[3] = hex_chars[ (hexVal & 15) ];
-
-			String idxStr = new String( idx_buf, 0, 4 );
-			out.print( idxStr + ": " );
-		
-			for ( j = 0 ; j < ROW_BYTES ; j++ )
-				{
-				if ( i == (rows - 1) && j >= residue )
-					{
-					save_buf[j] = ' ';
-					out.print( "   " );
-					if ( j == ROW_QTR1 || j == ROW_HALF || j == ROW_QTR2 )
-						out.print( ' ' );
-					}
-				else
-					{
-					save_buf[j] = buf[ offset + (i * ROW_BYTES) + j ];
-
-					hex_buf[0] = hex_chars[ (save_buf[j] >> 4) & 0x0F ];
-					hex_buf[1] = hex_chars[ save_buf[j] & 0x0F ];
-
-					out.print( hex_buf[0] );
-					out.print( hex_buf[1] );
-					out.print( ' ' );
-
-					if ( j == ROW_QTR1 || j == ROW_HALF || j == ROW_QTR2 )
-						out.print( ' ' );
-
-					if ( save_buf[j] < 0x20 || save_buf[j] > 0x7E )
-						save_buf[j] = (byte) '.';
-					}
-				}
-
-			String saveStr = new String( save_buf, 0, j );
-			out.println( " | " + saveStr + " |" );
-			}
-
-		out.flush();
-		}
-
-	/**
-	 * Split a string into a string array containing the substrings
-	 * between the delimiters.
-	 *
-	 * NOTE This method WILL <strong>NOT</strong> return an empty
-	 * token at the end of the array that is returned, if the string
-	 * ends with the delimiter. If you wish to have a property string
-	 * array that ends with the delimiter return an empty string at
-	 * the end of the array, use <code>vectorString()</code>.
-	 */
-
-	static public String[]
-	splitString( String splitStr, String delim )
-		{
-		int				i, count;
-		String[]		result;
-		StringTokenizer toker;
-
-		toker = new StringTokenizer( splitStr, delim );
-
-		count = toker.countTokens();
-
-		result = new String[ count ];
-
-		for ( i = 0 ; i < count ; ++i )
-			{
-			try { result[i] = toker.nextToken(); }
-			catch ( NoSuchElementException ex )
-				{
-				result = null;
-				break;
-				}
-			}
-
-		return result;
-		}
-
-	public static String[]
-	parseArgumentString( String argStr )
-		{
-		String[] result = null;
-
-		Vector vector = Registry.parseArgumentVector( argStr );
-
-		if ( vector != null && vector.size() > 0 )
-			{
-			result = new String[ vector.size() ];
-			vector.copyInto( result );
-			}
-
-		return result;
-		}
-
-	public static Vector
-	parseArgumentVector( String argStr )
-		{
-		Vector			result = new Vector();
-		StringBuffer	argBuf = new StringBuffer();
-
-		boolean backSlash = false;
-		boolean matchSglQuote = false;
-		boolean matchDblQuote = false;
-
-		for ( int cIdx = 0 ; cIdx < argStr.length() ; ++cIdx )
-			{
-			char ch = argStr.charAt( cIdx );
-
-			switch ( ch )
-				{
-				//
-				// W H I T E S P A C E
-				//
-				case ' ':
-				case '\t':
-				case '\n':
-				case '\r':
-					if ( backSlash )
-						{
-						argBuf.append( ch );
-						backSlash = false; 
-						}
-					else if ( matchSglQuote || matchDblQuote )
-						{
-						argBuf.append( ch );
-						}
-					else if ( argBuf.length() > 0 )
-						{
-						result.addElement( argBuf.toString() );
-						argBuf.setLength( 0 );
-						}
-					break;
-
-				case '\\':
-					if ( backSlash )
-						{
-						argBuf.append( "\\" );
-						}
-					backSlash = ! backSlash;
-					break;
-
-				case '\'':
-					if ( backSlash )
-						{
-						argBuf.append( "'" );
-						backSlash = false; 
-						}
-					else if ( matchSglQuote )
-						{
-						result.addElement( argBuf.toString() );
-						argBuf.setLength( 0 );
-						matchSglQuote = false;
-						}
-					else if ( ! matchDblQuote )
-						{
-						matchSglQuote = true;
-						}
-					break;
-
-				case '"':
-					if ( backSlash )
-						{
-						argBuf.append( "\"" );
-						backSlash = false; 
-						}
-					else if ( matchDblQuote )
-						{
-						result.addElement( argBuf.toString() );
-						argBuf.setLength( 0 );
-						matchDblQuote = false;
-						}
-					else if ( ! matchSglQuote )
-						{
-						matchDblQuote = true;
-						}
-					break;
-
-				default:
-					if ( backSlash )
-						{
-						switch ( ch )
-							{
-							case 'b': argBuf.append( '\b' ); break;
-							case 'f': argBuf.append( '\f' ); break;
-							case 'n': argBuf.append( '\n' ); break;
-							case 'r': argBuf.append( '\r' ); break;
-							case 't': argBuf.append( '\t' ); break;
-
-							default:
-								char ch2 = argStr.charAt( cIdx+1 );
-								char ch3 = argStr.charAt( cIdx+2 );
-								if ( (ch >= '0' && ch <= '7')
-										&& (ch2 >= '0' && ch2 <= '7')
-										&& (ch3 >= '0' && ch3 <= '7') )
-									{
-									int octal =
-										( ( (ch - '0') * 64 )
-											+ ( (ch2 - '0') * 8 )
-												+ (ch3 - '0') );
-									argBuf.append( (char) octal );
-									cIdx += 2;
-									}
-								else if ( ch == '0' )
-									{
-									argBuf.append( '\0' );
-									}
-								else
-									{
-									argBuf.append( ch );
-									}
-								break;
-							}
-						}
-					else
-						{
-						argBuf.append( ch );
-						}
-
-					backSlash = false;
-					break;
-				}
-			}
-
-		if ( argBuf.length() > 0 )
-			{
-			result.addElement( argBuf.toString() );
-			}
-
-		return result;
-		}
-	
-	}
-
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryException.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryException.java
deleted file mode 100644
index c48ed8d..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryException.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-/**
- * This exception is used to indicate that no such key exists in the registry.
- *
- *
- * @version 3.1.3
- *
- * @author Timothy Gerard Endres,
- *    <a href="mailto:time@ice.com">time@ice.com</a>.
- */
-
-public class
-RegistryException extends Exception
-	{
-	static public final String	RCS_ID = "$Id: RegistryException.java,v 1.1 2007/05/28 15:17:52 akazantse Exp $";
-	static public final String	RCS_REV = "$Revision: 1.1 $";
-	static public final String	RCS_NAME = "$Name:  $";
-
-	private int		errorCode;
-
-
-	public
-	RegistryException()
-		{
-		super();
-		this.errorCode = -1;
-		}
-
-	public
-	RegistryException( String msg )
-		{
-		super( msg );
-		this.errorCode = -1;
-		}
-
-	public
-	RegistryException( String msg, int regErr )
-		{
-		super( msg );
-		this.errorCode = regErr;
-		}
-
-	public int
-	getErrorCode()
-		{
-		return this.errorCode;
-		}
-
-	public void
-	setErrorCode( int errorCode )
-		{
-		this.errorCode = errorCode;
-		}
-
-	}
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryKey.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryKey.java
deleted file mode 100644
index 6de95ab..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryKey.java
+++ /dev/null
@@ -1,697 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.PrintWriter;
-import java.util.*;
-
-/**
- * The RegistryKey class represents a key in the registry.
- * The class also provides all of the native interface calls.
- *
- * You should refer to the Windows Registry API documentation
- * for the details of any of the native methods. The native
- * implementation performs almost no processing before or after
- * a given call, so their behavior should match the API's
- * documented behavior precisely.
- *
- * Note that you can not open a subkey without an existing
- * open RegistryKey. Thus, you need to start with one of the
- * top level keys defined in the Registry class and open
- * relative to that.
- *
- * @version 3.1.3
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryValue
- */
-
-
-public class
-RegistryKey
-	{
-	/**
-	 * Constants used to determine the access level for
-	 * newly opened keys.
-	 */
-	public static final int		ACCESS_DEFAULT	= 0;
-	public static final int		ACCESS_READ		= 1;
-	public static final int		ACCESS_WRITE	= 2;
-	public static final int		ACCESS_EXECUTE	= 3;
-	public static final int		ACCESS_ALL		= 4;
-
-	/**
-	 * This is the actual DWORD key that is returned from the
-	 * Registry API. This value is <strong>totally opaque</strong>
-	 * and should never be referenced.
-	 */
-	protected int		hKey;
-
-	/**
-	 * The full pathname of this key.
-	 */
-	protected String	name;
-
-	/**
-	 * Used to indicate whether or not the key was created
-	 * when method createSubKey() is called, otherwise false.
-	 */
-	protected boolean	created;
-
-
-	public
-	RegistryKey( int hKey, String name )
-		{
-		this.hKey = hKey;
-		this.name = name;
-		this.created = false;
-		}
-
-	public
-	RegistryKey( int hKey, String name, boolean created )
-		{
-		this.hKey = hKey;
-		this.name = name;
-		this.created = created;
-		}
-
-	/**
-	 * The finalize() override checks to be sure the key is closed.
-	 */
-	public void
-	finalize()
-		{
-		// Never close a top level key...
-		if ( this.name.indexOf( "\\" ) > 0 )
-			{
-			// REVIEW should we have an "open/closed" flag
-			// to avoid double closes? Or is it better to
-			// lazily not call closeKey() and let finalize()
-			// do it all the time?
-			//
-			try { this.closeKey(); }
-				catch ( RegistryException ex )
-					{ }
-			}
-		}
-
-	/**
-	 * Get the name of this key. This is <em>not</em> fully
-	 * qualified, which means that the name will not contain
-	 * any backslashes.
-	 *
-	 * @return The relative name of this key.
-	 */
-
-	public String
-	getName()
-		{
-		int index = this.name.lastIndexOf( "\\" );
-
-		if ( index < 0 )
-			return this.name;
-		else
-			return this.name.substring( index + 1 );
-		}
-
-	/**
-	 * Get the full name of the key, from the top level down.
-	 *
-	 * @return The full name of the key.
-	 */
-
-	public String
-	getFullName()
-		{
-		return this.name;
-		}
-
-	/**
-	 * Determine if this key was opened or created and opened.
-	 * The result can only be true if createSubKey() was called
-	 * and the key did not exist, and the creation of the new
-	 * subkey succeeded.
-	 *
-	 * @return True if the key was created new, else false.
-	 */
-
-	public boolean
-	wasCreated()
-		{
-		return this.created;
-		}
-
-	/**
-	 * Used to set the <em>created</em> state of this key.
-	 *
-	 * @param created The new <em>created</em> state.
-	 */
-
-	public void
-	setCreated( boolean created )
-		{
-		this.created = created;
-		}
-
-	/**
-	 * Open a Registry subkey of this key with READ access.
-	 *
-	 * @param subkey The name of the subkey to open.
-	 * @return The newly opened RegistryKey.
-	 *
-     * @exception  NoSuchKeyException  If the subkey does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public RegistryKey
-	openSubKey( String subkey )
-			throws NoSuchKeyException, RegistryException
-		{
-		return this.openSubKey( subkey, ACCESS_READ );
-		}
-
-	/**
-	 * Create, and open, a Registry subkey of this key with WRITE access.
-	 * If the key already exists, it is opened, otherwise it is first
-	 * created and then opened.
-	 *
-	 * @param subkey The name of the subkey to create.
-	 * @param className The className of the created subkey.
-	 * @return The newly created and opened RegistryKey.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public RegistryKey
-	createSubKey( String subkey, String className )
-			throws RegistryException
-		{
-		return this.createSubKey( subkey, "", ACCESS_WRITE );
-		}
-
-	/**
-	 * Set the value of this RegistryKey.
-	 *
-	 * @param value The value to set, including the value name.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public void
-	setValue( RegistryValue value )
-			throws RegistryException
-		{
-		this.setValue( value.getName(), value );
-		}
-
-
-	//
-	//   N A T I V E     M E T H O D S
-	//
-
-	/**
-	 * Open a Registry subkey of this key with the specified access.
-	 *
-	 * @param subkey The name of the subkey to open.
-	 * @param access The access level for the open.
-	 * @return The newly opened RegistryKey.
-	 *
-     * @exception  NoSuchKeyException  If the subkey does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native RegistryKey
-		openSubKey( String subKey, int access )
-			throws NoSuchKeyException, RegistryException;
-
-	/**
-	 * Connect to the remote registry on <em>hostName</em>.
-	 * This method will only work when invoked on a toplevel
-	 * key. The returned value will be the same toplevel key
-	 * opened from the remote host's registry.
-	 *
-	 * @param hostName The remote computer's hostname.
-	 * @return The remote top level key identical to this top level key.
-	 *
-     * @exception  NoSuchKeyException  If the subkey does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-	public native RegistryKey
-		connectRegistry( String hostName )
-			throws NoSuchKeyException, RegistryException;
-
-	/** 
-	 * Create a new subkey, or open the existing one. You can
-	 * determine if the subkey was created, or whether an
-	 * existing subkey was opened, via the wasCreated() method.
-	 *
-	 * @param subKey The name of the subkey to create/open.
-	 * @param className The key's class name, or null.
-	 * @param access The access level of the opened subkey.
-	 * @return The newly created or opened subkey.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native RegistryKey
-		createSubKey( String subKey, String className, int access )
-			throws RegistryException;
-
-	/**
-	 * Closes this subkey. You may chose to let the finalize()
-	 * method do the close.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native void
-		closeKey()
-			throws RegistryException;
-
-	/**
-	 * Delete a named subkey.
-	 *
-	 * @param subKey The name of the subkey to delete.
-	 *
-     * @exception  NoSuchKeyException  If the subkey does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native void
-		deleteSubKey( String subKey )
-			throws NoSuchKeyException, RegistryException;
-
-	/**
-	 * Delete a named value.
-	 *
-	 * @param valueName The name of the value to delete.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native void
-		deleteValue( String valueName )
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * Guarentees that this key is written to disk. This
-	 * method should be called only when needed, as it has
-	 * a huge performance cost.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native void
-		flushKey()
-			throws RegistryException;
-
-	/**
-	 * Set the name value to the given data.
-	 *
-	 * @param valueName The name of the value to set.
-	 * @param value The data to set the named value.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native void
-		setValue( String valueName, RegistryValue value )
-			throws RegistryException;
-
-	/**
-	 * Get the data of a named value.
-	 *
-	 * @param valueName The name of the value to get.
-	 * @return The data of the named value.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native RegistryValue
-		getValue( String valueName )
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * Get the value of a REG_SZ or REG_EXPAND_SZ value.
-	 *
-	 * @param valueName The name of the value to get.
-	 * @return The string data of the named value.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native String
-		getStringValue( String valueName )
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * Get the data from the default value.
-	 *
-	 * @return The string data of the default value.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native String
-		getDefaultValue()
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * Determines if this key has a default value.
-	 *
-	 * @return True if there is a default value, else false.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native boolean
-		hasDefaultValue()
-			throws RegistryException;
-
-	/**
-	 * Determines if this key has <em>only</em> a default value.
-	 *
-	 * @return True if there is only a default value, else false.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native boolean
-		hasOnlyDefaultValue()
-			throws RegistryException;
-
-	/**
-	 * Obtains the number of subkeys that this key contains.
-	 *
-	 * @return The number of subkeys that this key contains.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native int
-		getNumberSubkeys()
-			throws RegistryException;
-
-	/**
-	 * Obtains the maximum length of all of the subkey names.
-	 *
-	 * @return The maximum length of all of the subkey names.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native int
-		getMaxSubkeyLength()
-			throws RegistryException;
-
-	/**
-	 * Obtains an enumerator for the subkeys of this key.
-	 *
-	 * @return The key enumerator.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native String
-		regEnumKey( int index )
-			throws RegistryException;
-
-	/**
-	 * Obtains the number of values that this key contains.
-	 *
-	 * @return The number of values that this key contains.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native int
-		getNumberValues()
-			throws RegistryException;
-
-	/**
-	 * Obtains the maximum length of all of the value data.
-	 *
-	 * @return The maximum length of all of the value data.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native int
-		getMaxValueDataLength()
-			throws RegistryException;
-
-	/**
-	 * Obtains the maximum length of all of the value names.
-	 *
-	 * @return The maximum length of all of the value names.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native int
-		getMaxValueNameLength()
-			throws RegistryException;
-
-	/**
-	 * Obtains an enumerator for the values of this key.
-	 *
-	 * @return The value enumerator.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public native String
-		regEnumValue( int index )
-			throws RegistryException;
-
-	//
-	// Convenience routines
-	//
-
-	/**
-	 * This method will increment the value of a REG_DWORD value.
-	 *
-	 * @param valueName The name of the value to increment.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native int
-		incrDoubleWord( String valueName )
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * This method will decrement the value of a REG_DWORD value.
-	 *
-	 * @param valueName The name of the value to increment.
-	 *
-     * @exception  NoSuchValueException  If the value does not exist.
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public native int
-		decrDoubleWord( String valueName )
-			throws NoSuchValueException, RegistryException;
-
-	/**
-	 * This method will expand a string to include the definitions
-	 * of System environment variables that are referenced via the
-	 * %variable% construct. This method invokes EnvExpandStrings().
-	 *
-	 * @param valueName The name of the value to increment.
-	 */
-
-	public static native String
-		expandEnvStrings( String exString );
-
-	/**
-	 * Returns a new Enumeration that will enumerate the 
-	 * names of the subkeys of this key,
-	 *
-	 * @return A new Enumeration to enumerate subkey names.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public Enumeration
-	keyElements()
-			throws RegistryException
-		{
-		return this.new RegistryKeyEnumerator( this );
-		}
-
-	/**
-	 * Returns a new Enumeration that will enumerate the 
-	 * names of the values of this key,
-	 *
-	 * @return A new Enumeration to enumerate value names.
-	 *
-     * @exception  RegistryException  Any valid registry API error.
-	 */
-
-	public Enumeration
-	valueElements()
-			throws RegistryException
-		{
-		return this.new RegistryValueEnumerator( this );
-		}
-
-	/**
-	 * A RegistryKey enumerator class. This enumerator
-	 * is used to enumerate the names of this key's subkeys.
-	 *
-	 * This class should remain opaque to the client,
-	 * which will use the Enumeration interface. 
-	 */
-	class
-	RegistryKeyEnumerator implements Enumeration
-		{
-		RegistryKey		key;
-		int				currIndex;
-		int				numSubKeys;
-
-		public
-		RegistryKeyEnumerator( RegistryKey key )
-				throws RegistryException
-			{
-			this.key = key;
-			this.currIndex = 0;
-			this.numSubKeys = key.getNumberSubkeys();
-			}
-
-		public boolean hasMoreElements()
-			{
-			return ( this.currIndex < this.numSubKeys );
-			}
-
-		public Object
-		nextElement()
-			{
-			Object result = null;
-			
-			try { result = this.key.regEnumKey( this.currIndex++ ); }
-			catch ( RegistryException ex )
-				{
-				throw new NoSuchElementException( ex.getMessage() );
-				}
-
-			return result;
-			}
-		}
-
-	/**
-	 * A RegistryValue enumerator class. This enumerator
-	 * is used to enumerate the names of this key's values.
-	 * This will return the default value name as an empty string.
-	 *
-	 * This class should remain opaque to the client.
-	 * It will use the Enumeration interface. 
-	 */
-
-	class
-	RegistryValueEnumerator implements Enumeration
-		{
-		RegistryKey		key;
-		int				currIndex;
-		int				numValues;
-
-		public
-		RegistryValueEnumerator( RegistryKey key )
-				throws RegistryException
-			{
-			this.key = key;
-			this.currIndex = 0;
-			this.numValues = key.getNumberValues();
-			}
-
-		public boolean hasMoreElements()
-			{
-			return ( this.currIndex < this.numValues );
-			}
-
-		public Object
-		nextElement()
-			{
-			Object result = null;
-
-			try { result = this.key.regEnumValue( this.currIndex++ ); }
-			catch ( RegistryException ex )
-				{
-				throw new NoSuchElementException( ex.getMessage() );
-				}
-
-			return result;
-			}
-		}
-
-	/**
-	 * Export this key's definition to the provided PrintWriter.
-	 * The resulting file can be imported via RegEdit.
-	 *
-     * @exception  NoSuchKeyException  Thrown by openSubKey().
-     * @exception  NoSuchValueException  Thrown by getValue().
-     * @exception  RegistryException  Any other registry API error.
-	 */
-
-	public void
-	export( PrintWriter out, boolean descend )
-		throws NoSuchKeyException, RegistryException
-		{
-		Enumeration		en;
-
-		out.println( "[" + this.getFullName() + "]" );
-
-		en = this.valueElements();
-
-		for ( int idx = 0 ; en.hasMoreElements() ; ++idx )
-			{
-			String valueName = (String) en.nextElement();
-
-			RegistryValue value = this.getValue( valueName );
-
-			value.export( out );
-			}
-
-		out.println( "" );
-
-		if ( descend )
-			{
-			en = this.keyElements();
-
-			for ( int idx = 0 ; en.hasMoreElements() ; ++idx )
-				{
-				String keyName = (String) en.nextElement();
-
-				RegistryKey subKey = this.openSubKey( keyName );
-
-				subKey.export( out, descend );
-
-				subKey.closeKey();
-				}
-			}
-		}
-
-	}
-
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryValue.java b/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryValue.java
deleted file mode 100644
index fad12ae..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/registry/com/ice/jni/registry/RegistryValue.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
-** Java native interface to the Windows Registry API.
-** 
-** Authored by Timothy Gerard Endres
-** <mailto:time@gjt.org>  <http://www.trustice.com>
-** 
-** This work has been placed into the public domain.
-** You may use this work in any way and for any purpose you wish.
-**
-** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
-** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
-** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
-** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
-** REDISTRIBUTION OF THIS SOFTWARE. 
-** 
-*/
-
-package com.ice.jni.registry;
-
-import java.io.PrintWriter;
-
-/**
- * The RegistryValue class represents a value in the registry.
- * This class is abstract, so it can not be instantiated. The
- * class is a superclass to all value classes. The common
- * abstract methods for getting and setting data must be defined
- * by the subclass, but subclasses will almost always provide
- * additional methods that get and set the value using the data
- * type of the subclass.
- *
- * @version 3.1.3
- *
- * @see com.ice.jni.registry.Registry
- * @see com.ice.jni.registry.RegistryKey
- */
-
-abstract public class
-RegistryValue
-	{
-	public static final int			REG_NONE = 0;
-	public static final int			REG_SZ = 1;
-	public static final int			REG_EXPAND_SZ = 2;
-	public static final int			REG_BINARY = 3;
-	public static final int			REG_DWORD = 4;
-	public static final int			REG_DWORD_LITTLE_ENDIAN = 4;
-	public static final int			REG_DWORD_BIG_ENDIAN = 5;
-	public static final int			REG_LINK = 6;
-	public static final int			REG_MULTI_SZ = 7;
-	public static final int			REG_RESOURCE_LIST = 8;
-	public static final int			REG_FULL_RESOURCE_DESCRIPTOR = 9;
-	public static final int			REG_RESOURCE_REQUIREMENTS_LIST = 10;
-
-	protected static char[]			hexChars;
-
-	int				type;
-	String			name;
-	RegistryKey		key;
-	
-	static
-		{
-		RegistryValue.hexChars = new char[20];
-
-		RegistryValue.hexChars[0] = '0';
-		RegistryValue.hexChars[1] = '1';
-		RegistryValue.hexChars[2] = '2';
-		RegistryValue.hexChars[3] = '3';
-		RegistryValue.hexChars[4] = '4';
-		RegistryValue.hexChars[5] = '5';
-		RegistryValue.hexChars[6] = '6';
-		RegistryValue.hexChars[7] = '7';
-		RegistryValue.hexChars[8] = '8';
-		RegistryValue.hexChars[9] = '9';
-		RegistryValue.hexChars[10] = 'a';
-		RegistryValue.hexChars[11] = 'b';
-		RegistryValue.hexChars[12] = 'c';
-		RegistryValue.hexChars[13] = 'd';
-		RegistryValue.hexChars[14] = 'e';
-		RegistryValue.hexChars[15] = 'f';
-		}
-
-	public
-	RegistryValue( RegistryKey key, String name, int type )
-		{
-		this.key = key;
-		this.name = name;
-		this.type = type;
-		}
-
-	public RegistryKey
-	getKey()
-		{
-		return this.key;
-		}
-
-	public String
-	getName()
-		{
-		return this.name;
-		}
-
-	public int
-	getType()
-		{
-		return this.type;
-		}
-
-	public void
-	export( PrintWriter out )
-		{
-		out.print( "\"" + this.getName() + "\"=" );
-		out.println( "\"ERROR called RegistryValue.export()!\"" );
-		}
-
-	public String
-	toString()
-		{
-		return "[type=" + this.type + ",name=" + this.name + "]";
-		}
-
-	public static void
-	exportHexData( PrintWriter out, byte[] data )
-		{
-		int		i, cnt;
-		char	ch1, ch2;
-		int		len = data.length;
-
-		for ( i = 0, cnt = 0 ; i < len ; ++i )
-			{
-			byte dByte = data[i];
-
-			ch2 = RegistryValue.hexChars[ (dByte & 0x0F) ];
-			ch1 = RegistryValue.hexChars[ ((dByte >> 4) & 0x0F) ];
-
-			if ( cnt == 0 ) out.print( "  " );
-			
-			out.print( ch1 );
-			out.print( ch2 );
-
-			if ( i < (len - 1) )
-				out.print( "," );
-			
-			if ( ++cnt > 15 )
-				{
-				cnt = 0;
-				if ( i < (len-1) )
-					out.println( "\\" );
-				}
-			}
-
-		out.println( "" );
-		}
-
-	abstract public byte[]
-		getByteData();
-
-	abstract public int
-		getByteLength();
-
-	abstract public void
-		setByteData( byte[] data );
-
-	}
-
-
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/core/Win32.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/core/Win32.java
deleted file mode 100644
index d37c0fd..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/core/Win32.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.io.File;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.operations.CleanRegistryOperation;
-import org.eclipse.epp.installer.core.operations.CleanupRegisteredProductsOperation;
-import org.eclipse.epp.installer.core.operations.RegisterProductOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.OS;
-import org.eclipse.epp.installer.internal.core.OperationProxyManager;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-import org.eclipse.epp.installer.internal.win32.core.EclipseRegistry;
-import org.eclipse.epp.installer.internal.win32.core.ProductRegistry;
-import org.eclipse.epp.installer.internal.win32.core.RemoveRegistryKeyAction;
-import org.eclipse.epp.installer.internal.win32.core.UninstalProductRegistry;
-import org.eclipse.epp.installer.internal.win32.core.operations.CleanWin32RegistryOperation;
-import org.eclipse.epp.installer.internal.win32.core.operations.CleanupWin32RegistryOperation;
-import org.eclipse.epp.installer.internal.win32.core.operations.CreateRegistryKeyOperation;
-import org.eclipse.epp.installer.internal.win32.core.operations.RegistrySetValueOperation;
-import org.eclipse.epp.installer.internal.win32.core.operations.Win32RegisterProductOperation;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class Win32 extends OperationProxyManager implements IPlatform {
-
-	public final static String PLUGIN_ID = "org.eclipse.epp.installer.core.win32";		 
-	
-	
-	/**
-	 * The Program Files folder. 
-	 * A typical path is C:\Program Files.
-	 */
-	private final static int CSIDL_PROGRAM_FILES = 0x0026;
-	
-	/**
-	 * The file system directory that contains files and folders 
-	 * that appear on the desktop for all users. 
-	 * A typical path is: C:\Documents and Settings\All Users\Desktop. 
-	 * Valid only for Windows NT systems.
-	 */
-	private final static int CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019;
-	
-	/**
-	 * The file system directory used to physically store file 
-	 * objects on the desktop (not to be confused with the desktop folder itself). 
-	 * A typical path is C:\Documents and Settings\ username\Desktop.
-	*/
-	private final static int CSIDL_DESKTOPDIRECTORY = 0x0010;
-	/**
-	 * The file system directory that contains the directories 
-	 * for the common program groups that appear on the Start menu 
-	 * for all users. 
-	 * A typical path is: 
-	 * C:\Documents and Settings\All Users\Start Menu\Programs. 
-	 * Valid only for Windows NT systems.
-	 */
-	private final static int CSIDL_COMMON_PROGRAMS  = 0x0017;
-	
-	/**
-	 * The file system directory that contains the user's program groups 
-	 * (which are themselves file system directories). 
-	 * A typical path is 
-	 * C:\Documents and Settings\ username\Start Menu\Programs. 
-	 */
-	private final static int CSIDL_PROGRAMS = 0x0002;
-	
-	
-	private void initialize() {
-		//register win32-specific rollback actions
-		InstallLog.registerAction(CreateRegistryKeyOperation.REGISTRY_CREATE_KEY, new RemoveRegistryKeyAction());
-		InstallLog.registerAction(RegistrySetValueOperation.REGISTRY_SET_VALUE, new RemoveRegistryKeyAction());
-		//add win32-specific environment variables
-		Platform.setVar("ProgramFiles", OS.GetSpecialFolderPath(CSIDL_PROGRAM_FILES));
-		
-		// register proxied operations
-		registerOperationStub(RegisterProductOperation.class, Win32RegisterProductOperation.class );
-		registerOperationStub(CleanupRegisteredProductsOperation.class,CleanupWin32RegistryOperation.class);
-		registerOperationStub(CleanRegistryOperation.class,CleanWin32RegistryOperation.class);
-	}
-
-	public String[] readEclipseLocationsFromRegistry() {
-		return EclipseRegistry.readEclipseLocationsFromRegistry();
-	}
-
-	public String[] readPreviousProductInstallLocations(InstallOptions options) {
-		return ProductRegistry.readPreviousProductInstallLocations(options);
-	}
-
-	public String[] otherEclipseLocations() {
-		String programFilesPath = Platform.getVarString("ProgramFiles");
-		if (programFilesPath == null || programFilesPath.length() == 0)
-			programFilesPath = "C:\\Program Files";
-		if (programFilesPath.charAt(programFilesPath.length() - 1) != '\\')
-			programFilesPath += "\\";
-		return new String[] {
-			"C:\\SAP\\DevStudio",
-			programFilesPath + "SAP\\DevStudio",
-		};
-	}
-	
-	/**
-	 * Temporarily until os.so will be built
-	 * TODO change this calls with direct OS.GetDriveType(driveRootPath) calls  
-	 */
-	public int GetDriveType(String driveRootPath) {
-		return OS.GetDriveType(driveRootPath);
-	}
-
-	public boolean canRead(File file) {
-		return OS.CanRead(file.getAbsolutePath());
-	}
-
-	public boolean canWrite(File file) {
-		
-		// [author=Dan] case 25450 added this check rather than checking OS permission bits in DLL
-		// because WindowXP has wrong permission bits and still allows write.
-		// Is this fixed in Windows Vista?
-		if(file.isDirectory()){
-			File tmp = new File(file,"canWrite.tmp");
-			try {
-				tmp.createNewFile();
-				if(tmp.delete())return true;
-			}catch (Exception e) {
-				return false;
-			}
-		}
-		
-		return OS.CanWrite(file.getAbsolutePath());
-		
-	}
-	
-	public StubOperation resolveProxyOperation(ProxyOperation operation) {
-		return this.resolveProxy(operation);
-	}
-
-	public boolean setFileCreationTime(String path, long time) {
-		boolean ret=false;
-		try {
-			ret= OS.SetCreationTime(path,time);
-			return ret;
-		} catch (Exception e) {
-			e.printStackTrace();
-			return ret;
-		}
-	}
-
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		initialize();
-	}
-
-	public IStatus readProductUninstallPropertiesFromRegistry(InstallOptions installOptions, Map productProperties) {
-		return UninstalProductRegistry.readProductUninstallPropertiesFromRegistry(installOptions, productProperties);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/EclipseRegistry.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/EclipseRegistry.java
deleted file mode 100644
index ab27f88..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/EclipseRegistry.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class EclipseRegistry {
-
-	/**
-	 * The name of the value in the product registry
-	 * that contains the product installation location.
-	 * Used by Rational Studio 6.0
-	 */
-	private static final String LOCATION_VALUE_NAME = "location";
-
-	/**
-	 * The name of the value in the product registry
-	 * that contains the product installation location.
-	 * Used by WebSphere Application Developer 5.x
-	 */
-	private static final String INSTALLDIR_VALUE_NAME = "installdir";
-	
-	/**
-	 * The name of the value in the product registry
-	 * that contains the product installation location.
-	 * Used by Aptana
-	 */
-	private static final String INSTALLLOCATION_VALUE_NAME = "InstallLocation";
-	
-	
-	private static final String RATIONAL_SDP_KEY1 = "SOFTWARE\\IBM\\Rational\\Software Development Platform\\products";
-	private static final String RATIONAL_SDP_KEY2 = "SOFTWARE\\IBM\\Rational\\SoftwareDevelopmentPlatform\\products";
-	private static final String WEBSPHERE_STUDIO_20_KEY = "SOFTWARE\\IBM\\WebSphere Studio\\2.0\\product";
-	private static final String WEBSPHERE_STUDIO_21_KEY = "SOFTWARE\\IBM\\WebSphere Studio\\2.1\\product";
-	private static final String IBM_INSTALATIONMANAGER_KEY = "SOFTWARE\\IBM\\Installation Manager";
-	private static final String APTANA_KEY = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Aptana";
-	
-	/** No instances */
-	private EclipseRegistry() {
-	}
-
-	/**
-	 * Answer possible IBM installation locations extracted from the registry
-	 * @return an array of paths to Eclipse (not <code>null</code>, contains no <code>null</code>s)
-	 */
-	public static String[] readEclipseLocationsFromRegistry() {
-		List result = new ArrayList();
-		
-		addEclipseLocations(RATIONAL_SDP_KEY1, LOCATION_VALUE_NAME, result);
-		addEclipseLocations(RATIONAL_SDP_KEY2, LOCATION_VALUE_NAME, result);
-		addEclipseLocations(WEBSPHERE_STUDIO_20_KEY, INSTALLDIR_VALUE_NAME, result);
-		addEclipseLocations(WEBSPHERE_STUDIO_21_KEY, INSTALLDIR_VALUE_NAME, result);
-		addEclipseLocations(IBM_INSTALATIONMANAGER_KEY, LOCATION_VALUE_NAME, result);
-		addEclipseLocations(APTANA_KEY, INSTALLLOCATION_VALUE_NAME, result);
-		
-		String[] resultAsArray = new String[ result.size() ];
-		result.toArray(resultAsArray);
-		return resultAsArray;
-	}
-
-	/**
-	 * Extract install directories from the registry if possible
-	 * @param keyPath the registry key containing subkeys to be examined (not <code>null</code>)
-	 * @param locationString name of subKey field which contains installation location
-	 * @param result installation location
-	 */
-	private static void addEclipseLocations(String keyPath, String locationString, List result) {
-		
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, keyPath, RegistryKey.ACCESS_READ);
-
-		if (key == null)
-			return;
-		
-		try {
-			String eLocation = key.getStringValue(locationString);
-			if (eLocation != null && eLocation.trim().length() > 0) {
-				if(keyPath.equalsIgnoreCase(IBM_INSTALATIONMANAGER_KEY))
-					eLocation = new File(eLocation).getParent() + "\\SDP70";
-				result.add(eLocation);
-			}
-		} catch (RegistryException e) {
-			// e.printStackTrace();
-		}
-		try {
-			for (Enumeration e = key.keyElements(); e.hasMoreElements();) {
-				String subKeyName = (String)e.nextElement();
-				
-				RegistryKey subKey = (RegistryKey) key.openSubKey(subKeyName);
-				
-
-				if (subKey != null) {
-					String location = subKey.getStringValue(locationString);
-					if (location != null && location.trim().length() > 0)
-						result.add(location);
-				}
-			}
-		} catch (RegistryException e) {
-			// e.printStackTrace();
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/ProductRegistry.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/ProductRegistry.java
deleted file mode 100644
index 5c9e523..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/ProductRegistry.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ProductRegistry {
-
-	/**
-	 * Registry path used to store value in.
-	 */
-	public static final String REGISTRY_SOFTWARE_KEY = "Software";
-
-	public static final String LOCATION_VALUE_NAME = "location";
-
-	/** No instances */
-	private ProductRegistry() {
-	}
-
-	private static String getResolvedString(String string, InstallOptions options) {
-		return Variables.resolve(options.getString(string), options);
-	}
-	
-	private static String getProductPath(InstallOptions options) {
-		String publisher = getResolvedString(IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER, options);
-		if (publisher == null || publisher.length() == 0)
-			publisher = getResolvedString(InstallOptions.OPTION_PUBLISHER, options);
-		String productName = getResolvedString(IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, options);
-		if (productName == null || productName.length() == 0)
-			productName = getResolvedString(InstallOptions.OPTION_PRODUCT_NAME, options);
-		String productPath = REGISTRY_SOFTWARE_KEY + "\\" + publisher + "\\" + productName;
-		return productPath;
-	}
-
-	public static String[] readPreviousProductInstallLocations(InstallOptions options) {
-		boolean verbose = options.isVerbose();
-		List result = new ArrayList();
-
-		String productPath = getProductPath(options);
-		if (verbose)
-			System.out.println("Reading previous installation location from registry: " + productPath);
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, productPath, RegistryKey.ACCESS_READ);
-		if (key != null) {
-			if (verbose)
-				System.out.println("Found registry key: " + key.getFullName());
-			try {
-				for (Enumeration e = key.keyElements(); e.hasMoreElements();) {
-					String subKeyName = (String) e.nextElement();
-					if (verbose)
-						System.out.println("Reading sub key: " + subKeyName);
-					RegistryKey subKey = (RegistryKey) key.openSubKey(subKeyName);
-					if (subKey != null) {
-						if (verbose)
-							System.out.println("Found sub key: " + subKey.getFullName());
-						String location = subKey.getStringValue(LOCATION_VALUE_NAME);
-						if (location != null && location.trim().length() > 0) {
-							if (verbose)
-								System.out.println("Found location: " + location);
-							result.add(location);
-						}
-					}
-				}
-			}
-			catch (RegistryException e) {
-				// e.printStackTrace();
-			}
-		}
-
-		String[] resultAsArray = new String[result.size()];
-		result.toArray(resultAsArray);
-		return resultAsArray;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/RemoveRegistryKeyAction.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/RemoveRegistryKeyAction.java
deleted file mode 100644
index 09bb521..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/RemoveRegistryKeyAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.win32.core.operations.CreateRegistryKeyOperation;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class RemoveRegistryKeyAction implements IRollbackAction {
-
-	public IStatus rollback(InstallLogEntry entry) {
-		String arg = entry.getArgument();
-		int i = arg.indexOf(':');
-		String path = arg.substring(0, i);
-		String name = arg.substring(i+1);
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-				path, RegistryKey.ACCESS_WRITE);
-		if (key == null)
-			return new Status(IStatus.INFO, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't open key for write: " + path, null);		
-		try {
-			if(entry.getOperationCode() == CreateRegistryKeyOperation.REGISTRY_CREATE_KEY) {
-				RegistryKey keyToDelete = Registry.openSubkey(key, name, RegistryKey.ACCESS_READ); 
-				if (keyToDelete == null)
-					return new Status(IStatus.INFO, Win32.PLUGIN_ID,
-							IErrorConstants.ERROR_REGISTRY_ERROR,
-							"Can't open key for read: " + path + "\\" + name, null);
-				if (keyToDelete.getNumberSubkeys() == 0) {
-					keyToDelete.closeKey();
-					key.deleteSubKey(name);
-				}
-			}
-			else 
-				key.deleteValue(name);
-			return Status.OK_STATUS;
-		} catch(RegistryException e) {
-			return new Status(IStatus.INFO, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-					e);
-		} finally {
-			try {
-				key.closeKey();
-			} catch(RegistryException e) {
-				return new Status(IStatus.INFO, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						e);
-			}
-		}
-	}
-
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Removing registry value: {0}", new Object[] {entry.getArgument()});
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/UninstalProductRegistry.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/UninstalProductRegistry.java
deleted file mode 100644
index 95f82b2..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/UninstalProductRegistry.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core;
-
-import java.util.Enumeration;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-import org.eclipse.epp.installer.internal.win32.core.operations.Win32RegisterProductOperation;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-public class UninstalProductRegistry {
-
-	private static String getResolvedOption(InstallOptions options, String[] keys) {
-		String value = null;
-		for (int i = 0; i < keys.length; i++) {
-			String eachKey = keys[i];
-			if (eachKey != null && eachKey.length() != 0) {
-				value = options.getString(eachKey);
-				if (value != null && value.length() > 0)
-					break;
-			}
-		}
-		if (value != null)
-			value = Variables.resolve(value, options);
-		return value;
-	}
-	
-	public static IStatus readProductUninstallPropertiesFromRegistry(InstallOptions installOptions, Map productProperties) {
-		String uninstallRegName = null;
-		String uninstallProductName = getResolvedOption(installOptions, new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, InstallOptions.OPTION_PRODUCT_NAME
-		});
-		String uninstallProductVersion = getResolvedOption(installOptions, new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_VERSION, InstallOptions.OPTION_PRODUCT_VERSION
-		});
-		String uninstallRegPath = null;
-		if (uninstallProductName != null && uninstallProductName.length() > 0) {
-			if (uninstallProductVersion != null && uninstallProductVersion.length() > 0)
-				uninstallRegName = uninstallProductName + " " + uninstallProductVersion;
-			else
-				uninstallRegName = uninstallProductName;
-			uninstallRegPath = Win32RegisterProductOperation.REGISTRY_UNINSTALL_KEY + "\\" + uninstallRegName;
-		}
-		
-		if (uninstallRegPath != null) {
-			RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-					uninstallRegPath, RegistryKey.ACCESS_READ);
-			if (key == null)
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR,
-						"Can't open key for reading: " + uninstallRegPath, null);	
-			try {
-				for (Enumeration en = key.valueElements(); en.hasMoreElements(); ) {
-					String name = (String) en.nextElement();
-					String value = key.getStringValue(name);
-					productProperties.put(name, value);
-				}
-				return Status.OK_STATUS;
-			} catch(RegistryException e) {
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						e);
-			} finally {
-				try {
-					key.closeKey();
-				} catch(RegistryException e) {
-					return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-							IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-							e);
-				}
-			}
-		}
-		return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-				IErrorConstants.ERROR_REGISTRY_ERROR,
-				"Unable to determine uninstal product registry path", null);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanWin32RegistryOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanWin32RegistryOperation.java
deleted file mode 100644
index 72f659d..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanWin32RegistryOperation.java
+++ /dev/null
@@ -1,480 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.ISingleton;
-import org.eclipse.epp.installer.core.operations.CleanRegistryOperation;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-import org.eclipse.epp.installer.internal.win32.core.ProductRegistry;
-
-import com.ice.jni.registry.NoSuchKeyException;
-import com.ice.jni.registry.NoSuchValueException;
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * An operation for removing all registry entries within a registry key entry hierarchy
- * that reference installations that have been removed.
- */
-public class CleanWin32RegistryOperation extends StubOperation
-	implements ISequence, ISingleton
-{
-	private static final String UNINSTALL_KEY = "UninstallString";
-	private static final String UNINSTALL_PREFIX = "javaw.exe -jar \"";
-	private static final String UNINSTALL_SUFFIX = "\\uninstall.jar\" --uninstall";
-
-	private boolean verbose;
-	private boolean uninstall;
-	private String primaryDirPath;
-
-	public CleanWin32RegistryOperation(ProxyOperation operation) {
-		super(operation);
-	}
-
-	/**
-	 * Scan the Windows Registry for references to installations that no longer exist
-	 */
-	public void prepare() throws Exception {
-		CleanRegistryOperation proxyOperation = (CleanRegistryOperation) getProxyOperation();
-		InstallOptions options = proxyOperation.getOptions();
-		verbose = options.isVerbose();
-		if (verbose)
-			System.out.println("Scanning for registry entries that reference installations that have been removed");
-		uninstall = options.isUninstall();
-		if (uninstall && verbose)
-			System.out.println("\tuninstalling ");
-		primaryDirPath = proxyOperation.getPrimaryDirPath();
-		if (verbose)
-			System.out.println("\tprimaryDirPath " + primaryDirPath);
-
-		// [author=Dan] Apparently there is an issue with Java 5 reuse of file handles
-		// and performing an explicit garbage collect here seems to prevent intermittent
-		// "java.io.IOException: The handle is invalid." exceptions that occur when
-		// reading existing log files. For more detail, see:
-		// http://issues.apache.org/jira/browse/LUCENE-669
-		System.gc();
-		pause();
-
-		cleanAddRemovePrograms();
-		cleanAllProducts(options, IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER);
-		cleanAllProducts(options, InstallOptions.OPTION_PUBLISHER);
-	}
-
-	/**
-	 * Scan the Software\\<publisher> section of the Windows registry looking for
-	 * references to old non-existent installations to remove.
-	 * 
-	 * @param options Installation options (not <code>null</code>)
-	 * @param optionKey the option key referencing the publisher key to be scanned
-	 */
-	private void cleanAllProducts(InstallOptions options, String optionKey) {
-
-		// Look up the publisher key
-
-		String publisherKeyName = options.getString(optionKey);
-		if (publisherKeyName == null || publisherKeyName.length() == 0) {
-			if (verbose)
-				System.out.println("No publisher key associated with install options key " + optionKey);
-			return;
-		}
-		if (verbose)
-			System.out.println("install options key " + optionKey);
-
-		// Get all publisher key child elements in Windows Registry
-
-		String publisherKeyPath = ProductRegistry.REGISTRY_SOFTWARE_KEY + "\\" + publisherKeyName;
-		RegistryKey publisherKey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, publisherKeyPath,
-			RegistryKey.ACCESS_READ);
-		if (verbose)
-			System.out.println("\t" + publisherKeyPath);
-		if (publisherKey == null) {
-			if (verbose)
-				System.out.println("\t\topenSubkey failed");
-			return;
-		}
-		Enumeration publisherKeyElements;
-		try {
-			pause();
-			publisherKeyElements = publisherKey.keyElements();
-		}
-		catch (NoSuchKeyException ex) {
-			// ignored
-			if (verbose)
-				System.out.println("\t\tno such registry key " + publisherKeyPath);
-			return;
-		}
-		catch (RegistryException ex) {
-			System.out.println("Failed to read Windows Registry key " + publisherKeyPath);
-			ex.printStackTrace();
-			return;
-		}
-
-		// Scan each child of the publisher key
-
-		boolean isEmpty = true;
-		for (Enumeration iter = publisherKeyElements; iter.hasMoreElements();) {
-			String productKeyName;
-			try {
-				productKeyName = (String) iter.nextElement();
-			}
-			catch (NoSuchElementException e) {
-				System.out.println("nextElement() failed");
-				e.printStackTrace();
-				continue;
-			}
-			if (!cleanProduct(publisherKeyPath, productKeyName))
-				isEmpty = false;
-		}
-		closeKey(publisherKey);
-
-		// If each child has been removed, then remove the publisher key
-
-		if (!isEmpty)
-			return;
-		System.out.println("\t\tremove registry key " + publisherKeyPath);
-		add(new RemoveRegistryKeyOperation(ProductRegistry.REGISTRY_SOFTWARE_KEY, publisherKeyName));
-	}
-
-	/*************************************************************************************
-	 * Scan the Software\\<publisher>\\<productName> section of the Windows registry
-	 * looking for references to old non-existent installations to remove.
-	 * 
-	 * @param publisherKeyPath the publisher key being scanned
-	 * @param productKeyName the product key to be scanned
-	 * @return <code>true</code> if the productKeyName entry does not exist or is
-	 *         scheduled for removal
-	 */
-	private boolean cleanProduct(String publisherKeyPath, String productKeyName) {
-
-		// Get all publisher key child elements in Windows Registry
-
-		String productKeyPath = publisherKeyPath + "\\" + productKeyName;
-		RegistryKey productKey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, productKeyPath,
-			RegistryKey.ACCESS_READ);
-		if (verbose)
-			System.out.println("\t" + productKeyPath);
-		if (productKey == null) {
-			if (verbose)
-				System.out.println("\t\topenSubkey failed");
-			return false;
-		}
-		Enumeration productKeyElements;
-		try {
-			productKeyElements = productKey.keyElements();
-		}
-		catch (NoSuchKeyException ex) {
-			// ignored
-			if (verbose)
-				System.out.println("\t\tno such registry key " + productKeyPath);
-			return true;
-		}
-		catch (RegistryException ex) {
-			System.out.println("Failed to read Windows Registry key " + productKeyPath);
-			ex.printStackTrace();
-			return false;
-		}
-
-		// Scan each child of the product key
-
-		boolean isEmpty = true;
-		for (Enumeration iter = productKeyElements; iter.hasMoreElements();) {
-			String versionKeyName;
-			try {
-				versionKeyName = (String) iter.nextElement();
-			}
-			catch (NoSuchElementException e) {
-				System.out.println("nextElement() failed");
-				e.printStackTrace();
-				continue;
-			}
-			if (!cleanProductVersion(productKeyName, productKeyPath, versionKeyName))
-				isEmpty = false;
-		}
-		closeKey(productKey);
-
-		// If each child has been removed, then remove the product key
-
-		if (!isEmpty)
-			return false;
-		System.out.println("\t\tremove registry key " + productKeyPath);
-		add(new RemoveRegistryKeyOperation(publisherKeyPath, productKeyName));
-		return true;
-	}
-
-	/*************************************************************************************
-	 * Scan the Software\\<publisher>\\<productName>\\<version> section of the Windows
-	 * registry looking for references to old non-existent installations to remove.
-	 * 
-	 * @param productKeyName TODO
-	 * @param productKeyPath the product being scanned
-	 * @param versionKeyName the version to be scanned
-	 * @return <code>true</code> if the versionKeyName entry does not exist or is
-	 *         scheduled for removal
-	 */
-	private boolean cleanProductVersion(String productKeyName, String productKeyPath, String versionKeyName) {
-
-		String versionKeyPath = productKeyPath + "\\" + versionKeyName;
-		RegistryKey versionKey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, versionKeyPath,
-			RegistryKey.ACCESS_READ);
-		if (verbose)
-			System.out.println("\t" + versionKeyPath);
-		if (versionKey == null) {
-			if (verbose)
-				System.out.println("\t\topenSubkey failed");
-			return false;
-		}
-
-		String installPath;
-		try {
-			installPath = versionKey.getStringValue(ProductRegistry.LOCATION_VALUE_NAME);
-		}
-		catch (NoSuchValueException e) {
-			// ignored
-			if (verbose)
-				System.out.println("\t\tskip... no location key found");
-			return false;
-		}
-		catch (RegistryException e) {
-			System.out.println("Failed to obtain location in " + versionKeyPath);
-			e.printStackTrace();
-			return false;
-		}
-		finally {
-			closeKey(versionKey);
-		}
-
-		if (verbose)
-			System.out.println("\t\tlocation = " + installPath);
-		File installDir = new File(installPath);
-		if (logExists(installDir))
-			return false;
-		if (logExists(new File(installDir, productKeyName)))
-			return false;
-		if (logExists(new File(installDir, productKeyName + "_v" + versionKeyName)))
-			return false;
-
-		System.out.println("\t\tremove registry key " + versionKeyPath);
-		add(new RemoveRegistryKeyOperation(productKeyPath, versionKeyName));
-		return true;
-	}
-
-	/**
-	 * Determine if a log file exists in the specified directory
-	 * 
-	 * @param dir the directory to test
-	 * @return
-	 */
-	private boolean logExists(File dir) {
-		if (dir.getPath().equals(primaryDirPath)) {
-			if (verbose) {
-				System.out.println("\t\tis primary dir path " + dir.getPath());
-				System.out.println("\t\tuninstall = " + uninstall);
-			}
-			return !uninstall;
-		}
-		File logFile = new File(dir, "install.log");
-		boolean exists = logFile.exists();
-		if (verbose)
-			System.out.println("\t\tlog exists=" + exists + " : " + logFile.getAbsolutePath());
-		if (!exists)
-			return false;
-		return true;
-	}
-
-	/**
-	 * Scan the "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall" section of the
-	 * Windows registry used to populate the Add/Remove programs dialog looking for
-	 * references to old non-existent installations to remove
-	 */
-	private void cleanAddRemovePrograms() {
-		String rootKeyPath = Win32RegisterProductOperation.REGISTRY_UNINSTALL_KEY;
-		RegistryKey rootKey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, rootKeyPath, RegistryKey.ACCESS_READ);
-		if (verbose)
-			System.out.println("\t" + rootKeyPath);
-		if (rootKey == null) {
-			if (verbose)
-				System.out.println("\t\topenSubkey failed");
-			return;
-		}
-
-		Enumeration rootKeyElements;
-		try {
-			pause();
-			rootKeyElements = rootKey.keyElements();
-		}
-		catch (RegistryException ex) {
-			System.out.println("Failed to read Windows Registry key " + rootKeyPath);
-			ex.printStackTrace();
-			return;
-		}
-
-		Collection allUninstallDirPaths = new HashSet(40);
-		for (Enumeration iter = rootKeyElements; iter.hasMoreElements();) {
-			String subKeyName;
-			try {
-				subKeyName = (String) iter.nextElement();
-			}
-			catch (NoSuchElementException e) {
-				System.out.println("nextElement() failed");
-				e.printStackTrace();
-				continue;
-			}
-
-			RegistryKey subKey;
-			try {
-				subKey = rootKey.openSubKey(subKeyName);
-			}
-			catch (RegistryException ex) {
-				System.out.println("Failed to read Windows Registry key " + rootKeyPath + "\\" + subKeyName);
-				ex.printStackTrace();
-				continue;
-			}
-
-			String uninstallValue;
-			try {
-				uninstallValue = subKey.getStringValue(UNINSTALL_KEY);
-			}
-			catch (NoSuchValueException e) {
-				// ignored
-				continue;
-			}
-			catch (RegistryException ex) {
-				System.out.println("Failed to read Windows Registry string value for " + UNINSTALL_KEY + " key "
-					+ rootKeyPath + "\\" + subKeyName);
-				ex.printStackTrace();
-				continue;
-			}
-
-			if (verbose) {
-				System.out.println("\t" + subKeyName);
-				System.out.println("\t\t" + uninstallValue);
-			}
-
-			if (uninstallValue == null || !uninstallValue.startsWith(UNINSTALL_PREFIX)
-				|| !uninstallValue.endsWith(UNINSTALL_SUFFIX)) {
-				if (verbose)
-					System.out.println("\t\tskip... uninstall value is missing prefix or suffix");
-				continue;
-			}
-
-			String uninstallDirPath = uninstallValue.substring(UNINSTALL_PREFIX.length(), uninstallValue.length()
-				- UNINSTALL_SUFFIX.length());
-			if (verbose)
-				System.out.println("\t\t" + uninstallDirPath);
-
-			File uninstallDir = new File(uninstallDirPath);
-			File logFile = new File(uninstallDir, "install.log");
-			if (uninstallDirPath.equals(primaryDirPath)) {
-				if (!uninstall) {
-					if (!allUninstallDirPaths.contains(uninstallDirPath)) {
-						allUninstallDirPaths.add(uninstallDirPath);
-						if (verbose)
-							System.out.println("\t\tskip... installing primary dir " + uninstallDirPath);
-						continue;
-					}
-					else if (verbose)
-						System.out.println("\t\tduplicate primary dir entry");
-				}
-				else if (verbose)
-					System.out.println("\t\tdirectory being uninstalled");
-			}
-			else if (logFile.exists()) {
-				if (!allUninstallDirPaths.contains(uninstallDirPath)) {
-					allUninstallDirPaths.add(uninstallDirPath);
-					if (verbose)
-						System.out.println("\t\tskip... log file exists");
-					continue;
-				}
-				else if (verbose)
-					System.out.println("\t\tduplicate entry");
-			}
-
-			System.out.println("\t\tremove registry key " + rootKeyPath + "\\" + subKeyName);
-			add(new RemoveRegistryKeyOperation(rootKeyPath, subKeyName));
-		}
-		closeKey(rootKey);
-	}
-
-	private void closeKey(RegistryKey key) {
-		try {
-			key.closeKey();
-		}
-		catch (RegistryException e) {
-			System.out.println("Failed to close key " + key.getFullName());
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * There seems to be a timing issue when the Windows Registry is accessed too
-	 * frequently in too short a period of time. This method is called to slow things down
-	 * slightly when repeatedly accessing the Windows Registry and seems to prevent
-	 * intermittent {@link RegistryException}s from occurring.
-	 */
-	private void pause() {
-		try {
-			Thread.sleep(100);
-		}
-		catch (InterruptedException e) {
-			// ignored
-		}
-	}
-
-	/**
-	 * Return this operation name.
-	 */
-	public String toString() {
-		return "Scanning Windows Registry for old entries...";
-	}
-
-	/**
-	 * Method for testing the operation
-	 */
-	public static void main(String[] args) {
-
-		InstallOptions options = new InstallOptions();
-		System.out.println("Options processed:");
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.equals("-verbose") || arg.equals("-v")) {
-				System.out.println("\tverbose = true");
-				options.set("--verbose", Boolean.TRUE);
-			}
-			else if (arg.startsWith("-") && i + 1 < args.length) {
-				String key = arg.substring(1);
-				String value = args[++i];
-				System.out.println("\t" + key + " = " + value);
-				options.set(key, value);
-			}
-		}
-
-		ProxyOperation proxyOp = new CleanRegistryOperation(options, null);
-		CleanWin32RegistryOperation op = new CleanWin32RegistryOperation(proxyOp);
-		try {
-			op.prepare();
-		}
-		catch (Exception e) {
-			System.out.println("Prepare failed");
-			e.printStackTrace();
-		}
-
-		System.out.println();
-		System.out.println("Prerequisites:");
-		List prereqs = op.prerequisites();
-		for (Iterator iter = prereqs.iterator(); iter.hasNext();) {
-			Object each = (Object) iter.next();
-			System.out.println("\t" + each);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanupWin32RegistryOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanupWin32RegistryOperation.java
deleted file mode 100644
index b1ca685..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CleanupWin32RegistryOperation.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.io.File;
-import java.util.Enumeration;
-
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.ISingleton;
-import org.eclipse.epp.installer.core.operations.CleanupRegisteredProductsOperation;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-public class CleanupWin32RegistryOperation extends StubOperation implements
-		ISequence, ISingleton {
-
-	private static String uninstallKeyString = "UninstallString";
-
-	private static String installLocation = "InstallLocation";
-
-	public CleanupWin32RegistryOperation(ProxyOperation operation) {
-		super(operation);
-	}
-
-	/**
-	 * Add needed sub oprtations to set of Prerequisites.
-	 * 
-	 * @throws Exception
-	 */
-	public void prepare() throws Exception {
-		String uninstallJarName = ((CleanupRegisteredProductsOperation) this
-				.getProxyOperation()).getUninstallJarName();
-
-		String rootKeyPath = Win32RegisterProductOperation.REGISTRY_UNINSTALL_KEY;
-		try {
-			RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-					rootKeyPath, RegistryKey.ACCESS_READ);
-
-			for (Enumeration e = key.keyElements(); e.hasMoreElements();) {
-				String subKeyName = (String) e.nextElement();
-
-				try {
-					RegistryKey subKey = key.openSubKey(subKeyName);
-
-					String uninstallString = subKey
-							.getStringValue(uninstallKeyString);
-					int ind = uninstallString.indexOf(uninstallJarName);
-					if (ind != -1) {
-						File uninstaller = new File(uninstallString.substring(
-								uninstallString.indexOf(":") - 1, ind)
-								+ uninstallJarName);
-						if (!uninstaller.exists()) {
-
-							// System.out.println("Bad add/remove entry :"
-							// + uninstaller.getAbsolutePath());
-							// System.out.println("key name " + subKeyName);
-							add(new RemoveRegistryKeyOperation(rootKeyPath,
-									subKeyName));
-						}
-					}
-					subKey.closeKey();
-				} catch (RegistryException e1) {
-				}
-
-			}
-			key.closeKey();
-		} catch (RegistryException e) {
-		}
-
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CreateRegistryKeyOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CreateRegistryKeyOperation.java
deleted file mode 100644
index 2d7b836..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/CreateRegistryKeyOperation.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * CreateRegistryKeyOperation used to create specified Windows registry key.<br/>
- * 
- * Key are created in HKEY_LOCAL_MACHINE section of registry. This operation is
- * Windows only specific.<br/>
- * 
- * To successful perform of this operation, user must have rights to write into
- * HKEY_LOCAL_MACHINE section of registry.<br/>
- */
-public class CreateRegistryKeyOperation extends InstallOperation {
-	/**
-	 * Log entry opcode for this operation.
-	 */
-	public final static int REGISTRY_CREATE_KEY = (int) 'K';
-
-	/**
-	 * Registry path in HKEY_LOCAL_MACHINE.
-	 */
-	private String path;
-
-	/**
-	 * Registry key name.
-	 */
-	private String name;
-
-	/**
-	 * Construct new instance of CreateRegistryKeyOperation, with path and key
-	 * name.
-	 * 
-	 * @param path
-	 *            registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name
-	 *            key name.
-	 */
-	public CreateRegistryKeyOperation(String path, String name) {
-		this.path = path;
-		this.name = name;
-	}
-
-	/**
-	 * Run specified operation.
-	 * 
-	 * To successful perform of this operation, user must have rights to write
-	 * into HKEY_LOCAL_MACHINE section of registry.
-	 * 
-	 * @return execution status code. If operation coul'd not be performed then
-	 *         error status with ERROR_REGISTRY_ERROR code are returned. See
-	 *         {@link org.eclipse.epp.installer.core.IErrorConstants } for
-	 *         details.
-	 */
-	protected IStatus run(Context installer) {
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-				path, RegistryKey.ACCESS_WRITE);
-		if (key == null)
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't open key for write: " + path, null);
-		try {
-			key.createSubKey(name, null);
-			installer.getInstallLog().addEntry(new InstallLogEntry(REGISTRY_CREATE_KEY, path
-			+ ":" + name));
-			return Status.OK_STATUS;
-		} catch (RegistryException e) {
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't create subkey: " + name, e);
-		} finally {
-			try {
-				key.closeKey();
-			} catch (RegistryException e) {
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						e);
-			}
-		}
-	}
-
-	/**
-	 * Return this operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Creating Registry key {0}.",
-				new String[] { name });
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistryGetValueOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistryGetValueOperation.java
deleted file mode 100644
index ed9c929..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistryGetValueOperation.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-import com.ice.jni.registry.RegStringValue;
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-import com.ice.jni.registry.RegistryValue;
-
-public class RegistryGetValueOperation  extends InstallOperation {
-	
-	/**
-	 * Registry path in HKEY_LOCAL_MACHINE.
-	 */
-	private String path;
-	
-	/**
-	 * Registry key name.
-	 */
-	private String name;
-	
-	/**
-	 * Value to set.
-	 */
-	private String[] result;
-
-	/**
-	 * Construct new instance of RegistrySetValueOperation, with path, key name and value.
-	 * 
-	 * @param path registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name key name.
-	 * @param value value to set.
-	 */
-	public RegistryGetValueOperation(String path, String name, String[] result) {
-		this.path = path;
-		this.name = name;
-		this.result = result;
-	}
-	/**
-	 * Run specified operation.
-	 * 
-	 * To successful perform of this operation, user must have rights to write
-	 * into HKEY_LOCAL_MACHINE section of registry.
-	 * 
-	 * @return execution status code. If operation coul'd not be performed then
-	 *         error status with ERROR_REGISTRY_ERROR code are returned. See
-	 *         {@link org.eclipse.epp.installer.core.IErrorConstants } for
-	 *         details.
-	 */
-	protected IStatus run(Context installer) {
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-				path, RegistryKey.ACCESS_READ);
-		if (key == null)
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't open key for reading: " + path, null);	
-		try {
-			RegistryValue v = key.getValue(name);
-			if(v instanceof RegStringValue) {
-				result[0] = ((RegStringValue) v).getData();
-			}
-			else {
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR,
-						"Unable to read not string registry value: " + path + "." + name, null);
-			}
-			return Status.OK_STATUS;
-		} catch(RegistryException e) {
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-					e);
-		} finally {
-			try {
-				key.closeKey();
-			} catch(RegistryException e) {
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						e);
-			}
-		}
-	}
-	
-	/**
-	 * Return operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Reading registry value {0}.", new Object[] {name});
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistrySetValueOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistrySetValueOperation.java
deleted file mode 100644
index fd30e3d..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RegistrySetValueOperation.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-import com.ice.jni.registry.RegStringValue;
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-import com.ice.jni.registry.RegistryValue;
-
-/**
- * RegistrySetValueOperation used to set value of specified Windows registry key.<br/>
- * 
- * Key should be pressent in HKEY_LOCAL_MACHINE section of registry to perform this operation.<br/>
- * To create key you can use: {@link org.eclipse.epp.installer.internal.win32.core.operations.CreateRegistryKeyOperation }.<br/>
- * 
- * Only string value are supported at the moment.<br/>
- * 
- * This operation is Windows only specific.<br/> 
- */
-public class RegistrySetValueOperation extends InstallOperation {
-	
-	/**
-	 * Log entry opcode for this operation.
-	 */
-	public final static int REGISTRY_SET_VALUE = (int)'V';
-	
-	/**
-	 * Registry path in HKEY_LOCAL_MACHINE.
-	 */
-	private String path;
-	
-	/**
-	 * Registry key name.
-	 */
-	private String name;
-	
-	/**
-	 * Value to set.
-	 */
-	private Object value;
-
-	/**
-	 * Construct new instance of RegistrySetValueOperation, with path, key name and value.
-	 * 
-	 * @param path registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name key name.
-	 * @param value value to set.
-	 */
-	public RegistrySetValueOperation(String path, String name, Object value) {
-		this.path = path;
-		this.name = name;
-		this.value = value;
-	}
-	/**
-	 * Run specified operation.
-	 * 
-	 * To successful perform of this operation, user must have rights to write
-	 * into HKEY_LOCAL_MACHINE section of registry.
-	 * 
-	 * @return execution status code. If operation coul'd not be performed then
-	 *         error status with ERROR_REGISTRY_ERROR code are returned. See
-	 *         {@link org.eclipse.epp.installer.core.IErrorConstants } for
-	 *         details.
-	 */
-	protected IStatus run(Context installer) {
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-				path, RegistryKey.ACCESS_WRITE);
-		if (key == null)
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR,
-					"Can't open key for writing: " + path, null);	
-		try {
-			RegistryValue v = null;
-			if(value instanceof String)
-				v = new RegStringValue(key, name, (String)value);
-			if(v != null) {
-				key.setValue(v);
-				installer.getInstallLog().addEntry(new InstallLogEntry(REGISTRY_SET_VALUE, path + ":" + name));
-			}
-			return Status.OK_STATUS;
-		} catch(RegistryException e) {
-			return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-					IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-					e);
-		} finally {
-			try {
-				key.closeKey();
-			} catch(RegistryException e) {
-				return new Status(IStatus.ERROR, Win32.PLUGIN_ID,
-						IErrorConstants.ERROR_REGISTRY_ERROR, "Registry error",
-						e);
-			}
-		}
-	}
-	
-	/**
-	 * Return operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Writing registry value {0}.", new Object[] {name});
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RemoveRegistryKeyOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RemoveRegistryKeyOperation.java
deleted file mode 100644
index 1f0430f..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/RemoveRegistryKeyOperation.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.Win32;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-public class RemoveRegistryKeyOperation extends InstallOperation {
-
-	/**
-	 * Registry path in HKEY_LOCAL_MACHINE.
-	 */
-	private String path;
-
-	/**
-	 * Registry key name.
-	 */
-	private String name;
-
-	/**
-	 * Construct new instance of RemoveRegistryKeyOperation, with path and key
-	 * name.
-	 * 
-	 * @param path
-	 *            registry path, in HKEY_LOCAL_MACHINE section of registry.
-	 * @param name
-	 *            key name.
-	 */
-	public RemoveRegistryKeyOperation(String path, String name) {
-		this.path = path;
-		this.name = name;
-	}
-
-	/**
-	 * Run specified operation.
-	 * 
-	 * To successful perform of this operation, user must have rights to write
-	 * into HKEY_LOCAL_MACHINE section of registry.
-	 * 
-	 * @return execution status code. If operation coul'd not be performed then
-	 *         error status with ERROR_REGISTRY_ERROR code are returned. See
-	 *         {@link org.eclipse.epp.installer.core.IErrorConstants } for
-	 *         details.
-	 */
-	protected IStatus run(Context installer) {
-
-		try {
-			RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, path, RegistryKey.ACCESS_WRITE);
-			if (key != null) {
-				key.deleteSubKey(name);
-				key.closeKey();
-				return Status.OK_STATUS;
-			}
-			return new Status(IStatus.INFO, Win32.PLUGIN_ID, IErrorConstants.ERROR_REGISTRY_ERROR,
-				"Can't delete registry key: " + name, null);
-		}
-		catch (RegistryException e) {
-			return new Status(IStatus.INFO, Win32.PLUGIN_ID, IErrorConstants.ERROR_REGISTRY_ERROR,
-				"Failed to delete registry key: " + name, e);
-		}
-
-	}
-
-	/**
-	 * Return this operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Removing Registry key {0}.",
-				new String[] { name });
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/Win32RegisterProductOperation.java b/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/Win32RegisterProductOperation.java
deleted file mode 100644
index 088e384..0000000
--- a/plugins/org.eclipse.epp.installer.core.win32/src/org/eclipse/epp/installer/internal/win32/core/operations/Win32RegisterProductOperation.java
+++ /dev/null
@@ -1,459 +0,0 @@
-package org.eclipse.epp.installer.internal.win32.core.operations;
-
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.ISingleton;
-import org.eclipse.epp.installer.core.operations.CreateUninstallerOperation;
-import org.eclipse.epp.installer.core.operations.RegisterProductOperation;
-import org.eclipse.epp.installer.internal.core.operations.IRegisterProductOptions;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-import org.eclipse.epp.installer.internal.win32.core.ProductRegistry;
-
-import com.ice.jni.registry.Registry;
-import com.ice.jni.registry.RegistryException;
-import com.ice.jni.registry.RegistryKey;
-
-/**
- * RegisterProductOperation used to create correct uninstall product entry in windows
- * registry.<br/> So user will be able to uninstall application from Windows Add/Remove
- * proggrams dialog.<br/> This is Windows only operation.<br/> <br/> As uninstall
- * command used <i>javaw.exe -jar InstallDir\install.jar --uninstall</i> command.<br/>
- * <br/> Next values of install options used to set registry values:<br/> To set
- * Displayed Name used "DisplayName" install options value( see OPTION_DISPLAY_NAME in
- * {@link org.eclipse.epp.installer.core.InstallOptions } ).<br/> To set Displayed
- * Icon used "DisplayIcon" install options value.<br/> To set Displayed Version used
- * "DisplayVersion" install options value.<br/> To set Publisher name used "Publisher"
- * install options value( see OPTION_PUBLISHER in
- * {@link org.eclipse.epp.installer.core.InstallOptions } ).<br/>
- */
-public class Win32RegisterProductOperation extends StubOperation
-	implements ISequence, ISingleton
-{
-	/**
-	 * Registry path used to store value in.
-	 */
-	public static final String REGISTRY_UNINSTALL_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
-
-	/**
-	 * Construct new instance of RegisterProductOperation.
-	 */
-	public Win32RegisterProductOperation(ProxyOperation operation) {
-		super(operation);
-	}
-
-	protected InstallOptions getOptions() {
-		return ((RegisterProductOperation) this.getProxyOperation()).getInstallOptions();
-	}
-
-	private String getResolvedString(String string) {
-		InstallOptions options = this.getOptions();
-		return Variables.resolve(options.getString(string), options);
-	}
-
-	/**
-	 * Retrieve and resolve a value for either the first option key, or if failing that,
-	 * then the second option key.
-	 * 
-	 * @param keys the keys used to retrieve value from install options. This method tries
-	 *            the first key and if that fails, tries the second, and so on in order,
-	 *            stopping when a key is found to have a value or all keys have been
-	 *            tried.
-	 * @return the resolved value or null if undetermined
-	 */
-	private String getResolvedOption(String[] keys) {
-		InstallOptions options = getOptions();
-		String value = null;
-		for (int i = 0; i < keys.length; i++) {
-			String eachKey = keys[i];
-			if (eachKey != null && eachKey.length() != 0) {
-				value = options.getString(eachKey);
-				if (value != null && value.length() > 0)
-					break;
-			}
-		}
-		if (value != null)
-			value = Variables.resolve(value, options);
-		return value;
-	}
-
-	/**
-	 * Resolve each of the specified keys in order until a single key resolves or no more
-	 * keys remain. If a resolved name is obtained, then append new instance of
-	 * CreateRegistryKeyOperation for the specified path and name to list of
-	 * prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param optionKeys the keys used to retrieve the name from install options. This
-	 *            method tries the first key and if that fails, tries the second, and so
-	 *            on in order, stopping when a key resolves or all keys have been tried.
-	 * @param checkExistance indicates that CreateRegistryKeyOperation will not be created
-	 * 			  if key already exists
-	 * @return the new registry path or <code>null</code> if it could not be created
-	 */
-	private String createRegistryKeyOperation(String path, String[] optionKeys, boolean checkExistance) {
-		String name = getResolvedOption(optionKeys);
-		if (name != null && name.length() != 0) {
-			return createRegistryKeyOperation(path, name, checkExistance);
-		}
-		System.out.println("CreateRegistryKeyOperation: cannot resolve keys");
-		System.out.println("   path: " + path);
-		StringBuffer buf = new StringBuffer(100);
-		for (int i = 0; i < optionKeys.length; i++) {
-			buf.append(i == 0 ? "   keys: " : ", ");
-			buf.append(optionKeys[i]);
-		}
-		System.out.println(buf.toString());
-		return null;
-	}
-
-	/**
-	 * Resolve each of the specified keys in order until a single key resolves or no more
-	 * keys remain. If a resolved name is obtained, then append new instance of
-	 * CreateRegistryKeyOperation for the specified path and name to list of
-	 * prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param optionKeys the keys used to retrieve the name from install options. This
-	 *            method tries the first key and if that fails, tries the second, and so
-	 *            on in order, stopping when a key resolves or all keys have been tried.
-	 * @return the new registry path or <code>null</code> if it could not be created
-	 */
-	private String createRegistryKeyOperation(String path, String[] optionKeys) {
-		return createRegistryKeyOperation(path, optionKeys, false);
-	}
-	
-	/**
-	 * Append new instance of CreateRegistryKeyOperation for the specified path and name
-	 * to list of prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param name the new child path element
-	 * @param checkExistance indicates that CreateRegistryKeyOperation will not be created
-	 * 			  if key already exists
-	 * @return the new registry path or <code>null</code> if it could not be created
-	 */
-	private String createRegistryKeyOperation(String path, String name, boolean checkExistance) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0) {
-			if (checkExistance) {
-				if (!keyExists(path, name)) // do nothing if key is already created
-					add(new CreateRegistryKeyOperation(path, name));
-			} else {
-				add(new CreateRegistryKeyOperation(path, name));
-			}
-			return path + "\\" + name;
-		}
-		System.out.println("CreateRegistryKeyOperation: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		return null;
-	}
-
-	/**
-	 * Append new instance of CreateRegistryKeyOperation for the specified path and name
-	 * to list of prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param name the new child path element
-	 * @return the new registry path or <code>null</code> if it could not be created
-	 */
-	private String createRegistryKeyOperation(String path, String name) {
-		return createRegistryKeyOperation(path, name, false);
-	}
-	
-	/**
-	 * Resolve each of the specified keys in order until a single key resolves or no more
-	 * keys remain. If a resolved value is obtained, then append new instance of
-	 * RegistrySetValueOperation for specified path, name and value to list of
-	 * Prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param name the name used to store value in registry
-	 * @param optionKeys the keys used to retrieve the value from install options. This
-	 *            method tries the first key and if that fails, tries the second, and so
-	 *            on in order, stopping when a key resolves or all keys have been tried.
-	 * @return return <code>false</code> if one of the arguments is invalid or the
-	 *         option keys could not be resolved
-	 */
-	private boolean addRegistryValueOperation(String path, String name, String[] optionKeys) {
-		String value = getResolvedOption(optionKeys);
-		if (value != null) {
-			return addRegistryValueOperation(path, name, value);
-		}
-		System.out.println("RegistrySetValueOperation: cannot resolve keys");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		StringBuffer buf = new StringBuffer(100);
-		for (int i = 0; i < optionKeys.length; i++) {
-			buf.append(i == 0 ? "   keys: " : ", ");
-			buf.append(optionKeys[i]);
-		}
-		System.out.println(buf.toString());
-		return false;
-	}
-
-	/**
-	 * Append new instance of RegistrySetValueOperation for specified path, name and value
-	 * to list of Prerequisites.
-	 * 
-	 * @param path registry path
-	 * @param name the name used to store value in registry
-	 * @param value the value to store in the registry
-	 * @return return <code>false</code> if one of the arguments is invalid
-	 */
-	private boolean addRegistryValueOperation(String path, String name, String value) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0 && value != null) {
-			add(new RegistrySetValueOperation(path, name, value));
-			return true;
-		}
-		System.out.println("RegistrySetValueOperation: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		System.out.println("   value: " + value);
-		return false;
-	}
-
-	private boolean keyExists(String path, String name) {
-		return keyExists(path + "\\" + name);
-	}
-	
-	private boolean keyExists(String path) {
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, path, RegistryKey.ACCESS_READ);
-		if (key != null)
-			return true;
-		return false;
-	}
-	
-	private boolean valueEquals(String path, String name, String value) {
-		RegistryKey key = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,
-				path, RegistryKey.ACCESS_READ);
-		if (key != null) {
-			try {
-				String v = key.getStringValue(name);
-				if (v != null && v.trim().length() > 0)
-					if (v.equals(value))
-						return true;
-			} catch (RegistryException e) {
-				e.printStackTrace();
-			}
-		}
-		return false;
-	}
-	
-	// TODO: javadoc
-	private String addKey(String path, String name, String field, String value) {
-		if (path != null && path.length() != 0 && name != null && name.length() != 0
-				&& field != null && field.length() != 0 && value != null) {
-			String regPath = path + "\\" + name;
-			String nameWithNumber = name;
-			int number = 0;
-
-			while (true) {
-				if (!keyExists(path, nameWithNumber)) {
-
-					regPath = createRegistryKeyOperation(path, nameWithNumber);
-					break;
-				} else if (valueEquals(regPath, field, value)) {
-
-					// create key even if it already exists in
-					// order to add log record
-					regPath = createRegistryKeyOperation(path, nameWithNumber);
-					break;
-				}
-				nameWithNumber = name + " (" + number + ")";
-				regPath = path + "\\" + nameWithNumber;
-				number++;
-			}
-			return regPath;
-		}
-		System.out.println("addKey: invalid argument");
-		System.out.println("   path: " + path);
-		System.out.println("   name: " + name);
-		System.out.println("   field: " + field);
-		System.out.println("   value: " + value);
-		return null;
-	}
-	
-	// TODO: javadoc
-	private String addKey(String path, String[] optionKeys, String field, String value) {
-		if (optionKeys != null && optionKeys.length != 0) {
-			String name = getResolvedOption(optionKeys);
-			return addKey(path, name, field, value);
-		}
-		System.out.println("addKey: invalid argument");
-		System.out.println("   optionKeys: " + optionKeys);
-		return null;
-	}
-	
-	/**
-	 * Add needed sub oprtations to set of Prerequisites.
-	 * 
-	 * @throws Exception
-	 */
-	public void prepare() throws Exception {
-
-		RegisterProductOperation operation = (RegisterProductOperation) this.getProxyOperation();
-
-		String installDir = getResolvedString(InstallOptions.OPTION_INSTALL_DIR);
-
-		/*********************************************************************************
-		 * Registry Entries for Ready for Rational Certification <br>
-		 * Software\\<publisher>\\<productName>\\<version>
-		 */
-
-		String publisherRegPath = createRegistryKeyOperation(ProductRegistry.REGISTRY_SOFTWARE_KEY, new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER, InstallOptions.OPTION_PUBLISHER
-		});
-		if (publisherRegPath != null) {
-
-			String productNameRegPath = createRegistryKeyOperation(publisherRegPath, new String[]{
-				IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, InstallOptions.OPTION_PRODUCT_NAME
-			});
-			if (productNameRegPath != null) {
-
-				String regPath = addKey(productNameRegPath,
-						new String[] {
-								IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_VERSION,
-								InstallOptions.OPTION_PRODUCT_VERSION },
-						ProductRegistry.LOCATION_VALUE_NAME, installDir);
-				addRegistryValueOperation(regPath, ProductRegistry.LOCATION_VALUE_NAME, installDir);
-			}
-		}
-		
-		/***********************************************************************
-		 * Registry Entries for Windows Add/Remove Programs <br>
-		 * Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\<productName>
-		 */
-
-		String uninstallRegName = null;
-		String uninstallProductName = getResolvedOption(new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_NAME, InstallOptions.OPTION_PRODUCT_NAME
-		});
-		String uninstallProductVersion = getResolvedOption(new String[]{
-			IRegisterProductOptions.OPTION_REGISTRY_PRODUCT_VERSION, InstallOptions.OPTION_PRODUCT_VERSION
-		});
-		String uninstallRegPath = null;
-		if (uninstallProductName != null && uninstallProductName.length() > 0) {
-			if (uninstallProductVersion != null && uninstallProductVersion.length() > 0)
-				uninstallRegName = uninstallProductName + " " + uninstallProductVersion;
-			else
-				uninstallRegName = uninstallProductName;
-			uninstallRegPath = addKey(REGISTRY_UNINSTALL_KEY, uninstallRegName, "InstallLocation", installDir);
-		}
-		
-		if (uninstallRegPath != null) {
-
-			// The command to launch the uninstaller
-//			addRegistryValueOperation(uninstallRegPath, "UninstallString", "javaw.exe" + " -jar \"" + installDir + "\\"
-//				+ operation.getUninstallJarName() + "\" --uninstall");
-			addRegistryValueOperation(uninstallRegPath, "UninstallString", operation.getUninstallJarName());
-
-			// The installation directory
-			addRegistryValueOperation(uninstallRegPath, "InstallLocation", installDir);
-
-			// The installation date in YYYYMMDD format
-		    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-		    Calendar c1 = Calendar.getInstance(); // today
-			addRegistryValueOperation(uninstallRegPath, "InstallDate", sdf.format(c1.getTime()));
-			
-			// The name to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "DisplayName", new String[]{
-				IRegisterProductOptions.OPTION_UNINSTALL_NAME, InstallOptions.OPTION_DISPLAY_NAME
-			});
-
-			// The icon to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "DisplayIcon", new String[]{
-				IRegisterProductOptions.OPTION_UNINSTALL_ICON,
-			});
-
-			// The version to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "DisplayVersion", new String[]{
-				IRegisterProductOptions.OPTION_UNINSTALL_VERSION, InstallOptions.OPTION_PRODUCT_VERSION
-			});
-
-			// The publisher to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "Publisher", getResolvedOption(new String[]{
-				IRegisterProductOptions.OPTION_UNINSTALL_PUBLISHER, IRegisterProductOptions.OPTION_REGISTRY_PUBLISHER, InstallOptions.OPTION_PUBLISHER
-			}));
-
-			// The support string to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "Contact", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_CONTACT
-			));
-
-			// The link to the support website to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "HelpLink", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_HELP_LINK
-			));
-			
-			// The telephone number for support to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "HelpTelephone", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_HELP_TELEPHONE
-			));
-		
-			// The link to the website for application updates to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "URLUpdateInfo", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_URL_UPDATE_INFO
-			));
-			
-			// The link to the application home page to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "URLInfoAbout", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_URL_INFO_ABOUT
-			));
-
-			// The link to the application README to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "Readme", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_README
-			));
-			
-			// The comments to display in Windows Add/Remove Programs
-			addRegistryValueOperation(uninstallRegPath, "Comments", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_COMMENTS
-			));
-
-			// The release type
-			addRegistryValueOperation(uninstallRegPath, "ReleaseType", getResolvedString(
-				IRegisterProductOptions.OPTION_UNINSTALL_RELEASE_TYPE
-			));
-			
-			// The install log file
-			addRegistryValueOperation(uninstallRegPath, "LogFile", installDir
-					+ "\\" + CreateUninstallerOperation.INSTALL_LOG
-			);
-			
-			// The install log file
-			addRegistryValueOperation(uninstallRegPath, "RegistryLocation", 
-					"HKLM\\" + uninstallRegPath
-			);
-			
-		}
-
-		/*
-		 * TODO [author=Dan] support other key/value pairs:
-		 * InstallSource, RegCompany, RegOwner, EstimatedSize,
-		 * QuietUninstallString, QuietDisplayName, 
-		 * ProductID, VersionMajor/VersionMinor (DWORD),
-		 * ParentDisplayName/ParentKeyName,
-		 * NoModify/NoRepair (DWORD), ModifyPath
-		 */
-	}
-
-	/**
-	 * Return operation name.
-	 */
-	public String toString() {
-		return "Registering product...";
-	}
-
-	public boolean equals(Object obj) {
-		return getClass().isInstance(obj);
-	}
-
-	public int hashCode() {
-		return getClass().hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/.classpath b/plugins/org.eclipse.epp.installer.core/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.core/.cvsignore b/plugins/org.eclipse.epp.installer.core/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.core/.project b/plugins/org.eclipse.epp.installer.core/.project
deleted file mode 100644
index b7b42b7..0000000
--- a/plugins/org.eclipse.epp.installer.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.installer.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 6eb7966..0000000
--- a/plugins/org.eclipse.epp.installer.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.epp.installer.core;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.epp.installer.archive
-Export-Package: org.eclipse.epp.installer.core,
- org.eclipse.epp.installer.core.eclipse,
- org.eclipse.epp.installer.core.model,
- org.eclipse.epp.installer.core.operations,
- org.eclipse.epp.installer.core.product,
- org.eclipse.epp.installer.core.steps
-Bundle-Activator: org.eclipse.epp.installer.internal.core.InstallerActivator
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.epp.installer.core/build.properties b/plugins/org.eclipse.epp.installer.core/build.properties
deleted file mode 100644
index e9863e2..0000000
--- a/plugins/org.eclipse.epp.installer.core/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml
diff --git a/plugins/org.eclipse.epp.installer.core/library/fs.c b/plugins/org.eclipse.epp.installer.core/library/fs.c
deleted file mode 100644
index a3cb92c..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/fs.c
+++ /dev/null
@@ -1,165 +0,0 @@
-

-#include "os.h"

-#include <stdio.h>

-#include <sys/types.h>

-#include <sys/stat.h>

-

-#ifdef _WIN32

-#include <windows.h>

-#include <shlobj.h>

-#include <tchar.h>

-#include <stdlib.h>

-

-#endif /* _WIN32 */

-

-

-#ifndef NO_DeleteFileOnReboot

-JNIEXPORT jboolean JNICALL OS_NATIVE(DeleteFileOnReboot)

-	(JNIEnv *env, jclass that, jstring arg0 )

-{

-	const jbyte *path;

-	jboolean result;

-

-	path = (*env)->GetStringUTFChars(env, arg0, JNI_FALSE);

-	if ( path == NULL ) return 0; /* OutOfMemoryError already thrown */

-#ifdef _WIN32

-	result = MoveFileEx(path,NULL,MOVEFILE_DELAY_UNTIL_REBOOT);

-#else /* _WIN32 */

-	result = unlink(path) == 0;

-#endif /* _WIN32 */

-	(*env)->ReleaseStringUTFChars(env, arg0, path);

-	return result;

-}

-#endif

-

-

-#ifndef NO_GetSpecialFolderPath

-JNIEXPORT jstring JNICALL OS_NATIVE(GetSpecialFolderPath)

-	(JNIEnv *env, jclass that, jint id )

-{

-	jstring str = NULL;

-

-#ifdef _WIN32

-

-	TCHAR szPath[MAX_PATH];

-	if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, szPath) ) )

-	{

-		str = (*env)->NewStringUTF(env,szPath);

-	}

-		

-#else /* _WIN32 */

-	str = (*env)->NewStringUTF(env,"");

-#endif /* _WIN32 */

-

-	return str;

-

-}

-#endif

-

-

-#ifndef NO_GetDriveType

-JNIEXPORT jint JNICALL OS_NATIVE(GetDriveType)

-	(JNIEnv *env, jclass that, jstring arg0 )

-{

-	jint result;

-#ifdef _WIN32

-	const jbyte *path;

-	TCHAR drive[_MAX_DRIVE];

-

-	path = (*env)->GetStringUTFChars(env, arg0, JNI_FALSE);

-	if ( path == NULL ) return 0; /* OutOfMemoryError already thrown */

-	_splitpath(path, drive, NULL, NULL, NULL );

-	result = GetDriveType(drive);

-	(*env)->ReleaseStringUTFChars(env, arg0, path);

-#else /* _WIN32 */

-	result = 0;

-#endif /* _WIN32 */

-	return result;

-}

-

-#endif

-

-

-#ifndef NO_CanWrite

-JNIEXPORT jboolean JNICALL OS_NATIVE(CanWrite)

-	(JNIEnv *jenv, jclass that, jstring arg0 )

-{

-	struct _stat buf;

-	int statRes;

-	jboolean ret=0;

-	const char *str_path = (*jenv)->GetStringUTFChars(jenv, arg0, 0);

-	

-	statRes = _stat( str_path, &buf );

-	

-	if( statRes != 0 )		

-		ret=0;

-	else if((buf.st_mode&_S_IWRITE)==_S_IWRITE) 

-		ret=1;

-   

-	(*jenv)->ReleaseStringUTFChars(jenv, arg0, str_path);

-

-	return ret;

-}

-#endif

-#ifndef NO_CanRead

-JNIEXPORT jboolean JNICALL OS_NATIVE(CanRead)

-	(JNIEnv *jenv, jclass that, jstring arg0 )

-{

-	struct _stat buf;

-	int statRes;

-	jboolean ret=0;

-	const char *str_path = (*jenv)->GetStringUTFChars(jenv, arg0, 0);

-	

-	statRes = _stat( str_path, &buf );

-	

-	if( statRes != 0 )		

-		ret=0;

-	else if((buf.st_mode&_S_IREAD)==_S_IREAD) 

-		ret=1;

-   

-	(*jenv)->ReleaseStringUTFChars(jenv, arg0, str_path);

-

-	return ret;

-}

-

-#endif

-

-#ifndef NO_SetCreationTime

-JNIEXPORT jboolean JNICALL OS_NATIVE(SetCreationTime)

-	(JNIEnv *jenv, jclass that, jstring arg0,jlong jtimestamp )

-{

-	

-

-	jboolean result=0;

-	LARGE_INTEGER timestamp;

-	const char *str_path = (*jenv)->GetStringUTFChars(jenv, arg0, 0);

-

-	FILETIME creation_time;

-

-	HANDLE fhandle;

-	__int64 TIMESTAMP_OFFSET = 11644473600000L;

-	long TIMESTAMP_DIVIDER = 10000L;

-

-	jtimestamp=(jtimestamp  + TIMESTAMP_OFFSET) * TIMESTAMP_DIVIDER;

-	fhandle = CreateFile(str_path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL);

-

-	if(fhandle == INVALID_HANDLE_VALUE)

-	;

-	else{

-

-	timestamp.QuadPart = jtimestamp;

-	creation_time.dwHighDateTime = timestamp.HighPart;

-	creation_time.dwLowDateTime = timestamp.LowPart;

-

-	if(SetFileTime((HANDLE)fhandle, &creation_time, NULL, NULL) == 0);

-	else result = 1;

-	

-	}

-

-

-	(*jenv)->ReleaseStringUTFChars(jenv, arg0, str_path);

-	return result;

-}

-

-#endif

-

diff --git a/plugins/org.eclipse.epp.installer.core/library/make_common.mak b/plugins/org.eclipse.epp.installer.core/library/make_common.mak
deleted file mode 100644
index 50c1686..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/make_common.mak
+++ /dev/null
@@ -1,5 +0,0 @@
-

-maj_ver=1

-min_ver=0

-bld_num=1

-comma_ver=1,0,1,0

diff --git a/plugins/org.eclipse.epp.installer.core/library/os.c b/plugins/org.eclipse.epp.installer.core/library/os.c
deleted file mode 100644
index 0fde5c2..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/os.c
+++ /dev/null
@@ -1,18 +0,0 @@
- 

-#include "os.h"

-

-int IS_JNI_1_2 = 0;

-

-#ifdef JNI_VERSION_1_2

-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {

-	IS_JNI_1_2 = 1;

-	return JNI_VERSION_1_2;

-}

-#endif

-

-void throwOutOfMemory(JNIEnv *env) {

-	jclass clazz = (*env)->FindClass(env, "java/lang/OutOfMemoryError");

-	if (clazz != NULL) {

-		(*env)->ThrowNew(env, clazz, "");

-	}

-}

diff --git a/plugins/org.eclipse.epp.installer.core/library/os.h b/plugins/org.eclipse.epp.installer.core/library/os.h
deleted file mode 100644
index 09b5fe4..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/os.h
+++ /dev/null
@@ -1,74 +0,0 @@
-

-/**

- * os.h

- *

- * This file contains the global macro declarations for the

- * OS library.

- *

- */

-

-#ifndef INC_os_H

-#define INC_os_H

-

-#include "jni.h"

-

-#define OS_NATIVE(func) Java_org_eclipse_epp_installer_internal_core_OS_##func

-

-#ifdef __cplusplus

-extern "C" {

-#endif

-

-extern int IS_JNI_1_2;

-

-/* 64 bit support */

-#ifndef OS_PTR_SIZE_64

-

-#define GetOS_PTRField GetIntField

-#define SetOS_PTRField SetIntField

-#define NewOS_PTRArray NewIntArray

-#define CallStaticOS_PTRMethodV CallStaticIntMethodV

-#define CallOS_PTRMethodV CallIntMethodV

-#define CallStaticOS_PTRMethod CallStaticIntMethod

-#define CallOS_PTRMethod CallIntMethod

-#define GetOS_PTRArrayElements GetIntArrayElements

-#define ReleaseOS_PTRArrayElements ReleaseIntArrayElements

-#define OS_PTRArray jintArray

-#define OS_PTR jint

-#define OS_PTR_SIGNATURE "I"

-

-#else

-

-#define GetOS_PTRField GetLongField

-#define SetOS_PTRField SetLongField

-#define NewOS_PTRArray NewLongArray

-#define CallStaticOS_PTRMethodV CallStaticLongMethodV

-#define CallOS_PTRMethodV CallLongMethodV

-#define CallStaticOS_PTRMethod CallStaticLongMethod

-#define CallOS_PTRMethod CallLongMethod

-#define GetOS_PTRArrayElements GetLongArrayElements

-#define ReleaseOS_PTRArrayElements ReleaseLongArrayElements

-#define OS_PTRArray jlongArray

-#define OS_PTR jlong

-#define OS_PTR_SIGNATURE "J"

-

-#endif

-

-void throwOutOfMemory(JNIEnv *env);

-

-#define CHECK_NULL_VOID(ptr) \

-	if ((ptr) == NULL) { \

-		throwOutOfMemory(env); \

-		return; \

-	}

-

-#define CHECK_NULL(ptr) \

-	if ((ptr) == NULL) { \

-		throwOutOfMemory(env); \

-		return 0; \

-	}

-

-#ifdef __cplusplus

-}

-#endif 

-

-#endif /* ifndef INC_os_H */

diff --git a/plugins/org.eclipse.epp.installer.core/library/sys.c b/plugins/org.eclipse.epp.installer.core/library/sys.c
deleted file mode 100644
index 5857e21..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/sys.c
+++ /dev/null
@@ -1,80 +0,0 @@
-

-#include "os.h"

-

-#ifdef _WIN32

-#include <windows.h>

-#endif /* _WIN32 */

-

-

-#ifndef NO_SystemReboot

-JNIEXPORT jboolean JNICALL OS_NATIVE(SystemReboot)

-	(JNIEnv *env, jclass that )

-{

-#ifdef _WIN32

-	HANDLE hToken; 

-	TOKEN_PRIVILEGES tkp; 

-  

-	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 

-		return FALSE;

- 

-	LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); 

-	tkp.PrivilegeCount = 1;  // one privilege to set    

-	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 

-	

-	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); 

-	// Cannot test the return value of AdjustTokenPrivileges. 

-	if (GetLastError() != ERROR_SUCCESS)

-		return FALSE;

-		

-	SetProcessShutdownParameters(0x100/*Application reserved last shutdown range*/,0);		

-	return ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);

-	

-#else /* _WIN32 */

-

-	return FALSE;

-	

-#endif /* _WIN32 */

-

-}

-#endif

-

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsUserAdmin)

-		(JNIEnv *env, jclass that )

-{

-#ifdef _WIN32

-		/*++ 

-Routine Description: This routine returns TRUE if the caller's process 

-is a member of the Administrators local group. Caller is NOT expected 

-to be impersonating anyone and is expected to be able to open its own 

-process and process token. 

-Arguments: None. 

-Return Value: 

-   TRUE - Caller has Administrators local group. 

-   FALSE - Caller does not have Administrators local group. --

-*/ 

-BOOL b;

-SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;

-PSID AdministratorsGroup; 

-b = AllocateAndInitializeSid(

-    &NtAuthority,

-    2,

-    SECURITY_BUILTIN_DOMAIN_RID,

-    DOMAIN_ALIAS_RID_ADMINS,

-    0, 0, 0, 0, 0, 0,

-    &AdministratorsGroup); 

-if(b) 

-{

-    if (!CheckTokenMembership( NULL, AdministratorsGroup, &b)) 

-    {

-         b = FALSE;

-    } 

-    FreeSid(AdministratorsGroup); 

-}

-

-return b;

-

-#else

-	return TRUE;

-#endif

-

-}

diff --git a/plugins/org.eclipse.epp.installer.core/library/win32/.cvsignore b/plugins/org.eclipse.epp.installer.core/library/win32/.cvsignore
deleted file mode 100644
index 9399a0e..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/win32/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.exp
-*.lib
-*.res
diff --git a/plugins/org.eclipse.epp.installer.core/library/win32/build.bat b/plugins/org.eclipse.epp.installer.core/library/win32/build.bat
deleted file mode 100644
index dddec84..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/win32/build.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off

-

-rem ********

-rem MSVC 6.0

-rem ********

-rem call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat"

-call "C:\Program Files\Microsoft SDK\SetEnv.bat" /2000

-

-set OUTPUT_DIR="..\..\..\org.eclipse.epp.installer.core.win32\"

-

-IF NOT "%JAVA_HOME%"=="" GOTO MAKE

-

-set JAVA_HOME=C:\java\j2sdk1.4.2_02

-set path=%JAVA_HOME%;%path%

-

-:MAKE

-nmake -f make_win32.mak clean

-nmake -f make_win32.mak %1 %2 %3 %4

diff --git a/plugins/org.eclipse.epp.installer.core/library/win32/make_win32.mak b/plugins/org.eclipse.epp.installer.core/library/win32/make_win32.mak
deleted file mode 100644
index a1653bb..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/win32/make_win32.mak
+++ /dev/null
@@ -1,56 +0,0 @@
-

-# assumes JAVA_HOME is set in the environment from which nmake is run

-

-APPVER=5.0

-!include <..\make_common.mak>

-

-pgm_ver_str="OS support library $(maj_ver).$(min_ver) for Windows"

-timestamp_str=__DATE__\" \"__TIME__\" (EST)\"

-copyright = "Copyright (C) 2005 Instantiations.  All rights reserved."

-

-WS_PREFIX   = win32

-OS_VERSION = $(maj_ver)$(min_ver)

-

-OS_LIB     = os.dll

-OS_OBJS	= os.obj fs.obj sys.obj

-

-OS_LIBS    = kernel32.lib user32.lib advapi32.lib shell32.lib

-

-CFLAGS = -c -W3 -G6 -GD -O1 -DOS_VERSION=$(OS_VERSION) -DOS_BUILD_NUM=$(bld_num) -nologo -D_X86_=1 -D_WIN32 -D_WIN95 -D_WIN32_WINDOWS=0x0400 -D_MT -MT -DWIN32 -DXP_WIN -DXP_WIN32 -D_WIN32_DCOM /I$(JAVA_HOME)\include /I$(JAVA_HOME)\include\win32 /I.

-RCFLAGS = -DOS_FILE_VERSION=\"$(maj_ver).$(min_ver)\" -DOS_COMMA_VERSION=$(comma_ver) -DPRODUCT_COMMA_VERSION=$(comma_ver) -DPRODUCT_VERSION=\"$(maj_ver).$(min_ver).$(bld_num)\"

-LFLAGS = /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO -entry:_DllMainCRTStartup@12 -dll /BASE:0x10000000 /comment:$(pgm_ver_str) /comment:$(copyright) /DLL

-

-XCFLAGS = $(CFLAGS) \

-

-

-all: $(OS_LIB)

-

-os.obj: 

-	cl $(XCFLAGS) ..\os.c

-

-fs.obj:

-	cl $(XCFLAGS) ..\fs.c

-

-sys.obj:

-	cl $(XCFLAGS) ..\sys.c

-

-$(OS_LIB): $(OS_OBJS) os.res

-	echo $(LFLAGS) >templrf

-	echo $(OS_LIBS) >>templrf

-	echo -machine:IX86 >>templrf

-	echo -subsystem:windows >>templrf

-	echo -out:$(OS_LIB) >>templrf

-	echo $(OS_OBJS) >>templrf

-	echo os.res >>templrf

-	link @templrf

-	del templrf

-	

-os.res:

-	rc $(RCFLAGS) -DOS_ORG_FILENAME=\"$(OS_LIB)\" -r -fo os.res os.rc

-	

-

-clean:

-    del *.obj *.res *.dll *.lib *.exp

-

-install: all

-	copy $(OS_LIB) $(OUTPUT_DIR)

diff --git a/plugins/org.eclipse.epp.installer.core/library/win32/os.rc b/plugins/org.eclipse.epp.installer.core/library/win32/os.rc
deleted file mode 100644
index b2b6ed2..0000000
--- a/plugins/org.eclipse.epp.installer.core/library/win32/os.rc
+++ /dev/null
@@ -1,35 +0,0 @@
- 

-#include "windows.h"

-

-VS_VERSION_INFO VERSIONINFO

- FILEVERSION OS_COMMA_VERSION

- PRODUCTVERSION PRODUCT_COMMA_VERSION

- FILEFLAGSMASK 0x3fL

-#ifdef _DEBUG

- FILEFLAGS 0x1L

-#else

- FILEFLAGS 0x0L

-#endif

- FILEOS 0x40000L

- FILETYPE 0x2L

- FILESUBTYPE 0x0L

-BEGIN

-    BLOCK "StringFileInfo"

-    BEGIN

-        BLOCK "040904b0"

-        BEGIN

-            VALUE "CompanyName", "Instantiations\0"

-            VALUE "FileDescription", "OS support library\0"

-            VALUE "FileVersion", OS_FILE_VERSION

-            VALUE "InternalName", "os\0"

-            VALUE "LegalCopyright", "Copyright 2005 Instantiations.  All Rights Reserved.\0"

-            VALUE "OriginalFilename", OS_ORG_FILENAME

-            VALUE "ProductName", "RCP Installer\0"

-            VALUE "ProductVersion", PRODUCT_VERSION

-        END

-    END

-    BLOCK "VarFileInfo"

-    BEGIN

-        VALUE "Translation", 0x409, 1200

-    END

-END

diff --git a/plugins/org.eclipse.epp.installer.core/plugin.xml b/plugins/org.eclipse.epp.installer.core/plugin.xml
deleted file mode 100644
index c1538c5..0000000
--- a/plugins/org.eclipse.epp.installer.core/plugin.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="installer" name="%installerExtensionPoint" schema="schema/installer.exsd"/>
-   <extension-point id="configurationProvider" name="%configurationProvider" schema="schema/configurationProvider.exsd"/>
-   <extension-point id="platform" name="%platformName" schema="schema/platform.exsd"/>
-   <extension-point id="stepDefinition" name="%stepDefinitionName" schema="schema/stepDefinition.exsd"/>
-   <extension-point id="steps" name="%stepsName" schema="schema/steps.exsd"/>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.epp.installer.internal.core.InstallerApplication">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.epp.installer.archive.archive">
-      <archive
-            class="org.eclipse.epp.installer.internal.archive.zip.ZipArchiveFactory">
-      </archive>
-   </extension>
-   <extension
-         point="org.eclipse.epp.installer.core.stepDefinition">
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ChoiceStep"
-            id="org.eclipse.epp.installer.ChoiceStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ChooseEclipseStep"
-            id="org.eclipse.epp.installer.ChooseEclipseStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ChooseLocationStep"
-            id="org.eclipse.epp.installer.ChooseLocationStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ChooseProductStep"
-            id="org.eclipse.epp.installer.ChooseProductStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.CheckAdminPrivilegesStep"
-            id="org.eclipse.epp.installer.CheckAdminPrivilegesStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.CustomizeStep"
-            id="org.eclipse.epp.installer.CustomizeStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.PromptUserStep"
-            id="org.eclipse.epp.installer.PromptUserStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.RunOperationsStep"
-            id="org.eclipse.epp.installer.RunOperationsStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep"
-            id="org.eclipse.epp.installer.ScrollablePromptUserStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.SelectInstallTypeStep"
-            id="org.eclipse.epp.installer.SelectInstallTypeStep"
-            environmentId="swt">
-      </stepDefinition>
-      <stepDefinition
-            class="org.eclipse.epp.installer.core.steps.ShowWarningsStep"
-            id="org.eclipse.epp.installer.ShowWarningsStep"
-            environmentId="swt">
-      </stepDefinition>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/archive.exsd b/plugins/org.eclipse.epp.installer.core/schema/archive.exsd
deleted file mode 100644
index 74004f4..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/archive.exsd
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="archive" name="%archiveName"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="archive" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="archive">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/configurationProvider.exsd b/plugins/org.eclipse.epp.installer.core/schema/configurationProvider.exsd
deleted file mode 100644
index 14c9df1..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/configurationProvider.exsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="configurationProvider" name="%configurationProvider"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="provider" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="provider">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="product" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="type" type="string" use="default" value="install">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/installer.exsd b/plugins/org.eclipse.epp.installer.core/schema/installer.exsd
deleted file mode 100644
index 2dd5110..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/installer.exsd
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="installer" name="%installerExtensionPoint"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="installer"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="installer">
-      <complexType>
-         <attribute name="environmentId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.epp.installer.core.model.Installer"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/platform.exsd b/plugins/org.eclipse.epp.installer.core/schema/platform.exsd
deleted file mode 100644
index db1cc2b..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/platform.exsd
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="platform" name="%platformName"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="platform"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="platform">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.epp.installer.core.IPlatform"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/stepDefinition.exsd b/plugins/org.eclipse.epp.installer.core/schema/stepDefinition.exsd
deleted file mode 100644
index 8348ebf..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/stepDefinition.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="step" name="%stepDefinitionName"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="stepDefinition" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="stepDefinition">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.epp.installer.core.model.IInstallStep"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="environmentId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/schema/steps.exsd b/plugins/org.eclipse.epp.installer.core/schema/steps.exsd
deleted file mode 100644
index 9fff746..0000000
--- a/plugins/org.eclipse.epp.installer.core/schema/steps.exsd
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.epp.installer.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.epp.installer.core" id="steps" name="%stepsName"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="steps" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="steps">
-      <complexType>
-         <sequence>
-            <element ref="step" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="providerId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="step">
-      <complexType>
-         <sequence>
-            <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="process" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="aboutToStep" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="title" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="parameter">
-      <complexType>
-         <attribute name="key" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="process">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.epp.installer.core.model.IStepProcessor"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="aboutToStep">
-      <complexType>
-         <sequence>
-            <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="process" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.java
deleted file mode 100644
index 6f63606..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-import org.eclipse.epp.installer.internal.core.OS;
-
-public class CheckAdminPrivilegesStep extends ScrollablePromptUserStep {
-
-	public CheckAdminPrivilegesStep(Installer installer) {
-		super(installer);
-	}
-	
-	public boolean canExecute() {
-		return verifyStep().getSeverity() != IStatus.ERROR;
-	}
-
-	public IStatus verifyStep() {
-		if (OS.IsUserAdmin()) 
-			return Status.OK_STATUS;
-		
-		IStatus result = new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-				"You must have Administrator privileges to run this program.", null);
-		return result;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.java
deleted file mode 100644
index de86130..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.IStepProcessor;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.osgi.framework.internal.core.AbstractBundle;
-import org.osgi.framework.Bundle;
-
-public class ExtendableInstallConfiguration implements IConfigurationProvider {
-
-	public static final String EXTENSION_POINT_NAME = 
-		"org.eclipse.epp.installer.core.steps"; //$NON-NLS-1$
-
-	private String id;
-	
-	public void configure(Installer installer) {
-		final InstallOptions options = installer.getOptions();
-		installer.setTitle(
-			options.getString(InstallOptions.OPTION_PRODUCT_NAME) + " Installer"); //$NON-NLS-1$
-		
-		InstallStepFactory factory = InstallStepFactory.getInstance();
-
-		IExtensionRegistry registry = org.eclipse.core.runtime.Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_POINT_NAME);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		for (int a = 0; a < extensions.length; a++) {
-			IExtension extension = extensions[a];
-			AbstractBundle bundle = (AbstractBundle) org.eclipse.core.runtime.Platform.getBundle(
-					extension.getContributor().getName());
-			IConfigurationElement[] elements = extension.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				if ("steps".equals(elements[i].getName()) && 
-						getId() != null && getId().equals(elements[i].getAttribute("providerId"))) {
-					IConfigurationElement[] steps = elements[i].getChildren();
-					for (int b=0; b < steps.length; b++) {
-						IConfigurationElement element = steps[b];
-						String entryName = element.getName();
-						if ("step".equals(entryName)) { //$NON-NLS-1$
-							String id = element.getAttribute("id"); //$NON-NLS-1$
-							IInstallStep step = factory.createStep(id, installer);
-							if (step != null) {
-								String title = element.getAttribute("title"); //$NON-NLS-1$
-								String description = resolveNewLineCharacters(element.getAttribute("description")); //$NON-NLS-1$
-								if (step instanceof InstallStep) {
-									((InstallStep) step).setTitle(title);
-									((InstallStep) step).setDescription(description);
-								}
-								IConfigurationElement[] childs = element.getChildren();
-								for (int j = 0; j < childs.length; j++) {
-									String childName = childs[j].getName();
-									if ("parameter".equals(childName)) { //$NON-NLS-1$
-										String key = childs[j].getAttribute("key"); //$NON-NLS-1$
-										String value = resolveNewLineCharacters(childs[j].getAttribute("value")); //$NON-NLS-1$
-										step.setProperty(key, value);
-									}
-									else if ("process".equals(childName)) { //$NON-NLS-1$
-										getStepProcessor(childs[j].getAttribute("class"), bundle).process(step); //$NON-NLS-1$
-									}
-									else if ("aboutToStep".equals(childName)) { //$NON-NLS-1$
-										if (step instanceof InstallStep) {
-											IConfigurationElement[] aboutToStepChilds = childs[j].getChildren();
-											for (int k = 0; k < aboutToStepChilds.length; k++) {
-												String aboutToStepChildName = aboutToStepChilds[k].getName();
-												if ("parameter".equals(aboutToStepChildName)) { //$NON-NLS-1$
-													String key = aboutToStepChilds[k].getAttribute("key"); //$NON-NLS-1$
-													String value = resolveNewLineCharacters(aboutToStepChilds[k].getAttribute("value")); //$NON-NLS-1$
-													((InstallStep) step).aboutToStepSetProperty(key, value);
-												}
-												else if ("process".equals(aboutToStepChildName)) { //$NON-NLS-1$
-													IStepProcessor processor = getStepProcessor(aboutToStepChilds[k].getAttribute("class"), bundle); //$NON-NLS-1$
-													((InstallStep) step).aboutToStepAddProcessor(processor);
-												}
-											}
-										}
-									}
-								}
-								installer.add(step);
-							}
-							else {
-								//TODO: log error
-								System.out.println("Unable to create install step \"" + id + "\"");
-							}
-						} 
-					}
-				}				
-			}
-		}
-	}
-
-	private String resolveNewLineCharacters(String s) {
-		if (s == null) {
-			return null;
-		}
-
-		StringBuffer resultString = new StringBuffer();
-		int begin = 0;
-		while (true) {
-			int end = s.indexOf("\\n", begin);
-			if (end != -1) {
-				resultString.append(s.substring(begin, end));
-				resultString.append("\n");
-				begin = end + 2;
-			}
-			else {
-				resultString.append(s.substring(begin));
-				break;
-			}
-		}
-				
-		return resultString.toString();
-	}
-	
-	private IStepProcessor getStepProcessor(String className, Bundle bundle) {
-		try {
-			Class processClass = bundle.loadClass(className);
-			IStepProcessor processor = (IStepProcessor) processClass.newInstance();
-			return processor;
-		} catch (Throwable e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getId() {
-		return id;
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IActionConstants.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IActionConstants.java
deleted file mode 100644
index a0a472f..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IActionConstants.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-/**
- * Set of confirmation action constants.
- */
-public interface IActionConstants {
-
-	/**
-	 * File overwrite confirmation.
-	 */
-	static final int OVERWRITE_FILE = 1000;
-
-		
-	/**
-	 * Directory overwrite confirmation.
-	 */
-	static final int OVERWRITE_DIRECTORY = 1001;
-
-	/**
-	 * System reboot confirmation.
-	 */
-	static final int REBOOT_SYSTEM = 1002;
-	
-	/**
-	 * Ignore select IProductInstallation no permission confirmation.
-	 */
-	static final int SELECT_PRODUCT_INSTALLATION_NO_PERMISSION = 1003;
-
-	/**
-	 * File create confirmation.
-	 */
-	static final int CREATE_FILE = 1004;
-
-	/**
-	 * Directory create confirmation.
-	 */
-	static final int CREATE_DIRECTORY = 1005;
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IConfigurationProvider.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IConfigurationProvider.java
deleted file mode 100644
index 732e75f..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IConfigurationProvider.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import org.eclipse.epp.installer.core.model.Installer;
-
-public interface IConfigurationProvider {
-
-	void configure(Installer installer);
-
-	void setId(String id);
-
-	String getId();
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IErrorConstants.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IErrorConstants.java
deleted file mode 100644
index 07b5323..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IErrorConstants.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-/**
- * Set of error constants.
- */
-public interface IErrorConstants {
-
-	/**
-	 * Cannot create directory error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.operations.CreateDirectoryOperation}
-	 * when directory coul'd not be created.
-	 */
-	static final int ERROR_CANNOT_CREATE_DIRECTORY = 100;
-
-	/**
-	 * Cannot create file error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.operations.CreateFileOperation}
-	 * when file coul'd not be created.
-	 */
-	static final int ERROR_CANNOT_CREATE_FILE = 99;
-	
-	/**
-	 * Skip file error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.Util }
-	 * when user skipped file overwrite.
-	 */
-	static final int ERROR_USER_SKIPPED = 101;
-
-	/**
-	 * Registry error code used by
-	 * {@link org.eclipse.epp.installer.core.CreateRegistryKeyOperation }
-	 * when registry operation coul'd not be performed.
-	 */
-	static final int ERROR_REGISTRY_ERROR = 102;
-
-	/**
-	 * Cannot create link error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.operations.CreateLinkOperation}
-	 * when link coul'd not be created.
-	 */
-	static final int ERROR_CANNOT_CREATE_LINK = 103;
-
-	/**
-	 * Cannot delete file error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.operations.DeleteFileOperation}
-	 * when delete file operation can not be performed.
-	 */
-	static final int ERROR_CANNOT_DELETE_FILE = 104;
-	
-	/**
-	 * Eclipse error code used by
-	 * {@link org.eclipse.epp.installer.internal.core.operations.CheckEclipseRunningOperation}
-	 * when eclipse operation coul'd not be performed.
-	 */
-	static final int ERROR_ECLIPSE_ERROR = 105;
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IPlatform.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IPlatform.java
deleted file mode 100644
index d1d51b5..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/IPlatform.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.io.File;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-
-
-/**
- * Platform-dependent service providers must implement this interface.
- */
-public interface IPlatform extends IExecutableExtension {
-	
-	public static final int DRIVE_UNKNOWN = 0;
-	public static final int DRIVE_NO_ROOT_DIR = 1;
-	public static final int DRIVE_REMOVABLE = 2;
-	public static final int DRIVE_FIXED = 3;
-	public static final int DRIVE_REMOTE = 4;
-	public static final int DRIVE_CDROM = 5;
-	public static final int DRIVE_RAMDISK = 6;
-		
-	/**
-	 * Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk,
-	 * 	or network drive.
-	 *
-	 * Temporarily until os.so will be built
-	 * TODO change this calls with direct OS.GetDriveType(driveRootPath) calls  
-	 * 
-	 * @param driveRootPath
-	 * 			String that identifies root drive path
-	 * @return int return type of a specified drive
-	 */
-	public int GetDriveType( String driveRootPath );
-	
-	/**
-	 * Check if file can be read.
-	 * 
-	 * @param file
-	 * @return
-	 */
-	public boolean canRead(File file);
-	
-	/**
-	 * Check if file can be written.
-	 * 
-	 * @param file
-	 * @return
-	 */
-	public boolean canWrite(File file);
-	
-	/**
-	 * Answer possible product installation locations extracted from the registry
-	 * such as IBM Rational Application Developer.
-	 * 
-	 * @return an array of paths to installation locations
-	 */
-	String[] readEclipseLocationsFromRegistry();
-	
-	/**
-	 * Answer possible product installation locations extracted from the registry
-	 * 
-	 * @return an array of paths to installation locations
-	 */
-	String[] readPreviousProductInstallLocations(InstallOptions options);
-
-	/**
-	 * Answer other possible platform specific installation locations such as SAP
-	 * Netweaver which does not have a registry entry or platform specific locations such
-	 * as Linux user.home and user desktop.
-	 * 
-	 * @return an array of paths to installation locations or <code>null</code> if none
-	 */
-	String[] otherEclipseLocations();
-
-	/**
-	 * Method used to resolve proxied operations.
-	 * Such operations have platform dependent implementations.
-	 */
-	StubOperation resolveProxyOperation(ProxyOperation operation);
-	/**
-	 * Method used to set creation time of file
-	 * @param path to file
-	 * @param time to set
-	 * @return true if time was setted and false othewise 
-	 */
-	boolean setFileCreationTime(String path,long time);
-
-	/**
-	 * Method used to read product uninstall properties from from the registry
-	 * @param installOptions that contains product name and version
-	 * @return Map of product properties 
-	 */
-	IStatus readProductUninstallPropertiesFromRegistry(InstallOptions installOptions, Map productProperties);
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallOptions.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallOptions.java
deleted file mode 100644
index 6e48267..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallOptions.java
+++ /dev/null
@@ -1,653 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Properties;
-
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Holds all install option information (key/value pairs) for a single installation
- * instance. Information is gathered by
- * {@link org.eclipse.epp.installer.core.model.IInstallStep} subclasses and consumed by
- * {@link org.eclipse.epp.installer.core.model.InstallOperation}s. Typically, a main
- * installer (see example in Overview) will load basic installation information, determine
- * whether or not the code is being installed or uninstalled, adjust some default
- * installation values based upon whether or not the application or extension has already
- * been installed, parse the command line options and finally start the installation
- * process.
- * 
- * <pre>
- *   options = new InstallOptions(getClass(), "install.properties");
- *   options.setUninstall(isUninstaller());
- *   initInstallDir(options);
- *   options.parseCommandOptions(args);
- * </pre>
- */
-public class InstallOptions
-{
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Install options common for most operations
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * True Constant - Static String - "true"
-	 */
-	public static final String TRUE_VALUE = "true";
-
-	/**
-	 * False Constant - Static String - "false"
-	 */
-	public static final String FALSE_VALUE = "false";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * directory path
-	 */
-	public static final String OPTION_INSTALL_DIR = "InstallDir";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * Product Name.
-	 */
-	public static final String OPTION_PRODUCT_NAME = "ProductName";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * Display Name.
-	 */
-	public static final String OPTION_DISPLAY_NAME = "DisplayName";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * Product Version.
-	 */
-	public static final String OPTION_PRODUCT_VERSION = "ProductVersion";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * Publisher Name.
-	 */
-	public static final String OPTION_PUBLISHER = "Publisher";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * License Agreements text.
-	 */
-	public static final String OPTION_LICENSE_AGREEMENT = "LicenseAgreement";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve eclipse
-	 * Directory Path List. NOTE: For Eclipse based products only.
-	 */
-	public static final String OPTION_ECLIPSE_PATH_LIST = "EclipsePathList";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve Embedded
-	 * Installations. NOTE: For Eclipse based products only.
-	 */
-	public static final String OPTION_ECLIPSE_EMBEDDED_INSTALLS = "EclipseEmbeddedInstalls";
-
-	/**
-	 * The install options key used by the receiver to store and retrieve the installation
-	 * type.
-	 */
-	public static final String OPTION_SELECTED_INSTALL_TYPE = "SelectedInstallType";
-
-	
-	/**
-	 * RebootAfterUninstall options key used for rebooting system 
-	 * if some files can not be deleted  during the uninstall process.
-	 */
-	public static final String REBOOTAFTERUNINSTALL = "--rebootAfterUninstall";
-	
-	/**
-	 * ALLOWOVERWRITE options key used for allowing user to overwrite previous version 
-	 * of installed product if detected. 
-	 */
-	public static final String ALLOWOVERWRITE = "--allowOverwrite";
-	
-	
-	/**
-	 * NO_OVERWRITE_WARNING_DURING_INSTALL options key used for showing warning to user when overwriting . 
-	 */
-	public static final String NO_OVERWRITE_WARNING_DURING_INSTALL = "--noOverwriteWarningDuringInstall";
-	
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Standard command line options
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Headless option command line presentation. Then defined in command line headless
-	 * option are set to true.
-	 */
-	public static final String HEADLESS = "--headless";
-
-	/**
-	 * Verbose option command line presentation. Then defined in command line verbose
-	 * option are set to true.
-	 */
-	public static final String VERBOSE = "--verbose";
-
-	/**
-	 * Uninstall option command line presentation. Then defined in command line uninstall
-	 * option are set to true.
-	 */
-	public static final String UNINSTALL = "--uninstall";
-
-	/**
-	 * Console option command line presentation. Then defined in command line console
-	 * option are set to true.
-	 */
-	public static final String CONSOLE = "--console";
-
-	/**
-	 * Nobackup option command line presentation. Then defined in command line nobackup
-	 * option are set to true.
-	 */
-	public static final String NOBACKUP = "--nobackup";
-
-	/**
-	 * Norestore option command line presentation. Then defined in command line norestore
-	 * option are set to true.
-	 */
-	public static final String NORESTORE = "--norestore";
-
-	/**
-	 * Noremoveuninstal option command line presentation. Then defined in command line noremoveuninstal
-	 * option are set to true.
-	 */
-	public static final String NOREMOVEUNINSTALL = "--noremoveuninstall";
-	
-	
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Path list strings
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Token used to separate path strings in a path list string
-	 */
-	private static final String PATH_LIST_TOKEN = ",";
-
-	/**
-	 * Convert array of path strings to path list string.
-	 * 
-	 * @param list String[]
-	 * @return String
-	 */
-	public static String arrayToPathList(String[] list) {
-		StringBuffer result = new StringBuffer("");
-
-		if (list.length > 0)
-			result.append(list[0]);
-		for (int i = 1; i < list.length; i++) {
-			result.append(PATH_LIST_TOKEN);
-			result.append(list[i]);
-		}
-
-		return result.toString();
-	}
-
-	/**
-	 * Convert path list string to array of path strings. Ensure that excess whitespace to
-	 * either side of each path element has been trimmed.
-	 * 
-	 * @param pathListString the list of paths as a single string separated by
-	 *            {@link #PATH_LIST_TOKEN}
-	 * @return an array of path strings (not <code>null</code>, contains no
-	 *         <code>null</code>s)
-	 */
-	public static String[] pathListToArray(String pathListString) {
-		ArrayList result = new ArrayList();
-		if (pathListString != null) {
-			int start = 0;
-			String path;
-			while (true) {
-				int index = pathListString.indexOf(PATH_LIST_TOKEN, start);
-				if (index == -1)
-					break;
-				path = pathListString.substring(start, index).trim();
-				result.add(path);
-				start = index + 1;
-			}
-			path = pathListString.substring(start).trim();
-			if (path.length() > 0 || result.size() > 0)
-				result.add(path);
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Other
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Supported properties file's extension string
-	 */
-	//private static final String PROPERTIES_FILE_EXTENSION = ".properties";
-
-	/**
-	 * Contains install option values.
-	 */
-	private final Properties options;
-	
-	private void loadOptions(Bundle bundle, String resource) {
-		URL url = bundle.getEntry(resource);
-		if (url != null) {
-			try {
-				options.load(url.openStream());
-			} catch(IOException ioe) {
-			}		
-		}
-	}
-	
-	/**
-	 * Construct a new instance of InstallOptions. Construct empty set of properties. Used
-	 * then you want to set properties later.
-	 */
-	public InstallOptions(IApplicationContext context) {
-		options = new Properties();
-		Bundle bundle = context.getBrandingBundle();
-		loadOptions(bundle, "install.properties");
-		String os = org.eclipse.core.runtime.Platform.getOS();
-		loadOptions(bundle, "install_" + os + ".properties");
-	}
-
-	/**
-	 * Construct a new instance of InstallOptions. Construct empty set of properties. Used
-	 * then you want to set propeties later.
-	 */
-	public InstallOptions() {
-		options = new Properties();
-	}
-	
-	/**
-	 * Construct a new instance of InstallOptions, and set options from parameter. Used
-	 * then you have predefined set of options.
-	 * 
-	 * @param defaults contains initial options.
-	 */
-	public InstallOptions(Properties defaults) {
-		options = new Properties(defaults);
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Accessors
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Set specified option value.
-	 * 
-	 * @param option option name
-	 * @param value option value
-	 */
-	public void set(String option, Object value) {
-		if (option == null)
-			throw new IllegalArgumentException("option cannot be null");
-		options.put(option, value);
-	}
-
-	/**
-	 * Return specified propety value.
-	 * 
-	 * @param option propety name.
-	 * @return value of specified property.
-	 */
-	public String getString(String option) {
-		if (option == null)
-			throw new IllegalArgumentException("option cannot be null");
-		String result = options.getProperty(option);
-		return result;			
-	}
-
-	/**
-	 * Return specified property value as array of strings.
-	 * 
-	 * @param option property name.
-	 * @return value of specified property.
-	 */
-	public String[] getStrings(String option) {
-		return pathListToArray(getString(option));
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set specified option value with boolean value.
-	 * 
-	 * @param option propety name.
-	 * @param value of specified property.
-	 */
-	public void setBoolean(String option, boolean value) {
-		if (value) {
-			set(option, TRUE_VALUE);
-		}
-		else {
-			set(option, FALSE_VALUE);
-		}
-	}
-
-	/**
-	 * Return specified propety value as boolean.
-	 * 
-	 * @param option propety name.
-	 * @return value of specified property.
-	 */
-	public boolean getBoolean(String option) {
-		String value = getString(option);
-		if (TRUE_VALUE.equals(value)) {
-			return true;
-		}
-		if (FALSE_VALUE.equals(value)) {
-			return false;
-		}
-		return false;
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set console mode option value. If console are true then console option set to true,
-	 * othervise option set to false.
-	 * 
-	 * @param console console mode flag value.
-	 */
-	public void setConsole(boolean console) {
-		set(CONSOLE, console ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return console mode option value. Return true if console option are true, false
-	 * othervise.
-	 * 
-	 * @return console console option value.
-	 */
-	public boolean isConsole() {
-		return Boolean.TRUE.equals(options.get(CONSOLE));
-	}
-
-	// ---------------------------------------------------
-
-	
-	/**
-	 * Set allow overwrite option value.
-	 */
-	public void setAllowOverwrite(boolean allowOverwrite) {
-		set(ALLOWOVERWRITE, allowOverwrite ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return allow overwrite option value.
-	 */
-	public boolean isAllowOverwrite() {
-		return Boolean.TRUE.equals(options.get(ALLOWOVERWRITE));
-	}
-
-	
-	/**
-	 * Set reboot mode option value. If reboot are true then rebootAfterUnInstall option set to true,
-	 * othervise option set to false.
-	 * 
-	 * @param console console mode flag value.
-	 */
-	public void setRebootAfterUninstall(boolean reboot) {
-		set(REBOOTAFTERUNINSTALL, reboot ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return console mode option value. Return true if console option are true, false
-	 * othervise.
-	 * 
-	 * @return console console option value.
-	 */
-	public boolean isRebootAfterUninstall() {
-		return Boolean.TRUE.equals(options.get(REBOOTAFTERUNINSTALL));
-	}
-	
-	// ---------------------------------------------------
-	/**
-	 * Set headless mode option value. If headless are true then headless option set to
-	 * true, othervise option set to false.
-	 * 
-	 * @param headless headless mode flag value.
-	 */
-	public void setHeadless(boolean headless) {
-		set(HEADLESS, headless ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return headless mode option value .
-	 * 
-	 * @return boolean value of headless mode.
-	 */
-	public boolean isHeadless() {
-		return Boolean.TRUE.equals(options.get(HEADLESS));
-		// TODO return true if user has specified headless install along with
-		// file to read
-		// install options from
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set uninstall option value. If uninstall are true then option set to true,
-	 * otherview option set to false.
-	 * 
-	 * @param uninstall uninstall option value.
-	 */
-	public void setUninstall(boolean uninstall) {
-		set(UNINSTALL, uninstall ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return uninstall option value. If uninstall option are true then true are returned,
-	 * false othervise.
-	 * 
-	 * @return uninstall option value.
-	 */
-
-	public boolean isUninstall() {
-		return Boolean.TRUE.equals(options.get(UNINSTALL));
-	}
-
-	/**
-	 * Return true if this is install. Uninstall option aren't set, or set to false.
-	 * 
-	 * @return boolean return true if this is installer, false other vise.
-	 */
-	public boolean isInstall() {
-		return !isUninstall();
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set verbose option value. Then verbose option are set, more information are
-	 * displayed. If verbose are true then verbose option set to true, othervise option
-	 * set to false.
-	 * 
-	 * @param verbose verbose option value.
-	 */
-	public void setVerbose(boolean verbose) {
-		set(VERBOSE, verbose ? Boolean.TRUE : Boolean.FALSE);
-		Context.VERBOSE = verbose;
-	}
-
-	/**
-	 * Return verbose options value. If verbose option are true then true are returned,
-	 * false othervise.
-	 * 
-	 * @return verbose option value.
-	 */
-	public boolean isVerbose() {
-		return Boolean.TRUE.equals(options.get(VERBOSE));
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set nobackup option value. Then nobackup option are set, more information are
-	 * displayed. If nobackup are true then nobackup option set to true, othervise option
-	 * set to false.
-	 * 
-	 * @param nobackup nobackup option value.
-	 */
-	public void setNobackup(boolean nobackup) {
-		set(NOBACKUP, nobackup ? Boolean.TRUE : Boolean.FALSE);
-		// Context.NOBACKUP = nobackup;
-	}
-
-	/**
-	 * Return nobackup options value. If nobackup option are true then true are returned,
-	 * false othervise.
-	 * 
-	 * @return nobackup option value.
-	 */
-	public boolean isNobackup() {
-		return Boolean.TRUE.equals(options.get(NOBACKUP));
-	}
-
-	// ---------------------------------------------------
-
-	/**
-	 * Set norestore option value. Then norestore option are set, more information are
-	 * displayed. If norestore are true then norestore option set to true, othervise option
-	 * set to false.
-	 * 
-	 * @param nobackup nobackup option value.
-	 */
-	public void setNorestore(boolean norestore) {
-		set(NORESTORE, norestore ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * Return norestore options value. If norestore option are true then true are returned,
-	 * false othervise.
-	 * 
-	 * @return nobackup option value.
-	 */
-	public boolean isNorestore() {
-		return Boolean.TRUE.equals(options.get(NORESTORE));
-	}
-
-//	 ---------------------------------------------------
-
-	/**
-	 * 
-	 * 
-	 * @param noremoveuninstall  option value.
-	 */
-	public void setNoremoveUninstall(boolean noremoveUninstall) {
-		set(NOREMOVEUNINSTALL, noremoveUninstall ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * 
-	 * 
-	 * @return noremoveuninstall option value.
-	 */
-	public boolean isNoremoveUninstall() {
-		return Boolean.TRUE.equals(options.get(NOREMOVEUNINSTALL));
-	}
-	
-	
-//	 ---------------------------------------------------
-
-	/**
-	 * 
-	 * 
-	 * @param NO_OVERWRITE_WARNING_DURING_INSTALL  option value.
-	 */
-	public void setNoOverwriteWarningDuringInstall(boolean notWarnOverwrite) {
-		set(NO_OVERWRITE_WARNING_DURING_INSTALL, notWarnOverwrite ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * 
-	 * 
-	 * @return NO_OVERWRITE_WARNING_DURING_INSTALL option value.
-	 */
-	public boolean isNoOverwriteWarningDuringInstall() {
-		return Boolean.TRUE.equals(options.get(NO_OVERWRITE_WARNING_DURING_INSTALL));
-	}
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Loading options
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Load options from proram arguments. Only verbose, uninstall and console options are
-	 * recognized. Other options aren't changed.
-	 * 
-	 * @param args String[] command line arguments.
-	 */
-	public void parseCommandOptions(String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			if (CONSOLE.equals(args[i])) {
-				setConsole(true);
-			}
-			else if (UNINSTALL.equals(args[i])) {
-				setUninstall(true);
-			}
-			else if (VERBOSE.equals(args[i])) {
-				setVerbose(true);
-			}
-			else if (HEADLESS.equals(args[i])) {
-				setHeadless(true);
-			}
-			else if (NOBACKUP.equals(args[i])) {
-				setNobackup(true);
-			}
-			else if (NORESTORE.equals(args[i])) {
-				setNorestore(true);
-			}
-			else if (REBOOTAFTERUNINSTALL.equals(args[i])) {
-				setRebootAfterUninstall(true);
-			}
-			else if (NOREMOVEUNINSTALL.equals(args[i])) {
-				setNoremoveUninstall(true);
-				}
-		}
-	}
-
-	/**
-	 * Load options from specified resource using Class handle to get input stream.
-	 * 
-	 * @param clazz Class handle to get resource from.
-	 * @param resName resource name.
-	 * @return loaded set of options.
-	 * @throws IOException throws exception if stream could not be resolved.
-	 */
-	public static Properties loadOptions(Class clazz, String resName) throws IOException {
-		InputStream is = clazz.getResourceAsStream(resName);
-		if (is == null) {
-			throw new IOException("Installer options resource not found: " + clazz.getName() + ", " + resName);
-		}
-		try {
-			Properties p = new Properties();
-			p.load(is);
-			return p;
-		}
-		finally {
-			is.close();
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallStepFactory.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallStepFactory.java
deleted file mode 100644
index ec77991..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallStepFactory.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.InvalidRegistryObjectException;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.osgi.framework.internal.core.AbstractBundle;
-
-public class InstallStepFactory {
-
-	public static final String EXTENSION_POINT_NAME = 
-		"org.eclipse.epp.installer.core.stepDefinition"; //$NON-NLS-1$
-
-	private static InstallStepFactory INSTANCE = null;
-
-	public static InstallStepFactory getInstance() {
-		if (INSTANCE == null) {
-			INSTANCE = new InstallStepFactory();
-		}
-		return INSTANCE;
-	}
-
-	public static class StepDefenition {
-		private String id;
-		private String environmentId;
-		private Class stepClass;
-	}
-	
-	private Map stepsMap;
-
-	public InstallStepFactory() {
-		stepsMap = new HashMap();
-		
-		IExtensionRegistry registry = org.eclipse.core.runtime.Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_POINT_NAME);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		for (int i = 0; i < extensions.length; i++) {
-			IExtension extension = extensions[i];
-			AbstractBundle bundle = (AbstractBundle) org.eclipse.core.runtime.Platform.getBundle(
-					extension.getContributor().getName());
-			IConfigurationElement[] elements = extension.getConfigurationElements();
-			for (int j = 0; j < elements.length; j++) {
-				IConfigurationElement element = elements[j];
-				String entryName = element.getName();
-				if ("stepDefinition".equals(entryName)) { //$NON-NLS-1$
-					StepDefenition defenition = new StepDefenition();
-					defenition.id = element.getAttribute("id"); //$NON-NLS-1$
-					defenition.environmentId = element.getAttribute("environmentId"); //$NON-NLS-1$
-					try {
-						defenition.stepClass = bundle.loadClass(element.getAttribute("class")); //$NON-NLS-1$
-					} catch (InvalidRegistryObjectException e) {
-						throw new RuntimeException(e);
-					} catch (ClassNotFoundException e) {
-						throw new RuntimeException(e);
-					}
-					Map installerSteps = (Map) stepsMap.get(defenition.id);
-					if (installerSteps == null) {
-						installerSteps = new HashMap();
-						stepsMap.put(defenition.id, installerSteps);
-					}
-					installerSteps.put(defenition.environmentId, defenition.stepClass);
-				} 
-			}
-		}
-	}
-	
-	Class getStepClass(String id, String environmentId) {
-		Map installerSteps = (Map) stepsMap.get(id);
-		if (installerSteps != null) {
-			return (Class) installerSteps.get(environmentId);
-		}
-		return null;
-	}
-
-	public IInstallStep createStep(String id, Installer installer) {
-		Class stepClass = getStepClass(id, installer.getEnvironmentId());
-		if (stepClass != null) {
-			try {
-				Constructor constructor = stepClass.getConstructor(new Class[] { Installer.class });
-				return (IInstallStep) constructor.newInstance(new Object[] { installer });
-			} catch (Throwable e) {
-				throw new RuntimeException(e);
-			}
-		}
-		return null;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallType.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallType.java
deleted file mode 100644
index 886a8d2..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallType.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class InstallType {
-	String name = "name";
-	String title = "title";
-	String description = "description";
-	Object image;
-	
-	/**
-	 * Constructor for IntallTypeEntity.
-	 * @param name String
-	 * @param title String
-	 * @param description String
-	 */
-	public InstallType(String name, String title, String description) {
-		this.name = name;
-		this.title = title;
-		this.description = description;
-	}
-	
-	public InstallType(String name, String title, String description, Object image) {
-		this.name = name;
-		this.title = title;
-		this.description = description;
-		this.image = image;
-	}
-	
-	/**
-	 * Method getName.
-	 * @return String
-	 */
-	public String getName() {
-		return name;
-	}
-	
-	/**
-	 * Method getTitle.
-	 * @return String
-	 */
-	public String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Method getDescription.
-	 * @return String
-	 */
-	public String getDescription() {
-		return description;
-	}
-	
-	public Object getImage() {
-		return image;
-	}	
-};
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallerFactory.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallerFactory.java
deleted file mode 100644
index fdc3beb..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/InstallerFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/ 
-
-package org.eclipse.epp.installer.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- * <code>InstallerFactory</code> is used for creating instances of all known Installers
- * such as subclasses of {@link org.eclipse.epp.installer.core.model.Installer}. The
- * type of installer instantiated by {@link #createInstaller(InstallOptions)} (wizard,
- * console, headless) depends upon the
- * {@link org.eclipse.epp.installer.core.InstallOptions} selected.
- */
-
-public class InstallerFactory {
-	
-	public final static String INSTALLER_EXTENSION_POINT = "org.eclipse.epp.installer.core.installer";
-
-	/**
-	 * This class could not be created.
-	 */
-	private InstallerFactory() {
-	}
-
-	/**
-	 * Create an instance of an Installer, the type of installer (class name)
-	 * depends on options parameter.
-	 * 
-	 * @param options
-	 *            InstallOptions
-	 * @return Installer installer instance.( not <code> null </code> or exception ).
-	 * @throws Exception
-	 *             thrown if class appropriate for specified install options
-	 *             can't be created, or not found.
-	 */
-	public static Installer createInstaller(InstallOptions options)
-			throws CoreException {
-		IConfigurationElement[] cfg = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(INSTALLER_EXTENSION_POINT);
-		for (int j = 0; j < cfg.length; j++) {
-			// TODO choose appropriate installer - right now just take "first"
-			// one
-			Installer installer = (Installer) cfg[j]
-					.createExecutableExtension("class");
-			installer.setOptions(options);
-			return installer;
-		}
-		return null;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Platform.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Platform.java
deleted file mode 100644
index 4f8ab8b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Platform.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-import java.util.Properties;
-
-import org.eclipse.epp.installer.internal.core.InstallerActivator;
-
-
-
-/**
- * Platform class used construct and initialize appropriate platform
- * implementation. 
- * 
- * Implementa should pressent in "org.eclipse.epp.installer.core" package, 
- * and implement IPlatform interface. 
- * 
- * Also platform class should be equal to one of constans below. 
- */
-public abstract class Platform implements IPlatform {
-	
-	private static Properties variables = new Properties();
-		
-	
-	/**
-	 * Set specified variable value.
-	 * 
-	 * @param variable
-	 *            variable name
-	 * @param value
-	 *            variable value
-	 */
-	public static void setVar(String variable, String value) {
-		variables.put(variable, value);
-	}
-	
-	/**
-	 * Return specified propety value.
-	 * 
-	 * @param variable
-	 *            propety name.
-	 * @return value of specified property.
-	 */
-	public static String getVarString(String variable) {
-		return variables.getProperty(variable);
-	}
-	
-	/**
-	 * TODO at the moment we have no IPlatform implementaion
-	 * for MacOS!!!
-	 * @return
-	 */
-	public static IPlatform getPlatform() {
-		return InstallerActivator.getPlugin().getPlatform();
-	}
-	
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Variables.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Variables.java
deleted file mode 100644
index 0f0cbae..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/Variables.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.epp.installer.core;
-
-/**
- * Variables is used to resolve variables in strings.
- */
-public class Variables {
-	private static final String VARIABLE_TOKEN_BEGIN = "${"; 
-	private static final String VARIABLE_TOKEN_END = "}"; 
-	
-	/**
-	 * If there is a platform-dependent variable with the same name. Otherwise return value of variable in options.
-	 * 
-	 * @param varName
-	 * 			variable name.
-	 * @param options
-	 * 			InstallOptions from where variable value will be taken.
-	 * @return variable value.
-	 */
-	private static String getString(String varName, InstallOptions options) {
-		String varValue = options.getString(varName);
-		if (varValue == null) {
-			varValue = Platform.getVarString(varName);
-		}
-		return varValue;
-	}
-	
-	/**
-	 * Returns a string where all variables are replaced with their values.
-	 * 
-	 * @param string
-	 *			string to resolve.
-	 * @param options
-	 * 			InstallOptions from where variable values will be taken.
-	 * @return resolved string.
-	 */
-	public static String resolve(String string, InstallOptions options) {
-
-		if (string == null) {
-			return null;
-		}
-
-		StringBuffer resultString = new StringBuffer("");
-		String curString = string;
-		while (curString.length() > 0) {
-			if (curString.indexOf(VARIABLE_TOKEN_BEGIN) > -1) {
-				int indexBegin = curString.indexOf(VARIABLE_TOKEN_BEGIN);
-				// append part of string before variable to result
-				resultString.append(curString.substring(0, indexBegin));
-				
-				curString = curString.substring(indexBegin + VARIABLE_TOKEN_BEGIN.length());
-				if (curString.indexOf(VARIABLE_TOKEN_END) <= -1) {
-					break;
-				}
-				int indexEnd = curString.indexOf(VARIABLE_TOKEN_END);
-				String varName = curString.substring(0, indexEnd);
-				
-				String varValue = getString(varName, options);
-				if (varValue != null) {
-					// append variable value to result, do recursive variable replacement
-					resultString.append(resolve(varValue, options)); 
-				} else {
-					// if not found, leave as it was
-					resultString.append(VARIABLE_TOKEN_BEGIN);
-					resultString.append(varName);
-					resultString.append(VARIABLE_TOKEN_END);
-				}
-				curString = curString.substring(indexEnd + VARIABLE_TOKEN_END.length());
-			} else {
-				// append rest part of string to result				
-				resultString.append(curString);
-				break;
-			}
-		}
-				
-		return resultString.toString();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.java
deleted file mode 100644
index 1117bcb..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.java
+++ /dev/null
@@ -1,959 +0,0 @@
-package org.eclipse.epp.installer.core.eclipse;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.RandomAccessFile;
-import java.nio.channels.FileChannel;
-import java.nio.channels.FileLock;
-import java.nio.channels.OverlappingFileLockException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.epp.installer.core.IPlatform;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Platform;
-import org.eclipse.epp.installer.core.operations.CreateUninstallerOperation;
-import org.eclipse.epp.installer.core.product.IProductInstallation;
-import org.eclipse.epp.installer.core.product.IProductVersion;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.core.RemoveLinkAction;
-import org.eclipse.epp.installer.internal.core.eclipse.EclipseProductType;
-
-
-/**
- * An object that identifies a particular Eclipse installation. Use the various
- * {@link #findAll(InstallOptions)}, {@link #findLinked(File)} static methods or
- * {@link org.eclipse.epp.installer.core.eclipse.EclipseLocator} to locate existing
- * Eclipse based installations. When installing an extension for Eclipse based
- * installations, the main installer class (see example in Overview) uses
- * {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} to prompt the user as
- * to which installations are to be extended.
- */
-public class EclipseInstallation implements IProductInstallation {
-	private static final String PLUGINS_DIRNAME = "plugins";
-
-	private static final String FEATURES_DIRNAME = "features";
-
-	private static final String LINKS_DIRNAME = "links";
-
-	private static final String ECLIPSE_PRODUCT_FILENAME = ".eclipseproduct";
-
-	private static final String ABOUT_MAPPINGS_FILENAME = "about.mappings";
-
-	private static final String CONFIGURATION_DIRNAME = "configuration";
-
-	private static final String SETTINGS_DIRNAME = ".settings";
-
-	private static final String METADATA_DIRNAME = ".metadata";
-
-	private static final String UI_IDE_PREFS_FILENAME = "org.eclipse.ui.ide.prefs";
-
-	private static final String LOCK_FILENAME = ".lock";
-	
-	private static final String CONFIG_FILENAME = "config.ini";
-
-	/**
-	 * The product directory represented by the receiver. For the typical Eclipse
-	 * installation, this is the same as {@link #eclipseDir} but for some products built
-	 * on Eclipse such as IBM RAD 6.0, the {@link #eclipseDir} is a subdirectory of
-	 * product directory.
-	 */
-	private final File productDir;
-	
-	/**
-	 * The type of Eclipse based installation. This class contains installation structure
-	 * information such as the relationship between the product directory and the Eclipse
-	 * directory and how to determine both the product version and the Eclipse version.
-	 */
-	private final EclipseProductType productType;
-
-	/**
-	 * The Eclipse directory represented by the receiver. For the typical Eclipse
-	 * installation, this is the same as {@link #productDir} but for some products built
-	 * on Eclipse such as IBM RAD 6.0, the Eclipse directory is a subdirectory of
-	 * {@link #productDir}.
-	 * 
-	 * @see #getEclipseDir()
-	 */
-	private File eclipseDir;
-	
-	private File configurationDir;
-	
-	private Properties eclipseProps;
-	/**
-	 * The properties read from the .eclipseproduct file
-	 */
-
-	/**
-	 * The name and version of the Eclipse based project (e.g. "Eclipse 3.1" or
-	 * "Websphere Application Developer 2.1.1")
-	 */
-	private String description = null;
-
-	private boolean isChecked = false;
-
-	/**
-	 * The product version
-	 */
-	private IProductVersion productVersion;
-
-	/**
-	 * The version of Eclipse on which this product is based (not necessarily
-	 * the same as the version of the product... e.g. WSAD 5.1 is based upon
-	 * Eclipse 2.1)
-	 * 
-	 * @see #getEclipseVersion()
-	 */
-	private EclipseVersion eclipseVersion;
-
-	/**
-	 * Construct a new instance identifying the specified Eclipse installation
-	 * 
-	 * @param productDir The Product directory represented by the receiver (not
-	 *            <code>null</code> and {@link #isEclipseInstallation(File)} must return
-	 *            true for this directory). For the typical Eclipse installation, this is
-	 *            the same as Eclipse directory but for some products built on Eclipse
-	 *            such as IBM RAD 6.0, the Eclipse directory is a subdirectory of product
-	 *            directory.
-	 */
-	public EclipseInstallation(File productDir) {
-		this(productDir, EclipseProductType.getType(productDir));
-	}
-
-	public EclipseInstallation(File productDir, File configurationDir) {
-		this(productDir, EclipseProductType.getType(productDir), configurationDir);
-	}
-
-	/**
-	 * Construct a new instance identifying the specified Eclipse installation
-	 * 
-	 * @param productDir The Product directory represented by the receiver. For the
-	 *            typical Eclipse installation, this is the same as Eclipse directory
-	 *            but for some products built on Eclipse such as IBM RAD 6.0, the
-	 *            Eclipse directory is a subdirectory of product directory.
-	 * @deprecated Will be removed Jan 2008. 
-	 *             Use {@link #EclipseInstallation(File)} instead.
-	 */
-	public EclipseInstallation(String productDir) {
-		this(new File(productDir));
-	}
-
-	/**
-	 * Construct a new instance identifying the specified Eclipse installation
-	 * 
-	 * @param productDir The Product directory represented by the receiver. For the
-	 *            typical Eclipse installation, this is the same as Eclipse directory
-	 *            but for some products built on Eclipse such as IBM RAD 6.0, the
-	 *            Eclipse directory is a subdirectory of product directory.
-	 * @param productNameAndVersion ignored
-	 * @deprecated Will be removed Jan 2008.
-	 *             Use {@link #EclipseInstallation(File)} instead.
-	 */
-	public EclipseInstallation(String productDir, String productNameAndVersion) {
-		this(new File(productDir));
-	}
-
-	/**
-	 * Construct a new instance identifying the specified Eclipse installation
-	 *
-	 * @param productDir The Product directory represented by the receiver. For the
-	 *            typical Eclipse installation, this is the same as Eclipse directory
-	 *            but for some products built on Eclipse such as IBM RAD 6.0, the
-	 *            Eclipse directory is a subdirectory of product directory.
-	 * @param productNameAndVersion ignored
-	 * @deprecated Will be removed Jan 2008.
-	 *             Use {@link #EclipseInstallation(File)} instead.
-	 */
-	public EclipseInstallation(File productDir, String productNameAndVersion) {
-		this(productDir);
-	}
-
-	/**
-	 * Construct a new instance identifying the specified Eclipse installation
-	 * 
-	 * @param productDir The Product directory represented by the receiver (not
-	 *            <code>null</code> and {@link #isEclipseInstallation(File)} must return
-	 *            true for this directory). For the typical Eclipse installation, this is
-	 *            the same as Eclipse directory but for some products built on Eclipse
-	 *            such as IBM RAD 6.0, the Eclipse directory is a subdirectory of product
-	 *            directory.
-	 * @param productType The type of Eclipse based installation (not <code>null</code>).
-	 *            This class contains installation structure information such as the
-	 *            relationship between the product directory and the Eclipse directory and
-	 *            how to determine both the product version and the Eclipse version.
-	 */
-	private EclipseInstallation(File productDir, EclipseProductType productType) {
-		this(productDir, productType, null);
-		
-		this.configurationDir = getEclipseConfigurationDir(getEclipseDir());
-	}
-
-	private EclipseInstallation(File productDir, EclipseProductType productType, File configurationDir) {
-		this.productDir = productDir.getAbsoluteFile();
-		this.productType = productType;
-		this.configurationDir = configurationDir;
-	}
-
-	/**
-	 * The Eclipse directory represented by the receiver
-	 */
-	public File getEclipseDir() {
-		if (eclipseDir == null)
-			eclipseDir = productType.getEclipseDir(getProductDir());
-		return eclipseDir;
-	}
-	
-	/**
-	 * Answer the properties read from the .eclipseproduct file
-	 */
-	private Properties getEclipseProps() {
-		if (eclipseProps == null) {
-			eclipseProps = productType.getEclipseProps(getProductDir());
-			if (eclipseProps == null)
-				eclipseProps = new Properties();
-		}
-		return eclipseProps;
-	}
-
-	/**
-	 * The name and version of the Eclipse based project (e.g. "Eclipse 3.1" or
-	 * "Websphere Application Developer 2.1.1")
-	 */
-	public String getDescription() {
-		if (description == null)
-			description = productType.getDescription(getProductDir(), getEclipseProps());
-		return description;
-	}
-
-	/**
-	 * The name and version of the Eclipse based project (e.g. "Eclipse 3.1" or
-	 * "Websphere Application Developer 2.1.1")
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * The version of Eclipse on which this product is based (not necessarily
-	 * the same as the version of the product... e.g. WSAD 5.1 is based upon
-	 * Eclipse 2.1)
-	 */
-	public IProductVersion getEclipseVersion() {
-		if (eclipseVersion == null)
-			eclipseVersion = productType.getEclipseVersion(getProductDir(), getEclipseProps());
-		return eclipseVersion;
-	}
-
-	/**
-	 * Determine if the specified Eclipse installation has the specified
-	 * embedded feature
-	 *
-	 * @param featureId
-	 *            the feature identifier (not <code>null</code>, not empty)
-	 * @return <code>true</code> if a feature directory is detected, else
-	 *         <code>false</code>
-	 */
-	public boolean hasEmbeddedFeature(String featureId) {
-		File dir = getFeaturesDir();
-		if (!dir.exists())
-			return false;
-		String featureDirPrefix = featureId + "_";
-		String[] files = dir.list();
-		for (int i = 0; i < files.length; i++) {
-			String eachName = files[i];
-			if (eachName.startsWith(featureDirPrefix))
-				return true;
-		}
-		return false;
-	}
-
-	public File[] findEmbeddedFeature(String featureId) {
-		List result = new ArrayList();
-
-		File dir = getFeaturesDir();
-		if (!dir.exists())
-			return (File[]) result.toArray(new File[result.size()]);
-
-		String featureDirPrefix = featureId + "_";
-		String[] files = dir.list();
-		for (int i = 0; i < files.length; i++) {
-			String eachName = files[i];
-			if (eachName.startsWith(featureDirPrefix))
-				result.add(new File(dir, eachName));
-		}
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	/**
-	 * Determine if the specified Eclipse installation has the specified
-	 * embedded plugin
-	 *
-	 * @param pluginId
-	 *            the plugin identifier (not <code>null</code>, not empty)
-	 * @return <code>true</code> if a feature directory is detected, else
-	 *         <code>false</code>
-	 */
-	public boolean hasEmbeddedPlugin(String pluginId) {
-		File dir = getPluginsDir();
-		if (!dir.exists())
-			return false;
-		String pluginDirPrefix = pluginId + "_";
-		String[] files = dir.list();
-		for (int i = 0; i < files.length; i++) {
-			String eachName = files[i];
-			if (eachName.startsWith(pluginDirPrefix))
-				return true;
-		}
-		return false;
-	}
-
-	public File[] findEmbeddedPlugin(String pluginId) {
-		List result = new ArrayList();
-
-		File dir = getPluginsDir();
-		if (!dir.exists())
-			return (File[]) result.toArray(new File[result.size()]);
-
-		String pluginDirPrefix = pluginId + "_";
-		String[] files = dir.list();
-		for (int i = 0; i < files.length; i++) {
-			String eachName = files[i];
-			if (eachName.startsWith(pluginDirPrefix))
-				result.add(new File(dir, eachName));
-		}
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	public File getPluginsDir() {
-		File dir = new File(getEclipseDir(), PLUGINS_DIRNAME);
-		// TODO [author=Dan] UGLY HACK to properly install into IBM RAD 7.0
-		if (!dir.exists()) {
-			File altDir = new File(new File(getEclipseDir().getParentFile(), "SDP70Shared"), PLUGINS_DIRNAME);
-			if (altDir.exists())
-				return altDir;
-		}
-		return dir;
-	}
-
-	public File getFeaturesDir() {
-		File dir = new File(getEclipseDir(), FEATURES_DIRNAME);
-		// TODO [author=Dan] UGLY HACK to properly install into IBM RAD 7.0
-		if (!dir.exists()) {
-			File altDir = new File(new File(getEclipseDir().getParentFile(), "SDP70Shared"), FEATURES_DIRNAME);
-			if (altDir.exists())
-				return altDir;
-		}
-		return dir;
-	}
-
-	public File getLinksDir() {
-		return new File(getEclipseDir(), LINKS_DIRNAME);
-	}
-
-	private static String readKeyFromConfigFile(File file,String keyName) {
-		if (file == null || !file.exists())
-			return null;
-		LineNumberReader reader = null;
-		try {
-			reader = new LineNumberReader(new BufferedReader(new FileReader(file)));
-			while (true) {
-				String line = reader.readLine();
-				if (line == null)
-					break;
-				int index = line.indexOf('=');
-				if (index < 1)
-					continue;
-				String key = line.substring(0, index).trim();
-				if (key.equals(keyName)) {
-					String value = line.substring(index + 1).trim();
-					if (value != null)
-						return value;
-				}
-			}
-				return null;
-		}
-		catch (IOException e) {
-			// TODO [author=Dan] log the exception
-		}
-		finally {
-			try {
-				if (reader != null)
-					reader.close();
-			}
-			catch (IOException e) {
-				// TODO [author=Dan] log the exception
-			}
-		}
-		return null;
-	}
-
-	
-	/**
-	 * Determine if the specified directory is an eclipse product directory
-	 * 
-	 * @param productDir The directory to be tested. For the typical Eclipse installation,
-	 *            this is the same as Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse directory is a subdirectory
-	 *            of product directory.
-	 */
-	public static boolean isEclipseInstallation(File productDir) {
-		return EclipseProductType.getType(productDir) != null;
-	}
-
-	/**
-	 * Answer the ".eclipseProduct" file in the specified directory, if it
-	 * exists
-	 *
-	 * @param eclipseDir
-	 *            the eclipse directory
-	 * @return the product file or <code>null</code> if none
-	 */
-	private static File getEclipseProductFile(File eclipseDir) {
-		if (eclipseDir != null && eclipseDir.exists()) {
-			File file = new File(eclipseDir, ECLIPSE_PRODUCT_FILENAME);
-			if (file.exists())
-				return file;
-		}
-		return null;
-	}
-
-	/**
-	 * Answer the "configuration" directory in the specified directory, if it
-	 * exists
-	 *
-	 * @param eclipseDir
-	 *            the eclipse directory
-	 * @return the configuration directory or <code>null</code> if none
-	 */
-	private static File getEclipseConfigurationDir(File eclipseDir) {
-		if (eclipseDir != null && eclipseDir.exists()) {
-			File file = new File(eclipseDir, CONFIGURATION_DIRNAME);
-			if (file.exists())
-				return file;
-		}
-		return null;
-	}
-	
-	/**
-	 * Answer the "plugins" directory in the specified directory, if it
-	 * exists
-	 *
-	 * @param eclipseDir
-	 *            the eclipse directory
-	 * @return the plugin directory or <code>null</code> if none
-	 */
-	private static File getEclipsePluginDir(File eclipseDir) {
-		if (eclipseDir != null && eclipseDir.exists()) {
-			File file = new File(eclipseDir, PLUGINS_DIRNAME);
-			if (file.exists())
-				return file;
-		}
-		return null;
-	}
-	
-	/**
-	 * Answer the "config.ini" file in the specified directory, if it
-	 * exists
-	 *
-	 * @param eclipseDir
-	 *            the eclipse directory
-	 * @return the plugin directory or <code>null</code> if none
-	 */
-	private static File getEclipseConfigFile(File eclipseDir) {
-		if (eclipseDir != null && eclipseDir.exists()) {
-			File file = new File(eclipseDir, CONFIG_FILENAME);
-			if (file.exists())
-				return file;
-		}
-		return null;
-	}
-	
-	/**
-	 * Answer the specific file of directory in the specified directory, if it
-	 * exists
-	 *
-	 * @param eclipseDir
-	 *            the eclipse directory
-	 * @return the file or directory with fileName or <code>null</code> if none
-	 */
-	private static File getFileFromDir(File dir,String fileName) {
-		if (dir != null && dir.exists()) {
-			File file = new File(dir, fileName);
-			if (file.exists())
-				return file;
-		}
-		return null;
-	}
-	
-	
-	
-	
-	
-	//----------------------------------------------------
-
-	public File getProductDir() {
-		return productDir;
-	}
-
-	public IProductVersion getProductVersion() {
-		if (productVersion == null) {
-			productVersion = productType.getProductVersion(getProductDir(), getEclipseProps());
-			if (productVersion == null)
-				productVersion = getEclipseVersion();
-		}
-		return productVersion;
-	}
-
-	public boolean getChecked() {
-		return isChecked;
-	}
-
-	public void setChecked(boolean flag) {
-		this.isChecked = flag;
-	}
-
-	//----------------------------------------------------
-
-	private static String[] parseLine(String line) {
-		String[] result = new String[2];
-		result[0] = "";
-		result[1] = "";
-
-		int indexToken = line.indexOf('=');
-		if (indexToken > 0) {
-			result[0] = line.substring(0, indexToken);
-			if (indexToken + 1 < line.length()) {
-				result[1] = line.substring(indexToken + 1);
-			}
-		}
-
-		return result;
-	}
-
-	private static String replaceSubtring(String string, String oldValue,
-			String newValue) {
-		StringBuffer resultString = new StringBuffer("");
-
-		String curString = string;
-		while (curString.length() > 0) {
-			int index = curString.indexOf(oldValue);
-			if (index > -1) {
-				// append part of string before .. to result
-				resultString.append(curString.substring(0, index));
-				resultString.append(newValue);
-
-				curString = curString.substring(index + oldValue.length());
-			} else {
-				// append rest part of string to result
-				resultString.append(curString);
-				break;
-			}
-		}
-		return resultString.toString();
-	}
-
-	private static File[] readRecentWorkspaces(File uiIdePrefs) {
-		List result = new ArrayList();
-
-		FileReader reader;
-		try {
-			reader = new FileReader(uiIdePrefs);
-			BufferedReader bufferedReader = new BufferedReader(reader);
-
-			String line = "";
-			while ((line = bufferedReader.readLine()) != null) {
-				String[] args = parseLine(line.trim());
-				if (args[0].equals("RECENT_WORKSPACES")) {
-					String[] workspaces = args[1].split(",");
-					for (int i = 0; i < workspaces.length; i++) {
-						String workspacePath = replaceSubtring(workspaces[i],
-								"\\:", ":");
-						// on win32 path is stored in file like C\:\, have to
-						// convert to C:\
-						result.add(new File(workspacePath));
-					}
-					break;
-				}
-			}
-
-			reader.close();
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			// e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			// e.printStackTrace();
-		}
-
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	private static boolean isWorkspaceLocked(File workspaceDir) {
-		if (workspaceDir.exists()) {
-			File metadataDir = new File(workspaceDir, METADATA_DIRNAME);
-			if (metadataDir.exists()) {
-				File lockFile = new File(metadataDir, LOCK_FILENAME);
-				try {
-					// Get a file channel for the file
-					FileChannel channel = new RandomAccessFile(lockFile, "rw")
-							.getChannel();
-
-					// Try acquiring the lock without blocking. This method
-					// returns
-					// null or throws an exception if the file is already
-					// locked.
-					FileLock lock = null;
-					try {
-						lock = channel.tryLock();
-						return lock == null;
-					} catch (OverlappingFileLockException e) {
-						return true;
-					} finally {
-						if (lock != null)
-							lock.release();
-						channel.close();
-					}
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Check if Eclipse Installation is running
-	 *
-	 * @return
-	 */
-	public boolean isRunning() {
-		File[] workspaces = getRecentWorkspaces();
-		for (int i = 0; i < workspaces.length; i++) {
-			if (isWorkspaceLocked(workspaces[i]))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return recent workspaces used by this Eclipse Installation
-	 *
-	 * @return
-	 */
-	public File[] getRecentWorkspaces() {
-		if (getEclipseDir() != null && getEclipseDir().exists()) {
-			File configurationDir = new File(getEclipseDir(), CONFIGURATION_DIRNAME);
-			if (configurationDir.exists()) {
-				File settingsDir = new File(configurationDir, SETTINGS_DIRNAME);
-				if (settingsDir.exists()) {
-					File uiIdePrefs = new File(settingsDir,
-							UI_IDE_PREFS_FILENAME);
-					if (uiIdePrefs.exists())
-						return readRecentWorkspaces(uiIdePrefs);
-				}
-			}
-		}
-		return new File[0];
-	}
-
-	/**
-	 * Check log for created link files, return list of valid ones (path to
-	 * extension in file and in log are the same).
-	 *
-	 * @param lofFile
-	 *            Log file to process
-	 * @return File[]
-	 */
-	private static File[] getValidLinkList(File logFile) {
-
-		List result = new ArrayList();
-
-		if (logFile != null && logFile.exists()) {
-			try {
-				InstallLog log = new InstallLog();
-				BufferedReader reader = new BufferedReader(new FileReader(
-						logFile));
-				try {
-					log.read(reader);
-
-					List entries = log.getEntries();
-					for (int i = 0; i < entries.size(); i++) {
-						InstallLogEntry entry = (InstallLogEntry) entries.get(i);
-						if (entry.getOperationCode() == InstallLog.LINK_CREATED_ENTRY) {
-
-							if (RemoveLinkAction.isLinkActual(entry)) {
-								result.add(RemoveLinkAction.getLinkFile(entry));
-							}
-						}
-					}
-				} finally {
-					reader.close();
-				}
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				// e.printStackTrace();
-			}
-		}
-
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	/**
-	 * Get eclipse installation folder, in which folder structure linkFile is
-	 * placed in
-	 *
-	 * @param linkFile
-	 * @return
-	 */
-	private static File getLinkEclipseDir(File linkFile) {
-		// get path to eclipse installation, assume linkFile to be
-		// located two levels deeper (eg. ...eclipse\links\linkFile)
-		if (linkFile != null) {
-			File parent = linkFile.getParentFile();
-			if (parent != null) {
-				parent = parent.getParentFile();
-				if (parent != null
-						&& EclipseInstallation.isEclipseInstallation(parent)) {
-					return parent;
-				}
-			}
-		}
-		return null;
-	}
-
-	private static EclipseInstallation[] getLinkedEclipseList(File logFile) {
-		List result = new ArrayList();
-
-		File[] linkFileList = getValidLinkList(logFile);
-		for (int i = 0; i < linkFileList.length; i++) {
-			File eclipseFile = getLinkEclipseDir(linkFileList[i]);
-
-			if (eclipseFile != null) {
-				EclipseInstallation install = new EclipseInstallation(eclipseFile);
-				if (!result.contains(install))
-					result.add(install);
-			}
-		}
-
-		return (EclipseInstallation[]) result
-				.toArray(new EclipseInstallation[result.size()]);
-	}
-
-	/**
-	 * Find the log file if it exists, build a list of linked Eclipse
-	 * installations
-	 *
-	 * @return array of Eclipse installations (not <code>null</code>,
-	 *         contains no <code>null</code>s)
-	 */
-	public static EclipseInstallation[] findLinked(InstallOptions options) {
-		String installDir = options
-				.getString(InstallOptions.OPTION_INSTALL_DIR);
-		File logFile = new File(installDir,
-				CreateUninstallerOperation.INSTALL_LOG);
-		return findLinked(logFile);
-	}
-
-	/**
-	 * Find the log file if it exists, build a list of linked Eclipse
-	 * installations
-	 *
-	 * @return array of Eclipse installations (not <code>null</code>,
-	 *         contains no <code>null</code>s)
-	 */
-	public static EclipseInstallation[] findLinked(File logFile) {
-		if (logFile != null && logFile.exists()) {
-			EclipseInstallation[] eclipseList = getLinkedEclipseList(logFile);
-			if (eclipseList != null)
-				return eclipseList;
-		}
-		return new EclipseInstallation[] {};
-	}
-
-	private static boolean isRemovableDrive(File drive) {
-		// Removable drive is a Floppy or CD Drive, drives that have a removable
-		// media
-		String drivePath = drive.getAbsolutePath();
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			int driveType = platform.GetDriveType(drivePath);
-			return driveType != IPlatform.DRIVE_FIXED;
-		}
-		return false;
-	}
-
-	private static void addOneLevelDeep(File location, Collection searchDirList) {
-		File[] dirList = location.listFiles();
-		if (dirList == null)
-			return;
-
-		for (int i = 0; i < dirList.length; i++) {
-			File dir = dirList[i];
-			if (dir != null && dir.isDirectory()) {
-				searchDirList.add(dir);
-			}
-		}
-	}
-
-	private static void addSearchFixedDrives(Collection searchDirs) {
-		File[] drives;
-		drives = File.listRoots();
-
-		for (int i = 0; i < drives.length; i++) {
-			if (isRemovableDrive(drives[i]))
-				continue;
-
-			File[] dirList = drives[i].listFiles();
-			if (dirList == null)
-				continue;
-
-			for (int j = 0; j < dirList.length; j++) {
-				File dir = dirList[j];
-				if (dir != null && dir.isDirectory()) {
-					searchDirs.add(dir);
-					addOneLevelDeep(dir, searchDirs);
-				}
-			}
-		}
-	}
-
-	private static void addSearchPreviousInstalled(InstallOptions options, Collection searchDirs) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform == null)
-			return;
-		String[] productLocations = platform.readPreviousProductInstallLocations(options);
-		if (productLocations == null)
-			return;
-		boolean verbose = options.isVerbose();
-		for (int i = 0; i < productLocations.length; i++) {
-			if (verbose)
-				System.out.println("Previous location: " + productLocations[i]);
-			File location = new File(productLocations[i]);
-			if (location.exists()) {
-				File parent = location.getParentFile();
-				if (parent != null && parent.exists() && parent.isDirectory()) {
-					addOneLevelDeep(parent, searchDirs);
-				}
-			}
-		}
-	}
-	
-	private static void addSearchEclipseLocationsFromRegistry(InstallOptions options, Collection searchDirs) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform == null)
-			return;
-		String[] registeredEclipseLocations = platform.readEclipseLocationsFromRegistry();
-		if (registeredEclipseLocations == null)
-			return;
-		boolean verbose = options.isVerbose();
-		for (int i = 0; i < registeredEclipseLocations.length; i++) {
-			if (verbose)
-				System.out.println("Eclipse based product location: " + registeredEclipseLocations[i]);
-			File location = new File(registeredEclipseLocations[i]);
-			if (location.exists() && location.isDirectory()) {
-				searchDirs.add(location);
-			}
-		}
-	}
-
-	/**
-	 * Search for Eclipse installations
-	 * 
-	 * @return array of Eclipse installations (not <code>null</code>, contains no
-	 *         <code>null</code>s)
-	 */
-	public static EclipseInstallation[] findAll(InstallOptions options) {
-		List result = new ArrayList();
-
-		// Search the following locations for ".eclipseproduct":
-		// 1) the root drives 1 level deep
-		// 2) parent directories of previous install locations 1 level deep
-		// 3) directories specified in the registry for know products such as
-		// IBM Rational Application Developer, IBM Websphere Application
-		// Developer, etc
-		// 4) Home folders for Linux OS.
-
-		List searchDirs = new ArrayList();
-		boolean verbose = options.isVerbose();
-
-		addSearchEclipseLocationsFromRegistry(options, searchDirs);
-		addSearchOtherEclipseLocations(options, searchDirs);
-		addSearchFixedDrives(searchDirs);
-		addSearchPreviousInstalled(options, searchDirs);
-		
-		for (Iterator iter = searchDirs.iterator(); iter.hasNext();) {
-			File productDir = (File) iter.next();
-			if (verbose)
-				System.out.println("Checking for Eclipse installation: " + productDir.getPath());
-			EclipseProductType productType = EclipseProductType.getType(productDir);
-			if (productType != null) {
-				EclipseInstallation eclipse = new EclipseInstallation(productDir, productType);
-				if (verbose)
-					System.out.println("Found Eclipse installation: " + productDir.getPath());
-				if (!result.contains(eclipse))
-					result.add(eclipse);
-			}
-		}
-		return (EclipseInstallation[]) result.toArray(new EclipseInstallation[result.size()]);
-	}
-
-	private static void addSearchOtherEclipseLocations(InstallOptions options, Collection searchDirs) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform == null)
-			return;
-		String[] otherLocations = platform.otherEclipseLocations();
-		if (otherLocations == null)
-			return;
-		boolean verbose = options.isVerbose();
-		for (int i = 0; i < otherLocations.length; i++) {
-			if (verbose)
-				System.out.println("Other location: " + otherLocations[i]);
-			File location = new File(otherLocations[i]);
-			if (location.exists() && location.isDirectory()) {
-				searchDirs.add(location);
-			}
-		}
-	}
-
-	/**
-	 * Indicates whether some other object is "equal to" this one. Two Eclipse based
-	 * installations are the same if their Eclipse directories ({@link #getEclipseDir()})
-	 * are the same. Two {@link IProductInstallation} instances are the same if their
-	 * product directories ({@link #getProductDir()}) are the same.
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if ((obj instanceof EclipseInstallation)) {
-			EclipseInstallation install = (EclipseInstallation) obj;
-			return equalDirs(getEclipseDir(), install.getEclipseDir());
-		}
-		if ((obj instanceof IProductInstallation)) {
-			IProductInstallation install = (IProductInstallation) obj;
-			return equalDirs(getProductDir(), install.getProductDir());
-		}
-		return false;
-	}
-
-	private boolean equalDirs(File dir1, File dir2) {
-		return dir1 != null ? dir1.equals(dir2) : dir2 == null;
-	}
-
-	public int hashCode() {
-		return getEclipseDir() != null ? getEclipseDir().hashCode() : 0;
-	}
-
-	public File getConfigurationDir() {
-		return configurationDir;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseLocator.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseLocator.java
deleted file mode 100644
index 62a0d15..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseLocator.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package org.eclipse.epp.installer.core.eclipse;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.IPlatform;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Platform;
-import org.eclipse.epp.installer.core.product.IProductInstallation;
-import org.eclipse.epp.installer.core.product.IProductLocator;
-import org.eclipse.epp.installer.core.steps.ChooseEclipseStep;
-
-
-/**
- * <code>EclipseLocator</code> is used by
- * {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} to locate previously
- * installed Eclipse based applications.
- */
-public class EclipseLocator implements IProductLocator {
-
-	private InstallOptions options = null;
-
-	public EclipseLocator(InstallOptions options) {
-		this.options = options;
-	}
-
-	public boolean isProductInstallation(File eclipseDir) {
-		return EclipseInstallation.isEclipseInstallation(eclipseDir);
-	}
-
-	private static boolean canRead(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canRead(file);
-		}
-		// in case there is no platform implementation
-		return file.canRead();
-	}
-	
-	private static boolean canWrite(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canWrite(file);
-		}
-		// in case there is no platform implementation
-		return file.canWrite();
-	}
-	
-	public boolean hasModificationPermissions(IProductInstallation product) {
-		EclipseInstallation eclipse = new EclipseInstallation(product.getProductDir());
-		File linksDir = eclipse.getLinksDir();
-		if (linksDir.exists()) {
-			return canWrite(linksDir);
-		}
-		return canWrite(eclipse.getEclipseDir());
-	}
-	
-	public IProductInstallation[] findAll() {
-		EclipseInstallation[] linkedEclipse = (EclipseInstallation[]) sortInstallations(findLinkedUnsorted());
-		EclipseInstallation[] eclipseList = (EclipseInstallation[]) sortInstallations(findInstalledUnsorted(linkedEclipse));
-
-		List result = new ArrayList();
-		
-		boolean oneIsChecked = false;
-
-		if (eclipseList.length > 0) {
-			if (linkedEclipse.length > 0) {
-				// there are some already linked eclipse installations
-				// add them and select by default
-				for (int i = 0; i < linkedEclipse.length; i++) {
-					linkedEclipse[i].setChecked(hasModificationPermissions(linkedEclipse[i]));
-					result.add(linkedEclipse[i]);
-				}
-				// add found eclipse installations if they are not among
-				// already linked ones
-				for (int i = 0; i < eclipseList.length; i++) {
-					if (!ChooseEclipseStep.isInArray(eclipseList[i],
-							linkedEclipse)) {
-						eclipseList[i].setChecked(false);
-						result.add(eclipseList[i]);
-					}
-				}
-			} else {
-				// first one is selected by default
-				// the rest part is not selected
-				for (int i = 0; i < eclipseList.length; i++) {
-					if (!oneIsChecked && hasModificationPermissions(eclipseList[i])) {
-						eclipseList[i].setChecked(true);
-						oneIsChecked = true;
-					} else {
-						eclipseList[i].setChecked(false);
-					}
-					result.add(eclipseList[i]);
-				}
-			}
-		} else {
-			if (linkedEclipse.length > 0) {
-				// there are some already linked eclipse installations
-				// add them and select by default
-				for (int i = 0; i < linkedEclipse.length; i++) {
-					linkedEclipse[i].setChecked(hasModificationPermissions(linkedEclipse[i]));
-					result.add(linkedEclipse[i]);
-				}
-			}
-		}
-
-		return (EclipseInstallation[]) result
-				.toArray(new EclipseInstallation[result.size()]);
-	}
-
-	/**
-	 * Used by {@link #findAll()} to locate linked instances of Eclipse
-	 * 
-	 * @return an unsorted array of linked Eclipse installations (not <code>null</code>,
-	 *         contains no <code>null</code>s)
-	 */
-	protected EclipseInstallation[] findLinkedUnsorted() {
-		return EclipseInstallation.findLinked(options);
-	}
-
-	/**
-	 * Used by {@link #findAll()} to locate installed instances of Eclipse
-	 * 
-	 * @param linkedEclipse an array of linked Eclipse installations (not
-	 *            <code>null</code>, contains no <code>null</code>s)
-	 * @return an unsorted array of Eclipse installations (not <code>null</code>,
-	 *         contains no <code>null</code>s)
-	 */
-	protected EclipseInstallation[] findInstalledUnsorted(EclipseInstallation[] linkedEclipse) {
-		return EclipseInstallation.findAll(options);
-	}
-
-	public IProductInstallation createProductInstallation(File productDir) {
-		return new EclipseInstallation(productDir);
-	}
-
-	private static class EclipseInstallationDirComparator implements Comparator {
-
-		private int compareDirs(EclipseInstallation inst1,
-				EclipseInstallation inst2) {
-			return inst1.getEclipseDir().getAbsolutePath().compareTo(
-					inst2.getEclipseDir().getAbsolutePath());
-		}
-
-		public int compare(Object arg0, Object arg1) {
-			if (arg0 instanceof EclipseInstallation
-					&& arg1 instanceof EclipseInstallation) {
-				return compareDirs((EclipseInstallation) arg0,
-						(EclipseInstallation) arg1);
-			}
-			return 0;
-		}
-
-	}
-
-	private static class EclipseInstallationVersionComparator implements
-			Comparator {
-
-		private int compareVersions(EclipseInstallation inst1,
-				EclipseInstallation inst2) {
-			return inst1.getEclipseVersion().compareTo(
-					inst2.getEclipseVersion());
-		}
-
-		public int compare(Object arg0, Object arg1) {
-			if (arg0 instanceof EclipseInstallation
-					&& arg1 instanceof EclipseInstallation) {
-				return compareVersions((EclipseInstallation) arg0,
-						(EclipseInstallation) arg1);
-			}
-			return 0;
-		}
-
-	}
-
-	private static EclipseInstallationDirComparator dirComparator = new EclipseInstallationDirComparator();
-
-	private static EclipseInstallationVersionComparator versionComparator = new EclipseInstallationVersionComparator();
-
-	private IProductInstallation[] sortInstallations(
-			IProductInstallation[] installations) {
-		List result = Arrays.asList(installations);
-		Collections.sort(result, dirComparator);
-		Collections.sort(result, versionComparator);
-		return (EclipseInstallation[]) result
-				.toArray(new EclipseInstallation[result.size()]);
-	}
-
-	/*
-	 * private static boolean isInArray(EclipseInstallation item,
-	 * EclipseInstallation[] array) { for (int i = 0; i < array.length; i++) {
-	 * if (array[i].equals(item)) return true; } return false; }
-	 * 
-	 * private static EclipseInstallation[] addToArray(EclipseInstallation[]
-	 * array1, EclipseInstallation[] array2) { List result = new ArrayList();
-	 * 
-	 * for (int i = 0; i < array1.length; i++) { result.add(array1[i]); }
-	 * 
-	 * for (int i = 0; i < array2.length; i++) { if (!isInArray(array2[i],
-	 * array1)) { result.add(array2[i]); } }
-	 * 
-	 * return (EclipseInstallation[]) result.toArray(new
-	 * EclipseInstallation[result.size()]); }
-	 */
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseVersion.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseVersion.java
deleted file mode 100644
index a6520c8..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/eclipse/EclipseVersion.java
+++ /dev/null
@@ -1,252 +0,0 @@
-package org.eclipse.epp.installer.core.eclipse;
-
-
-import org.eclipse.epp.installer.core.product.IProductVersion;
-import org.eclipse.epp.installer.internal.core.eclipse.EclipseUtils;
-import org.eclipse.epp.installer.internal.core.eclipse.EclipseVersionRange;
-
-
-/**
- * An object that identifies the version of a particular Eclipse installation.
- * This is used by both licensing and the installer 
- * and so must not import any Eclipse specific classes.
- * <p>
- * Copyright (c) 2003, Instantiations, Inc.<br>
- * All Rights Reserved
- *
- * @author Dan Rubel
- * @version $Revision: 1.2 $
- */
-public class EclipseVersion implements IProductVersion
-{
-	/** 
-	 * Constant representing an unknown version of Eclipse 
-	 */
-	public static final EclipseVersion UNKNOWN = new EclipseVersion(0, 0, 0, null);
-	
-	/**
-	 * Constant string representing unknown version of Eclipse
-	 */
-	public static final String UNKNOWN_VERSION_TEXT = "???";
-	
-	/**
-	 * Symbol used as token in version string 
-	 */
-	public static final String VERSION_TOKEN_SYMBOL = "\\.";
-
-	/** major version number... zero = unknown version */
-	private final int vMajor;
-
-	/** minor version number */
-	private final int vMinor;
-
-	/** service version number */
-	private final int vService;
-
-	/** Build ID, Milestone, or null if unknown */
-	private final String vBuild;
-
-	/**
-	 * Construct a new instance representing a particular version of Eclipse
-	 * @param vMajor major version number
-	 * @param vMinor minor version number
-	 * @param vService service version number
-	 * @param vBuild the build ID or null if unknown
-	 */
-	public EclipseVersion(int vMajor, int vMinor, int vService, String vBuild) {
-		this.vMajor = vMajor;
-		this.vMinor = vMinor;
-		this.vService = vService;
-		this.vBuild = EclipseUtils.getMilestone(vBuild);
-	}
-	
-	EclipseVersion(String versionString[]) {
-		if (versionString == null || versionString.length < 1) {
-			throw new IllegalArgumentException();
-		}
-		this.vMajor = Integer.parseInt(versionString[0]);
-
-		if (versionString.length > 1) {
-			this.vMinor = Integer.parseInt(versionString[1]);
-		} else {
-			this.vMinor = 0;
-		}
-
-		if (versionString.length > 2) {
-			this.vService = Integer.parseInt(versionString[2]);
-		} else {
-			this.vService = 0;
-		}
-
-		if (versionString.length > 3) {
-			this.vBuild = EclipseUtils.getMilestone(versionString[3]);
-		} else {
-			this.vBuild = EclipseUtils.getMilestone("");
-		}
-	}
-	
-	public int getMajor() {
-		return vMajor;
-	}
-	
-	public int getMinor() {
-		return vMinor;
-	}
-	
-	public int getService() {
-		return vService;
-	}
-	
-	public String getBuild() {
-		return vBuild;
-	}
-
-	public int hashCode() {
-		return vMajor * 10000 + vMinor * 1000 + vService * 100 + (vBuild == null ? 0 : vBuild.hashCode() % 100);
-	}
-	
-	public boolean equals(Object o) {
-		if(o instanceof EclipseVersion) {
-			EclipseVersion ev = (EclipseVersion)o;
-			return (hashCode() == ev.hashCode());
-		}
-		return false;
-	}
-	
-	/**
-     * Returns a string representation of the object.
-	 */
-	public String toString() {
-		if (vMajor == 0)
-			return UNKNOWN_VERSION_TEXT;
-		StringBuffer buf = new StringBuffer(10);
-		buf.append(vMajor);
-		buf.append(".");
-		buf.append(vMinor);
-		buf.append(".");
-		buf.append(vService);
-		
-		// Append the build identifier or milestone if the service level is 0
-		// (e.g. display all 3.0.1 builds identically)
-		if (vService == 0 && vBuild != null && vBuild.length() > 0) {
-			buf.append(" ");
-			buf.append(vBuild);
-		}
-		
-		return buf.toString();
-	}
-
-	/**
-	 * Create an EclipseVersion object for given version string
-	 * 
-	 * @param versionString
-	 * @return EclipseVersion object for given version string
-	 */
-	public static EclipseVersion fromString(String versionString) {
-		String[] numbers = versionString.split(VERSION_TOKEN_SYMBOL);
-		if (numbers == null || numbers.length == 0) {
-			return null;
-		}
-		
-		EclipseVersion version = new EclipseVersion(numbers);
-		return version;
-	}
-	
-	/**
-	 * Checks if EclipseVersion is in specified version range
-	 * @param rangeString
-	 * 		string Range representation
-	 * @return boolean
-	 * 		<code>true</code> if is in range, else <code>false</code>
-	 */
-	public boolean isInRange(String rangeString) {
-		EclipseVersionRange range = EclipseVersionRange.parseRangeString(rangeString);
-
-		if (range != null) {
-			int floorComp = compareTo(range.floor);
-			int ceilingComp = compareTo(range.ceiling);
-			
-			if (range.floorIncluded) {
-				if (floorComp < 0) {
-					return false;
-				}
-			} else {
-				if (floorComp <= 0) {
-					return false;
-				}
-			}
-			
-			if (range.ceilingIncluded) {
-				if (ceilingComp > 0) {
-					return false;
-				}
-			} else {
-				if (ceilingComp >= 0) {
-					return false;
-				}
-			}
-			
-			return true;
-		} else {
-			EclipseVersion version = fromString(rangeString);
-			if (compareTo(version) > 0)
-				return true;
-			return false;
-		}
-	}
-	
-	private int compareInt(int intValue1, int intValue2) {
-		if (intValue1 != intValue2) {
-			return intValue1 < intValue2 ? -1 : 1;
-		}
-		return 0;
-	}
-	
-	/**
-	 * Compare with given EclipseVersion object
-	 * @param version
-	 * @return int
-	 * 		0 if versions are equal, -1 if given version is greater and 1 else
-	 */
-	public int compareTo(IProductVersion version) {
-		
-		int majorComp = compareInt(getMajor(), version.getMajor());
-		int minorComp = compareInt(getMinor(), version.getMinor());
-		int serviceComp = compareInt(getService(), version.getService());
-
-		if (majorComp != 0) {
-			return majorComp;
-		}
-		if (minorComp != 0) {
-			return minorComp;
-		}
-		if (serviceComp != 0) {
-			return serviceComp;
-		}
-		if (vBuild == null || vBuild.equals("")) {
-			return (version.getBuild() == null || version.getBuild().equals("")) ? 0 : -1;
-		}
-		if (version.getBuild() == null || version.getBuild().equals("")) {
-			return 1;
-		}
-		return vBuild.compareTo(version.getBuild());
-	}
-
-	/**
-	 * Determine if the receiver is compatible with the specified version.
-	 * This is used to determine if a message should be displayed
-	 * warning the user that the product is designed for a different version of Eclipse
-	 */
-	public boolean isCompatible(EclipseVersion version) {
-//		if (vMajor == 3 && version.vMajor == 3 && vMinor == 1 && version.vMinor >= 1)
-//			return true;
-		if (vMajor != version.vMajor || vMinor != version.vMinor)
-			return false;
-		// Treat all service builds as compatible with the minor version GA (e.g. 3.0.1 = 3.0.0 GA)
-		if (vService > 0 || vBuild == null)
-			return version.vService > 0 || version.vBuild == null;
-		return vService == version.vService 
-			&& (vBuild == null ? version.vBuild == null : vBuild.equals(version.vBuild));
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Context.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Context.java
deleted file mode 100644
index acbe756..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Context.java
+++ /dev/null
@@ -1,393 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.operations.IWarningComparableStatus;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-
-
-/**
- * Context implements base functionality of installer.
- */
-public class Context {
-	// TODO [author=Dan] Need copyright for each and every class
-	/**
-	 * Verbose flag.
-	 */
-	// TODO: May be we need to use only install options verbose flag?
-	public static boolean VERBOSE = false;
-
-	/**
-	 * Plugin identification string.
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.epp.installer.core";
-
-	/**
-	 * Path to SFX JAR, system propety set up by Java launcher
-	 */
-	public static final String INSTALLER_JAR_PROPERTY = "installer.jar.path";
-
-	public static final String INSTALLER_CONFIGURATION_TYPE_PROPERTY = "installer.configuration.type";
-	
-	/**
-	 * Retry action.
-	 */
-	public static final int RETRY = 0;
-
-	/**
-	 * Abort action.
-	 */
-	public static final int ABORT = 1;
-
-	/**
-	 * Ignore action.
-	 */
-	public static final int IGNORE = 2;
-
-	/**
-	 * New status. Used to run prerequsites on operation at first time of
-	 * execution.
-	 */
-	private static final Status NEW = new Status(IStatus.OK, PLUGIN_ID, 0,
-			"new", null);
-
-	/**
-	 * Set of operations.
-	 */
-	private Map operationSet;
-
-	/**
-	 * Install optiona.s
-	 */
-	private InstallOptions options;
-
-	/**
-	 * Install log.
-	 */
-	private InstallLog installLog = new InstallLog();
-
-	/**
-	 * Warnings.
-	 */
-	private List warnings = new ArrayList();
-
-	/**
-	 * Progress monitor.
-	 * 
-	 * Used to notify UI code abount current executed task.
-	 */
-	private IProgressMonitor monitor;
-
-	/**
-	 * Set to true after user select yes from confirm dialog.
-	 */
-	private boolean userCancel = false;
-
-	/**
-	 * Construct Context with empty set of options.
-	 */
-	public Context() {
-		this.options = new InstallOptions();
-	}
-
-	/**
-	 * Construct Context with specified set of options.
-	 * 
-	 * @param options
-	 *            InstallOptions options.
-	 */
-	public void setOptions(InstallOptions options) {
-		this.options = options;
-	}
-
-	/**
-	 * Returns current set of options.
-	 * 
-	 * @return return current set of options.
-	 */
-	public final InstallOptions getOptions() {
-		return options;
-	}
-
-	/**
-	 * Returns install log.
-	 * 
-	 * @return return install long.
-	 */
-	public final InstallLog getInstallLog() {
-		return installLog;
-	}
-
-	/**
-	 * Returns warning log.
-	 * 
-	 * @return return warning log.
-	 */
-	public final Collection getWarnings() {
-		return warnings;
-	}
-	/**
-	 * Prepare operations.
-	 * 
-	 * @param operations
-	 *            collection of operations. collection should not be null.
-	 * @throws Exception
-	 *             throws exception if some operation could not be prepared.
-	 */
-	private void prepare(Collection operations) throws Exception {
-		Iterator i = operations.iterator();
-		while (i.hasNext()) {
-			InstallOperation op = (InstallOperation) i.next();
-			if (operationSet.get(op) == null) {
-				op.prepare();
-				if (op.hasPrerequisites()) {
-					prepare(op.prerequisites());
-				}
-				operationSet.put(op, NEW);
-			}
-		}
-	}
-
-	/**
-	 * Run collection of operations.
-	 * 
-	 * Operation prerequisites run before operation.<br/> If some operation
-	 * prerequisite or operation itself could not be complited, error status are
-	 * returned.<br/>
-	 * 
-	 * @param operations
-	 *            collection of operatins. operations could not be null.
-	 * @return IStatus returns most urgent execution status
-	 */
-	private IStatus runOperations(Collection operations) {
-		IStatus status = Status.OK_STATUS;
-		Iterator i = operations.iterator();
-		while (i.hasNext()) {
-			if (monitor.isCanceled()) {
-				return Status.CANCEL_STATUS;
-			}
-			InstallOperation op = (InstallOperation) i.next();
-			IStatus opStatus;
-			if (operationSet.get(op) == NEW) {
-				// runPrerequesties
-				IStatus reqStatus = null;
-				while (reqStatus == null
-						|| reqStatus.getSeverity() == IStatus.CANCEL) {
-					reqStatus = runOperations(op.prerequisites());
-					if (reqStatus != null
-							&& reqStatus.getSeverity() == IStatus.CANCEL) {
-						if (userCancel || this.confirmCancel()) {
-							userCancel = true;
-							return reqStatus;
-						}
-						monitor.setCanceled(false);
-					}
-				}
-
-				if (reqStatus.getSeverity() >= IStatus.ERROR) {
-					return reqStatus; // prerequsities failed, return
-				}
-
-				monitor.setTaskName(op.toString());
-				if (VERBOSE) {
-					System.out.println("operation..."+op + " ...");					
-				}
-
-				boolean retry;
-				do {
-					retry = false;
-					opStatus = op.run(this);
-					if (opStatus.getSeverity() == Status.WARNING) {
-						addWarning(opStatus);
-						break;
-					}
-					if (opStatus.getSeverity() != IStatus.OK) {
-						switch (abortRetryIgnore(opStatus)) {
-						case ABORT:
-							opStatus = Status.CANCEL_STATUS;
-							break;
-						case RETRY:
-							retry = true;
-							break;
-						case IGNORE:
-							opStatus = Status.OK_STATUS; // TODO reflect
-							// ignore
-							break;
-						}
-					}
-				} while (retry);
-
-				operationSet.put(op, opStatus);
-				monitor.worked(1);
-
-				if (VERBOSE) {
-					System.out.println(opStatus);
-				}
-			} else {
-				opStatus = (IStatus) operationSet.get(op);
-			}
-
-			if (opStatus.getSeverity() > status.getSeverity()) {
-				status = opStatus;
-			}
-
-			if (status.getSeverity() >= Status.ERROR) {
-				return status;
-			}
-		}
-		return status;
-	}
-
-	private void addWarning(IStatus opStatus) {
-		if (opStatus instanceof IWarningComparableStatus) {
-			Iterator i = warnings.iterator();
-			while (i.hasNext()) {
-				Object o = i.next();
-				if (o instanceof IWarningComparableStatus) {
-					if (o.equals(opStatus)) {
-						return;
-					}
-				}
-			}			
-		}
-		warnings.add(opStatus);
-	}
-
-	protected boolean confirmCancel() {
-		return false;
-	}
-
-	/**
-	 * Run installer with progress.
-	 * 
-	 * @param operation
-	 *            InstallOperation options.
-	 * @return IStatus return execution status.
-	 * @see run
-	 */
-	public IStatus runWithProgress(InstallOperation operation) {
-		return run(operation);
-	}
-
-	/**
-	 * Run installer operation.
-	 * 
-	 * Before run of operation prepare stage are performed.<br/> If prograss
-	 * monitor are null, then created empty proggress monitor.<br/>
-	 * 
-	 * @param operation
-	 *            InstallOperation
-	 * @return IStatus
-	 */
-	public IStatus run(InstallOperation operation) {
-		// clear operation set
-		operationSet = new HashMap();
-		if (VERBOSE) {
-			System.out.println("Building operations list...");
-		}
-		Collection operations = new ArrayList();
-		operations.add(operation);
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		try {
-			prepare(operations);
-			Set handles = operationSet.keySet();
-			monitor.beginTask(operation.toString(), handles.size());
-
-			if (VERBOSE) {
-				System.out.println("Running " + handles.size()
-						+ " operations...");
-			}
-			List root = new ArrayList();
-			root.add(operation);
-			return runOperations(root);
-		} catch (Exception e) {
-			IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, 0,
-					"error while running operation", e);
-			error(status);
-			return status;
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Ask user for an action confirmation (i.e. overwrite file)
-	 * 
-	 * @param code
-	 *            action code
-	 * @param message
-	 *            message to show to user.
-	 * @param param
-	 *            Object[] message parameters.
-	 * @return true if action confirmed
-	 */
-	public boolean confirm(int code, String message, Object[] param) {
-		return true;
-	}
-
-	/**
-	 * Ask user for an action confirmation (i.e. overwrite file)
-	 * 
-	 * @param code
-	 *            action code
-	 * @param message
-	 *            message to show to user.
-	 * @param param
-	 *            Object[] message parameters.
-	 * @return true if action confirmed
-	 */
-	public boolean warning(int code, String message, Object[] param) {
-		return true;
-	}
-
-	/**
-	 * Return appropriate action from status.
-	 * 
-	 * Current implementation always return IGNORE.
-	 * 
-	 * @param status
-	 *            IStatus to get action from.
-	 * @return int action to perform. used in {@link runOperations }
-	 */
-	public int abortRetryIgnore(IStatus status) {
-		// TODO: Should be replaced with correct code.
-		System.out.println(status);
-		System.out.println("-- IGNORED");
-		return IGNORE;
-	}
-
-	/**
-	 * Output error message to user.
-	 * 
-	 * @param status
-	 *            IStatus
-	 */
-	public void error(IStatus status) {
-		// TODO: Should be replaced with correct code.
-		System.out.println(status);
-	}
-
-	/**
-	 * Set ProgressMonitor to use. Progress monitor used to notify UI of
-	 * performed task.
-	 * 
-	 * @param monitor
-	 *            IProgressMonitor monitor to use.
-	 */
-	public void setProgressMonitor(IProgressMonitor monitor) {
-		this.monitor = monitor;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IInstallStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IInstallStep.java
deleted file mode 100644
index 98bcf92..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IInstallStep.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.InstallOptions;
-
-
-/**
- * This is the base interface for all user prompting during the installation process.
- * Subclasses describe information to be gathered and facilitate getting and settings that
- * information in the {@link org.eclipse.epp.installer.core.InstallOptions}. The main
- * installer class (see example in Overview) adds install steps to the installer using
- * {@link org.eclipse.epp.installer.core.model.Installer#add(IInstallStep)}. When the
- * main installer class calls
- * {@link org.eclipse.epp.installer.core.model.Installer#run()}, then installer
- * processes each step by calling {@link #canExecute()} to determine if the step should be
- * executed, {@link #aboutToStep()} just before the user is prompted, and
- * {@link #verifyStep()} to determine if the information provided is appropriate.
- * During the {@link org.eclipse.epp.installer.core.steps.RunOperationsStep}, 
- * the {@link org.eclipse.epp.installer.core.model.InstallOperation}s are executed.
- */
-public interface IInstallStep extends IAdaptable
-{
-	/**
-	 * Answer the options associated with this operation
-	 * 
-	 * @return the options (not <code>null</code>).
-	 */
-	InstallOptions getOptions();
-
-	/**
-	 * Return execution condition.
-	 * Used to specify step execution condition
-	 * 
-	 * Used by installer to ensure step execution.
-	 * @return <code>true</code> if step needed to be executed, and <code>false</code>othervise.
-	 */
-	boolean canExecute();
-	
-	/**
-	 * Return back condition.
-	 * Used to specify step back condition
-	 * 
-	 * Used by installer to ensure what step support back execution.
-	 * @return <code>true</code> if step can back, and <code>false</code>othervise.
-	 */
-	boolean canBack();
-	
-	/**
-	 * Answer if step completed.
-	 * 
-	 * @return <code>true</code> if step is complete and installer can switch to next step 
-	 */
-	IStatus verifyStep();
-	
-	/**
-	 * Called immediately before the step is to be performed. Typically this is before a
-	 * wizard page becomes visible or before the code is installed.
-	 */
-	void aboutToStep();
-
-	/**
-	 * Return step title.
-	 * @return step title.
-	 */
-	String getTitle();
-	
-	/**
-	 * Return step description message.
-	 * @return step description.
-	 */
-	String getDescription();
-	
-	/**
-	 * Return current associated installer.
-	 * @return Installer instance.
-	 */
-	Installer getInstaller();
-
-	void setProperty(String key, String value);
-
-	String getProperty(String key);
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IRollbackAction.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IRollbackAction.java
deleted file mode 100644
index 55692eb..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IRollbackAction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-
-/**
- * Rollback action interface used to rollback on specicied log entry. 
- */
-public interface IRollbackAction {
-
-	/**
-	 * Rollback on specified log entry.
-	 * 
-	 * @param entry InstallLogEntry to roll back from.
-	 * @return IStatus return status.
-	 */
-	IStatus rollback(InstallLogEntry entry);
-	
-	/**
-	 * Return description of an action to use in GUI, i.e. Removing file...
-	 * @param entry entry to get information from.
-	 * @return String description string.
-	 */
-	String getDescription(InstallLogEntry entry);
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISequence.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISequence.java
deleted file mode 100644
index 908a6e2..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISequence.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-/**
- * Interface marks sequential composite install operation: all prerequisites of
- * this operation must be executed in order like they added. Note: Installer do
- * not specify execution order for prerequisites in other case.
- * 
- * @author andrey
- * @version $Revision: 1.1 $
- */
-public interface ISequence {
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISingleton.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISingleton.java
deleted file mode 100644
index 7ba2ad2..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/ISingleton.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-public interface ISingleton {
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IStepProcessor.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IStepProcessor.java
deleted file mode 100644
index 7f4ed42..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/IStepProcessor.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-public interface IStepProcessor {
-
-	public void process(IInstallStep step);
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallOperation.java
deleted file mode 100644
index 2f8c7fc..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallOperation.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-
-
-/**
- * Abstract base class for all install operations that actually install bits onto the drive.
- * These operations consume information placed into {@link org.eclipse.epp.installer.core.InstallOptions}
- * by {@link org.eclipse.epp.installer.core.model.IInstallStep}s.
- */
-public abstract class InstallOperation implements IErrorConstants {
-
-	/**
-	 * List of prerequisites executed before operation.
-	 * Operation should fill with needed prerequisite operations.
-	 */	
-	private List prerequisites;
-
-	/**
-	 * Invoked by InstallModel in Prepare Phase.
-	 * 
-	 * Why prepare? Well, installer may require relatively long steps (analyze
-	 * files, etc) to decide (build) installation model, so it's recommended to
-	 * add child operations in prepare method instead of constructor (etc) - to
-	 * keep user updated with UI.
-	 * @throws Exception
-	 */
-	protected void prepare() throws Exception {
-
-	}
-
-	/**
-	 * Execure operation.
-	 * 
-	 * @param installer Installation Context
-	 * @return IStatus return operation execution status.
-	 */
-	protected IStatus run(Context installer) {
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Add prerequisite to list of prerequsites.
-	 * 
-	 * If one prerequisite are added second time, if will be ignored.<br/>
-	 * If derived class implemens {@link org.eclipse.epp.installer.core.model.ISequence} interface then
-	 * last prerequisite before adding new will be added into <code>op</code> list of prerequisites.
-	 * 
-	 * @param op InstallOperation prerequisite to add.
-	 */
-	protected void addPrerequisite(InstallOperation op) {
-		if (prerequisites == null) {
-			prerequisites = new ArrayList();
-		}
-
-		// check if operation already added.
-		// (we don't use Set to find last added operation for sequences)
-		if (prerequisites.contains(op)) {
-			return;
-		}
-
-		if (this instanceof ISequence) {
-			int size = prerequisites.size();
-			if (size > 0) {
-				InstallOperation last = (InstallOperation) prerequisites
-						.get(size - 1);
-				op.addPrerequisite(last);
-			}
-		}
-		prerequisites.add(op);
-	}
-
-	/**
-	 * Return true if prerequisites list contains elements.
-	 * @return boolean true if prerequisites not null. 
-	 */
-	protected boolean hasPrerequisites() {
-		if( prerequisites == null ) {
-			return false;
-		}
-		return prerequisites.size() > 0;
-	}
-
-	/**
-	 * Return current list of prerequisites.
-	 * @return List of current prerequisites.
-	 */
-	protected List prerequisites() {
-		if (prerequisites == null) {
-			return Collections.EMPTY_LIST;
-		}
-		return prerequisites;
-	}
-
-	/*
-	 * TODO think about API clearance (at this point only prerequisity type of
-	 * relation exists)
-	 */
-	/**
-	 * Add prerequisite operation.
-	 * @param op InstallOperation
-	 */
-	public final void add(InstallOperation op) {
-		addPrerequisite(op);
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallStep.java
deleted file mode 100644
index 6cde254..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/InstallStep.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-
-/**
- * Concrete implementation of
- * {@link org.eclipse.epp.installer.core.model.IInstallStep}. Subclasses
- * should implement the appropriate interfaces listed in InstallCodeStep.
- */
-public class InstallStep implements IInstallStep {
-	
-	public static final String VAR_TITLE = "title";
-	public static final String VAR_DESCRIPTION = "description";
-
-	/**
-	 * Associated installer instance.
-	 */
-	private final Installer installer;
-
-	/** 
-	 * Cached UI adapter
-	 */	
-	private Object adapter;
-
-	/**
-	 * Install Step title.
-	 * @see #getTitle()
-	 */
-//	private String title;
-
-	/**
-	 * Install step description.
-	 * @see #getDescription()
-	 */
-//	private String description;
-	
-	protected Map properties;
-	
-	private Map aboutToStepProperties;
-	
-	private List aboutToStepProcessors;
-
-	/**
-	 * Construct a new instance with the associated installation context.
-	 * 
-	 * @param installer
-	 *            Installer
-	 */
-	public InstallStep(Installer installer) {
-		this.installer = installer;
-		this.properties = new HashMap();
-		this.aboutToStepProperties = new HashMap();
-		this.aboutToStepProcessors = new ArrayList();
-	}
-
-	/**
-	 * Return associated installer instance.
-	 * 
-	 * @return Return associated installer instance.
-	 */
-	public Installer getInstaller() {
-		return installer;
-	}
-
-	/**
-	 * Return associated install options.
-	 * 
-	 * @return associated install options.
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#getOptions()
-	 */
-	public InstallOptions getOptions() {
-		return getInstaller().getOptions();
-	}
-
-	/**
-	 * Return install step title string.
-	 * 
-	 * @return install step title.
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#getTitle()
-	 */
-	public String getTitle() {
-//		return title;
-		return Variables.resolve(getProperty(VAR_TITLE), getOptions());
-	}
-
-	/**
-	 * Set install step titile string.
-	 * 
-	 * @param title to set.            
-	 * @see #getTitle()
-	 */
-	public void setTitle(String title) {
-//		this.title = title;
-		setProperty(VAR_TITLE, title);
-	}
-
-	/**
-	 * Return install step description string.
-	 * 
-	 * @return String
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#getDescription()
-	 */
-	public String getDescription() {
-//		return description;
-		return Variables.resolve(getProperty(VAR_DESCRIPTION), getOptions());
-	}
-
-	/**
-	 * Set install step description string.
-	 * 
-	 * @param description to set.
-	 * @see #getDescription()
-	 */
-	public void setDescription(String description) {
-//		this.description = description;
-		setProperty(VAR_DESCRIPTION, description);
-	}
-
-	/**
-	 * Return execution condition.
-	 * Used to specefy step execution condition
-	 * 
-	 * Used by installer to ensure step execution.
-	 * @return <code>true</code> if step needed to be executed, and <code>false</code>othervise.
-	 */
-	public boolean canExecute() {
-		return true;
-	}
-	
-	/**
-	 * Return back condition.
-	 * Used to specify step back condition
-	 * 
-	 * Used by installer to ensure what step support back execution.
-	 * @return <code>true</code> if step can back, and <code>false</code>othervise.
-	 */
-	public boolean canBack() {
-		return true;
-	}
-
-	/**
-	 * Answer if step complited. 
-	 * Can execute some actions. See {@link org.eclipse.epp.installer.core.steps.RunOperationsStep } for example.
-	 * 
-	 * @return IStatus step status.
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#verifyStep()
-	 */
-	public IStatus verifyStep() {
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Return adapter.
-	 * 
-	 * @param adapterType return adapter for.             
-	 * @return adapter or null if no adapter found.
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
-	 */
-	public Object getAdapter(Class adapterType) {
-		if (adapter == null) {
-			if (IInstallStep.class.equals(adapter)) {
-				adapter = this;
-			} else {
-				adapter = installer.getAdapter(this, adapterType);
-			}
-		}
-		return adapter;
-	}
-
-	/**
-	 * Called immediately before the step is to be performed. Typically this is
-	 * before a wizard page becomes visible or before the code is installed.
-	 * 
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#aboutToStep()
-	 */
-	public void aboutToStep() {
-		properties.putAll(aboutToStepProperties);
-		for (Iterator it = aboutToStepProcessors.iterator(); it.hasNext(); ) {
-			IStepProcessor processor = (IStepProcessor) it.next();
-			processor.process(this);
-		}
-	}
-
-	public String getProperty(String key) {
-		return (String) properties.get(key);
-	}
-
-	public void setProperty(String key, String value) {
-		properties.put(key, value);
-	}
-
-	public void aboutToStepSetProperty(String key, String value) {
-		aboutToStepProperties.put(key, value);
-	}
-
-	public void aboutToStepAddProcessor(IStepProcessor processor) {
-		aboutToStepProcessors.add(processor);
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Installer.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Installer.java
deleted file mode 100644
index 346f363..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/Installer.java
+++ /dev/null
@@ -1,265 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * An {@link org.eclipse.epp.installer.core.InstallerFactory} instantiates a subclass
- * of Installer to interpret these IInstallSteps and gather the information necessary for
- * the installtion. Different subclasses will interact with the user in different ways
- * (wizard, console, headless) using the same set of install steps. Used as base class for
- * {@link com.instantiations.installer.internal.console.ConsoleInstaller },
- * {@link com.instantiations.installer.internal.ui.WizardInstaller }.
- */
-public abstract class Installer extends Context implements IAdapterFactory, IExecutableExtension {
-	/**
-	 * Not Supported status. Returned in
-	 * 
-	 * @{link performStep } then step is not supported by Installer.
-	 */
-	protected static final IStatus STEP_NOT_SUPPORTED = new Status(
-			IStatus.ERROR, Context.PLUGIN_ID, 0,
-			"Installer is not designed to run in console mode.", null);
-
-	/**
-	 * List of used steps.
-	 */
-	protected final List steps = new ArrayList();
-
-	/**
-	 * List of adapters.
-	 */
-	private Map adapters = new HashMap();
-
-	/**
-	 * Installer title string.
-	 */
-	private String title;
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Accessors
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Set installer title string.
-	 * 
-	 * @param title
-	 *            installer titile string.
-	 */
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	/**
-	 * Return current installer title string.
-	 * 
-	 * @return title string.
-	 */
-	public String getTitle() {
-		return title;
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Adapter management
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Return required adapter type.
-	 * 
-	 * @return Class adapter type.
-	 */
-	protected abstract Class getRequiredAdapterType();
-
-	/**
-	 * Add class adapter.
-	 * 
-	 * @param installStepClass
-	 *            step class
-	 * @param adapter
-	 *            adapter class
-	 */
-	public void addAdapter(Class installStepClass, Class adapter) {
-		adapters.put(installStepClass, adapter);
-	}
-
-	/**
-	 * Finds adapter for specified step.
-	 * 
-	 * @param adaptableClass
-	 *            step class.
-	 * @return adapter class or null if adapter aren't specified.
-	 */
-	private Class findAdapter(Class adaptableClass) {
-		while (!Object.class.equals(adaptableClass)) {
-			Class adapter = (Class) adapters.get(adaptableClass);
-			if (adapter != null) {
-				return adapter;
-			}
-			adaptableClass = adaptableClass.getSuperclass();
-		}
-		return null;
-	}
-
-	/**
-	 * Return new object using adapter constructor.
-	 * 
-	 * If no adapter are found, return null.
-	 * 
-	 * @param adaptableObject
-	 *            adaptable object.
-	 * @param adapterType
-	 *            adapter class.
-	 * @return new instanceof of adaptable object.
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(Object, Class)
-	 */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (adapterType != getRequiredAdapterType()) {
-			return null;
-		}
-		Class adapter = findAdapter(adaptableObject.getClass());
-		if (adapter == null) {
-			return null;
-		}
-		try {
-			Constructor ctor = adapter
-					.getConstructor(new Class[] { IInstallStep.class });
-			if (ctor == null) {
-				return null;
-			}
-			return ctor.newInstance(new Object[] { adaptableObject });
-		} catch (Exception e) {
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	/**
-	 * Return list of adapter classes.
-	 * 
-	 * @return Class[] list of adaptters.
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] { getRequiredAdapterType() };
-	}
-
-	/**
-	 * Add a installation prompt (typically corresponding to a wizard page) to
-	 * the receiver. All steps will be displayed to the user before installation
-	 * begins.
-	 * 
-	 * @param step
-	 *            the prompt to be added (not <code>null</code>)
-	 */
-	public void add(IInstallStep step) {
-		if (step == null) {
-			throw new IllegalArgumentException("step cannot be null");
-		}
-		if( !steps.contains(step) ) {
-			steps.add(step);
-		}
-		else {
-			System.err.println( "Duplicate step added.");
-		}
-	}
-
-	/**
-	 * Return next install step.
-	 * 
-	 * @param step
-	 *            IInstallStep to get next for.
-	 * @return Return next install step. return null if <code>step</code> are
-	 *         last step. Return null if step aren't pressent in list of steps.
-	 */
-	public final IInstallStep getNextStep(IInstallStep step) {
-		int i = steps.indexOf(step) + 1;
-		if (i == steps.size()) {
-			return null;
-		}
-		IInstallStep nextStep = (IInstallStep) steps.get(i);
-		
-		if( !nextStep.canExecute() ) { // we need skip this step. 
-			return this.getNextStep( nextStep );
-		}
-		return nextStep;
-	}
-
-	/**
-	 * Return previous step.
-	 * 
-	 * @param step
-	 *            IInstallStep to get previous for.
-	 * @return Return previous step. Return null if <core>step</code> is first.
-	 *         Return null if step aren't pressent in list of steps.
-	 */
-	public final IInstallStep getPrevStep(IInstallStep step) {
-		int i = steps.indexOf(step) - 1;
-		if (i < 0) {
-			return null;
-		}
-		IInstallStep prevStep = (IInstallStep) steps.get(i);
-		if( !prevStep.canExecute() ) {
-			return this.getPrevStep(prevStep);
-		}
-		
-		return prevStep;
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Installation
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Return step verify status. 
-	 * 
-	 * @param step IInstallStep step to verify.            
-	 * @return IStatus return verify status of step.
-	 */
-	protected IStatus performStep(IInstallStep step) {
-		return step.verifyStep();
-	}
-
-	/**
-	 * Called once all install steps have been performed.
-	 * 
-	 * @return IStatus
-	 * @see #add(IInstallStep)
-	 */
-	public IStatus run() {
-		IStatus result = Status.OK_STATUS;
-
-		for( int i = 0; i < this.steps.size(); ++i ) {
-			IInstallStep step = (IInstallStep)this.steps.get(i);
-			if( step != null ) {
-				result = performStep(step);
-				if (result.getSeverity() >= IStatus.ERROR) {
-					return result;
-				}
-			}
-		}
-		return result;
-	}
-
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		
-	}
-
-	public abstract String getEnvironmentId();
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SequentialOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SequentialOperation.java
deleted file mode 100644
index a716ec1..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SequentialOperation.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-/**
- * Base class for all Sequential operations. 
- * 
- * Interface marks sequential composite install operation: all prerequisites of
- * this operation must be executed in order like they added. Note: Installer do
- * not specify execution order for prerequisites in other case.
- */
-public class SequentialOperation extends InstallOperation implements ISequence {
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SingletonOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SingletonOperation.java
deleted file mode 100644
index 3a9506c..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/model/SingletonOperation.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.eclipse.epp.installer.core.model;
-
-/**
- * Singleton operation.
- */
-public abstract class SingletonOperation extends InstallOperation implements ISingleton {
-	
-	public boolean equals(Object obj) {
-		return getClass().isInstance(obj);
-	}
-
-	public int hashCode() {
-		return getClass().hashCode();
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.java
deleted file mode 100644
index ea838da..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.SingletonOperation;
-import org.eclipse.epp.installer.internal.core.operations.CleanEclipseConfigurationOperation;
-
-
-/**
- * Perform necessary cleanup to a previously installed Eclipse based application so that
- * the newly installed extension will be properly recognized.
- */
-public class CleanAllEclipseConfigurations extends SingletonOperation {
-	
-	private InstallOptions options;
-	private EclipseInstallation[] installations;
-	
-	public CleanAllEclipseConfigurations(InstallOptions options) {
-		if (options == null) 
-			throw new IllegalArgumentException();
-
-		this.options = options;
-		this.installations = null;
-	}
-
-	private void prepareInstallations() {
-		if (options != null) {
-			List installationsList = new ArrayList(); 
-			String[] eclipsePaths = options.getStrings(InstallOptions.OPTION_ECLIPSE_PATH_LIST);
-			for (int i = 0; i < eclipsePaths.length; i++) {
-				EclipseInstallation installation = createEclipseInstallation(new File(eclipsePaths[i]));
-				installationsList.add(installation);
-			}
-			installations = (EclipseInstallation[]) installationsList.toArray(new EclipseInstallation[installationsList.size()]);
-		}
-	}
-	
-	protected EclipseInstallation createEclipseInstallation(File productDir) {
-		return new EclipseInstallation(productDir);
-	}
-	
-	protected void prepare() throws Exception {
-		prepareInstallations();
-		for (int i = 0; i < installations.length; i++) {
-			add(new CleanEclipseConfigurationOperation(options, installations[i]));
-		}
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Cleaning Eclipse installation's configuration information...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.java
deleted file mode 100644
index f758aec..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-
-/**
- * An operation for removing all registry entries within a registry key entry hierarchy
- * that reference installations that have been removed.
- */
-public class CleanRegistryOperation extends ProxyOperation
-{
-	private final InstallOptions options;
-	private final String primaryDirPath;
-
-	public CleanRegistryOperation(InstallOptions options, String primaryDirPath) {
-		if (options == null)
-			throw new IllegalArgumentException();
-		this.options = options;
-		this.primaryDirPath = primaryDirPath;
-	}
-
-	public InstallOptions getOptions() {
-		return options;
-	}
-
-	public String getPrimaryDirPath() {
-		return primaryDirPath;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.java
deleted file mode 100644
index 698d873..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-
-
-public class CleanupRegisteredProductsOperation extends ProxyOperation {
-
-	/**
-	 * Uninstaller jar file name.
-	 */
-	private String uninstallJarName;
-
-	public CleanupRegisteredProductsOperation(String uninstallJarName) {
-
-		this.uninstallJarName = uninstallJarName;
-	}
-
-	public String getUninstallJarName() {
-		return this.uninstallJarName;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.java
deleted file mode 100644
index 9831bf4..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.SingletonOperation;
-import org.eclipse.epp.installer.internal.core.operations.FinaliseBackupOperation;
-import org.eclipse.epp.installer.internal.core.operations.SaveLogFileOperation;
-
-
-public class CreateEclipseUninstallerOperation extends SingletonOperation implements
-		ISequence {
-
-	private static final String INSTALLER_CONFIGURATION_DIR = "installer";
-
-	/**
-	 * Install log file name.
-	 */
-	public static final String INSTALL_LOG = "install.log";
-
-	/**
-	 * Install directory.
-	 */
-	private File installDirectory;
-	private InstallOptions installOptions;
-
-	public CreateEclipseUninstallerOperation(InstallOptions installOptions, File installDirectory) {
-		if (installDirectory == null || installOptions == null) {
-			throw new IllegalArgumentException();
-		}
-		this.installOptions = installOptions;
-		this.installDirectory = installDirectory;
-	}
-
-	/**
-	 * Prepare operation.
-	 * 
-	 * @throws IOException
-	 *             throws exception if file operations could not be complited.
-	 */
-	protected void prepare() throws IOException {
-		IPath eclipsePath = new Path(installDirectory.getAbsolutePath()).addTrailingSeparator();
-		String installerConfigurationPath = eclipsePath.append(INSTALLER_CONFIGURATION_DIR).toOSString();
-		String uninstallCmd = "\"" + eclipsePath.append("eclipse").toOSString() + "\"" +  
-			" -configuration " + "\"" + installerConfigurationPath + "\"" +  
-			" -nosplash" +
-			" -vmargs" +
-//				" -D" + Context.INSTALLER_JAR_PROPERTY + "=" + System.getProperty(Context.INSTALLER_JAR_PROPERTY) +
-				" -D" + Context.INSTALLER_CONFIGURATION_TYPE_PROPERTY + "=uninstall";
-		addPrerequisite(new RegisterProductOperation(installOptions, uninstallCmd));
-		addPrerequisite(new SaveLogFileOperation(new File(installDirectory, INSTALL_LOG)));
-		addPrerequisite(new FinaliseBackupOperation());
-	}
-
-	/**
-	 * Return string representation.
-	 * 
-	 * @return Return string representation.
-	 */
-	public String toString() {
-		return "Creating uninstaller...";
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.java
deleted file mode 100644
index dc9d1bb..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.zip.ZipFile;
-
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.SingletonOperation;
-import org.eclipse.epp.installer.internal.core.operations.CopyZipOperation;
-import org.eclipse.epp.installer.internal.core.operations.CreateDirectoryOperation;
-import org.eclipse.epp.installer.internal.core.operations.FinaliseBackupOperation;
-import org.eclipse.epp.installer.internal.core.operations.SaveLogFileOperation;
-
-
-/**
- * The <code>CreateUninstallerOperation</code> creates an uninstaller that, when executed at a later
- * time, reads the installation log generated by the {@link org.eclipse.epp.installer.core.steps.RunOperationsStep} and performs the
- * inverse operation resulting in the removal of the application from the target machine.
- * The uninstaller is created by copying the installer minus the data that was installed
- * resulting in a drastically reduced footprint as compared with the original installer.
- */
-public class CreateUninstallerOperation extends SingletonOperation implements
-		ISequence {
-
-	/**
-	 * Install log file name.
-	 */
-	public static final String INSTALL_LOG = "install.log";
-
-	/**
-	 * Install jar default file name.
-	 */
-	public static final String UNINSTALL_JAR = "uninstall.jar";
-
-	/**
-	 * Install directory.
-	 */
-	private File installDirectory;
-
-	/**
-	 * Exclusion pattern used to build jar.
-	 */
-	private String exclusionPattern;
-
-	/**
-	 * Name of uninstall.jar file.
-	 */
-	private String uninstallJar;
-
-	/**
-	 * Construct new instance of CreateUninstallerOperation.
-	 * 
-	 * @param installDirectory
-	 *            install directory.
-	 * @param uninstallJar
-	 *            is a uninstaller jar file name. If you use
-	 *            RegisterProductOperation you also should pass same value into
-	 *            it. By default you can use <code>UNINSTALL_JAR</code>
-	 *            constant.
-	 * @param exclusionPattern
-	 *            this is pattern used to not put selected files into uninstall
-	 *            jar.<br/> You can see
-	 *            {@link  org.eclipse.epp.installer.internal.core.operations.CopyZipOperation }
-	 *            for more details about exclusion pattern.<br/> For example
-	 *            you can pass here "install-image" to avoid putting installable
-	 *            files into uninstall.jar, if installable files are in
-	 *            "install-image" directory in install.jar.
-	 */
-	public CreateUninstallerOperation(File installDirectory,
-			String uninstallJar, String exclusionPattern) {
-		if (installDirectory == null || uninstallJar == null
-				|| exclusionPattern == null) {
-			throw new IllegalArgumentException();
-		}
-		this.installDirectory = installDirectory;
-		this.uninstallJar = uninstallJar;
-		this.exclusionPattern = exclusionPattern;
-	}
-
-	/**
-	 * Prepare operation.
-	 * 
-	 * @throws IOException
-	 *             throws exception if file operations could not be complited.
-	 */
-	protected void prepare() throws IOException {
-		String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);
-
-		addPrerequisite(new CreateDirectoryOperation(installDirectory));
-		addPrerequisite(new CopyZipOperation(new ZipFile(selfPath), new File(
-				installDirectory, uninstallJar), exclusionPattern));
-		addPrerequisite(new SaveLogFileOperation(new File(installDirectory,
-				INSTALL_LOG)));
-		addPrerequisite(new FinaliseBackupOperation());
-	}
-
-	/**
-	 * Return string representation.
-	 * 
-	 * @return Return string representation.
-	 */
-	public String toString() {
-		return "Creating uninstaller...";
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.java
deleted file mode 100644
index 22214d5..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.operations.CreateDirectoryOperation;
-
-
-/**
- * Extract directory operation.<br/> Used to extract directory from specified
- * zipFile.<br/> Support extracting all zipFile, and selected directory.
- */
-public class ExtractDirectoryOperation extends ExtractOperation implements
-		ISequence {
-	/**
-	 * Construct new instance of ExtractDirectoryOperation. If this constructor
-	 * are used, all archive contents will be extracted, then operation are
-	 * performed.
-	 * 
-	 * @param archive
-	 *            ZipFile to extract.
-	 * @param dest
-	 *            File directory to extract into.
-	 */
-	public ExtractDirectoryOperation(IArchive archive, File dest) {
-		super(archive, null, dest);
-	}
-
-	/**
-	 * Construct new instance of ExtractDirectoryOperation. If this constructor
-	 * are used, specified directory from an archive file will be extracted,
-	 * then operation are performed.
-	 * 
-	 * @param archive
-	 *            ZipFile to extract directory from/
-	 * @param zipEntry
-	 *            ZipEntry directory to extract.
-	 * @param dest
-	 *            File directory to extract into.
-	 */
-	public ExtractDirectoryOperation(IArchive archive, IArchiveEntry zipEntry,
-			File dest) {
-		super(archive, zipEntry, dest);
-	}
-
-	/**
-	 * Prepare operation.
-	 * 
-	 * If specified zipEntry has elements they'l be added to list of
-	 * prerequisites.
-	 */
-	protected void prepare() {
-		addPrerequisite(new CreateDirectoryOperation(dest));
-
-		// add extract file/directory operations for root content
-		String root = (zipEntry == null) ? "" : zipEntry.getName();
-		int len = root.length();
-		Iterator en = archive.entries();
-
-		while (en.hasNext()) {
-			IArchiveEntry entry = (IArchiveEntry) en.next();
-			String entryName = entry.getName();
-			if (entryName.length() > len && entryName.startsWith(root)) {
-				if (entry.isDirectory()) {
-					/*
-					 * skip last slash
-					 */
-					entryName = entryName
-							.substring(len, entryName.length() - 1);
-				} else {
-					entryName = entryName.substring(len);
-				}
-				File childDest = new File(dest, entryName);
-
-				InstallOperation childOperation = getInstallOperationFor(entry, childDest);
-				addPrerequisite(childOperation);
-			}
-		}
-	}
-
-	protected InstallOperation getInstallOperationFor(IArchiveEntry entry, File childDest) {
-		if (entry.isDirectory()) {
-			return new CreateDirectoryOperation(childDest);
-		} else {
-			return new ExtractFileOperation(archive, entry, childDest);
-		}
-	}
-	
-	protected IStatus run(Context installer) {
-		String root = (zipEntry == null) ? "" : zipEntry.getName();
-		int len = root.length();
-		Iterator en = archive.entries();
-
-		while (en.hasNext()) {
-			IArchiveEntry entry = (IArchiveEntry) en.next();
-			String entryName = entry.getName();
-			if (entryName.length() > len && entryName.startsWith(root)) {
-				if (entry.isDirectory()) {
-					/*
-					 * skip last slash
-					 */
-					entryName = entryName
-							.substring(len, entryName.length() - 1);
-				} else {
-					entryName = entryName.substring(len);
-				}
-				if (entry.isDirectory()) {
-//					File childDest = new File(dest, entryName);
-//					long lm = entry.getTime();
-//					childDest.setLastModified(lm);
-//					Platform.getPlatform().setFileCreationTime(
-//							childDest.getAbsolutePath(), lm);
-				}
-			}
-		}
-		return super.run(installer);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractFileOperation.java
deleted file mode 100644
index 369d30a..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractFileOperation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.internal.core.Util;
-
-
-/**
- * Extract file operation.<br/> Used to extract file from specified zipFile.<br/>
- */
-public class ExtractFileOperation extends ExtractOperation {
-
-	/**
-	 * Construct new instanceof ExtractFileOperation with specified zipFile, and
-	 * entry to extrect into dest directory.
-	 * 
-	 * @param archive
-	 *            ZipFile to exract from
-	 * @param entry
-	 *            ZipEntry to extract. if entry are <code>null</code> then
-	 *            NullPointerException will thrown.
-	 * @param dest
-	 *            File directory to extract into
-	 */
-	ExtractFileOperation(IArchive archive, IArchiveEntry entry, File dest) {
-		super(archive, entry, dest);
-		if (entry == null) {
-			throw new IllegalArgumentException();
-		}
-	}
-
-	/**
-	 * Extract specified entry from zipFile.
-	 * 
-	 * @param ctx
-	 *            Context installation context.
-	 * @return IStatus execution status.
-	 */
-	protected IStatus run(Context ctx) {
-		InputStream is = null;
-		try {
-			is = archive.getInputStream(zipEntry);
-			long lm = zipEntry.getTime();
-			
-			if (Platform.OS_WIN32.equals(Platform.getOS()))
-				if (dest.getAbsolutePath().length()>260)
-				{
-					if(ctx.confirm(IActionConstants.CREATE_FILE,"The absolute path of file\n"+"{0}\nis more than 260 characters.\nDo you want to skip it?",new Object[]{dest}))
-						return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-								IErrorConstants.ERROR_USER_SKIPPED,MessageFormat.format("Skipped file {0}.",
-										new Object[] { dest }) , null);
-					
-				}
-			
-			
-			
-			
-			return Util.createFileFromStream(ctx, dest, is, lm);
-		} catch (IOException e) {
-			
-			return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-					IErrorConstants.ERROR_CANNOT_CREATE_FILE,MessageFormat.format("Cannot create or extract file {0}.",
-							new Object[] { dest }) , null);
-			
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractOperation.java
deleted file mode 100644
index 57d50a5..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/ExtractOperation.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/ 
-
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-
-/**
- * Base class for extract operations.
- * 
- * Holds information about archive.
- * 
- * @see org.eclipse.epp.installer.core.operations.ExtractFileOperation,
- *      org.eclipse.epp.installer.core.operations.ExtractDirectoryOperation
- */
-public abstract class ExtractOperation extends InstallOperation {
-	/**
-	 * Archive to extract from.
-	 */
-	protected final IArchive archive;
-
-	/**
-	 * Archive entry to extract.
-	 */
-	protected final IArchiveEntry zipEntry;
-
-	/**
-	 * Directory to extract into.
-	 */
-	protected final File dest;
-
-	/**
-	 * Construct ExtractOperation with archive, entry and dest directory.
-	 * 
-	 * @param archive
-	 *            ZipFile archive to extract from.
-	 * @param entry
-	 *            ZipEntry entry to extract.
-	 * @param dest
-	 *            File dest directory to extract.
-	 */
-	ExtractOperation(IArchive archive, IArchiveEntry entry, File dest) {
-		if (archive == null || dest == null) {
-			throw new IllegalArgumentException();
-		}
-		this.archive = archive;
-		this.zipEntry = entry;
-		this.dest = dest;
-	}
-	
-	public int hashCode() {
-		int hash = archive.hashCode() ^ dest.hashCode();
-		if (zipEntry != null)
-			hash ^= zipEntry.hashCode();
-		return hash;
-	}
-
-	public boolean equals(Object o) {
-		if (o instanceof ExtractOperation) {
-			ExtractOperation edo = (ExtractOperation) o;
-			return archive.equals(edo.archive) && dest.equals(edo.dest)
-					&& zipEntry.equals(edo.zipEntry);
-		}
-		return false;
-	}
-
-	/**
-	 * Return string presentation.
-	 * 
-	 * @return string presentation.
-	 */
-	public String toString() {
-		return "Extracting '"
-				+ ((zipEntry == null) ? "(root)" : zipEntry.getName());
-				//+ "' to '" + dest + "' from '" + archive.getName() + '\'';
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.java
deleted file mode 100644
index 25a5edd..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-public interface IWarningComparableStatus {
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/LinkProductOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/LinkProductOperation.java
deleted file mode 100644
index cbb47fa..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/LinkProductOperation.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.operations.CreateLinkOperation;
-import org.eclipse.epp.installer.internal.core.operations.ModifyPlatformXMLOperation;
-
-
-/**
- * Create link files from each previously installed Eclipse based application selected by
- * the user in {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} to the
- * newly installed extension/enhancement.
- */
-public class LinkProductOperation extends InstallOperation {
-
-	String[] eclipsePathList;
-	private String extensionFeature;
-	private File pathToExtension;
-	private InstallOptions options;
-	
-	/**
-	 * Constructor for LinkProductOperation.
-	 * @param options InstallOptions
-	 * @param extensionFeature String name of installing extension feature
-	 * @param pathToExtension String absolute path to extension
-	 */
-	public LinkProductOperation(InstallOptions options, String extensionFeature, File pathToExtension) {
-		this(options, InstallOptions.pathListToArray(options.getString(InstallOptions.OPTION_ECLIPSE_PATH_LIST)), extensionFeature, pathToExtension);
-	}
-
-	/**
-	 * Constructor for LinkProductOperation.
-	 * @param eclipsePathList String[] list of paths to Eclipse based products
-	 * @param extensionFeature String name of installing extension feature
-	 * @param pathToExtension String absolute path to extension
-	 */
-	public LinkProductOperation(InstallOptions options, String[] eclipsePathList, String extensionFeature, File pathToExtension) {
-		if (options == null || eclipsePathList == null || extensionFeature == null || pathToExtension == null) {
-			throw new IllegalArgumentException();
-		}
-		this.options = options;
-		this.eclipsePathList = eclipsePathList;
-		this.extensionFeature = extensionFeature;
-		this.pathToExtension = pathToExtension;
-	}
-	
-	protected void prepare() {
-		for (int i = 0; i < eclipsePathList.length; i++) {
-			File eclipseDir = new File(eclipsePathList[i]);
-			add(new CreateLinkOperation(options, eclipseDir, pathToExtension, extensionFeature));
-			add(new ModifyPlatformXMLOperation(options, new EclipseInstallation(eclipseDir), pathToExtension, extensionFeature));
-		}
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return "Registering extension with Eclipse installations...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RegisterProductOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RegisterProductOperation.java
deleted file mode 100644
index 7d3f5f0..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RegisterProductOperation.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-
-
-/**
- * RegisterProductOperation used to create correct OS specific uninstall product
- * entry.
- * <p>
- * On Windows, this classes is overridden to write to the Windows registry, so
- * user will be able to uninstall application from Windows Add/Remove proggrams
- * dialog.
- * <p>
- * On Linux, this classes is overridden to write to the Markers IBM registry.
- * <p>
- * On Mac ??
- *
- */
-public class RegisterProductOperation extends ProxyOperation {
-	/**
-	 * Install options used in this operation to get values of Product Name and
-	 * Install directory.
-	 */
-	private InstallOptions options;
-
-	/**
-	 * Uninstaller jar file name.
-	 */
-	private String uninstallJar;
-	
-	
-	public RegisterProductOperation(InstallOptions options, String uninstallJar) {
-		this.options = options;
-		this.uninstallJar = uninstallJar;	
-	}
-	
-	public InstallOptions getInstallOptions() {
-		return this.options;
-	}
-	public String getUninstallJarName()  {
-		return this.uninstallJar;
-	}	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.java
deleted file mode 100644
index 3bf7db8..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.SingletonOperation;
-import org.eclipse.epp.installer.internal.core.EmbeddedInstallStorager;
-import org.eclipse.epp.installer.internal.core.operations.RemoveEmbeddedInstallOperation;
-
-
-/**
- * Remove all plugins and features that were installed directly into a previously
- * installed Eclipse based application selected by the user in
- * {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} and confirmed in the
- * {@link org.eclipse.epp.installer.core.steps.RemoveAllEmbeddedInstallsStep}.
- * Directly installed plugins and features are those that are unzipped into the Eclipse
- * based application's plugins and features directories rather than linked using
- * {@link org.eclipse.epp.installer.internal.core.operations.CreateLinkOperation}.
- */
-public class RemoveAllEmbeddedInstallsOperation extends SingletonOperation {
-	
-	private InstallOptions options;
-	private EclipseInstallation[] installations = null;
-	
-	public RemoveAllEmbeddedInstallsOperation(InstallOptions options) {
-		if (options == null) 
-			throw new IllegalArgumentException();
-
-		this.options = options;
-	}
-	
-	private void prepareInstallations() {
-		if (options != null) {
-			List installationsList = new ArrayList(); 
-			
-			EmbeddedInstallStorager storager = EmbeddedInstallStorager.fromOptions(options);
-			String[] eclipsePaths = storager.getInstallations();
-			
-			for (int i = 0; i < eclipsePaths.length; i++) {
-				EclipseInstallation installation = new EclipseInstallation(new File(eclipsePaths[i]));
-				installationsList.add(installation);
-			}
-			installations = (EclipseInstallation[]) installationsList.toArray(new EclipseInstallation[installationsList.size()]);
-		}
-	}
-	
-	protected void prepare() throws Exception {
-		prepareInstallations();
-		for (int i = 0; i < installations.length; i++) {
-			add(new RemoveEmbeddedInstallOperation(options, installations[i]));
-		}
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Removing embedded installations...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UndoInstallOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UndoInstallOperation.java
deleted file mode 100644
index 52da9c7..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UndoInstallOperation.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.util.List;
-
-import org.eclipse.epp.installer.core.model.SequentialOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.core.operations.RollbackOperation;
-
-
-/**
- * UndoInstallOperation used then you need to undo partly complited
- * installation.
- * 
- * Used from
- * {@link com.instantiations.installer.internal.ui.steps.RunOperationsStepWizard }
- * to undo installation then error are happend.
- */
-public class UndoInstallOperation extends SequentialOperation {
-
-	/**
-	 * Installation log.
-	 */
-	private InstallLog log;
-
-	/**
-	 * Construct new instanceof UndoInstallOperation with current install log.
-	 * 
-	 * @param log
-	 *            InstallLog to undo form.
-	 */
-	public UndoInstallOperation(InstallLog log) {
-		if (log == null) {
-			throw new IllegalArgumentException();
-		}
-		this.log = log;
-	}
-
-	/**
-	 * Prepare undo.  
-	 */
-	protected void prepare() {
-		List entries = log.getEntries();
-		int i = entries.size();
-		while (--i >= 0) {
-			add(new RollbackOperation((InstallLogEntry) entries.get(i)));
-		}
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Undoing installation...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.java
deleted file mode 100644
index aa41fdf..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.core.operations.RollbackOperation;
-
-public class UninstallEclipseOperation extends UninstallOperation {
-
-	private EclipseInstallation eclipseInstallation;
-	
-	public UninstallEclipseOperation(EclipseInstallation eclipseInstallation, File logFile) {
-		super(logFile);
-		
-		this.eclipseInstallation = eclipseInstallation;
-	}
-
-	protected void prepare() throws IOException {
-		super.prepare();
-		
-		prepareEclipseConfiguration(eclipseInstallation.getConfigurationDir());
-	}
-
-	private static final String[] DIRS_TO_REMOVE = {
-		".settings",
-		"org.eclipse.core.runtime",
-		"org.eclipse.equinox.app",
-		"org.eclipse.osgi",
-		"org.eclipse.ui.intro.universal",
-		"org.eclipse.update"
-	};
-	
-	protected void prepareEclipseConfiguration(File dir) {
-		for (int i=0; i<DIRS_TO_REMOVE.length; i++) {
-			File subDir = new File(dir, DIRS_TO_REMOVE[i]);
-			if (subDir.exists() && subDir.isDirectory())
-				addAllToRemove(subDir);
-		}
-		
-		//Remove eclipse log files
-		String[] logEntries = dir.list(new FilenameFilter() {
-
-			public boolean accept(File file, String name) {
-				return name.endsWith(".log");
-			}
-			
-		});
-		for (int i=0; i<logEntries.length; i++) {
-			addToRemove(new File(dir, logEntries[i]));
-		}
-	}
-	
-	protected void addAllToRemove(File dir) {
-		String[] entries = dir.list();
-		for (int i=0; i<entries.length; i++) {
-			if (".".equals(entries[i]) || "..".equals(entries[i]))
-				continue;
-			File entry = new File(dir, entries[i]);
-			addToRemove(entry);
-			if (entry.isDirectory()) {
-				addAllToRemove(entry);
-			}
-		}
-	}
-
-	protected void addToRemove(File file) {
-		InstallLogEntry entry = new InstallLogEntry(
-				file.isDirectory() ? InstallLog.DIRECTORY_CREATED_ENTRY
-						: InstallLog.FILE_CREATED_ENTRY, 
-				file.getAbsolutePath());
-		add(new RollbackOperation(entry));
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallOperation.java
deleted file mode 100644
index 451736d..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/UninstallOperation.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.SequentialOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.core.OS;
-import org.eclipse.epp.installer.internal.core.RemoveFileAction;
-import org.eclipse.epp.installer.internal.core.operations.RollbackOperation;
-
-
-/**
- * UninstallOperation used to perform full uninstallation process.
- * 
- * Support rebooting of then system, then some errors are happend, in execution.
- */
-public class UninstallOperation extends SequentialOperation {
-
-	public static final String OPTION_FILES_REMOVED_ON_REBOOT = "filesRemovedOnReboot";
-
-	/**
-	 * Log file to load log from.
-	 */
-	private File logFile;
-
-	/**
-	 * Installation log.
-	 */
-	private InstallLog log;
-
-	/**
-	 * Construct new instanceof UninstallOperation from log file.
-	 * 
-	 * @param logFile
-	 *            File log file to uninstall from.
-	 */
-	public UninstallOperation(File logFile) {
-		if (logFile == null) {
-			throw new IllegalArgumentException();
-		}
-		this.logFile = logFile;
-	}
-
-	/**
-	 * Prepare all set of prerequisites
-	 * 
-	 * @throws IOException if file operation aren't complited sucessfully.
-	 */
-	protected void prepare() throws IOException {
-		log = new InstallLog();
-		BufferedReader reader = new BufferedReader(new FileReader(logFile));
-		try {
-			log.read(reader);
-
-			List entries = log.getEntries();
-			int i = entries.size();
-			while (--i >= 0) {
-				add(new RollbackOperation((InstallLogEntry) entries.get(i)));
-			}
-
-		} finally {
-			reader.close();
-		}
-	}
-
-	/**
-	 * Method run.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		RemoveFileAction removeAction = (RemoveFileAction) InstallLog
-				.getRollbackAction(InstallLog.FILE_CREATED_ENTRY);
-		List failures = removeAction.getFailures();
-		String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);
-		File self = selfPath != null ? new File(selfPath) : null;
-		InstallOptions options = installer.getOptions();
-		for (int i = 0; i < failures.size(); i++) {
-			File file = (File) failures.get(i);
-			boolean isUninstallJar = self != null && file.getAbsolutePath().equals(self.getAbsolutePath());
-			if (isUninstallJar && options.isNoremoveUninstall()) {
-				failures.remove(file);
-				continue;
-			}
-			deleteFileOnReboot(file);
-			if (isUninstallJar) {
-				File dir = file.getParentFile();
-				if (dir.list().length == 1) {
-					deleteFileOnReboot(dir);
-					failures.add(dir);
-				}
-			}
-		}
-		if (failures.size() > 0) {
-			if(options.isRebootAfterUninstall())
-				if (installer
-					.confirm(
-							IActionConstants.REBOOT_SYSTEM,
-							"System needs to be restarted to complete uninstallation. Restart system now?",
-							new Object[0])) {
-				OS.SystemReboot();
-			}
-			StringBuffer buf = new StringBuffer(failures.size() * 40);
-			for (int i = 0; i < failures.size(); i++) {
-				if (i > 0)
-					buf.append(",");
-				buf.append(((File) failures.get(i)).getPath());
-			}
-			options.set(OPTION_FILES_REMOVED_ON_REBOOT, buf.toString());
-		}
-		return Status.OK_STATUS;
-	}
-
-	private void deleteFileOnReboot(File file) {
-		if (Context.VERBOSE)
-			System.out.println("Scheduled to remove after reboot: " + file);
-		OS.DeleteFileOnReboot(file.getAbsolutePath());
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Uninstalling...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.java
deleted file mode 100644
index 0891981..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.File;
-
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-public class Unpack200ExtractDirectoryOperation extends ExtractDirectoryOperation {
-
-	public Unpack200ExtractDirectoryOperation(IArchive archive, File dest) {
-		super(archive, dest);
-	}
-
-	public Unpack200ExtractDirectoryOperation(IArchive archive, IArchiveEntry zipEntry, File dest) {
-		super(archive, zipEntry, dest);
-	}
-	
-	protected InstallOperation getInstallOperationFor(IArchiveEntry entry, File childDest) {
-		
-		if (!entry.isDirectory() && entry.getName().endsWith(
-				Unpack200ExtractFileOperation.PACK_200_FILE_EXTENSION))
-			return new Unpack200ExtractFileOperation(archive, entry, childDest);
-		else
-			return super.getInstallOperationFor(entry, childDest);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.java
deleted file mode 100644
index 8ae1ca9..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.eclipse.epp.installer.core.operations;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-public class Unpack200ExtractFileOperation extends ExtractFileOperation {
-
-	public static final String PACK_200_FILE_EXTENSION = ".pack.gz";
-
-	Unpack200ExtractFileOperation(IArchive archive, IArchiveEntry entry, File dest) {
-		super(archive, entry, dest);
-	}
-
-	protected IStatus run(Context ctx) {
-		IStatus status = super.run(ctx);
-
-		String pack200path = dest.getAbsolutePath();
-		String jarpath = pack200path.substring(0, pack200path.length() - PACK_200_FILE_EXTENSION.length());
-		
-	    IPath unpack200bin = new Path(System.getProperty("java.home")).append("bin/unpack200");
-        String[] commandLine = new String[] {
-        		unpack200bin.toOSString(), pack200path, jarpath 
-			};
-		try {
-			Process process = Runtime.getRuntime().exec(commandLine);
-			InputStream es = process.getErrorStream();
-			try {
-				process.waitFor();
-			} catch (InterruptedException e) {
-				//Ignore
-			}
-			StringBuffer errorBuffer = new StringBuffer();
-			String line;
-			BufferedReader reader = new BufferedReader(new InputStreamReader(es));
-			while ((line = reader.readLine()) != null) {
-				errorBuffer.append(line);
-				errorBuffer.append('\n');
-			}
-			String error = errorBuffer.toString().trim();
-			if (!"".equals(error))
-				status = new Status(IStatus.ERROR, Context.PLUGIN_ID, error);
-			
-			//Fix install log entry
-			InstallLog lnstallLog = ctx.getInstallLog();
-			List lnstallLogEntries = lnstallLog.getEntries();
-			lnstallLogEntries.remove(lnstallLogEntries.size() - 1); //remove last
-			lnstallLog.addEntry(
-					new InstallLogEntry(InstallLog.FILE_CREATED_ENTRY, jarpath));
-		} catch (IOException e) {
-			status = new Status(IStatus.ERROR, Context.PLUGIN_ID, e.getMessage(), e);
-		}
-		finally {
-			dest.delete();
-		}
-		
-		return status;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductInstallation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductInstallation.java
deleted file mode 100644
index 242e60b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductInstallation.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.epp.installer.core.product;
-
-import java.io.File;
-
-public interface IProductInstallation {
-
-	/**
-	 * The location of IProductInstallation
-	 * @return
-	 */
-	public File getProductDir();
-	
-	/**
-	 * The version of IProductInstallation
-	 * @return
-	 */
-	public IProductVersion getProductVersion();
-	
-	/**
-	 * Check if IProductInstallation is running
-	 * 
-	 * @return
-	 */
-	public boolean isRunning();
-
-	/**
-	 * Answers if IProductInstallation should be selected as default. Used by ChooseProductStep.
-	 * 
-	 * @return
-	 */
-	public boolean getChecked();
-	
-	/**
-	 * Set checked parameter. Used by ChooseProductStep.
-	 * 
-	 * @param flag
-	 */
-	public void setChecked(boolean flag);
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductLocator.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductLocator.java
deleted file mode 100644
index 43488b0..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductLocator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.epp.installer.core.product;
-
-import java.io.File;
-
-/**
- * Responsible for locating IProductInstallations on computer. Currently, the only
- * subclass is {@link org.eclipse.epp.installer.core.eclipse.EclipseLocator} used by
- * {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} to locate previously
- * installed Eclipse based applications.
- */
-public interface IProductLocator {
-	
-	/**
-	 * Check if productDir contains valid IProductInstallation
-	 * @param productDir
-	 * @return boolean
-	 */
-	public boolean isProductInstallation(File productDir);
-	
-	/**
-	 * Check if IProductInstallation could be modified
-	 * @param product
-	 * @return boolean
-	 */
-	public boolean hasModificationPermissions(IProductInstallation product);
-	
-	/**
-	 * Construct an instance of IProductInstallation
-	 * @param productDir
-	 * @return new instance of IProductInstallation
-	 */
-	public IProductInstallation createProductInstallation(File productDir);
-	
-	/**
-	 * Find all IProductInstallations
-	 * @return sorted array of IProductInstallations
-	 */
-	public IProductInstallation[] findAll();
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductVersion.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductVersion.java
deleted file mode 100644
index 76c3d44..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/product/IProductVersion.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.epp.installer.core.product;
-
-
-/**
- * An object that identifies the version of a particular product installation.
- */
-public interface IProductVersion {
-
-	public int getMajor();
-	
-	public int getMinor();
-	
-	public int getService();
-	
-	public String getBuild();
-	
-	/**
-     * Returns a string representation of the object.
-	 */
-	public String toString();
-
-	/**
-	 * Checks if IProductVersion is in specified version range
-	 * @param rangeString
-	 * 		string Range representation
-	 * @return boolean
-	 * 		<code>true</code> if is in range, else <code>false</code>
-	 */
-	public boolean isInRange(String rangeString);
-
-	/**
-	 * Compare with given IProductVersion object
-	 * @param version
-	 * @return int
-	 * 		0 if versions are equal, -1 if given version is greater and 1 else
-	 */
-	public int compareTo(IProductVersion version);
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChoiceStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChoiceStep.java
deleted file mode 100644
index 41f8920..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChoiceStep.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- * Prompt the user to accept or decline an option.<br>
- * First set the text that appears to the user:
- * 
- * <pre>
- * step.setTitle(&quot;Delete embedded installations&quot;);
- * step.setDescription(&quot;Do you want to delete the embedded installations?&quot;);
- * step.setChoiceText(&quot;&quot;);
- * step.setAcceptText(&quot;Yes, delete embedded installations&quot;);
- * step.setDeclineText(&quot;No, do not delete embedded installations&quot;);
- * </pre>
- * 
- * Next set the option that is updated when the user makes a choice:
- * 
- * <pre>
- * step.setOptionName(OPTION_DELETE_EMBEDDED);
- * </pre>
- * 
- * By default, the option is set to "true" or "false" based upon the user's selection, but
- * this can be overridden:
- * 
- * <pre>
- * step.setAcceptString(&quot;accepted&quot;);
- * step.setDeclineString(&quot;declined&quot;);
- * </pre>
- * 
- * By default, the installation process continues regardless of which choice the user
- * makes, but you can prevent the installation from continuing if the user does not select
- * "accept":
- * 
- * <pre>
- * step.setContinueOnDecline(false);
- * </pre>
- * 
- * <p>
- * Copyright (c) 2003, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ChoiceStep extends InstallStep
-{
-	public static final String VAR_CHOICE_TEXT = "choiceText";
-	public static final String VAR_ACCEPT_TEXT = "acceptText";
-	public static final String VAR_DECLINE_TEXT = "declineText";
-	public static final String VAR_CONTINUE_ON_DECLINE = "continueOnDecline";
-	public static final String VAR_DEFAULT_CHOICE = "defaultChoice";
-	
-	/**
-	 * These parameters must be set before running the step
-	 */
-
-//	private String choiceText;
-//	private String acceptText;
-//	private String declineText;
-
-//	private boolean continueOnDecline = true;
-//	private boolean defaultChoice = true;
-
-	/**
-	 * Setting these options is not necessary
-	 */
-
-	private String acceptString = InstallOptions.TRUE_VALUE;
-	private String declineString = InstallOptions.FALSE_VALUE;
-	private String optionName;
-
-	public ChoiceStep(Installer installer) {
-		super(installer);
-	}
-
-	// getters and setters
-
-	public String getChoiceText() {
-//		return Variables.resolve(choiceText, getOptions());
-		return Variables.resolve(getProperty(VAR_CHOICE_TEXT), getOptions());
-	}
-
-	public void setChoiceText(String choiceText) {
-//		this.choiceText = choiceText;
-		setProperty(VAR_CHOICE_TEXT, choiceText);
-	}
-
-	public String getAcceptText() {
-//		return Variables.resolve(acceptText, getOptions());
-		return Variables.resolve(getProperty(VAR_ACCEPT_TEXT), getOptions());
-	}
-
-	public void setAcceptText(String acceptText) {
-//		this.acceptText = acceptText;
-		setProperty(VAR_ACCEPT_TEXT, acceptText);
-	}
-
-	public String getDeclineText() {
-//		return Variables.resolve(declineText, getOptions());
-		return Variables.resolve(getProperty(VAR_DECLINE_TEXT), getOptions());
-	}
-
-	public void setDeclineText(String declineText) {
-//		this.declineText = declineText;
-		setProperty(VAR_DECLINE_TEXT, declineText);
-	}
-
-	public boolean getContinueOnDecline() {
-//		return continueOnDecline;
-		String value = Variables.resolve(getProperty(VAR_CONTINUE_ON_DECLINE), getOptions());
-		return InstallOptions.TRUE_VALUE.equals(value);
-	}
-
-	public void setContinueOnDecline(boolean flag) {
-//		this.continueOnDecline = flag;
-		setProperty(VAR_CONTINUE_ON_DECLINE, flag ? InstallOptions.TRUE_VALUE : InstallOptions.FALSE_VALUE);
-	}
-
-	public String getAcceptString() {
-		return Variables.resolve(acceptString, getOptions());
-	}
-
-	public void setAcceptString(String acceptString) {
-		this.acceptString = acceptString;
-	}
-
-	public String getDeclineString() {
-		return Variables.resolve(declineString, getOptions());
-	}
-
-	public void setDeclineString(String declineString) {
-		this.declineString = declineString;
-	}
-
-	public String getOptionName() {
-		return Variables.resolve(optionName, getOptions());
-	}
-
-	public void setOptionName(String optionName) {
-		this.optionName = optionName;
-	}
-
-	public boolean getDefaultChoice() {
-//		return defaultChoice;
-		String value = Variables.resolve(getProperty(VAR_DEFAULT_CHOICE), getOptions());
-		return InstallOptions.TRUE_VALUE.equals(value);
-	}
-
-	public void setDefaultChoice(boolean defaultChoice) {
-//		this.defaultChoice = defaultChoice;
-		setProperty(VAR_DEFAULT_CHOICE, defaultChoice ? InstallOptions.TRUE_VALUE : InstallOptions.FALSE_VALUE);
-	}
-
-	public void aboutToStep() {
-		super.aboutToStep();
-		
-		if (getOptionName() != null) {
-			getOptions().set(getOptionName(), /*defaultChoice*/getDefaultChoice() ? getAcceptString() : getDeclineString());
-		}
-	}
-
-	/**
-	 * Method verifyStep.
-	 * 
-	 * @return IStatus
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#verifyStep()
-	 */
-	public IStatus verifyStep() {
-		if (getOptionName() != null) {
-			return validateOption(getOptions().getString(getOptionName()), getAcceptString(), getDeclineString());
-		}
-		return Status.OK_STATUS;
-	}
-
-	public static IStatus validateOption(String option, String acceptString, String declineString) {
-		if (option == null || option.length() == 0) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0, "Option does not exist", null);
-		}
-		if (!option.equals(acceptString) && !option.equals(declineString)) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0, "Option has wrong value", null);
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.java
deleted file mode 100644
index 628c398..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseLocator;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.product.IProductLocator;
-
-/**
- * When installing an enhancement or extension to a previously installed Eclipse based
- * product, use this class to prompt the user to select one or more previously installed
- * products to be enhanced/extended. When instantiated, an
- * {@link org.eclipse.epp.installer.core.eclipse.EclipseLocator} is used to locate
- * previously installed Eclipse based applications.
- */
-public class ChooseEclipseStep extends ChooseProductStep {
-	public ChooseEclipseStep(Installer installer) {
-		this(installer, new EclipseLocator(installer.getOptions()));
-	}
-	
-	public ChooseEclipseStep(Installer installer, IProductLocator locator) {
-		super(installer, locator);
- 		
-		setOptionName(InstallOptions.OPTION_ECLIPSE_PATH_LIST);
-		setDescription("Select Eclipse based products:");
-		
-		setBrowseDialogText("Select an Eclipse product.");
-		setBrowseDialogMessage("Select an Eclipse product.");
-		setChooseLabelText("To add another Eclipse based product to the list, press");
-		setChooseButtonText("Choose Eclipse");
-		setShowAllButtonText("Show &all Eclipse products");
-
-	}
-}
-
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseLocationStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseLocationStep.java
deleted file mode 100644
index 2bfb57b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseLocationStep.java
+++ /dev/null
@@ -1,240 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IPlatform;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Platform;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- */
-public class ChooseLocationStep extends InstallStep {
-
-	public static final String VAR_DETAILS = "details";
-
-	/**
-	 * InstallOptions constant indicating that the user should NOT be warned when
-	 * installing overtop an previous installation and NOT be offered the option to
-	 * uninstall that previously installed version
-	 */
-	public static final String OPTION_SUPPRESS_ALREADY_INSTALLED_WARNING = "SuppressAlreadyInstalledWarning";
-	
-//	private String details;
-	private static int maxZipPathLength;
-
-	/**
-	 * Constructor for ChooseLocationStep.
-	 *
-	 * @param installer
-	 *            Installer
-	 */
-	public ChooseLocationStep(Installer installer) {
-		super(installer);
-		calcMaxZipPathLength();
-	}
-
-	/**
-	 * Method verifyStep.
-	 *
-	 * @return IStatus
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#verifyStep()
-	 */
-	public IStatus verifyStep() {
-		return validatePath(getOptions().getString(
-				InstallOptions.OPTION_INSTALL_DIR));
-	}
-
-	public String getDetails() {
-//		return details;
-		return Variables.resolve(getProperty(VAR_DETAILS), getOptions());
-	}
-
-	public void setDetails(String text) {
-//		details = text;
-		setProperty(VAR_DETAILS, text);
-	}
-
-	private static boolean canRead(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canRead(file);
-		}
-		// in case there is no platform implementation
-		return file.canRead();
-	}
-	
-	private static boolean canWrite(File file) {
-		IPlatform platform = Platform.getPlatform();
-		if (platform != null) {
-			return platform.canWrite(file);
-		}
-		// in case there is no platform implementation
-		return file.canWrite();
-	}
-	
-	/**
-	 *  This function is a hack that gets installer.jar
-	 *  and tries to calculate maximal file length there
-	 */
-	private static void calcMaxZipPathLength()
-	{
-		//FIXME: remove this hack
-		
-		maxZipPathLength=256;
-		//int maxPathLength=0;
-/*		String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);
-		if (selfPath == null) {
-			selfPath="";
-		}
-
-		try {
-			ZipFile image = new ZipFile(selfPath);
-			Enumeration iter=image.entries();
-			while(iter.hasMoreElements())
-			{
-				ZipEntry entry =((ZipEntry)iter.nextElement());
-				maxZipPathLength = Math.max(maxZipPathLength,entry.getName().length());
-				
-			}
-		} catch (IOException e) {
-			
-			e.printStackTrace();
-		}
-*/	}
-	
-	public static int getMaxZipPathLength()
-	{
-		return maxZipPathLength;
-	}
-	
-	/**
-	 * Validate the specified installation path.
-	 *
-	 * @param pathString
-	 *            the path to be validated
-	 * @return <code>OK_STATUS</code> if the path is valid,
-	 *         <code>OK_ERROR</code> if the path is empty or not absolute
-	 */
-	public static IStatus validatePath(String pathString) {
-		if (pathString == null || pathString.length() == 0) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Enter install location", null);
-		}
-		
-		IPath path = new Path(pathString);
-				
-		if (!path.isAbsolute()) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Path must be absolute", null);
-		}
-		
-		
-	
-	
-		for (int i = 0; i <= path.segmentCount(); ++i) {
-			IPath segment = path.removeLastSegments(i);
-			//System.out.println("Checking:" + segment);
-			File pathFile = segment.toFile();
-			if (pathFile.exists()) {
-				if (!pathFile.isDirectory()) {
-					return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-							"The " + pathFile.getAbsolutePath()  + " is not a directory.", null);
-				}
-				if (!canWrite(pathFile)) {
-					return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-							"Directory " + pathFile.getAbsolutePath() + " must be writable. "
-							+ "The current user may not have the proper permissions to write to this directory. "
-							+ "Please restart the installer as a user with the appropriate permissions or select a different location.",
-						null);
-				}
-				if (!canRead(pathFile)) {
-					return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-							"Directory " + pathFile.getAbsolutePath() + " must be readable. "
-							+ "The current user may not have the proper permissions to read from this directory. "
-							+ "Please restart the installer as a user with the appropriate permissions or select a different location.",
-						null);
-				}
-				break;
-			}
-		}
-		
-		if(!path.isValidPath(pathString))
-		{
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Invalid path "+path.toString().length(), null);
-			
-		}
-		
-		return Status.OK_STATUS;
-	}
-
-	private static File getFileAtDir(String installDir, String fileToFind) {
-		if(installDir.charAt(installDir.length()-1) != File.separatorChar){
-			installDir += File.separator;
-		}
-		File uninstallJar = new File(installDir+fileToFind);
-		return uninstallJar;
-	}
-	
-	public static boolean isAlreadyInstalled(String installDir) {
-		if(!new File(installDir).isDirectory()) return false;
-		File uninstallJar = getFileAtDir(installDir, "uninstall.jar");
-		if(!uninstallJar.isFile())return false;
-		if(!canRead(uninstallJar))return false;
-		File installLog = getFileAtDir(installDir, "install.log");
-		if(!installLog.isFile())return false;
-		if(!canRead(installLog))return false;
-		return true;
-	}
-
-	public static boolean runUninstall(String installDir) {
-		try {
-			File uninstallJar = getFileAtDir(installDir, "uninstall.jar");
-			
-			Process process = Runtime.getRuntime().exec(
-					new String[]{
-							"javaw.exe", 
-							"-jar", 
-							"\""+uninstallJar.getAbsolutePath()+"\"",
-							"--uninstall",
-							"--noremoveuninstall"});
-			InputStream errorStream = process.getErrorStream();
-			InputStream inputStream = process.getInputStream();
-			while(true) {
-				try{
-					int exitValue = process.exitValue();
-					return exitValue == 0;
-				}catch(IllegalThreadStateException e){
-					
-				}
-				skipAvailable(errorStream);
-				skipAvailable(inputStream);
-				Thread.sleep(10);
-			}
-//			process.waitFor();
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-		catch (InterruptedException e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-
-	private static void skipAvailable(InputStream inputStream) throws IOException {
-		int inputAvailable = inputStream.available();
-		byte[] b = new byte[inputAvailable];
-		inputStream.read(b);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseProductStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseProductStep.java
deleted file mode 100644
index 62fd1d4..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ChooseProductStep.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.product.IProductInstallation;
-import org.eclipse.epp.installer.core.product.IProductLocator;
-
-
-/**
- * When installing an enhancement or extension to a previously installed product, use this
- * class or one of its subclasses to prompt the user to select one or more previously
- * installed products to be enhanced/extended. When instantiated, a
- * {@link org.eclipse.epp.installer.core.product.IProductLocator} is used to locate
- * appropriate previously installed applications. For example, a subclass of this class,
- * {@link org.eclipse.epp.installer.core.steps.ChooseEclipseStep} uses
- * {@link org.eclipse.epp.installer.core.eclipse.EclipseLocator} to find previously
- * installed Eclipse based applications.
- */
-public class ChooseProductStep extends InstallStep {
-	
-	protected String compatibility = "";
-	protected IProductLocator locator;
-	protected String optionName = "";
-
-	public ChooseProductStep(Installer installer, IProductLocator locator) {
-		super(installer);
-		setLocator(locator);
-	}
-
-	public IStatus verifyStep() {
-		return validatePathList(getOptions().getString(
-				optionName));
-	}
-	
-	public void setCompatibility(String compatibilityString) {
-		compatibility = compatibilityString;
-	}
-	
-	public String getCompatibility() {
-		return compatibility;
-	}
-	
-	public IProductLocator getLocator() {
-		return locator;
-	}
-
-	public void setLocator(IProductLocator locator) {
-		this.locator = locator;
-	}
-	
-	public String getOptionName() {
-		return optionName;
-	}
-	
-	public void setOptionName(String optionName) {
-		this.optionName = optionName;
-	}
-
-	
-	private String browseDialogText = "Select a product.";
-	private String browseDialogMessage = "Select a product.";
-	private String chooseLabelText = "To add another product to the list, press";
-	private String chooseButtonText = "Choose Product";
-	private String showAllButtonText = "Show &all products";
-	
-	public String getBrowseDialogMessage() {
-		return browseDialogMessage;
-	}
-
-	public void setBrowseDialogMessage(String browseDialogMessage) {
-		this.browseDialogMessage = browseDialogMessage;
-	}
-
-	public String getBrowseDialogText() {
-		return browseDialogText;
-	}
-
-	public void setBrowseDialogText(String browseDialogText) {
-		this.browseDialogText = browseDialogText;
-	}
-
-	public String getChooseButtonText() {
-		return chooseButtonText;
-	}
-
-	public void setChooseButtonText(String chooseButtonText) {
-		this.chooseButtonText = chooseButtonText;
-	}
-
-	public String getChooseLabelText() {
-		return chooseLabelText;
-	}
-
-	public void setChooseLabelText(String chooseLabelText) {
-		this.chooseLabelText = chooseLabelText;
-	}
-
-	public String getShowAllButtonText() {
-		return showAllButtonText;
-	}
-
-	public void setShowAllButtonText(String showAllButtonText) {
-		this.showAllButtonText = showAllButtonText;
-	}
-
-	
-	
-	/**
-	 * Validate the specified path list string.
-	 * 
-	 * Check if it is not null and not empty.
-	 * 
-	 * @param pathListString
-	 *            the path list string to be validated
-	 * @return <code>OK_STATUS</code> if valid, <code>OK_ERROR</code> if is
-	 *         empty
-	 */
-	public static IStatus validatePathList(String pathListString) {
-		if (pathListString == null || pathListString.length() == 0)
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Select a product", null);
-		return Status.OK_STATUS;
-	}
-
-	public void aboutToStep() {
-		super.aboutToStep();
-		
-		// init option, all products found
-		IStatus status = validatePathList(getOptions().getString(
-				optionName));
-		if (status != Status.OK_STATUS) {
-			IProductInstallation[] installations = findAllInstallations();
-			
-			String[] paths = installationsToPaths(installations);
-			
-			getOptions().set(
-				optionName, 
-				InstallOptions.arrayToPathList(paths));
-		}
-	}
-	
-	private static String[] installationsToPaths(IProductInstallation[] products) {
-		List result = new ArrayList();
-		
-		for (int i = 0; i < products.length; i++) {
-			String path = products[i].getProductDir().getAbsolutePath();
-			result.add(path);
-		}
-
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-	
-	public static boolean isInArray(IProductInstallation item, IProductInstallation[] array) {
-		for (int i = 0; i < array.length; i++) {
-			if (array[i].equals(item))
-				return true;
-		}
-		return false;
-	}
-	
-	public IProductInstallation[] findAllInstallations() {
-		return locator.findAll();
-	}
-}
-
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeOption.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeOption.java
deleted file mode 100644
index 3c59fcb..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeOption.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class CustomizeOption {
-	
-	private String name;
-	private boolean required = false;
-	
-	private List dependencies;
-	
-	public CustomizeOption(String name) {
-		dependencies = new ArrayList();
-		this.name = name;
-	}
-	
-	public CustomizeOption(String name, boolean required) {
-		dependencies = new ArrayList();
-		this.name = name;
-		this.required = required;
-	}
-
-	public void setRequired(boolean flag) {
-		required = flag;
-	}
-
-	public boolean getRequired() {
-		return required;
-	}
-
-	public void addDepends(CustomizeOption option) {
-		dependencies.add(option);
-	}
-	
-	public void addDepends(Collection options) {
-		dependencies.addAll(options);
-	}
-	
-	public List getDepends() {
-		return dependencies;
-	}
-
-	public String getName() {
-		return name;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeStep.java
deleted file mode 100644
index fc19637..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/CustomizeStep.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- * Perform a last minute check, displaying a summary of what is about to be installed and
- * giving the user one last chance to cancel before the actual installation begins.
- */
-public class CustomizeStep extends InstallStep {
-
-	private List customizeOptions;
-	
-	private String text;
-
-	/**
-	 * Constructor for PromptUserStep.
-	 * @param installer Installer
-	 */
-	public CustomizeStep(Installer installer) {
-		super(installer);
-		customizeOptions = new ArrayList();
-	}
-
-	/**
-	 * Method setText.
-	 * @param text String
-	 */
-	public void setText(String text) {
-		this.text = text;
-	}
-
-	/**
-	 * Method getText.
-	 * @return String
-	 */
-	public String getText() {
-		return Variables.resolve(text, getOptions());
-	}
-
-	public void add(CustomizeOption option) {
-		customizeOptions.add(option);
-	}
-	
-	public void add(Collection options) {
-		customizeOptions.addAll(options);
-	}
-	
-	public List getCustomizeOptions() {
-		return customizeOptions;
-	}
-
-	private void updateOptionList(List options, boolean flag) {
-		Iterator iter = options.iterator();
-		while (iter.hasNext()) {
-			CustomizeOption option = (CustomizeOption)iter.next();
-			String optionName = option.getName();
-			if ((optionName != null) && (!optionName.equals(""))) {
-				getOptions().setBoolean(optionName, flag);
-			}
-		}
-	}
-	
-	public void updateSelectedOptions(ArrayList selectedOptions) {
-		updateOptionList(customizeOptions, false);
-		updateOptionList(selectedOptions, true);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/PromptUserStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/PromptUserStep.java
deleted file mode 100644
index 631be5b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/PromptUserStep.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- * Perform a last minute check, displaying a summary of what is about to be installed and
- * giving the user one last chance to cancel before the actual installation begins.
- */
-public class PromptUserStep extends InstallStep {
-
-	public static final String VAR_TEXT = "text";
-
-//	private String text;
-
-	/**
-	 * Constructor for PromptUserStep.
-	 * @param installer Installer
-	 */
-	public PromptUserStep(Installer installer) {
-		super(installer);
-	}
-
-	/**
-	 * Method setText.
-	 * @param text String
-	 */
-	public void setText(String text) {
-//		this.text = text;
-		setProperty(VAR_TEXT, text);
-	}
-
-	/**
-	 * Method getText.
-	 * @return String
-	 */
-	public String getText() {
-//		return Variables.resolve(text, getOptions());
-		return Variables.resolve(getProperty(VAR_TEXT), getOptions());
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/RunOperationsStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/RunOperationsStep.java
deleted file mode 100644
index 387a46b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/RunOperationsStep.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.model.SequentialOperation;
-
-
-/**
- * An main installer class (see example in Overview) should add exactly one instance of
- * this class to perform the actual installation of bits on disk and show the user
- * progress during the installation. This class interacts with the installer to execute
- * each {@link org.eclipse.epp.installer.core.model.InstallOperation}s specified in
- * the main installer class.
- */
-public class RunOperationsStep extends InstallStep {
-
-	private final SequentialOperation rootOperation = new SequentialOperation();
-	private IStatus status;
-	
-	/**
-	 * Constructor for RunOperationsStep.
-	 * @param installer Installer
-	 */
-	public RunOperationsStep(Installer installer) {
-		super(installer);
-	}
-
-	/**
-	 * Method add.
-	 * @param op InstallOperation
-	 */
-	public void add(InstallOperation op) {
-		rootOperation.add(op);
-	}
-	
-	/**
-	 * Method getRootOperation.
-	 * @return InstallOperation
-	 */
-	public InstallOperation getRootOperation() {
-		return rootOperation;
-	}
-	
-	/**
-	 * Method run.
-	 * @param operation InstallOperation
-	 * @param monitor IProgressMonitor
-	 */
-	public void run(InstallOperation operation, IProgressMonitor monitor) {
-		Installer installer = getInstaller();
-		installer.setProgressMonitor(monitor);
-		status = installer.run(operation);		
-	}
-
-	/**
-	 * If there is an error during installation or the user cancels the installation,
-	 * this method is called to determine if the operations can be rolled back.
-	 * @return <code>true</code> if the operations can be rolled back, else <code>false</code>
-	 */
-	public boolean canRollback() {
-		return true;
-	}
-	
-	/**
-	 * Method verifyStep.
-	 * @return IStatus
-	 * @see org.eclipse.epp.installer.core.model.IInstallStep#verifyStep()
-	 */
-	public IStatus verifyStep() {
-		if(status == null) {
-			run(rootOperation, new NullProgressMonitor());
-		}
-		return status;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.java
deleted file mode 100644
index 1229b54..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-/**
- * Perform a last minute check, displaying a summary of what is about to be installed and
- * giving the user one last chance to cancel before the actual installation begins.
- */
-public class ScrollablePromptUserStep extends InstallStep {
-
-	public static final String VAR_TEXT = "text";
-
-//	private String text;
-
-	/**
-	 * Constructor for PromptUserStep.
-	 * @param installer Installer
-	 */
-	public ScrollablePromptUserStep(Installer installer) {
-		super(installer);
-	}
-
-	/**
-	 * Method setText.
-	 * @param text String
-	 */
-	public void setText(String text) {
-//		this.text = text;
-		setProperty(VAR_TEXT, text);
-	}
-
-	/**
-	 * Method getText.
-	 * @return String
-	 */
-	public String getText() {
-//		return Variables.resolve(text, getOptions());
-		return Variables.resolve(getProperty(VAR_TEXT), getOptions());
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.java
deleted file mode 100644
index 43c686c..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallType;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class SelectInstallTypeStep extends InstallStep {
-
-	private List types;
-	private String optionName;
-	
-	public SelectInstallTypeStep(Installer installer) {
-		super(installer);
-		types = new ArrayList();
-	}
-
-	public void addInstallTypes(Collection types) {
-		types.addAll(types);
-	}
-
-	public void addInstallType(InstallType type) {
-		types.add(type);		
-	}
-	
-	public Collection getInstallTypes() {
-		return types;
-	}
-
-	public String getOptionName() {
-		return Variables.resolve(optionName, getOptions());
-	}
-
-	public void setOptionName(String optionName) {
-		this.optionName = optionName;
-	}
-	
-	public void updateOption(InstallType entity) {
-		if (entity != null) {
-			getOptions().set(getOptionName(), entity.getName());
-		}
-	}
-	
-	public void aboutToStep() {
-		super.aboutToStep();
-		
-		// init selected install type
-		if (types != null && types.size() > 0) {
-			updateOption( (InstallType) types.get(0) );
-		}
-	}
-	
-	public IStatus verifyStep() {
-		return validateProductString(getOptions().getString(
-				getOptionName()));
-	}
-	
-	public static IStatus validateProductString(String productString) {
-		if (productString == null || productString.length() == 0)
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Empty IntallType string", null);
-		return Status.OK_STATUS;
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ShowWarningsStep.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ShowWarningsStep.java
deleted file mode 100644
index cd1920e..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/core/steps/ShowWarningsStep.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.eclipse.epp.installer.core.steps;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.InstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-
-/**
- * Shows warning list if there were any during installation process.
- */
-public class ShowWarningsStep extends InstallStep {
-
-	/**
-	 * Constructor for ShowWarningsStep.
-	 * 
-	 * @param installer
-	 *            Installer
-	 */
-	public ShowWarningsStep(Installer installer) {
-		super(installer);
-	}
-
-	/**
-	 * Generate and return warning log text.
-	 * 
-	 * @return String
-	 */
-	public String getWarningText() {
-		List log = new ArrayList(getInstaller().getWarnings());
-		StringBuffer text = new StringBuffer("");
-		for (int i = 0; i < log.size(); i++) {
-			Status status = (Status) log.get(i);
-			String message = status.getMessage();
-			if (message != null && !message.equals("")) {
-				text.append(message);
-				text.append("\n");
-			}
-		}
-		return text.toString();
-	}
-
-	/**
-	 * Return execution condition. Step need to be executed if installer warning
-	 * log is not empty.
-	 * 
-	 * Used by installer to ensure step execution.
-	 * 
-	 * @return <code>true</code> if step needed to be executed, and
-	 *         <code>false</code>othervise.
-	 */
-	public boolean canExecute() {
-		List log = new ArrayList(getInstaller().getWarnings());
-		if (log == null || log.size() == 0) {
-			return false;
-		}
-		return true;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.java
deleted file mode 100644
index d11e569..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/
-
-package org.eclipse.epp.installer.internal.archive.zip;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-import org.eclipse.epp.installer.archive.ArchiveException;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-
-
-public class ZipArchive implements IArchive {
-
-	private static class ZipArchiveEntry implements IArchiveEntry {
-
-		private ZipEntry entry;
-
-		private ZipArchiveEntry(ZipEntry entry) {
-			this.entry = entry;
-		}
-
-		public String getName() {
-			return entry.getName();
-		}
-
-		public long getSize() {
-			return entry.getSize();
-		}
-
-		public long getTime() {
-			return entry.getTime();
-		}
-
-		public boolean isDirectory() {
-			return entry.isDirectory();
-		}
-
-	}
-
-	private static class ZipEntriesIterator implements Iterator {
-
-		private Enumeration e;
-
-		private ZipEntriesIterator(Enumeration e) {
-			this.e = e;
-		}
-
-		public boolean hasNext() {
-			return e.hasMoreElements();
-		}
-
-		public Object next() {
-			return new ZipArchiveEntry((ZipEntry) e.nextElement());
-		}
-
-		public void remove() {
-			throw new RuntimeException("R/O iterator");
-		}
-
-	}
-
-	private ZipFile zip;
-
-	public ZipArchive(ZipFile zipFile) {
-		zip = zipFile;
-	}
-
-	public void close() throws IOException {
-		zip.close();
-	}
-
-	public Iterator entries() {
-		return new ZipEntriesIterator(zip.entries());
-	}
-
-	public String getName() {
-		return zip.getName();
-	}
-
-	public InputStream getInputStream(IArchiveEntry entry) throws IOException {
-		try {
-			ZipEntry zipEntry = ((ZipArchiveEntry) entry).entry;
-			return zip.getInputStream(zipEntry);
-		} catch (ZipException e) {
-			throw new ArchiveException(e.getMessage());
-		}
-	}
-
-	public IArchiveEntry getEntry(String name) {
-		return new ZipArchiveEntry(zip.getEntry(name));
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.java
deleted file mode 100644
index dab621e..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Instantiations, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Instantiations, Inc. - initial API and implementation
- *    xored software, Inc. - Eclipse way
- *******************************************************************************/ 
-
-package org.eclipse.epp.installer.internal.archive.zip;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveFactory;
-
-
-public class ZipArchiveFactory implements IArchiveFactory, IExecutableExtension {
-
-	public IArchive createArchive(File file) throws IOException {
-		return new ZipArchive(new ZipFile(file));
-	}
-
-	public boolean isArchive(File file) {
-		return file.getName().endsWith(".zip");
-	}
-
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/BackupManager.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/BackupManager.java
deleted file mode 100644
index 0fca731..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/BackupManager.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Random;
-
-public class BackupManager implements IBackupManager {
-
-	private static final String TEMP_BACKUP_DIR_PREFIX = "InstantiationsInstaller";
-	
-	private static final String TEMP_BACKUP_DIR_SUFFIX = ".bak";
-	
-	private static final String BACKUP_FILE_PREFIX = "backup";
-	
-	private static final String BACKUP_FILE_SUFFIX = ".bak";
-	
-	private static final String BACKUP_DIR_NAME = "_uninst_backup";
-	
-	private static BackupManager manager = null;
-	
-	private boolean inited;
-	
-	private boolean restoreTemporary;
-	
-	static {
-		manager = new BackupManager();
-		manager.setRestoreTemporary(true);
-		manager.inited = false;
-	}
-	
-	private BackupManager() {
-	}
-	
-	private File tempBackUpDir = null;
-	
-	private File backUpDir = null;
-	
-	private static int counter = -1;
-	
-	private static File getTempDir() {
-		String tmpDirName = System.getProperty("java.io.tmpdir");
-		File tmpDir = new File(tmpDirName);
-		return tmpDir;
-	}
-	
-	private static File generateFile(String prefix, String suffix, File dir) {
-		if (counter == -1) {
-		    counter = new Random().nextInt() & 0xffff;
-		}
-		counter++;
-		return new File(dir, prefix + Integer.toString(counter) + suffix);
-	}
-	
-	private static File createDir(String prefix, String suffix, File dir) {
-		File tmpDir = null;
-		boolean created = false;
-		while (!created) {
-			tmpDir = generateFile(prefix, suffix, dir);
-			if (!tmpDir.exists())
-				 created = tmpDir.mkdir();
-		}
-		return tmpDir;
-	}
-	
-	private static boolean deleteDir(File dir) {
-		if (dir != null)
-			if (dir.exists())
-				return dir.delete();
-		return true;
-	}
-	
-	private File getTempBackUpDir() {
-		if (tempBackUpDir == null) {
-			tempBackUpDir = createDir(TEMP_BACKUP_DIR_PREFIX, TEMP_BACKUP_DIR_SUFFIX, getTempDir());
-		}
-		return tempBackUpDir;
-	}
-
-	public static IBackupManager getBackupManager() {
-		return manager;
-	}
-	
-	/**
-	 * Stores file in BackUp directory.
-	 * @param file to store
-	 * @return stored file
-	 */
-	public File storeFile(File file, boolean temporary) {
-		File storedFile = null;
-		File storeDir = temporary ? getTempBackUpDir() : getBackUpDir();
-		
-		if (!file.canRead())
-			return null;
-		try {
-			if (!file.isDirectory()) {
-				storedFile = File.createTempFile(BACKUP_FILE_PREFIX, BACKUP_FILE_SUFFIX, storeDir);
-				Util.copyFiles(file, storedFile);
-			} else {
-				storedFile = createDir(BACKUP_FILE_PREFIX, BACKUP_FILE_SUFFIX, storeDir);
-			}
-		} catch (IOException e) {
-			return null;
-			// TODO Auto-generated catch block
-			// e.printStackTrace();
-		}
-		
-		return storedFile;
-	}
-
-	public File storeFile(File file) {
-		return storeFile(file, false);
-	}
-	
-	public boolean isRestoreTemporary() {
-		return restoreTemporary;
-	}
-
-	public void setRestoreTemporary(boolean restoreTemporary) {
-		this.restoreTemporary = restoreTemporary;
-	}
-
-	private File getBackUpDir() {
-		if (backUpDir != null)
-			if (!backUpDir.exists())
-				backUpDir.mkdir();
-		return backUpDir;
-	}
-
-	public void setInstallDir(File installDir) {
-		backUpDir = new File(installDir, BACKUP_DIR_NAME);
-	}
-	
-	public boolean cleanTemporaryDir() {
-		return deleteDir(tempBackUpDir);
-	}
-
-	public boolean cleanBackUpDir() {
-		return deleteDir(backUpDir);
-	}
-
-	public boolean isInited() {
-		return inited;
-	}
-
-	public void setInited(boolean inited) {
-		this.inited = inited;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.java
deleted file mode 100644
index 8b51b8d..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.eclipse.EclipseVersion;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-import org.eclipse.epp.installer.core.product.IProductVersion;
-
-
-/**
- * CleanEclipseConfigurationAction used to remove Eclipse configuration
- * information. Do almost the same what does CleanEclipseConfigurationOperation.
- * 
- * @author bur
- * @version $Revision: 1.3 $
- */
-public class CleanEclipseConfigurationAction implements IRollbackAction {
-
-	private static final EclipseVersion ECLIPSE_VER_3_0_0 = new EclipseVersion(3, 0, 0, "");
-	
-	private EclipseInstallation installation;
-	
-	/**
-	 * Method getRunningErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getRunningErrorStatus() {
-		String message = "Eclipse installation '"
-			+ installation.getEclipseDir() + "' is running"; 
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_ECLIPSE_ERROR, message,
-				null);
-	}
-
-	/**
-	 * Method getNoEclipseErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getNoEclipseErrorStatus() {
-		String message = "Can't find Eclipse installation '"
-			+ installation.getEclipseDir() + "'"; 
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_ECLIPSE_ERROR, message,
-				null);
-	}
-	
-	/**
-	 * Execute action.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry to get data from.
-	 * @return IStatus <code>Status.OK_STATUS</code> failures are saved.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#rollback(InstallLogEntry)
-	 */
-	public IStatus rollback(InstallLogEntry entry) {
-		
-		File eclipseDir = new File(entry.getArgument());
-		installation = new EclipseInstallation(eclipseDir);
-
-		if (!EclipseInstallation.isEclipseInstallation(eclipseDir))
-			return getNoEclipseErrorStatus();
-		
-		if (installation.isRunning())
-			return getRunningErrorStatus();
-
-		IProductVersion version = installation.getEclipseVersion();
-		if (version.compareTo(ECLIPSE_VER_3_0_0) >= 0) {
-			cleanEclipse3();
-		}
-		// TODO: add clean for other Eclipse versions
-
-		return Status.OK_STATUS;
-	}
-
-	private void cleanEclipse3() {
-		File eclipseDir = installation.getEclipseDir();
-
-		File eclipseConfigDir = new File(eclipseDir, "configuration");
-		if (eclipseConfigDir.exists()) {
-
-			File eclipseConfigCoreDir = new File(eclipseConfigDir,
-					"org.eclipse.core.runtime");
-			if (eclipseConfigCoreDir.exists()) {
-				String[] exclusions = { ".keyring" };
-				// TODO: this is a temporary solution, need to improve
-				// exceptions mechanism to some kind of filter mechanism
-				cleanDirectory(eclipseConfigCoreDir, exclusions, true);
-			}
-
-			File eclipseConfigOsgiDir = new File(eclipseConfigDir,
-					"org.eclipse.osgi");
-			if (eclipseConfigOsgiDir.exists()) {
-				cleanDirectory(eclipseConfigOsgiDir, null, false);
-			}
-
-			File eclipseConfigUpdateDir = new File(eclipseConfigDir,
-					"org.eclipse.update");
-			if (eclipseConfigUpdateDir.exists()) {
-				String[] exclusions;
-				IProductVersion version = installation.getEclipseVersion();
-				// Preserve the platform.xml file for Eclipse 3.2 and beyond... see ModifyPlatformXMLOperationrun(Context)
-				if (version.getMajor() > 3 || (version.getMajor() == 3 && version.getMinor() >= 2))
-					exclusions = new String[]{ "platform.xml", "bookmarks.xml" };
-				else
-					exclusions = new String[]{ };
-				cleanDirectory(eclipseConfigUpdateDir, exclusions, false);
-			}
-		}
-	}
-	
-	private void cleanDirectory(File dir, String[] exclusions, boolean keepFolder) {
-		File[] sub = dir.listFiles();
-		if (sub != null) {
-			for (int i = 0; i < sub.length; i++) {
-				File curFile = sub[i];
-				if(!isExcluded(curFile, exclusions))
-					curFile.delete();
-			}
-		}
-		if(!keepFolder)
-			dir.delete();
-	}
-	
-	private boolean isExcluded(File file, String[] exclusions) {
-		if(exclusions == null) return false;
-		for(int i=0;i<exclusions.length;i++)
-			if(file.getName().equals(exclusions[i])) return true;
-		return false;
-	}
-	
-	/**
-	 * Return action description.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry entry to get data from.
-	 * @return String action description.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#getDescription(InstallLogEntry)
-	 */
-	public String getDescription(InstallLogEntry entry) {
-		return "Cleaning Eclipse installation configuration information...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.java
deleted file mode 100644
index 0022700..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-
-
-public class EmbeddedInstallStorager {
-
-	private static final String INSTALL_TAG = "<install>";
-	
-	private static final String INSTALL_INTERNAL_TAG = "<install_int>";
-	
-	private static final String INSTALL_LIST_TAG = "<install_list>";
-	
-	private static final String INSTALL_LIST_TOKEN = ",";
-	
-	Map storage = new HashMap();
-	
-	class EmbeddedInstall {
-		String[] features = {};
-		String[] plugins = {};
-		
-		public String[] getFeatures() {
-			return features;
-		}
-		public void setFeatures(String[] features) {
-			this.features = features;
-		}
-		public String[] getPlugins() {
-			return plugins;
-		}
-		public void setPlugins(String[] plugins) {
-			this.plugins = plugins;
-		}
-	}
-
-	public static EmbeddedInstallStorager fromOptions(InstallOptions options) {
-		return fromOptions(options, InstallOptions.OPTION_ECLIPSE_EMBEDDED_INSTALLS);
-	}
-	
-	public static EmbeddedInstallStorager fromOptions(InstallOptions options, String optionName) {
-		if (options == null || optionName == null)
-			throw new IllegalArgumentException();
-
-		String string = options.getString(optionName);
-		
-		return fromString(string);
-	}
-	
-	public static EmbeddedInstallStorager fromString(String string) {
-		EmbeddedInstallStorager result = new EmbeddedInstallStorager();
-		
-		if (string == null || string.equals("")) {
-			return result;
-		}
-		
-		String[] embeddedInstalls = string.split(INSTALL_TAG);
-		
-		for (int i = 0; i < embeddedInstalls.length; i++) {
-			String[] internal = embeddedInstalls[i].split(INSTALL_INTERNAL_TAG);
-			String name = internal[0];
-
-			result.addInstallation(name);
-
-			String[] list = internal[1].split(INSTALL_LIST_TAG);
-			
-			if (list.length > 0 && list[0] != null) {
-				String[] features = pathListToArray(list[0]);
-				result.setFeatures(name, features);
-			}
-			if (list.length > 1 && list[1] != null) {
-				String[] plugins = pathListToArray(list[1]);
-				result.setPlugins(name, plugins);
-			}
-		}
-		
-		return result;
-	}
-
-	public void toOptions(InstallOptions options) {
-		toOptions(options, InstallOptions.OPTION_ECLIPSE_EMBEDDED_INSTALLS);
-	}
-	
-	public void toOptions(InstallOptions options, String optionName) {
-		if (options == null || optionName == null)
-			throw new IllegalArgumentException();
-		
-		options.set(optionName, toString());
-	}
-	
-	public String toString() {
-		StringBuffer result = new StringBuffer("");
-		
-		String installations[] = getInstallations();
-		
-		if (installations.length > 0)
-			result.append(installationToString(installations[0]));
-		for (int i = 1; i < installations.length; i++) {
-			result.append(INSTALL_TAG);
-			result.append(installationToString(installations[i]));
-		}
-		
-		return result.toString();
-	}
-	
-	private static String arrayToPathList(String[] list) {
-		StringBuffer result = new StringBuffer("");
-		
-		if (list.length > 0)
-			result.append(list[0]);
-		for (int i = 1; i < list.length; i++)
-		{
-			result.append(INSTALL_LIST_TOKEN);
-			result.append(list[i]);
-		}
-		
-		return result.toString();
-	}
-
-	private static String[] pathListToArray(String pathListString) {
-		return pathListString.split(INSTALL_LIST_TOKEN);
-	}
-	
-	private String installationToString(String installation) {
-		StringBuffer result = new StringBuffer("");
-
-		result.append(installation);
-		result.append(INSTALL_INTERNAL_TAG);
-		
-		String[] features = getFeatures(installation);
-		result.append(arrayToPathList(features));
-		
-		result.append(INSTALL_LIST_TAG);
-		
-		String[] plugins = getPlugins(installation);
-		result.append(arrayToPathList(plugins));
-		
-		return result.toString();
-	}
-	
-	// Getters
-	
-	public String[] getInstallations() {
-		return (String[])storage.keySet().toArray(new String[storage.size()]);
-	}
-	
-	public int getInstallationsCount() {
-		return storage.keySet().size();
-	}
-	
-	public boolean containsInstallation(String installation) {
-		return storage.containsKey(installation);
-	}
-	
-	public String[] getFeatures(String installation) {
-		EmbeddedInstall ei = (EmbeddedInstall)storage.get(installation);
-		return ei.getFeatures();
-	}
-	
-	public String[] getPlugins(String installation) {
-		EmbeddedInstall ei = (EmbeddedInstall)storage.get(installation);
-		return ei.getPlugins();
-	}
-	
-	// Setters
-	
-	public void addInstallation(String installation) {
-		if (installation == null)
-			throw new IllegalArgumentException();
-			
-		storage.put(installation, new EmbeddedInstall());
-	}
-	
-	public void setFeatures(String installation, String[] features) {
-		EmbeddedInstall ei = (EmbeddedInstall)storage.get(installation);
-		ei.setFeatures(features);
-	}
-	
-	public void setPlugins(String installation, String[] plugins) {
-		EmbeddedInstall ei = (EmbeddedInstall)storage.get(installation);
-		ei.setPlugins(plugins);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/IBackupManager.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/IBackupManager.java
deleted file mode 100644
index 92d5319..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/IBackupManager.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.File;
-
-public interface IBackupManager {
-
-	public File storeFile(File file);
-
-	public File storeFile(File file, boolean temporary);
-	
-	public boolean isRestoreTemporary();
-
-	public void setRestoreTemporary(boolean restoreTemporary);
-
-	public void setInstallDir(File installDir);
-	
-	public boolean cleanTemporaryDir();
-	
-	public boolean cleanBackUpDir();
-	
-	public boolean isInited();
-
-	public void setInited(boolean inited);
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLog.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLog.java
deleted file mode 100644
index 076e7b2..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLog.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-
-
-/**
- * Class InstallLog used to save installation log information in file. Also used
- * to rollback installation then in uninstall action.
- */
-public class InstallLog {
-
-	// TODO Log Entry codes - temporarily defined here
-	public static final int DIRECTORY_CREATED_ENTRY = (int) 'C';
-
-	public static final int FILE_CREATED_ENTRY = (int) 'F';
-
-	public static final int LINK_CREATED_ENTRY = (int) 'L';
-
-	public static final int FILE_BACKUPED_ENTRY = (int) 'B';
-	
-	public static final int ECLIPSE_CONFIG_CLEANED_ENTRY = (int) 'E';
-
-	/**
-	 * List of log entrys.
-	 */
-	private List log = new ArrayList();
-
-	/**
-	 * map stores Integer -> IRollbackAction entries of contributed rollback
-	 * actions
-	 */
-	private static Map rollbackActions = new HashMap();
-
-	/**
-	 * Line separator used to write entrys into file.
-	 */
-	private static String lineSeparator;
-
-	/**
-	 * Register default actions.
-	 */
-	static {
-		// register code actions (note: other actions may be contributed by
-		// extensions)
-		registerAction(DIRECTORY_CREATED_ENTRY, new RemoveFileAction());
-		registerAction(FILE_CREATED_ENTRY, new RemoveFileAction());
-		registerAction(LINK_CREATED_ENTRY, new RemoveLinkAction());
-		registerAction(FILE_BACKUPED_ENTRY, new RestoreFileAction());
-//		registerAction(ECLIPSE_CONFIG_CLEANED_ENTRY, new CleanEclipseConfigurationAction());
-		lineSeparator = System.getProperty("line.separator");
-	}
-
-	/**
-	 * Construct new instance of InstallLog.
-	 * 
-	 * Check for Platform are initialized.
-	 * 
-	 */
-	public InstallLog() {
-	}
-
-	/**
-	 * Append enntry to list of entrys.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry to append.
-	 */
-	public void addEntry(InstallLogEntry entry) {
-		log.add(entry);
-	}
-
-	/**
-	 * Return rollback action for specified type of action.
-	 * 
-	 * @param type
-	 *            int action type.
-	 * @return IRollbackAction action to return. <code>null</code> if no
-	 *         action are pressent.
-	 */
-	public static IRollbackAction getRollbackAction(int type) {
-		return (IRollbackAction) rollbackActions.get(new Integer(type));
-	}
-
-	/**
-	 * Write installation log.
-	 * 
-	 * @param out
-	 *            BufferedWriter to write into.
-	 * @throws IOException
-	 *             thrown if could't complite write operation successful.
-	 */
-	public void write(BufferedWriter out) throws IOException {
-		for (int i = 0; i < log.size(); i++) {
-			writeEntry(out, (InstallLogEntry) log.get(i));
-		}
-	}
-
-	/**
-	 * Read installation log.
-	 * 
-	 * @param reader
-	 *            BufferedReader to read from.
-	 * @throws IOException
-	 *             thrown if could't complire read operation successful.
-	 */
-	public void read(BufferedReader reader) throws IOException {
-		InstallLogEntry entry = null;
-		while ((entry = readEntry(reader)) != null) {
-			log.add(entry);
-		}
-	}
-
-	/**
-	 * Register selected rollback action.
-	 * 
-	 * Same actions may be registere to more than one, code, but this is not
-	 * recommended.
-	 * 
-	 * @param code
-	 *            action code.
-	 * @param action
-	 *            IRollbackAction action to register.
-	 */
-	public static void registerAction(int code, IRollbackAction action) {
-		rollbackActions.put(new Integer(code), action);
-	}
-
-	/**
-	 * Write one log entry to specified writer.
-	 * 
-	 * @param writer
-	 *            Writer writer to write in.
-	 * @param entry
-	 *            InstallLogEntry entry to write.
-	 * @throws IOException
-	 *             thrown if write operation aren't successful.
-	 */
-	private static void writeEntry(Writer writer, InstallLogEntry entry)
-			throws IOException {
-		writer.write(entry.getOperationCode());
-		writer.write(' ');
-		writer.write(entry.getArgument());
-		writer.write(lineSeparator);
-	}
-
-	/**
-	 * Read entry from specified reader.
-	 * 
-	 * @param reader
-	 *            BufferedReader reader to read from.
-	 * @return InstallLogEntry readed log entry. <code>null</code> if nothing are
-	 *         readed.
-	 * @throws IOException
-	 *             thrown if read operation aren't successful or of entry are in
-	 *             invalid format.
-	 */
-	private static InstallLogEntry readEntry(BufferedReader reader) throws IOException {
-		String line = reader.readLine();
-		if (line == null) {
-			return null;
-		}
-		int i = line.indexOf(' ');
-		if (i != 1) {
-			throw new IOException("invalid install log.");
-		}
-		int opCode = line.charAt(0);
-		String arg = line.substring(2);
-		return new InstallLogEntry(opCode, arg);
-	}
-
-	/**
-	 * Return list of all entrys.
-	 * 
-	 * @return List of entrys.
-	 */
-	public List getEntries() {
-		return log;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLogEntry.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLogEntry.java
deleted file mode 100644
index 98d58a3..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallLogEntry.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-
-/**
- * Install log entry.
- * Used in {@link org.eclipse.epp.installer.internal.core.InstallLog }.
- */
-public class InstallLogEntry {
-	
-	/**
-	 * Supported delimeter string.
-	 * Used to combine diffirect element kinds into one string.
-	 */
-	public static final String LINK_ENTRY_TOKEN = ";";
-	
-	/**
-	 * Supported delimeter string.
-	 * Used to combine diffirect element kinds into one string.
-	 */
-	public static final String BACKUP_ENTRY_TOKEN = ";";
-
-	/**
-	 * Entry Operation code.
-	 */
-	private int opCode;
-	
-	/**
-	 * Entry argument string.
-	 * 
-	 * In currect implemnetation should contain one line of text.
-	 * 
-	 * Can contain <code>LINK_ENTRY_TOKEN</code> delimited values. Other delimiters aren't supported.
-	 * Can contain spaces and tabs.
-	 * Could not contain special characters such as '\n', '\r'. Whey are broke one line rule.
-	 * 
-	 */
-	private String argument;
-	
-	/**
-	 * Construct new instance of InstallLogEntry from opcode and argument string.
-	 * @param opCode int operation code.
-	 * @param argument String one line argument string.
-	 * @throws NullPointerException exception if argument are <code>null</code>
-	 */
-	public InstallLogEntry(int opCode, String argument) {
-		if(argument == null) {
-			throw new NullPointerException();
-		}
-		this.opCode = opCode;
-		this.argument = argument;
-	}
-
-	/**
-	 * Return operation code value.
-	 * @return int operation code.
-	 */
-	public int getOperationCode() {
-		return opCode;	
-	}
-	
-	/**
-	 * Return argument string. ( not <code>null</code> ).
-	 * @return String argument string. 
-	 */
-	public String getArgument() {
-		return argument;
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerActivator.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerActivator.java
deleted file mode 100644
index 7efdad8..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerActivator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.epp.installer.core.IPlatform;
-import org.osgi.framework.BundleContext;
-
-
-public class InstallerActivator extends Plugin {
-
-	private final static String PLATFORM_EXTENSION = "org.eclipse.epp.installer.core.platform";
-
-	private static InstallerActivator plugin;
-
-	private IPlatform platform;
-
-	public InstallerActivator() {
-		plugin = this;
-	}
-
-	public static InstallerActivator getPlugin() {
-		return plugin;
-	}
-	
-	public void start(BundleContext context) throws Exception {
-		// TODO Auto-generated method stub
-		super.start(context);
-		loadPlatform();
-	}
-
-	private void loadPlatform() {
-		IConfigurationElement[] cfg = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(PLATFORM_EXTENSION);
-
-		if (cfg.length > 0) {
-			try {
-				platform = (IPlatform) cfg[0]
-						.createExecutableExtension("class");
-			} catch (CoreException e) {
-				// TODO Set default platform implementation
-				e.printStackTrace();
-			}
-		}
-	}
-
-
-	public synchronized IPlatform getPlatform() {
-		return platform;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerApplication.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerApplication.java
deleted file mode 100644
index 97e079e..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/InstallerApplication.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.epp.installer.core.IConfigurationProvider;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.InstallerFactory;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-
-
-public class InstallerApplication implements IApplication {
-
-	private final static String CONFIGURATION_PROVIDER_EXT = "org.eclipse.epp.installer.core.configurationProvider";
-	private final static String PRODUCT_ATTR = "product";
-	private final static String TYPE_ATTR = "type";
-	private final static String ID_ATTR = "id";
-	
-	public final static String DEFAULT_CONFIGURATION_TYPE = "install";
-
-	public Object start(IApplicationContext context) throws Exception {
-		InstallOptions options = new InstallOptions(context);
-		Installer installer = InstallerFactory.createInstaller(options);
-
-		// look for configuration provider
-
-		String configurationType = System.getProperty(Context.INSTALLER_CONFIGURATION_TYPE_PROPERTY);
-		if (configurationType == null || "".equals(configurationType))
-			configurationType = DEFAULT_CONFIGURATION_TYPE;
-		
-		IConfigurationProvider provider = null;
-		String product = context.getBrandingId();
-
-		IConfigurationElement[] cfg = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(CONFIGURATION_PROVIDER_EXT);
-		for (int i = 0; i < cfg.length; i++) {
-			String providerProduct = cfg[i].getAttribute(PRODUCT_ATTR);
-			String providerType = cfg[i].getAttribute(TYPE_ATTR);
-			if (product.equals(providerProduct) && configurationType.equals(providerType)) {
-				provider = (IConfigurationProvider) cfg[i]
-						.createExecutableExtension("class");
-				provider.setId(cfg[i].getAttribute(ID_ATTR));
-				break;
-			}
-		}
-
-		context.applicationRunning();
-
-		if (provider != null) {
-			provider.configure(installer);
-			installer.run();
-		}
-
-		return EXIT_OK;
-	}
-
-	public void stop() {
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OS.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OS.java
deleted file mode 100644
index b5f5e81..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OS.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Created on 16.12.2005
- */
-package org.eclipse.epp.installer.internal.core;
-
-/**
- * Class OS are used then needed operation system dependent function.
- * 
- * This class USED JNI to implement functions.
- * 
- * See library/fs.c, library/os.c for implementation.
- * 
- * @author Max Stepanov (max@xored.com)
- * 
- * @version $Revision: 1.2 $
- */
-public class OS {
-
-	/**
-	 * Load the library
-	 * 
-	 */
-	static {
-		try {
-			System.loadLibrary("os");
-		}
-		catch (UnsatisfiedLinkError e) {
-			System.err.println("ERROR You have not installed the DLL named 'os.dll'.\n\t" + e.getMessage());
-			throw e;
-		}
-		catch (SecurityException e) {
-			System.err.println("ERROR You do not have permission to load the DLL named 'os.dll'.\n\t" + e.getMessage());
-			throw e;
-		}
-	}
-
-	public static final int DRIVE_UNKNOWN = 0;
-	public static final int DRIVE_NO_ROOT_DIR = 1;
-	public static final int DRIVE_REMOVABLE = 2;
-	public static final int DRIVE_FIXED = 3;
-	public static final int DRIVE_REMOTE = 4;
-	public static final int DRIVE_CDROM = 5;
-	public static final int DRIVE_RAMDISK = 6;
-	
-	/**
-	 * Delete selected file on reboot. Operation supported on Windows. Operation
-	 * isn't supported on Linux.
-	 * 
-	 * @param path
-	 *            String absolute path to file.
-	 * @return boolean return <code>true</code> if operation are successful.
-	 */
-	public static final native boolean DeleteFileOnReboot(String path);
-
-	/**
-	 * Retrieves the path of a special folder, identified by its ID. Operation supported on Windows.
-	 * Operation isn't supported on Linux.
-	 * 
-	 * @param specialFolderId
-	 *            int that identifies the folder of interest.
-	 * @return String return path of a special folder if operation are successful.
-	 * 					<code>null</code> othervise.
-	 */
-	public static final native String GetSpecialFolderPath(int specialFolderId);
-
-	
-	/**
-	 * Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk,
-	 * 	or network drive.
-	 * @param driveRootPath
-	 * 			String that identifies root drive path
-	 * @return int return type of a specified drive
-	 */
-	public static final native int GetDriveType( String driveRootPath );
-	
-	/**
-	 * Reboot system, on system supported this call. Only Windows are supported.
-	 * On other systems, reboot aren't needed in most cases.
-	 * 
-	 * @return boolean <code>true</code> if reboot are started.
-	 *         <code>false</code> othervise.
-	 */
-	public static final native boolean SystemReboot();
-	
-	public static final native boolean SetCreationTime(String path,long time);
-	
-	public static final native boolean CanWrite(String path);
-	public static final native boolean CanRead(String path);
-	
-	public static final native boolean IsUserAdmin();
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OperationProxyManager.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OperationProxyManager.java
deleted file mode 100644
index bb8368d..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/OperationProxyManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.epp.installer.internal.core.operations.ProxyOperation;
-import org.eclipse.epp.installer.internal.core.operations.StubOperation;
-
-
-public class OperationProxyManager {
-	private Map proxyStubMap = new HashMap();
-	
-	protected void registerOperationStub( Class proxyClass, Class operationStub ) {
-		proxyStubMap.put( proxyClass, operationStub );
-	}
-	protected StubOperation resolveProxy( ProxyOperation operation ) {
-		Class proxyClass = operation.getClass();
-		if( proxyStubMap.containsKey(proxyClass)) {
-			Class stubClass = (Class)proxyStubMap.get(proxyClass);
-			try {
-				Constructor ctr = stubClass.getConstructor( new Class[] {ProxyOperation.class});
-				return (StubOperation)ctr.newInstance(new Object[] {operation});
-				//return (StubOperation)stubClass.newInstance();
-			}
-			catch( InvocationTargetException ex ) {
-				ex.printStackTrace();
-			}
-			catch( NoSuchMethodException ex ) {
-				ex.printStackTrace();
-			}
-			catch( InstantiationException ex ) {
-				ex.printStackTrace();
-			}			
-			catch( IllegalAccessException ex ) {
-				ex.printStackTrace();
-			}
-		}
-		return null;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveFileAction.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveFileAction.java
deleted file mode 100644
index 1615a53..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveFileAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-
-
-/**
- * RemoveFileAction used to remove files and directories.
- * 
- * @author andrey
- * @version $Revision: 1.1 $
- */
-public class RemoveFileAction implements IRollbackAction {
-
-	/**
-	 * List of delete failures. For each failure may be used
-	 * {@link org.eclipse.epp.installer.internal.core.OS#DeleteFileOnReboot(String) }
-	 * operation to delete files on reboot.
-	 */
-	private List failures = new ArrayList();
-
-	/**
-	 * Execute action.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry to get data from.
-	 * @return IStatus <code>Status.OK_STATUS</code> failures are saved.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#rollback(InstallLogEntry)
-	 */
-	public IStatus rollback(InstallLogEntry entry) {
-		File file = new File(entry.getArgument());
-		if (file.exists()) {
-			File[] list = file.listFiles();
-			if (list != null && list.length > 0) {
-				failures.add(file);
-			} else {
-				if (!file.delete()) {
-					failures.add(file);
-				}
-			}
-		}
-		return Status.OK_STATUS;
-		/*
-		 * return new Status(IStatus.INFO, Installer.PLUGIN_ID, 0, "Can't remove
-		 * file or directory: " + file.getAbsolutePath(), null);
-		 */
-	}
-
-	/**
-	 * Return action description.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry entry to get data from.
-	 * @return String action description.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#getDescription(InstallLogEntry)
-	 */
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Removing file {0}.", new Object[] { entry
-				.getArgument() });
-	}
-
-	/**
-	 * Return failure files list.
-	 * 
-	 * @return List of failure files.
-	 */
-	public List getFailures() {
-		return failures;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveLinkAction.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveLinkAction.java
deleted file mode 100644
index b9b5b25..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RemoveLinkAction.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class RemoveLinkAction implements IRollbackAction {
-
-	public static File getLinkFile(InstallLogEntry e) {
-		return new File(e.getArgument().split(InstallLogEntry.LINK_ENTRY_TOKEN)[0]);
-	}
-
-	public static File getInstallPath(InstallLogEntry e) {
-		return new File(e.getArgument().split(InstallLogEntry.LINK_ENTRY_TOKEN)[1]);
-	}
-
-	/**
-	 * Read path parameter from link file.
-	 * @param linkFile File
-	 * @return String
-	 */
-	public static String readPath(File linkFile) throws IOException {
-		FileReader reader = new FileReader(linkFile);
-		BufferedReader bufferedReader = new BufferedReader(reader);
-		String line = bufferedReader.readLine();
-		reader.close();
-		if (!line.trim().startsWith("path")) {
-			return null;
-		}
-		if ((line.indexOf('=')+1) >= line.length()) return "";
-		return line.substring(line.indexOf('=')+1);
-	}
-	
-	/**
-	 * Check if path to extension in link file and one in log entry are the same.
-	 * @param InstallLogEntry entry
-	 * @return boolean
-	 * @throws IOException 
-	 */
-	public static boolean isLinkActual(InstallLogEntry entry) throws IOException {
-		File linkFile = getLinkFile(entry);
-		if (linkFile.exists()) {
-			File currentInstall = new File(readPath(linkFile));
-			if (currentInstall.equals(getInstallPath(entry))) {
-				return true;
-			}
-		} else {
-			throw new IOException();
-		}
-		return false;
-	}
-	
-	/**
-	 * Perform plugin unlink operation. InstallLogEntry contains two pathes: path to
-	 * link-file and path to installed .
-	 * 
-	 * @param entry
-	 *            InstallLogEntry
-	 * @return IStatus
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#rollback(InstallLogEntry)
-	 */
-	public IStatus rollback(InstallLogEntry entry) {
-		File linkFile = getLinkFile(entry);
-		try {
-			if (isLinkActual(entry)) {
-				linkFile.delete();
-			}
-		} catch (IOException e) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"can't read link file: " + linkFile, null);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method getDescription.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry
-	 * @return String
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#getDescription(InstallLogEntry)
-	 */
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Unlinking plugin {0}.",
-				new Object[] { getLinkFile(entry) });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RestoreFileAction.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RestoreFileAction.java
deleted file mode 100644
index 104a545..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/RestoreFileAction.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-
-
-/**
- * RemoveFileAction used to remove files and directories.
- * 
- * @author andrey
- * @version $Revision: 1.1 $
- */
-public class RestoreFileAction implements IRollbackAction {
-
-	public static File getOriginalFile(InstallLogEntry e) {
-		return new File(e.getArgument().split(InstallLogEntry.BACKUP_ENTRY_TOKEN)[0]);
-	}
-
-	public static File getStoredFile(InstallLogEntry e) {
-		return new File(e.getArgument().split(InstallLogEntry.BACKUP_ENTRY_TOKEN)[1]);
-	}
-
-	public static boolean isStoredTemporary(InstallLogEntry e) {
-		return Boolean.valueOf(e.getArgument().split(InstallLogEntry.BACKUP_ENTRY_TOKEN)[2]).booleanValue();
-	}
-	
-	/**
-	 * Execute action.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry to get data from.
-	 * @return IStatus <code>Status.OK_STATUS</code> failures are saved.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#rollback(InstallLogEntry)
-	 */
-	public IStatus rollback(InstallLogEntry entry) {
-		File storedFile = getStoredFile(entry);
-		File originalFile = getOriginalFile(entry); 
-		
-		// do not restore temporary backuped files if not necessary
-		if (isStoredTemporary(entry) && !BackupManager.getBackupManager().isRestoreTemporary())
-			return Status.OK_STATUS;
-		
-		try {
-			if (storedFile.exists()) {
-				if (originalFile.exists()) {
-					originalFile.delete();
-				}
-				if (!storedFile.isDirectory()) {
-					originalFile.createNewFile();
-					Util.copyFiles(storedFile, originalFile);
-				} else {
-					originalFile.mkdir();
-				}
-			}
-		} catch (IOException e) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"can't restore file: " + originalFile, null);
-		}
-	
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Return action description.
-	 * 
-	 * @param entry
-	 *            InstallLogEntry entry to get data from.
-	 * @return String action description.
-	 * @see org.eclipse.epp.installer.core.model.IRollbackAction#getDescription(InstallLogEntry)
-	 */
-	public String getDescription(InstallLogEntry entry) {
-		return MessageFormat.format("Restoring file {0}.",
-				new Object[] { getOriginalFile(entry) });
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/Util.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/Util.java
deleted file mode 100644
index c0ecdd6..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/Util.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.eclipse.epp.installer.internal.core;
-
-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.text.MessageFormat;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.model.Context;
-
-
-/**
- */
-public class Util {
-
-	private static final int BUFFER_SIZE = 4096;
-
-	/**
-	 * Method copyStreams.
-	 * @param is InputStream
-	 * @param os OutputStream
-	 * @throws IOException
-	 */
-	public static void copyStreams(InputStream is, OutputStream os)
-			throws IOException {
-		byte[] buf = new byte[BUFFER_SIZE];
-		int n;
-		while ((n = is.read(buf)) != -1) {
-			os.write(buf, 0, n);
-		}
-		os.flush();
-	}
-
-	/**
-	 * Method copyFiles
-	 * @param in File
-	 * @param out File
-	 * @throws IOException
-	 */
-	public static void copyFiles(File in, File out) throws IOException {
-		FileInputStream fis  = new FileInputStream(in);
-		FileOutputStream fos = new FileOutputStream(out);
-		copyStreams(fis, fos);
-		fis.close();
-		fos.close();
-	}
-	
-	/**
-	 * Method createFileFromStream.
-	 * @param installer Context
-	 * @param file File
-	 * @param content InputStream
-	 * @return IStatus
-	 * @throws IOException
-	 */
-	public static IStatus createFileFromStream(Context installer, File file,
-			InputStream content, long lastModified ) throws IOException {
-		if (file.exists() && !installer.getOptions().isNoOverwriteWarningDuringInstall()
-				&& !installer.confirm(IActionConstants.OVERWRITE_FILE,
-						"Overwrite file {0}?", new Object[] { file })) {
-			String message = MessageFormat.format("Cannot create file {0}.",
-					new Object[] { file });
-			return new Status(IStatus.INFO, Context.PLUGIN_ID,
-					IErrorConstants.ERROR_USER_SKIPPED, message, null);
-		}
-		
-		IPath path = (new Path(file.getAbsolutePath())).removeLastSegments(1);
-		for (int i=0; i<=path.segmentCount(); i++) {
-			IPath subPath = path.uptoSegment(i);
-			File dir = new File(subPath.toOSString());
-			if (!dir.exists()) {
-				dir.mkdir();
-				installer.getInstallLog().addEntry(new InstallLogEntry(
-						InstallLog.DIRECTORY_CREATED_ENTRY, dir.getAbsolutePath()));
-			}
-		}
-		
-		OutputStream os = new FileOutputStream(file);;
-		try {
-				
-			copyStreams(content, os);
-
-			installer.getInstallLog().addEntry(new InstallLogEntry(
-					InstallLog.FILE_CREATED_ENTRY, file.getAbsolutePath()));
-	
-		}
-		finally
-		{
-			os.close();
-		}
-		
-//		file.setLastModified(lastModified);
-//		Platform.getPlatform().setFileCreationTime(file.getAbsolutePath(),lastModified);
-		
-		return Status.OK_STATUS;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.java
deleted file mode 100644
index b87aa80..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.java
+++ /dev/null
@@ -1,544 +0,0 @@
-package org.eclipse.epp.installer.internal.core.eclipse;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Properties;
-
-import org.eclipse.epp.installer.core.eclipse.EclipseVersion;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.product.IProductVersion;
-
-
-/**
- * Represents a known Eclipse based product configuration such as Rational Application
- * Developer 6.0. This class contains installation structure information such as the
- * relationship between the product directory and the Eclipse directory and how to
- * determine both the product version and the Eclipse version.
- */
-public abstract class EclipseProductType
-{
-	private static final String ECLIPSE_PRODUCT_FILENAME = ".eclipseproduct";
-	private static final String ECLIPSE_DIR_NAME = "eclipse";
-	private static final String PLUGINS_DIR_NAME = "plugins";
-
-	// private static final String ABOUT_MAPPINGS_FILE_NAME = "about.mappings";
-
-	/**
-	 * Determine the type of Eclipse based product
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @return the type of Eclipse based product or <code>UNKNOWN</code> if it could not
-	 *         be deteremined (not <code>null</code>)
-	 */
-	public static EclipseProductType getType(File productDir) {
-		if (productDir == null)
-			return null;
-
-		Properties productProps = readProperties(new File(productDir, ECLIPSE_PRODUCT_FILENAME));
-		if (productProps != null) {
-			String productId = (String) productProps.get("id");
-			String productVersion = (String) productProps.get("version");
-			if (productId != null && productVersion != null) {
-				if (productId.startsWith("ibm.") && productVersion.startsWith("7.0"))
-					return RAD70;
-			}
-			return ECLIPSE;
-		}
-		if (new File(productDir, PLUGINS_DIR_NAME).isDirectory() && new File(productDir, "startup.jar").isFile())
-			return ECLIPSE;
-
-		File eclipseDir = new File(productDir, ECLIPSE_DIR_NAME);
-		if (eclipseDir.exists()) {
-			productProps = readProperties(new File(eclipseDir, ECLIPSE_PRODUCT_FILENAME));
-			if (productProps != null) {
-				if (new File(productDir, "rationalsdp.ini").exists())
-					return RAD60;
-				return PRODUCT_WITH_ECLIPSE_SUBDIRECTORY;
-			}
-		}
-
-		return null;
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Instance
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	public EclipseProductType() {
-	}
-
-	/**
-	 * Determine the corresponding Eclipse directory for the specified product directory
-	 * for this type of Eclipse based product installation.
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @return the corresponding Eclipse directory or <code>null</code> if it cannot be
-	 *         deteremined
-	 */
-	public abstract File getEclipseDir(File productDir);
-
-	/**
-	 * Answer the properties read from the .eclipseproduct file
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 */
-	public abstract Properties getEclipseProps(File productDir);
-
-	/**
-	 * The name and version of the Eclipse based project (e.g. "Eclipse 3.1" or "Websphere
-	 * Application Developer 2.1.1")
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @param eclipseProps The properties read from the .eclipseproduct file
-	 * @return the product description (not <code>null</code>)
-	 */
-	public abstract String getDescription(File productDir, Properties eclipseProps);
-
-	/**
-	 * Answer the product version
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @param eclipseProps The properties read from the .eclipseproduct file
-	 * @return the product version (not <code>null</code>)
-	 */
-	public abstract IProductVersion getProductVersion(File productDir, Properties eclipseProps);
-
-	/**
-	 * Answer the eclipse version
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @param eclipseProps The properties read from the .eclipseproduct file
-	 * @return the product version (not <code>null</code>)
-	 */
-	public abstract EclipseVersion getEclipseVersion(File productDir, Properties eclipseProps);
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Eclipse Product Types
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	public static class BasicEclipseProductType extends EclipseProductType
-	{
-		public File getEclipseDir(File productDir) {
-			return productDir;
-		}
-
-		public Properties getEclipseProps(File productDir) {
-			return readProperties(new File(productDir, ECLIPSE_PRODUCT_FILENAME));
-		}
-
-		public String getDescription(File productDir, Properties eclipseProps) {
-			return readDescription(productDir, eclipseProps);
-		}
-
-		public IProductVersion getProductVersion(File productDir, Properties eclipseProps) {
-			IProductVersion version = readVersion(productDir, eclipseProps);
-			if (isEclipse33(productDir, eclipseProps, version))
-				return new EclipseVersion(3, 3, 0, null);
-			return version;
-		}
-
-		public EclipseVersion getEclipseVersion(File productDir, Properties eclipseProps) {
-			EclipseVersion version = readEclipseVersion(productDir);
-			if (isEclipse33(productDir, eclipseProps, version))
-				return new EclipseVersion(3, 3, 0, null);
-			return version;
-		}
-
-		/**
-		 * Determine if this is an Eclipse 3.3 milestone because milestones typically have
-		 * not updated their .eclipseproduct files or plugin versions yet.
-		 */
-		private boolean isEclipse33(File productDir, Properties eclipseProps, IProductVersion version) {
-			String value = eclipseProps.getProperty("id");
-			if (value != null && value.startsWith("org.eclipse.")) {
-				if (version.getMajor() == 3 && version.getMinor() == 2) {
-					EclipseVersion altVersion = readVersionFromPluginDir(productDir, "org.eclipse.core.resources_");
-					if (altVersion != null && altVersion.getMajor() == 3 && altVersion.getMinor() == 3)
-						return true;
-				}
-			}
-			return false;
-		}
-	}
-
-	public static class EclipseSubDirProductType extends EclipseProductType
-	{
-		public File getEclipseDir(File productDir) {
-			return new File(productDir, ECLIPSE_DIR_NAME);
-		}
-
-		public Properties getEclipseProps(File productDir) {
-			return readProperties(new File(getEclipseDir(productDir), ECLIPSE_PRODUCT_FILENAME));
-		}
-
-		public String getDescription(File productDir, Properties eclipseProps) {
-			return readDescription(getEclipseDir(productDir), eclipseProps);
-		}
-
-		public IProductVersion getProductVersion(File productDir, Properties eclipseProps) {
-			return readVersion(getEclipseDir(productDir), eclipseProps);
-		}
-
-		public EclipseVersion getEclipseVersion(File productDir, Properties eclipseProps) {
-			return readEclipseVersion(getEclipseDir(productDir));
-		}
-	}
-
-	/**
-	 * Standard Eclipse installation
-	 */
-	public static final EclipseProductType ECLIPSE = new BasicEclipseProductType();
-
-	/**
-	 * Eclipse based product installation with "eclipse" subdirectory
-	 */
-	private static final EclipseProductType PRODUCT_WITH_ECLIPSE_SUBDIRECTORY = new EclipseSubDirProductType();
-
-	/**
-	 * Rational Application Developer 7.0
-	 */
-	private static final EclipseProductType RAD70 = new BasicEclipseProductType() {
-		public EclipseVersion getEclipseVersion(File productDir, Properties eclipseProps) {
-			return new EclipseVersion(3, 2, 1, null);
-		}
-	};
-
-	/**
-	 * Rational Application Developer 6.0
-	 */
-	private static final EclipseProductType RAD60 = new EclipseSubDirProductType() {
-		public String getDescription(File productDir, Properties eclipseProps) {
-			return "Rational Studio 6.0";
-		}
-
-		public IProductVersion getProductVersion(File productDir, Properties eclipseProps) {
-			return new EclipseVersion(6, 0, 0, null);
-		}
-	};
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Utility Methods
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Read the name and version from the eclipse properties
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @param eclipseProperties the properties read from the .eclipseproduct file or
-	 *            <code>null</code> if no such file exists for the specified product
-	 *            installation
-	 * @return the description comprised of the name and version (not <code>null</code>)
-	 */
-	static String readDescription(File productDir, Properties eclipseProperties) {
-		String name = null;
-		String version = null;
-		if (eclipseProperties != null) {
-			name = (String) eclipseProperties.get("name");
-			version = (String) eclipseProperties.get("version");
-		}
-		if (name == null)
-			name = productDir.getName();
-		if (version == null)
-			return name;
-		return name + " " + version;
-	}
-
-	/**
-	 * Read the version from the eclipse properties
-	 * 
-	 * @param productDir The product directory. For the typical Eclipse installation, this
-	 *            is the same as the Eclipse directory but for some products built on
-	 *            Eclipse such as IBM RAD 6.0, the Eclipse is a subdirectory of the
-	 *            product directory (e.g. eclipseDir = productDir/eclipse).
-	 * @param eclipseProperties the properties read from the .eclipseproduct file or
-	 *            <code>null</code> if no such file exists for the specified product
-	 *            installation
-	 * @return the version or {@link EclipseVersion#UNKNOWN} if it cannot be deteremined
-	 *         (not <code>null</code>)
-	 */
-	static IProductVersion readVersion(File productDir, Properties eclipseProps) {
-		String value = null;
-		if (eclipseProps != null) {
-			value = eclipseProps.getProperty("version");
-			if (value != null && value.length() != 0) {
-				EclipseVersion version = EclipseVersion.fromString(value);
-				if (version != null)
-					return version;
-			}
-		}
-		return EclipseVersion.UNKNOWN;
-	}
-
-	/**
-	 * Read properties from the specified file.
-	 * 
-	 * @param propFile the properties file
-	 * @return the properties read from the file or <code>null</code> if the file does
-	 *         not exist or the properties could not be read
-	 */
-	static Properties readProperties(File propFile) {
-		if (propFile == null) {
-			if (Context.VERBOSE) {
-				System.out.println("readProperties: propFile is null");
-			}
-			return null;
-		}
-		FileInputStream stream;
-		try {
-			stream = new FileInputStream(propFile);
-		}
-		catch (FileNotFoundException e) {
-			if (Context.VERBOSE) {
-				System.out.println(" file " + propFile.getAbsolutePath() + " is not found");
-			}
-			return null;
-		}
-		Properties props;
-		try {
-			props = new Properties();
-			props.load(stream);
-			if (Context.VERBOSE) {
-				if (props.isEmpty()) {
-					System.out.println(" properties file " + propFile.getAbsolutePath() + " is empty" );
-				} 
-				else {
-					System.out.println(" Properties read from " + propFile.getAbsolutePath());
-					Enumeration e = props.keys();
-					while (e.hasMoreElements()) {
-						String key = e.nextElement().toString();
-						String value = props.getProperty(key);
-						System.out.println("  " + key + " = " + value);
-					}
-					
-				}
-			}
-
-		}
-		catch (IOException e) {
-			System.out.println("Failed to load properties from " + propFile.getPath());
-			e.printStackTrace();
-			return null;
-		}
-		finally {
-			try {
-				stream.close();
-			}
-			catch (IOException e) {
-				System.out.println("Failed to close " + propFile.getPath());
-				e.printStackTrace();
-			}
-		}
-		return props;
-	}
-
-	/**
-	 * Determine the version of Eclipse installed in the specified directory based upon
-	 * the installed plugins
-	 * 
-	 * @param eclipseDir the Eclipse directory
-	 * @return the eclipse version or {@link EclipseVersion#UNKNOWN} if it cannot be
-	 *         deteremined (not <code>null</code>)
-	 */
-	static EclipseVersion readEclipseVersion(File eclipseDir) {
-		if (eclipseDir == null || !eclipseDir.exists())
-			return EclipseVersion.UNKNOWN;
-
-		// File productFile = new File(eclipseDir, ".eclipseproduct");
-		// EclipseVersion productVersion = readVersionFromProductFile(productFile);
-		EclipseVersion pluginVersion;
-		// pluginVersion = readVersionFromPluginDir(eclipseDir, "org.eclipse.sdk_");
-		// if (pluginVersion == null)
-		pluginVersion = readVersionFromPluginDir(eclipseDir, "org.eclipse.core.runtime_");
-
-		// Detect Eclipse 2.0.x embedded in WSAD 5.0.x properly
-		if (pluginVersion == null)
-			pluginVersion = readVersionFromPluginDir(eclipseDir, "org.eclipse.ui_");
-
-		// In Eclipse 3.2 milestones, the .eclipseproduct file is wrong
-		// if (productVersion != null && pluginVersion != null)
-		// return productVersion.compareTo(pluginVersion) >= 0 ? productVersion :
-		// pluginVersion;
-		//	
-		// if (productVersion != null)
-		// return productVersion;
-
-		if (pluginVersion != null)
-			return pluginVersion;
-
-		return EclipseVersion.UNKNOWN;
-	}
-
-	// private static EclipseVersion readVersionFromProductFile(File file) {
-	// if (file == null || !file.exists())
-	// return null;
-	// LineNumberReader reader = null;
-	// try {
-	// String name = null;
-	// String id = null;
-	// String version = null;
-	// reader = new LineNumberReader(new BufferedReader(new FileReader(file)));
-	// while (true) {
-	// String line = reader.readLine();
-	// if (line == null)
-	// break;
-	// int index = line.indexOf('=');
-	// if (index < 1)
-	// continue;
-	// String key = line.substring(0, index).trim();
-	// if (key.equals("name")) {
-	// name = line.substring(index + 1).trim();
-	// if (version != null)
-	// break;
-	// }
-	// if (key.equals("id")) {
-	// id = line.substring(index + 1).trim();
-	// if (version != null)
-	// break;
-	// }
-	// if (key.equals("version")) {
-	// version = line.substring(index + 1).trim();
-	// if (name != null)
-	// break;
-	// }
-	// }
-	// if (name != null && name.equals("Eclipse Platform") && id != null &&
-	// id.equals("org.eclipse.platform")) {
-	// if (version != null && version.length() != 0)
-	// return EclipseVersion.fromString(version);
-	// return null;
-	// }
-	// }
-	// catch (IOException e) {
-	// // TODO [author=Dan] log the exception
-	// }
-	// finally {
-	// try {
-	// if (reader != null)
-	// reader.close();
-	// }
-	// catch (IOException e) {
-	// // TODO [author=Dan] log the exception
-	// }
-	// }
-	// return null;
-	// }
-
-	/**
-	 * Read the version encoded in the specified plugin's directory or jar name
-	 * 
-	 * @param eclipseDir the eclipse directory
-	 * @param pluginDirPrefix the plugin's identifier
-	 * @return the version or <code>null</code> if it cannot be deteremined
-	 */
-	static EclipseVersion readVersionFromPluginDir(File eclipseDir, String pluginDirPrefix) {
-		File pluginsDir = new File(eclipseDir, PLUGINS_DIR_NAME);
-		String[] names = pluginsDir.list();
-		Arrays.sort(names);
-		if (names == null)
-			return null;
-		for (int i = 0; i < names.length; i++) {
-			String eachName = names[i];
-			if (eachName.startsWith(pluginDirPrefix)) {
-				if (Context.VERBOSE) {
-					System.out.println("ReadVersionFromPluginDir: found plugin " + eachName);
-				}
-
-				String verText = eachName.substring(pluginDirPrefix.length());
-
-				int index = verText.indexOf('.');
-				if (index == -1)
-					return null;
-				int vMajor = Integer.parseInt(verText.substring(0, index));
-				verText = verText.substring(index + 1);
-
-				index = verText.indexOf('.');
-				if (index == -1)
-					return null;
-				int vMinor = Integer.parseInt(verText.substring(0, index));
-				verText = verText.substring(index + 1);
-
-				index = verText.indexOf('.');
-				if (index == -1)
-					index = verText.length();
-				int vService = Integer.parseInt(verText.substring(0, index));
-
-				String buildId = "";
-				// if (vMajor >= 3) {
-				// File mapFile = new File(eachDir, ABOUT_MAPPINGS_FILE_NAME);
-				// if (mapFile.exists()) {
-				// buildId = readBuildIdFromMapFile(mapFile);
-				// }
-				// }
-
-				EclipseVersion ev = new EclipseVersion(vMajor, vMinor, vService, buildId);
-				if (Context.VERBOSE) {
-					System.out.println("ReadVersionFromPluginDir: returning version " + ev);
-				}
-				return ev;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Read the build identifier from the specified file.
-	 * 
-	 * @param mapFile the file containing the build identifier (not <code>null</code>)
-	 * @return the build identifier or "???" if it cannot be determined (not
-	 *         <code>null</code>)
-	 */
-	// static String readBuildIdFromMapFile(File mapFile) {
-	// InputStream stream = null;
-	// try {
-	// stream = new BufferedInputStream(new FileInputStream(mapFile));
-	// return EclipseUtils.readBuildId(stream);
-	// }
-	// catch (IOException e) {
-	// System.out.println("Failed to read " + mapFile.getPath());
-	// e.printStackTrace();
-	// }
-	// finally {
-	// if (stream != null) {
-	// try {
-	// stream.close();
-	// }
-	// catch (IOException e) {
-	// System.out.println("Failed to close " + mapFile.getPath());
-	// e.printStackTrace();
-	// }
-	// }
-	// }
-	// return EclipseVersion.UNKNOWN_VERSION_TEXT;
-	// }
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.java
deleted file mode 100644
index 2718fae..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package org.eclipse.epp.installer.internal.core.eclipse;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.epp.installer.core.eclipse.EclipseVersion;
-
-
-public class EclipseUtils {
-
-	/**
-	 * A mapping from build identifer to the text describing the 3.0 version
-	 * (e.g. "200312182000" ==> "M6")
-	 * @see #getMilestone(String)
-	 */
-	private static Map buildIdMap;
-
-	private EclipseUtils() {
-		super();
-	}
-
-	/**
-	 * Determine the milestone from the build identifier
-	 * @param buildId the build identifier
-	 * @return the milestone or the build identifier if the milestone cannot be determined
-	 */
-	public static String getMilestone(String buildId) {
-		if (buildId == null)
-			return null;
-		if (buildIdMap == null) {
-			buildIdMap = new HashMap();
-			
-			// Eclipse 3.0 Milestones
-			buildIdMap.put("200312182000", "M6");
-			buildIdMap.put("200402122000", "M7");
-			buildIdMap.put("200403261517", "M8");
-			buildIdMap.put("200405211200", "M9");
-			buildIdMap.put("200405290105", "RC1");
-			buildIdMap.put("200406111814", "RC2");
-			buildIdMap.put("200406192000", "RC3");
-			
-			// Eclipse 3.0 GA
-			buildIdMap.put("200406251208", "");
-			
-			// Eclipse 3.0.1 GA
-			buildIdMap.put("200409161125", "");
-			
-			// Eclipse 3.0.2 GA
-			buildIdMap.put("200503110845", "");
-			
-			// Eclipse 3.1 Milestones
-			buildIdMap.put("200408122000", "M1"); // M1
-			buildIdMap.put("200409240800", "M2"); // M2
-			buildIdMap.put("200411050810", "M3"); // M3
-			buildIdMap.put("200412162000", "M4"); // M4
-			buildIdMap.put("I20050218-1600", "M5"); // M5
-			buildIdMap.put("200502181600", "M5"); // M5
-			buildIdMap.put("I20050219-1500", "M5"); // M5a
-			buildIdMap.put("200502191500", "M5"); // M5a
-			buildIdMap.put("I20050401-1645", "M6"); // M6
-			buildIdMap.put("200504011645", "M6"); // M6
-			buildIdMap.put("I20050513-1415", ""); // M7
-			buildIdMap.put("200505131415", ""); // M7
-			buildIdMap.put("I20050527-1300", ""); // RC1
-			buildIdMap.put("200505271300", ""); // RC1
-			buildIdMap.put("I20050610-1757", ""); // RC2
-			buildIdMap.put("200506101757", ""); // RC2
-			buildIdMap.put("I20050617-1618", ""); // RC3
-			buildIdMap.put("200506171618", ""); // RC3
-			buildIdMap.put("I20050624-1300", ""); // RC4
-			buildIdMap.put("200506241300", ""); // RC4
-			
-			// Eclipse 3.1 GA
-			buildIdMap.put("I20050627-1435", ""); // 3.1
-			buildIdMap.put("200506271435", ""); // 3.1
-	
-			// Eclipse 3.1.1 GA
-			buildIdMap.put("M20050929-0840", ""); // 3.1.1
-			buildIdMap.put("200509290840", ""); // 3.1.1
-	
-			// Eclipse 3.2 Milestones
-			buildIdMap.put("I20050811-1530", ""); // M1
-			buildIdMap.put("200508111530", ""); // M1
-			buildIdMap.put("I20050923-1000", ""); // M2
-			buildIdMap.put("200509231000", ""); // M2
-			buildIdMap.put("I20051102-1600", ""); // M3
-			buildIdMap.put("200511021600", ""); // M3
-			buildIdMap.put("I20051215-1506", ""); // M4
-			buildIdMap.put("200512151506", ""); // M4
-		}
-		String milestone = (String) buildIdMap.get(buildId);
-		if (milestone == null)
-			return buildId;
-		if (milestone.length() == 0)
-			return null;
-		return milestone;
-	}
-
-	/**
-	 * Read the build identifier from the specified stream.
-	 * @param stream the stream containing the build identifier
-	 * @return the build identifier or "???" if it cannot be determined (not <code>null</code>)
-	 */
-	public static String readBuildId(InputStream stream) throws IOException {
-		LineNumberReader reader = new LineNumberReader(new InputStreamReader(stream));
-		while (true) {
-			String line = reader.readLine();
-			if (line == null)
-				return EclipseVersion.UNKNOWN_VERSION_TEXT;
-			if (line.startsWith("0="))
-				return line.substring(2).trim();
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.java
deleted file mode 100644
index 069d9ca..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.eclipse.epp.installer.internal.core.eclipse;
-
-import org.eclipse.epp.installer.core.eclipse.EclipseVersion;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class EclipseVersionRange {
-
-	public static final String RANGE_FLOOR_INCLUDED_SYMBOL = "[";
-	public static final String RANGE_FLOOR_NOT_INCLUDED_SYMBOL = "(";
-	public static final String RANGE_CEILING_INCLUDED_SYMBOL = "]";
-	public static final String RANGE_CEILING_NOT_INCLUDED_SYMBOL = ")";
-	public static final String RANGE_TOKEN_SYMBOL = ",";
-	
-	public EclipseVersion floor;
-	public EclipseVersion ceiling;
-	public boolean floorIncluded;
-	public boolean ceilingIncluded;
-	
-	private EclipseVersionRange() {
-	}
-	
-	public static EclipseVersionRange parseRangeString(String rangeString) {
-		EclipseVersionRange range = new EclipseVersionRange();
-
-		int internalBegin;
-		
-		// parse floor
-		int indexFloor = rangeString.indexOf(RANGE_FLOOR_INCLUDED_SYMBOL);
-		if (indexFloor < 0) {
-			indexFloor = rangeString.indexOf(RANGE_FLOOR_NOT_INCLUDED_SYMBOL);
-			if (indexFloor < 0) {
-				return null;
-			}
-			internalBegin = indexFloor + RANGE_FLOOR_NOT_INCLUDED_SYMBOL.length();
-			range.floorIncluded = false;
-		} else {
-			internalBegin = indexFloor + RANGE_FLOOR_INCLUDED_SYMBOL.length();
-			range.floorIncluded = true;
-		}
-
-		// parse ceiling
-		int indexCeiling = rangeString.indexOf(RANGE_CEILING_INCLUDED_SYMBOL);
-		if (indexCeiling < 0) {
-			indexCeiling = rangeString.indexOf(RANGE_CEILING_NOT_INCLUDED_SYMBOL);
-			if (indexFloor < 0) {
-				return null;
-			}
-			range.ceilingIncluded = false;
-		} else {
-			range.ceilingIncluded = true;
-		}
-		
-		// check that floor is going before ceiling
-		if (indexFloor >= indexCeiling) {
-			return null;
-		}
-		
-		String rangeInternal = rangeString.substring(internalBegin, indexCeiling);
-		String[] rangeVersions = rangeInternal.split(RANGE_TOKEN_SYMBOL);
-		if (rangeVersions == null || rangeVersions.length != 2) {
-			return null;
-		}
-		
-		range.floor = EclipseVersion.fromString(rangeVersions[0]);
-		range.ceiling = EclipseVersion.fromString(rangeVersions[1]);
-			// TODO: check for error handling
-		
-		return range;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.java
deleted file mode 100644
index 999e45e..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.IBackupManager;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class BackupFileOperation extends InstallOperation {
-
-	private File file;
-	private boolean temporary;
-	private IBackupManager manager;
-	private InstallOptions options;
-	
-	public BackupFileOperation(InstallOptions options, File file, IBackupManager manager, boolean temporary) {
-		if (options == null || manager == null || file == null) {
-			throw new IllegalArgumentException("file can't be null");
-		}
-		this.file = file;
-		this.manager = manager;
-		this.temporary = temporary;
-		this.options = options;
-	}
-
-	/**
-	 * Method getErrorMessage.
-	 * 
-	 * @return String
-	 */
-	private String getErrorMessage() {
-		String message = "Failed to backup file: " + file.getAbsolutePath();
-		return message;
-	}
-
-	private String getLogMessage(File storedFile) {
-		StringBuffer result = new StringBuffer("");
-
-		result.append(file.getAbsolutePath());
-		result.append(InstallLogEntry.BACKUP_ENTRY_TOKEN);
-		result.append(storedFile.getAbsolutePath());
-		result.append(InstallLogEntry.BACKUP_ENTRY_TOKEN);
-		result.append(Boolean.toString(temporary));
-		
-		return result.toString();
-	}
-
-	/**
-	 * Method run.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		if (!manager.isInited()) {
-			File installDir = new File(options
-					.getString(InstallOptions.OPTION_INSTALL_DIR));
-			manager.setInstallDir(installDir);
-			manager.setRestoreTemporary(options.isInstall());
-			manager.setInited(true);
-		}
-		
-		if (file.exists()) {
-			File storedFile = manager.storeFile(file, temporary);
-			if (storedFile != null) {
-				installer.getInstallLog().addEntry(
-						new InstallLogEntry(InstallLog.FILE_BACKUPED_ENTRY,
-								getLogMessage(storedFile)));
-			} else {
-				return new Status(Status.WARNING, Context.PLUGIN_ID, 0,
-						getErrorMessage(), null);
-			}
-		} else {
-			return new Status(Status.WARNING, Context.PLUGIN_ID, 0,
-					getErrorMessage(), null);
-		}
-
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Backing up file {0}.",
-				new String[] { file.getAbsolutePath() });
-	}
-
-	public boolean equals(Object o) {
-		if (o instanceof BackupFileOperation) {
-			BackupFileOperation bfo = (BackupFileOperation) o;
-			return file.equals(bfo.file);
-		}
-		return false;
-	}
-
-	public int hashCode() {
-		return file.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.java
deleted file mode 100644
index fa62d75..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class CheckEclipseRunningOperation extends InstallOperation {
-
-	private EclipseInstallation installation;
-
-	public CheckEclipseRunningOperation(EclipseInstallation installation) {
-		if (installation == null) {
-			throw new IllegalArgumentException();
-		}
-		this.installation = installation;
-	}
-
-	/**
-	 * Method getErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getErrorStatus() {
-		String message = "Eclipse installation '"
-			+ installation.getEclipseDir() + "' is running"; 
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_ECLIPSE_ERROR, message,
-				null);
-	}
-
-	protected IStatus run(Context installer) {
-		if (installation.isRunning()) {
-			return getErrorStatus();
-		}
-		return Status.OK_STATUS;
-	}
-	
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Checking if Eclipse {0} is running.",
-				new String[] { installation.getEclipseDir().getAbsolutePath() });
-	}
-	
-	public boolean equals(Object o) {
-		if(o instanceof CheckEclipseRunningOperation) {
-			CheckEclipseRunningOperation cero = (CheckEclipseRunningOperation)o;
-			return installation.equals(cero.installation);
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return installation.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.java
deleted file mode 100644
index c5af84b..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class CleanDirectoryOperation extends InstallOperation implements ISequence {
-
-	private File dir;
-	private String[] exclusions;
-	private boolean keepFolder;
-	private int backupSettings;
-	private InstallOptions options;
-
-	public CleanDirectoryOperation(InstallOptions options, File dir) {
-		this(options, dir, null, IBackupOptions.OPTION_DO_BACKUP);
-	}
-	
-	public CleanDirectoryOperation(InstallOptions options, File dir, int settings) {
-		this(options, dir, null, settings);
-	}
-	
-	public CleanDirectoryOperation(InstallOptions options, File dir, String[] exclude, int settings) {
-		this(options, dir, exclude, false, settings);
-	}
-
-	public CleanDirectoryOperation(InstallOptions options, File dir, boolean keepFolder, int settings) {
-		this(options, dir, null, keepFolder, settings);
-	}
-
-	public CleanDirectoryOperation(InstallOptions options, File dir, String[] exclusions, boolean keepFolder, int settings) {
-		if (options == null || dir == null) {
-			throw new IllegalArgumentException();
-		}
-		this.options = options;
-		this.dir = dir;
-		this.exclusions = exclusions;
-		this.keepFolder = keepFolder;
-		this.backupSettings = settings;
-	}
-	
-	private boolean isExcluded(File file) {
-		if(exclusions == null) return false;
-		for(int i=0;i<exclusions.length;i++)
-			if(file.getName().equals(exclusions[i])) return true;
-		return false;
-	}
-
-	protected void prepare() {
-		File[] sub = dir.listFiles();
-		if (sub != null) {
-			for (int i = 0; i < sub.length; i++) {
-				File curFile = sub[i];
-				if(!isExcluded(curFile)) {
-					if (curFile.isDirectory()) 
-						add(new CleanDirectoryOperation(options, curFile, backupSettings));
-					else
-						add(new DeleteFileOperation(options, curFile, backupSettings));					
-				}
-			}
-		}
-		if(!keepFolder)
-			add(new DeleteFileOperation(options, dir, backupSettings));
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Cleaning directory {0}.",
-				new String[] { dir.getAbsolutePath() });
-	}
-	
-	public boolean equals(Object o) {
-		if(o instanceof CleanDirectoryOperation) {
-			CleanDirectoryOperation cdo = (CleanDirectoryOperation)o;
-			return dir.equals(cdo.dir);
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return dir.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.java
deleted file mode 100644
index 8510a7f..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.eclipse.EclipseVersion;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.core.product.IProductVersion;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class CleanEclipseConfigurationOperation extends InstallOperation implements ISequence {
-
-	private static final IProductVersion ECLIPSE_VER_3_0_0 = new EclipseVersion(3, 0, 0, "");
-	
-	private EclipseInstallation installation;
-	private InstallOptions options;
-	private boolean doLogOperation;
-	
-	private final int backupSettings = IBackupOptions.OPTION_NO_BACKUP;
-	
-	/**
-	 * Constructor for CleanEclipseConfigurationOperation.
-	 * @param options
-	 */
-	public CleanEclipseConfigurationOperation(InstallOptions options, EclipseInstallation installation) {
-		this(options, installation, true);
-	}
-
-	public CleanEclipseConfigurationOperation(InstallOptions options, EclipseInstallation installation, boolean doLogOperation) {
-		if (installation == null) 
-			throw new IllegalArgumentException();
-		
-		this.options = options;
-		this.installation = installation;
-		this.doLogOperation = doLogOperation;
-	}
-	
-	private void prepareForEclipse3() {
-		File eclipseConfigDir = installation.getConfigurationDir();
-		if (eclipseConfigDir.exists()) {
-
-			File eclipseConfigCoreDir = new File(eclipseConfigDir, "org.eclipse.core.runtime");
-			if (eclipseConfigCoreDir.exists()) {
-				String[] exclusions = { ".keyring" };
-				// TODO: this is a temporary solution, need to improve
-				// exceptions mechanism to some kind of filter mechanism
-				add(new CleanDirectoryOperation(options, eclipseConfigCoreDir, exclusions, true, backupSettings));
-			}
-
-			File eclipseConfigOsgiDir = new File(eclipseConfigDir, "org.eclipse.osgi");
-			if (eclipseConfigOsgiDir.exists()) {
-				add(new CleanDirectoryOperation(options, eclipseConfigOsgiDir, backupSettings));
-			}
-
-			File eclipseConfigUpdateDir = new File(eclipseConfigDir, "org.eclipse.update");
-			if (eclipseConfigUpdateDir.exists()) {
-				String[] exclusions;
-				IProductVersion version = installation.getEclipseVersion();
-				// Preserve the platform.xml file for Eclipse 3.2 and beyond... see ModifyPlatformXMLOperationrun(Context)
-				if (version.getMajor() > 3 || (version.getMajor() == 3 && version.getMinor() >= 2))
-					exclusions = new String[]{ "platform.xml", "bookmarks.xml" };
-				else
-					exclusions = new String[]{ };
-				// TODO: this is a temporary solution, need to improve
-				// exceptions mechanism to some kind of filter mechanism
-				add(new CleanDirectoryOperation(options, eclipseConfigUpdateDir, exclusions, true, backupSettings));
-			}
-		}
-	}
-	
-	protected void prepare() throws Exception {
-
-		add(new CheckEclipseRunningOperation(installation));
-
-		IProductVersion version = installation.getEclipseVersion();
-		if (version.compareTo(ECLIPSE_VER_3_0_0) >= 0) {
-			prepareForEclipse3();
-		}
-		// TODO: add prepare for other Eclipse versions
-	}
-
-	private String getLogMessage() {
-		StringBuffer result = new StringBuffer("");
-
-		result.append(installation.getEclipseDir().getAbsolutePath());
-		
-		return result.toString();
-	}
-	
-	/**
-	 * Method run.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		if (doLogOperation)
-			installer.getInstallLog().addEntry(
-					new InstallLogEntry(InstallLog.ECLIPSE_CONFIG_CLEANED_ENTRY,
-							getLogMessage()));
-
-		return Status.OK_STATUS;
-	}
-	
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Cleaning Eclipse installation configuration information...";
-	}
-	
-	public boolean equals(Object o) {
-		if(o instanceof CleanEclipseConfigurationOperation) {
-			CleanEclipseConfigurationOperation ceco = (CleanEclipseConfigurationOperation)o;
-			return installation.equals(ceco.installation);
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return installation.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.java
deleted file mode 100644
index 22c4014..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.Util;
-
-/**
- * Operation used to copy one file into another.
- */
-public class CopyFileOperation extends InstallOperation {
-
-	/**
-	 * Source file.
-	 */
-	private File src;
-
-	/**
-	 * Destination file.
-	 */
-	private File dest;
-
-	/**
-	 * Construct CopyFileOperation from destination and source files.
-	 * 
-	 * @param src
-	 *            source file.
-	 * @param dest
-	 *            destination file.
-	 */
-	public CopyFileOperation(File src, File dest) {
-		if (src == null || dest == null) {
-			throw new IllegalArgumentException();
-		}
-		this.src = src;
-		this.dest = dest;
-	}
-
-	/**
-	 * Execute copy operation.
-	 * 
-	 * @param installer
-	 *            installer context.
-	 * @return IStatus execution status. Returns
-	 *         <ul>
-	 *         <li><code>IStatus.ERROR</code> then failed.</li>
-	 *         <li><code>IStatus.INFO</code> then user skipped file
-	 *         overwrite.</li>
-	 *         <li><code>Status.OK_STATUS</code> then operation complited
-	 *         successful.</li>
-	 *         </ul>
-	 */
-	protected IStatus run(Context installer) {
-		InputStream is = null;
-		try {
-			is = new FileInputStream(src);			
-			long lm = src.lastModified();
-			return Util.createFileFromStream(installer, dest, is, lm );
-		} catch (IOException e) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Copy file failed", e);
-		}
-	}
-
-	/**
-	 * Return operation name.
-	 * 
-	 * @return String operation name.
-	 */
-	public String toString() {
-		return MessageFormat.format("Copying file {0} to {1}.", new Object[] {
-				src, dest });
-	}
-
-	public boolean equals(Object o) {
-		if(o instanceof CopyFileOperation) {
-			CopyFileOperation cfo = (CopyFileOperation)o;
-			return (src.equals(cfo.src) && dest.equals(cfo.dest));
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return src.hashCode() ^ dest.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.java
deleted file mode 100644
index 15ca9db..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-import org.eclipse.epp.installer.internal.core.Util;
-
-/**
- * Operation used to copy all entrys from selected zip file with support of
- * excluding some nodes.
- */
-public class CopyZipOperation extends InstallOperation {
-
-	/**
-	 * Source zip file.
-	 */
-	private ZipFile src;
-
-	/**
-	 * Destination file.
-	 */
-	private File dest;
-
-	/**
-	 * Exclusion pattern. Used to filter nodes.
-	 */
-	private String exclusionPattern;
-
-	/**
-	 * Construct new instanceof CopyZipOperation with source zip file,
-	 * destination file and exclusion pattern.
-	 * 
-	 * @param src
-	 *            ZipFile
-	 * @param dest
-	 *            File
-	 * @param exlusionPattern
-	 *            String
-	 */
-	public CopyZipOperation(ZipFile src, File dest, String exlusionPattern) {
-		if (src == null || dest == null || exlusionPattern == null) {
-			throw new IllegalArgumentException();
-		}
-		this.src = src;
-		this.dest = dest;
-		this.exclusionPattern = exlusionPattern;
-	}
-
-	/**
-	 * Return true if selected node are need to be copied into destination. Use
-	 * exclusion pattern to filter nodes.
-	 * 
-	 * TODO: at the moment pattern work only as startsWith
-	 * 
-	 * @param name
-	 *            String
-	 * @return boolean
-	 */
-	private boolean included(String name) {
-		return !name.startsWith(exclusionPattern);
-	}
-
-	/**
-	 * Executes operation.
-	 * 
-	 * @throws IOException
-	 */
-	private void doRun() throws IOException {
-		ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(dest));
-		Enumeration entries = src.entries();
-		while (entries.hasMoreElements()) {
-			ZipEntry entry = (ZipEntry) entries.nextElement();
-			String name = entry.getName();
-			if (included(name)) {
-				InputStream is = src.getInputStream(entry);
-				zos.putNextEntry(new ZipEntry(name));
-				Util.copyStreams(is, zos);
-				zos.closeEntry();
-				is.close();
-			}
-		}
-		zos.close();
-	}
-
-	/**
-	 * Executes operation.
-	 * 
-	 * TODO: Need to add code to investigate errors.
-	 * 
-	 * @param installer
-	 *            install context.
-	 * @return IStatus execution status.
-	 */
-	protected IStatus run(Context installer) {
-		if (dest.exists())
-			if (!dest.delete()) {
-				return new Status(Status.WARNING, Context.PLUGIN_ID, 0,
-						"Create Zip failed: can't delete file "
-								+ dest.getAbsolutePath(), null);
-			}
-
-		try {
-			doRun();
-		} catch (IOException e) {
-			// rerun again - TODO investigate later
-			try {
-				doRun();
-			} catch (IOException ioe) {
-				return new Status(Status.WARNING, Context.PLUGIN_ID, 0,
-						"Create Zip failed: can't delete file "
-								+ dest.getAbsolutePath(), null);
-			}
-		}
-
-		installer.getInstallLog().addEntry(
-				new InstallLogEntry(InstallLog.FILE_CREATED_ENTRY, dest
-						.getAbsolutePath()));
-
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Return string name of this operation.
-	 * 
-	 * @return String name of this operation.
-	 */
-	public String toString() {
-		return MessageFormat.format("Creating archive {0}.",
-				new String[] { dest.getAbsolutePath() });
-	}
-
-	public boolean equals(Object o) {
-		if (o instanceof CopyZipOperation) {
-			CopyZipOperation czo = (CopyZipOperation) o;
-			return (src.equals(czo.src) && dest.equals(czo.dest) && exclusionPattern
-					.equals(czo.exclusionPattern));
-		}
-		return false;
-	}
-
-	public int hashCode() {
-		return src.hashCode() ^ dest.hashCode() ^ exclusionPattern.hashCode();
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.java
deleted file mode 100644
index 101ada9..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-/**
- * Create directory operation
- */
-public class CreateDirectoryOperation extends InstallOperation {
-
-	private File directory;
-
-	/**
-	 * Constructor for CreateDirectoryOperation.
-	 * @param directory File
-	 */
-	public CreateDirectoryOperation(File directory) {
-		this.directory = directory;
-	}	
-	
-	/**
-	 * Method getErrorStatus.
-	 * @return IStatus
-	 */
-/*	private IStatus getErrorStatus() {
-		String message = MessageFormat.format(
-				"Can not make directory: {0}",
-				new Object[] { directory });
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_CANNOT_CREATE_DIRECTORY, message,
-				null);		
-	}
-*/
-	/**
-	 * Method getErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getWarningStatus() {
-		String message = MessageFormat.format(
-				"Can not make directory: {0}",
-				new Object[] { directory });
-		return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_CANNOT_CREATE_DIRECTORY, message,
-				null);		
-	}
-
-	
-	/**
-	 * Method run.
-	 * @param installer Context
-	 * @return IStatus
-	 */
-	
-	protected IStatus run(Context installer) {
-		if (!directory.exists()) {
-			if (Platform.getOS()==Platform.OS_WIN32)
-				if (directory.getAbsolutePath().length()>256)
-				{
-					if(installer.confirm(IActionConstants.CREATE_DIRECTORY,"The absolute path of directory\n"+"{0}\nis more than 260 characters.\nDo you want to skip it?",new Object[]{directory}))
-						return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-								IErrorConstants.ERROR_USER_SKIPPED,MessageFormat.format("Skipped directory {0}.",
-										new Object[] { directory }) , null);
-					
-				}
-		
-			
-			
-			if (!directory.mkdirs()) {
-							
-							
-				return getWarningStatus();
-			}
-			installer.getInstallLog().addEntry(new InstallLogEntry(
-			InstallLog.DIRECTORY_CREATED_ENTRY, directory
-					.getAbsolutePath()));
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method hashCode.
-	 * @return int
-	 */
-	public int hashCode() {
-		return directory.hashCode();
-	}
-
-	/**
-	 * Method equals.
-	 * @param o Object
-	 * @return boolean
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof CreateDirectoryOperation) {
-			CreateDirectoryOperation cdo = (CreateDirectoryOperation) o;
-			return directory.equals(cdo.directory);
-		}
-		return false;
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Creating directory {0}.",
-				new String[] { directory.getAbsolutePath() });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.java
deleted file mode 100644
index 970a7db..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IActionConstants;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-/**
- * Create a file if it does not already exist. If the file already exists, then ask the
- * user for permission to overwrite the file but take no additional action. This operation
- * is used as a prerequesite for other operations that actually write content to the file.
- */
-public class CreateFileOperation extends InstallOperation {
-
-	private File file;
-	private boolean doLogOperation;
-
-	/**
-	 * Constructor for CreateFileOperation.
-	 * @param directory File
-	 */
-	public CreateFileOperation(File file) {
-		this(file, true);
-	}
-
-	public CreateFileOperation(File file, boolean doLogOperation) {
-		this.file = file;
-		this.doLogOperation = doLogOperation;
-	}
-
-	
-	/**
-	 * Method getErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getErrorStatus() {
-		String message = MessageFormat.format(
-				"Can not create file: {0}",
-				new Object[] { file });
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_CANNOT_CREATE_FILE, message,
-				null);		
-	}
-
-	
-	/**
-	 * Method getErrorStatus.
-	 * @return IStatus
-	 */
-	private IStatus getWarningStatus() {
-		String message = MessageFormat.format(
-				"Can not create file: {0}",
-				new Object[] { file });
-		return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_CANNOT_CREATE_FILE, message,
-				null);		
-	}
-	/**
-	 * Create empty file if it does not exists.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-
-		if (file.exists()) {
-			if (!installer.confirm(IActionConstants.OVERWRITE_FILE,
-					"Overwrite file {0}?", new Object[] { file })) { 
-			return getErrorStatus();
-			}
-			
-			// If file already exists... then we are done
-			return Status.OK_STATUS;
-		}
-		
-		if (Platform.getOS()==Platform.OS_WIN32)
-			if (file.getAbsolutePath().length()>260)
-			{
-				
-				
-				if(installer.confirm(IActionConstants.CREATE_FILE,"The absolute path of file\n"+"{0}\nis more than 260 characters.\nDo you want to skip it?",new Object[]{file}))
-					return new Status(IStatus.WARNING, Context.PLUGIN_ID,
-							IErrorConstants.ERROR_USER_SKIPPED,MessageFormat.format("Skipped file {0}.",
-									new Object[] { file }) , null);
-				
-			}
-		
-		
-		try {
-			if (file.createNewFile()) {
-				if (doLogOperation) {
-					installer.getInstallLog().addEntry(new InstallLogEntry(
-					InstallLog.FILE_CREATED_ENTRY, file.getAbsolutePath()));
-				}
-			}else
-			{
-				return this.getWarningStatus();
-				
-				
-			}
-			return Status.OK_STATUS;
-		} catch (IOException e) {
-			return getErrorStatus();
-		}
-	}
-
-	/**
-	 * Method hashCode.
-	 * 
-	 * @return int
-	 */
-	public int hashCode() {
-		return file.hashCode();
-	}
-
-	/**
-	 * Method equals.
-	 * @param o Object
-	 * @return boolean
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof CreateFileOperation) {
-			CreateFileOperation cfo = (CreateFileOperation) o;
-			return file.equals(cfo.file);
-		}
-		return false;
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Creating file {0}.",
-				new Object[] { file.getAbsolutePath() });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.java
deleted file mode 100644
index 2335d40..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.IErrorConstants;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.SequentialOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-
-/**
- * Create link to extension in specified Eclipse installation.
- */
-public class CreateLinkOperation extends SequentialOperation {
-
-	private File pathToEclipse;
-	private File pathToExtension;
-	private String extensionFeature;
-	private InstallOptions options;
-
-	private final int backupSettings = IBackupOptions.OPTION_DO_BACKUP | IBackupOptions.OPTION_TEMP_BACKUP;
-	
-	/**
-	 * Constructor for CreateLinkOperation.
-	 * 
-	 * @param linkFile
-	 *            File link file.
-	 * @param pathToExtension
-	 *            String absolute path to extension.
-	 */
-	public CreateLinkOperation(InstallOptions options, File pathToEclipse,
-			File pathToExtension, String extensionFeature) {
-		if (options == null || pathToEclipse == null || pathToExtension == null
-				|| extensionFeature == null)
-			throw new IllegalArgumentException();
-
-		this.options = options;
-		this.pathToEclipse = pathToEclipse;
-		this.pathToExtension = pathToExtension;
-		this.extensionFeature = extensionFeature;
-	}
-
-	/*
-	 * Add dependend create link file operation
-	 */
-	protected void prepare() throws Exception {
-		addPrerequisite(new CreateDirectoryOperation(getLinksDirectory()));
-		File linkFile = getLinkFile();
-		if (!options.isNobackup())
-			if (linkFile.exists()) {
-				add(new DeleteFileOperation(options, linkFile, backupSettings));
-			}
-		// Do not prompt the user to overwrite a link file
-		// thus no need to create the file as it will be created 
-		// by the FileWriter in the run() method below.
-		//addPrerequisite(new CreateFileOperation(linkFile, false));
-	}
-
-	private File getLinksDirectory() {
-		EclipseInstallation ei = new EclipseInstallation(pathToEclipse);
-		return ei.getLinksDir();
-	}
-
-	private File getLinkFile() {
-		return new File(getLinksDirectory(), extensionFeature + ".link");
-	}
-
-	/**
-	 * Method getErrorStatus.
-	 * 
-	 * @return IStatus
-	 */
-	private IStatus getErrorStatus() {
-		String message = MessageFormat.format(
-				"Can not specify link to extension: {0}",
-				new Object[] { pathToExtension });
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID,
-				IErrorConstants.ERROR_CANNOT_CREATE_LINK, message, null);
-	}
-
-	/**
-	 * Method run.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		try {
-			File linkFile = getLinkFile();
-			FileWriter writer = new FileWriter(linkFile);
-
-			String pathToExtensionString = pathToExtension.getAbsolutePath();
-			pathToExtensionString = pathToExtensionString.replace('\\', '/');
-			// pathToExtensionString contains "/" as separator on all platforms,
-			// even on Windows there will be "C:/" instead of "C:\"
-
-			writer.write("path=" + pathToExtensionString);
-			writer.flush();
-			writer.close();
-
-			installer.getInstallLog().addEntry(
-					new InstallLogEntry(InstallLog.LINK_CREATED_ENTRY, linkFile
-							.getAbsolutePath()
-							+ InstallLogEntry.LINK_ENTRY_TOKEN
-							+ pathToExtensionString));
-		} catch (IOException e) {
-			return getErrorStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method hashCode.
-	 * 
-	 * @return int
-	 */
-	public int hashCode() {
-		return pathToExtension.hashCode() + pathToEclipse.hashCode()
-				+ extensionFeature.hashCode();
-	}
-
-	/**
-	 * Method equals.
-	 * 
-	 * @param o
-	 *            Object
-	 * @return boolean
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof CreateLinkOperation) {
-			CreateLinkOperation clo = (CreateLinkOperation) o;
-			return (pathToExtension.equals(clo.pathToExtension)
-					&& pathToEclipse.equals(clo.pathToEclipse) && extensionFeature
-					.equals(clo.extensionFeature));
-		}
-		return false;
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Linking to extension {0}.",
-				new String[] { pathToExtension.getAbsolutePath() });
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.java
deleted file mode 100644
index 1cb0747..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.BackupManager;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class DeleteFileOperation extends InstallOperation {
-
-	private File file;
-	private InstallOptions options;
-
-	private boolean doBackupOption;
-	private boolean tempBackupOption;
-	
-	public DeleteFileOperation(InstallOptions options, File file) {
-		this(options, file, IBackupOptions.OPTION_DO_BACKUP);
-	}
-
-	public DeleteFileOperation(InstallOptions options, File file, int settings) {
-		if (options == null || file == null) {
-			throw new IllegalArgumentException("file can't be null");
-		}
-		this.file = file;
-		this.options = options;
-		
-		doBackupOption = ((settings & IBackupOptions.OPTION_DO_BACKUP) == IBackupOptions.OPTION_DO_BACKUP);
-		tempBackupOption = ((settings & IBackupOptions.OPTION_TEMP_BACKUP) == IBackupOptions.OPTION_TEMP_BACKUP);
-	}
-	
-	/**
-	 * Method getErrorMessage.
-	 * 
-	 * @return String
-	 */
-	private String getErrorMessage() {
-		String message = "Failed to delete file: " + file.getAbsolutePath();
-		return message;
-	}
-
-	protected void prepare() throws Exception {
-		if (!options.isNobackup())
-			if (file.exists())
-				if (doBackupOption)
-					if (tempBackupOption || options.isNorestore()) {
-						add(new BackupFileOperation(options, file, BackupManager.getBackupManager(), true));
-					} else {
-						add(new BackupFileOperation(options, file, BackupManager.getBackupManager(), false));
-					}
-	}
-
-	/**
-	 * Method run.
-	 * 
-	 * @param installer
-	 *            Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		if (file.exists())
-			if (!file.delete())
-				return new Status(Status.WARNING, Context.PLUGIN_ID, 0,
-						getErrorMessage(), null);
-		
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Deleting file {0}.",
-				new String[] { file.getAbsolutePath() });
-	}
-	
-	public boolean equals(Object o) {
-		if(o instanceof DeleteFileOperation) {
-			DeleteFileOperation dfo = (DeleteFileOperation)o;
-			return file.equals(dfo.file);
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return file.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.java
deleted file mode 100644
index 0cba8c9..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.BackupManager;
-import org.eclipse.epp.installer.internal.core.IBackupManager;
-
-
-public class FinaliseBackupOperation extends InstallOperation {
-
-	boolean deleteBackupDir;
-	boolean deleteTempBackupDir;
-	
-	public FinaliseBackupOperation() {
-		this(false, true);
-	}
-	
-	public FinaliseBackupOperation(boolean deleteBackupDir) {
-		this(deleteBackupDir, true);
-	}
-	
-	public FinaliseBackupOperation(boolean deleteBackupDir, boolean deleteTempBackupDir) {
-		this.deleteBackupDir = deleteBackupDir;
-		this.deleteTempBackupDir = deleteTempBackupDir;
-	}
-
-	protected IStatus run(Context installer) {
-		IBackupManager manager = BackupManager.getBackupManager();
-		if (deleteTempBackupDir)
-			manager.cleanTemporaryDir();
-		if (deleteBackupDir)
-			manager.cleanBackUpDir();
-		
-		return Status.OK_STATUS;
-	}
-
-	public String toString() {
-		return "Finalising backup...";
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.java
deleted file mode 100644
index 20fee8e..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-public interface IBackupOptions {
-
-	public static final int OPTION_NO_BACKUP = 0x0000;
-	public static final int OPTION_DO_BACKUP = 0x0001;
-	public static final int OPTION_TEMP_BACKUP = 0x0010;
-
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.java
deleted file mode 100644
index 859559a..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-public interface IRegisterProductOptions
-{
-	public static final String OPTION_UNINSTALL_NAME = "UninstallName";
-	public static final String OPTION_UNINSTALL_ICON = "UninstallIcon";
-	public static final String OPTION_UNINSTALL_VERSION = "UninstallVersion";
-	public static final String OPTION_UNINSTALL_PUBLISHER = "UninstallPublisher";
-	public static final String OPTION_UNINSTALL_CONTACT = "UninstallContact";
-	public static final String OPTION_UNINSTALL_HELP_LINK = "UninstallHelpLink";
-	public static final String OPTION_UNINSTALL_HELP_TELEPHONE = "UninstallHelpTelephone";
-	public static final String OPTION_UNINSTALL_URL_UPDATE_INFO = "UninstallURLUpdateInfo";
-	public static final String OPTION_UNINSTALL_URL_INFO_ABOUT = "UninstallURLInfoAbout";
-	public static final String OPTION_UNINSTALL_README = "UninstallReadme";
-	public static final String OPTION_UNINSTALL_COMMENTS = "UninstallComments";
-	public static final String OPTION_UNINSTALL_RELEASE_TYPE = "UninstallReleaseType";
-
-	public static final String OPTION_REGISTRY_PUBLISHER = "RegistryPublisher";
-	public static final String OPTION_REGISTRY_PRODUCT_NAME = "RegistryProductName";
-	public static final String OPTION_REGISTRY_PRODUCT_VERSION = "RegistryProductVersion";
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.java
deleted file mode 100644
index 7efb4d9..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.java
+++ /dev/null
@@ -1,483 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.SequentialOperation;
-import org.eclipse.epp.installer.core.product.IProductVersion;
-
-
-/**
- * Modify the platform.xml file in specified Eclipse installation.
- */
-public class ModifyPlatformXMLOperation extends SequentialOperation
-{
-	private EclipseInstallation eclipseInstall;
-	private File extensionDir;
-	private String extensionId;
-	private InstallOptions options;
-
-	/**
-	 * Constructor for ModifyPlatformXMLOperation.
-	 */
-	public ModifyPlatformXMLOperation(InstallOptions options, EclipseInstallation eclipseInstall, File extensionDir,
-		String extensionId) {
-		if (options == null || eclipseInstall == null || extensionDir == null || extensionId == null)
-			throw new IllegalArgumentException();
-
-		this.options = options;
-		this.eclipseInstall = eclipseInstall;
-		this.extensionDir = extensionDir;
-		this.extensionId = extensionId;
-	}
-
-	/**
-	 * Modify the platform.xml file
-	 */
-	protected IStatus run(Context installer) {
-		File platformXmlFile = null;
-
-		// For Eclipse 3.2 and beyond, modify the
-		// configuration/org.eclipse.update/platform.xml file if it exists
-		// See CleanEclipseConfigurationOperation#prepareForEclipse3()
-		IProductVersion version = eclipseInstall.getEclipseVersion();
-		File rootDir = eclipseInstall.getEclipseDir();
-		if (version.getMajor() > 3 || (version.getMajor() == 3 && version.getMinor() >= 2))
-			platformXmlFile = new File(new File(new File(rootDir, "configuration"),
-				"org.eclipse.update"), "platform.xml");
-
-		// Skip this operation if the file does not exist
-		if (platformXmlFile == null)
-			return Status.OK_STATUS;
-		if (!platformXmlFile.exists()) {
-			if (options.isVerbose())
-				System.out.println("Failed to locate platform.xml at " + platformXmlFile.getPath());
-			return Status.OK_STATUS;
-		}
-		
-		// Backup current config.ini and platform.xml file
-		File backupFile = new File(rootDir, "configuration-backup.zip");
-		if (!backupFile.exists()) {
-			File configIniFile = new File(new File(rootDir, "configuration"), "config.ini");
-			if (options.isVerbose()) {
-				System.out.println("Backup configuration files before modification");
-				System.out.println("   config.ini: " + configIniFile.getPath());
-				System.out.println("   platform.xml: " + platformXmlFile.getPath());
-				System.out.println("   backup file: " + backupFile.getPath());
-			}
-			try {
-				zipFiles(backupFile, rootDir, new File[] {configIniFile, platformXmlFile});
-			}
-			catch (IOException e) {
-				System.err.println("Failed to backup configuration files before modification");
-				System.err.println("   config.ini: " + configIniFile.getPath());
-				System.err.println("   platform.xml: " + platformXmlFile.getPath());
-				System.err.println("   backup file: " + backupFile.getPath());
-				e.printStackTrace();
-			}
-		}
-
-		// Extract the feature information from the extension directory
-		// This ASSUMES that the extension directory has already been created and
-		// populated
-		Feature[] data = readFeatures(extensionDir);
-		if (data == null || data.length == 0) {
-			System.out.println("Failed to read features from " + extensionDir.getPath());
-			return Status.OK_STATUS;
-		}
-
-		// TODO [author=Dan] if there are multiple linked sites being created at once,
-		// then this operation could be optimized by caching the content and writing once
-		// after all of the modifications have been made
-
-		// Replace existing content with new content
-		String content = readContent(platformXmlFile);
-		if (content == null)
-			return Status.OK_STATUS;
-		content = removeLinkFileSite(content, extensionId);
-		content = appendLinkFileSite(content, rootDir, extensionId, extensionDir, data);
-		writeContent(platformXmlFile, content);
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method hashCode.
-	 * 
-	 * @return int
-	 */
-	public int hashCode() {
-		return extensionDir.hashCode() + eclipseInstall.hashCode() + extensionId.hashCode();
-	}
-
-	/**
-	 * Method equals.
-	 * 
-	 * @param o Object
-	 * @return boolean
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof ModifyPlatformXMLOperation) {
-			ModifyPlatformXMLOperation mpo = (ModifyPlatformXMLOperation) o;
-			return (extensionDir.equals(mpo.extensionDir) && eclipseInstall.equals(mpo.eclipseInstall) && extensionId
-				.equals(mpo.extensionId));
-		}
-		return false;
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Utilities
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Append a new link file site to the specified platform.xml content.
-	 * 
-	 * @param content the original content of the platform.xml file
-	 * @param eclipseDir The eclipse directory (not <code>null</code>)
-	 * @param linkId the name of the link to be appended. This is the same as the name of
-	 *            the link file minus the ".link" file extension.
-	 * @param extensionDir The directory containing the Eclipse extension (e.g. C:/Program
-	 *            Files/Instantiations/CodeProAnt_v4.5.1/E-3.2)
-	 * @param featureId The identifier for the feature to be linked
-	 * @param featureVersion The version for the feature to be linked
-	 * @param pluginId The identifier of the primary plugin for that feature or
-	 *            <code>null</code> if the feature does not have a primary plugin
-	 * @return the content with the link site appended (not <code>null</code>)
-	 */
-	static String appendLinkFileSite(String content, File eclipseDir, String linkId, File extensionDir, Feature[] data)
-	{
-		// Find the insertion point and the newline character(s)
-		int index = content.lastIndexOf("</config>");
-		int previousElementEnd = content.lastIndexOf(">", index) + 1;
-		String newline = content.substring(previousElementEnd, index);
-
-		// Insert the link file site
-		StringBuffer buf = new StringBuffer(content.length() + 500);
-		buf.append(content.substring(0, index));
-
-		String eclipsePath = eclipseDir.getAbsolutePath().replace('\\', '/');
-		String extensionPath = extensionDir.getAbsolutePath().replace('\\', '/') + "/eclipse";
-
-		// Site element
-		buf.append("<site enabled=\"true\" linkfile=\"");
-		buf.append(eclipsePath + "/links/");
-		buf.append(linkId);
-		buf.append(".link\" policy=\"USER-EXCLUDE\" updateable=\"true\" url=\"file:/");
-		buf.append(extensionPath);
-		buf.append("/\">");
-		buf.append(newline);
-
-		// Embedded feature element(s)
-		for (int i = 0; i < data.length; i++) {
-			Feature feature = data[i];
-
-			buf.append("<feature id=\"");
-			buf.append(feature.featureId);
-			if (feature.primaryPluginId != null && feature.primaryPluginId.length() > 0) {
-				buf.append("\" plugin-identifier=\"");
-				buf.append(feature.primaryPluginId);
-			}
-			buf.append("\" url=\"features/");
-			buf.append(feature.featureId);
-			buf.append("_");
-			buf.append(feature.featureVersion);
-			buf.append("/\" version=\"");
-			buf.append(feature.featureVersion);
-			buf.append("\">");
-			buf.append(newline);
-
-			buf.append("</feature>");
-			buf.append(newline);
-		}
-
-		buf.append("</site>");
-		buf.append(newline);
-
-		buf.append(content.substring(index));
-		return buf.toString();
-	}
-
-	/**
-	 * Search the content for the site containing the specified feature, and answer new
-	 * content with that site removed. If the site cannot be located, then return the
-	 * content unaltered.
-	 * 
-	 * @param content the original content of the platform.xml file
-	 * @param extensionFeature the name of the link to be matched. This is the same as the
-	 *            name of the link file minus the ".link" file extension.
-	 * @return the content with the site containing that feature removed or the original
-	 *         content if it did not contain that feature (not <code>null</code>)
-	 */
-	static String removeLinkFileSite(String content, String extensionFeature) {
-
-		// Locate the link
-		int index = content.indexOf("/links/" + extensionFeature + ".link\"");
-		if (index == -1)
-			return content;
-
-		// Locate the site containing the link attribute
-		int start = 0;
-		int end = 0;
-		while (true) {
-			end = content.indexOf("<site", start + 5);
-			if (end == -1) {
-				end = content.indexOf("</config");
-				break;
-			}
-			if (end > index) {
-				break;
-			}
-			start = end;
-		}
-
-		// Remove the site from the content
-		return content.substring(0, start) + content.substring(end);
-	}
-
-	/**
-	 * Read the feature information in the specificed extension location and return a data
-	 * structure containing just enough information to append a new link site to the
-	 * platform.xml file.
-	 * 
-	 * @param extensionDir The directory containing the Eclipse extension (e.g. C:/Program
-	 *            Files/Instantiations/CodeProAnt_v4.5.1/E-3.2)
-	 * @return an array of feature information or <code>null</code> if it could not be
-	 *         read
-	 */
-	static Feature[] readFeatures(File extensionDir) {
-
-		// Obtains a list of feature directories for this extension
-		if (extensionDir == null || !extensionDir.isDirectory())
-			return null;
-		File featuresDir = new File(new File(extensionDir, "eclipse"), "features");
-		if (!featuresDir.isDirectory())
-			return null;
-		File[] allFeatureDirs = featuresDir.listFiles();
-
-		// Extract information from each feature
-		List result = new ArrayList();
-		for (int i = 0; i < allFeatureDirs.length; i++) {
-
-			// Read the first 1000 characters from the feature.xml
-			File file = new File(allFeatureDirs[i], "feature.xml");
-			String content = readContent(file);
-			if (content == null)
-				continue;
-
-			// Extract the required data
-			Feature data = readOneFeature(content);
-
-			// Add the feature if appropriate
-			if (data != null && data.featureId != null && data.featureVersion != null)
-				result.add(data);
-		}
-		return (Feature[]) result.toArray(new Feature[result.size()]);
-	}
-
-	/**
-	 * Read the feature information in the specificed string and return a data structure
-	 * containing just enough information to append a new link site to the platform.xml
-	 * file.
-	 * 
-	 * @param content the content of the feature.xml file
-	 * @return the feature information or <code>null</code> if it could not be
-	 *         determined
-	 */
-	static Feature readOneFeature(String content) {
-		// Narrow the content to just the attributes of the feature element
-		if (content == null)
-			return null;
-		int start = content.indexOf("<feature");
-		if (start == -1)
-			return null;
-		int end = content.indexOf('>', start);
-		if (end == -1)
-			return null;
-		String featureElement = content.substring(start + 8, end);
-
-		// Extract the attributes
-		Feature data = new Feature();
-		start = 0;
-		while (true) {
-			int index = featureElement.indexOf('=', start);
-			if (index == -1)
-				break;
-			String key = featureElement.substring(start, index).trim();
-			start = featureElement.indexOf('"', index) + 1;
-			if (start == -1)
-				break;
-			end = featureElement.indexOf('"', start);
-			if (end == -1)
-				break;
-			String value = featureElement.substring(start, end);
-			start = end + 1;
-
-			if (key.equals("id"))
-				data.featureId = value;
-			else if (key.equals("version"))
-				data.featureVersion = value;
-			else if (key.equals("plugin"))
-				data.primaryPluginId = value;
-		}
-		return data;
-	}
-
-	/**
-	 * Read from the specified file
-	 * 
-	 * @param file the file to be read
-	 * @return the file content or <code>null</code> if the file does not exist or there
-	 *         was a problem reading the file
-	 */
-	static String readContent(File file) {
-		FileReader reader;
-		try {
-			reader = new FileReader(file);
-		}
-		catch (FileNotFoundException e) {
-			System.out.println("Failed to open " + file.getPath());
-			return null;
-		}
-		StringBuffer result;
-		try {
-			result = new StringBuffer(1024);
-			char[] buf = new char[1024];
-			int count;
-			try {
-				while (true) {
-					count = reader.read(buf);
-					if (count == -1)
-						break;
-					result.append(buf, 0, count);
-				}
-			}
-			catch (IOException e) {
-				System.out.println("Failed to read " + file.getPath());
-				e.printStackTrace();
-				return null;
-			}
-		}
-		finally {
-			try {
-				reader.close();
-			}
-			catch (IOException e) {
-				System.out.println("Failed to close " + file.getPath());
-				e.printStackTrace();
-				return null;
-			}
-		}
-		return result.toString();
-	}
-
-	/**
-	 * Write content to the specified file
-	 * 
-	 * @param file the file to be written
-	 * @param content the new file content
-	 */
-	static void writeContent(File file, String content) {
-		FileWriter writer;
-		try {
-			writer = new FileWriter(file);
-		}
-		catch (IOException e) {
-			System.out.println("Failed to open " + file.getPath());
-			e.printStackTrace();
-			return;
-		}
-		try {
-			writer.write(content);
-		}
-		catch (IOException e) {
-			System.out.println("Failed to write " + file.getPath());
-			e.printStackTrace();
-		}
-		finally {
-			try {
-				writer.close();
-			}
-			catch (IOException e) {
-				System.out.println("Failed to close " + file.getPath());
-				e.printStackTrace();
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Zip the specified files. This is intended to backup the platform.xml and config.ini
-	 * files before the platform.xml file is modified.
-	 * 
-	 * @param zipFile the zip file to be created
-	 * @param rootDir the root directory used to determine relative paths for the
-	 *            specified files when creating the zip file entries
-	 * @param files the files to be zipped
-	 */
-	static void zipFiles(File zipFile, File rootDir, File[] files) throws IOException {
-		final String prefix = rootDir.getAbsolutePath() + File.separator;
-		ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(zipFile));
-		try {
-			final byte[] buf = new byte[2048];
-			for (int i = 0; i < files.length; i++) {
-				File eachFile = files[i];
-				String relPath = eachFile.getAbsolutePath();
-				if (relPath.startsWith(prefix))
-					relPath = relPath.substring(prefix.length()).replace(File.separatorChar, '/');
-				
-				ZipEntry entry = new ZipEntry(relPath);
-				zipStream.putNextEntry(entry);
-				
-				FileInputStream in = new FileInputStream(eachFile);
-				try {
-					while (true) {
-						int count = in.read(buf);
-						if (count == -1)
-							break;
-						zipStream.write(buf, 0, count);
-					}
-				}
-				finally {
-					in.close();
-				}
-				
-				zipStream.closeEntry();
-			}
-		}
-		finally {
-			zipStream.close();
-		}
-	}
-
-	// //////////////////////////////////////////////////////////////////////////
-	//
-	// Feature information data structure
-	//
-	// //////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * A data structure containing just enough information to append a new link site to
-	 * the platform.xml file.
-	 */
-	static class Feature
-	{
-		String featureId;
-		String featureVersion;
-		String primaryPluginId;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.java
deleted file mode 100644
index dbd8ab6..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.Platform;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-
-public class ProxyOperation extends InstallOperation {
-	private StubOperation operationStub;
-	
-	public ProxyOperation() {
-		operationStub = Platform.getPlatform().resolveProxyOperation(this);
-	}
-	
-	final protected void addPrerequisite(InstallOperation op) {
-		if( operationStub != null ) {
-			operationStub.add(op);
-		}
-	}
-	
-	final protected void prepare() throws Exception {
-		if( operationStub != null ) {
-			operationStub.prepare();
-		}
-	}
-	
-	final protected boolean hasPrerequisites() {
-		if( operationStub != null ) {
-			return operationStub.hasPrerequisites();
-		}		
-		return false;
-	}
-	
-	final protected List prerequisites() {
-		if ( operationStub != null ) {
-			return operationStub.prerequisites();
-		}
-		return Collections.EMPTY_LIST;
-	}
-	
-	final protected IStatus run(Context installer) {
-		if( operationStub != null ) {
-			return operationStub.run(installer);
-		}
-		//todo: change to warning status
-		return Status.OK_STATUS;
-	}
-	
-	final protected StubOperation getStub() {
-		return operationStub;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.java
deleted file mode 100644
index 8def7cd..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.File;
-
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.eclipse.EclipseInstallation;
-import org.eclipse.epp.installer.core.model.ISequence;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.EmbeddedInstallStorager;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class RemoveEmbeddedInstallOperation extends InstallOperation implements
-		ISequence {
-
-	private EclipseInstallation installation;
-	private InstallOptions options;
-
-	private final int backupSettings = IBackupOptions.OPTION_DO_BACKUP | IBackupOptions.OPTION_TEMP_BACKUP;
-	
-	/**
-	 * Constructor for CleanEclipseConfigurationOperation.
-	 * 
-	 * @param options
-	 */
-	public RemoveEmbeddedInstallOperation(InstallOptions options,
-			EclipseInstallation installation) {
-		if (installation == null || options == null)
-			throw new IllegalArgumentException();
-
-		this.installation = installation;
-		this.options = options;
-	}
-
-	protected void prepare() throws Exception {
-
-		add(new CheckEclipseRunningOperation(installation));
-
-		EmbeddedInstallStorager storager = EmbeddedInstallStorager.fromOptions(options);
-		
-		String path = installation.getEclipseDir().getAbsolutePath();
-		
-		String features[] = storager.getFeatures(path);
-		String plugins[] = storager.getPlugins(path);
-
-		// TODO: in future maybe it will be necessary to use
-		// RemoveDirectoryOperation instead of CleanDirectoryOperation
-
-		File featuresDir = installation.getFeaturesDir();
-		if (featuresDir.exists()) {
-			for (int i = 0; i < features.length; i++) {
-				File feature = new File(featuresDir, features[i]);
-				if (feature.exists())
-					if (feature.isDirectory()) {
-						add(new CleanDirectoryOperation(options, feature, backupSettings));
-					} else {
-						add(new DeleteFileOperation(options, feature, backupSettings));
-					}
-			}
-		}
-		
-		File pluginsDir = installation.getPluginsDir();
-		if (pluginsDir.exists()) {
-			for (int i = 0; i < plugins.length; i++) {
-				File plugin = new File(pluginsDir, plugins[i]);
-				if (plugin.exists())
-					if (plugin.isDirectory()) {
-						add(new CleanDirectoryOperation(options, plugin, backupSettings));
-					} else {
-						add(new DeleteFileOperation(options, plugin, backupSettings));
-					}
-			}
-		}
-	}
-
-	/**
-	 * Method toString.
-	 * 
-	 * @return String
-	 */
-	public String toString() {
-		return "Remove embedded installation...";
-	}
-
-	public boolean equals(Object o) {
-		if (o instanceof RemoveEmbeddedInstallOperation) {
-			RemoveEmbeddedInstallOperation ceco = (RemoveEmbeddedInstallOperation) o;
-			return installation.equals(ceco.installation);
-		}
-		return false;
-	}
-
-	public int hashCode() {
-		return installation.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.java
deleted file mode 100644
index 18cc388..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IRollbackAction;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-/**
- * Performs rollback operation depending on log entry.
- */
-public class RollbackOperation extends InstallOperation {
-
-	private InstallLogEntry entry;
-
-	/**
-	 * Constructor for RollbackOperation.
-	 * @param entry InstallLogEntry
-	 */
-	public RollbackOperation(InstallLogEntry entry) {
-		this.entry = entry;
-	}
-
-	/**
-	 * Method run.
-	 * @param ctx Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context ctx) {
-		IRollbackAction action = InstallLog.getRollbackAction(entry
-				.getOperationCode());
-		if (action != null) {
-			return action.rollback(entry);
-		}
-		return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-				"rollback action not found: " + entry, null);
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		IRollbackAction action = InstallLog.getRollbackAction(entry
-				.getOperationCode());
-		if (action == null) {
-			return "Unknown rollback action";
-		}
-		return action.getDescription(entry);
-	}
-
-	public boolean equals(Object o) {
-		if(o instanceof RollbackOperation) {
-			RollbackOperation rbo = (RollbackOperation)o;
-			return entry.equals(rbo.entry);
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return entry.hashCode();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.java
deleted file mode 100644
index 8b22811..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.internal.core.InstallLog;
-import org.eclipse.epp.installer.internal.core.InstallLogEntry;
-
-/**
- */
-public class SaveLogFileOperation extends InstallOperation {
-
-	private File logFile;
-
-	/**
-	 * Constructor for SaveLogFileOperation.
-	 * @param logFile File
-	 */
-	public SaveLogFileOperation(File logFile) {
-		this.logFile = logFile;
-	}
-
-	/**
-	 * Method run.
-	 * @param installer Context
-	 * @return IStatus
-	 */
-	protected IStatus run(Context installer) {
-		installer.getInstallLog().addEntry(new InstallLogEntry(
-		InstallLog.FILE_CREATED_ENTRY, logFile.getAbsolutePath()));
-		InstallLog log = installer.getInstallLog();
-		BufferedWriter writer = null;
-		try {
-			FileWriter fw = new FileWriter(logFile);
-			writer = new BufferedWriter(fw);
-			log.write(writer);
-		} catch (IOException ioe) {
-			return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"IO Exception", ioe);
-		} finally {
-			if (writer != null) {
-				try {
-					writer.close();
-				} catch (IOException ioe) {
-					return new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-							"IO Exception", ioe);
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Method equals.
-	 * @param obj Object
-	 * @return boolean
-	 */
-	public boolean equals(Object obj) {
-		if (obj instanceof SaveLogFileOperation) {
-			SaveLogFileOperation so = (SaveLogFileOperation) obj;
-			return logFile.equals(so.logFile);
-		}
-		return false;
-	}
-
-	/**
-	 * Method hashCode.
-	 * @return int
-	 */
-	public int hashCode() {
-		return logFile.hashCode();
-	}
-
-	/**
-	 * Method toString.
-	 * @return String
-	 */
-	public String toString() {
-		return MessageFormat.format("Saving installation log to {0}.", new Object[] {logFile});
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/StubOperation.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/StubOperation.java
deleted file mode 100644
index 0ceb619..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/core/operations/StubOperation.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.epp.installer.internal.core.operations;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-
-
-/**
- * Should be implemented in stub operations.
- */
-public class StubOperation extends InstallOperation {
-	private ProxyOperation operation;
-	public StubOperation( ProxyOperation operation ) {
-		this.operation = operation;
-	}
-	
-	public void addPrerequisite(InstallOperation op) {
-		super.addPrerequisite(op);
-	}	
-
-	public void prepare() throws Exception {
-		super.prepare();
-	}	
-	
-	public boolean hasPrerequisites() {
-		return super.hasPrerequisites();
-	}
-
-	public List prerequisites() {
-		return super.prerequisites();
-	}
-	
-	public IStatus run(Context installer) {
-		return super.run(installer);
-	}
-	
-	protected ProxyOperation getProxyOperation() {
-		return this.operation;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.java b/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.java
deleted file mode 100644
index f88e07f..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.epp.installer.internal.headless;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class HeadlessInstaller extends Installer {
-
-	public static final String ENVIRONMENT_ID = "no";
-
-	public HeadlessInstaller(InstallOptions options) {
-	}
-
-	/**
-	 * Return required adapter type.
-	 * 
-	 * @return Class adapter type.
-	 */
-	protected Class getRequiredAdapterType() {
-		return IInstallStep.class;
-	}
-
-	/**
-	 * Return step verify status. 
-	 * 
-	 * @param step IInstallStep step to verify.            
-	 * @return IStatus return verify status of step.
-	 */
-	protected IStatus performStep(IInstallStep step) {
-		step.aboutToStep();
-		return super.performStep(step);
-	}
-
-	public String getEnvironmentId() {
-		return ENVIRONMENT_ID;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.core/src/overview.html b/plugins/org.eclipse.epp.installer.core/src/overview.html
deleted file mode 100644
index 3b6d8f7..0000000
--- a/plugins/org.eclipse.epp.installer.core/src/overview.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head>
-
-</head>
-
-<body style="background-color: white;">
-
-<p>This framework facilitates construction of installers for laying
-down bits onto a target machine. This framework is focused solely on
-interacting with the user and installing data; Provisioning, packaging,
-and automating the process of assembling the installer are expressly
-outside the scope of this framework.</p>
-
-<p>These installers are currently self
-contained, having both installation behavior and data to be installed,
-although the framework can be extended to pull data from remote sources
-as part of the installation process. The bulk of the installer, written
-in java, is optionally wrappered in a native executable used to either locate
-or deliver a suitable java virutal machine and
-then start the java based installer.&nbsp;The resulting installer can
-interact with the user as a traditional installer using an SWT/JFace
-based wizard, as a console based installer,&nbsp;or even headlessly
-where all installation options are described in an options file. The
-framework could easily be extended to interact with the user using a
-Swing based wizard rather than an SWT/JFace based wizard if so desired.
-</p>
-
-<p><a name="main">Constructing
-an installer involves writing a <span style="font-weight: bold;">main class</span></a> to describe the information
-to be gathered and the operations necessary to install the data onto
-the target machine (see example below). The information to be gathered is described using
-{@link com.instantiations.installer.core.model.IInstallStep} subclasses
-and placed into an
-instance of {@link com.instantiations.installer.core.InstallOptions}. A
-sequence of {@link
-com.instantiations.installer.core.model.InstallOperation}s is
-constructed to perform the actual installation of bits onto the target
-machine based upon the&nbsp;{@link
-com.instantiations.installer.core.InstallOption}s selected. The {@link
-com.instantiations.installer.core.steps.RunOperationsStep} is used to
-execute the&nbsp;{@link
-com.instantiations.installer.core.model.InstallOperation}s. This
-approach separates the collection of installation information from the
-acutall installation so that different inputs (wizard, console,
-headless) will drive the same installation operations.&nbsp;</p>
-
-<p>An {@link com.instantiations.installer.core.InstallerFactory}
-instantiates a subclass of {@link com.instantiations.installer.core.model.Installer} 
-to interpret these {@link com.instantiations.installer.core.model.IInstallStep}s
-and gather the information necessary for the installtion.
-Which installer is instantiated depends upon the command line options
-choosen when the installer is launched.&nbsp;One
-installer subclass will interact with the user using a traditional wizard based
-interface while another gathers information using a console window.</p>
-
-<p>During
-the {@link com.instantiations.installer.core.steps.RunOperationsStep}, the&nbsp;{@link
-com.instantiations.installer.core.model.InstallOperation}s are executed and a log
-file generated containing a complete list of the operations that were
-performed during installation. The {@link com.instantiations.installer.core.operations.CreateUninstallerOperation} creates
-an uninstaller that, when executed at a later time, reads the
-installation log generated by the&nbsp;{@link com.instantiations.installer.core.steps.RunOperationsStep} and performs the
-inverse operation resulting in the removal of the application from the
-target machine.</p>
-
-<p>Some operations such as {@link com.instantiations.installer.core.operations.RegisterProductOperation}
-are resolved during execution to platform specific operations and
-behavior. Other platform specific information and behavior can be
-accessed via {@link com.instantiations.installer.core.Platform#getPlatform()}.</p><p>Installers
-for Eclipse extensions can use {@link
-com.instantiations.installer.core.eclipse.EclipseInstallation} to
-locate existing installations of Eclipse based applications. {@link
-com.instantiations.installer.core.steps.ChooseEclipseStep} and more
-generically {@link
-com.instantiations.installer.core.steps.ChooseProductStep} prompt the
-user for which&nbsp;Eclipse based applications are to be extended
-while&nbsp;{@link
-com.instantiations.installer.core.operations.LinkProductOperation}links
-the applications.</p>
-
-<h2><a name="example">Example</a></h2>
-
-<p>The main() method in a typical installer main class involves:&nbsp;</p>
-
-<ul>
-<li>initializing the&nbsp;{@link com.instantiations.installer.core.InstallOptions}</li>
-</ul>
-<pre>   options = new {@link com.instantiations.installer.core.InstallOptions}(getClass(), "install.properties");<br>   options.setUninstall(isUninstaller());<br>   //options.setNobackup(true);<br>   initInstallDir();<br>   options.parseCommandOptions(args);<br></pre>
-<ul>
-<li>instantiating a new installer based upon the installation options (wizard, console, headless)</li>
-</ul>
-<pre>   installer = {@link com.instantiations.installer.core.InstallerFactory}.createInstaller(options);<br></pre>
-<ul>
-<li>setting up the install steps and install operations based upon whether this is an installation or uninstallation</li>
-</ul>
-<pre>   if (options.isInstall())<br>   	createInstall();<br>   else<br>   	createUninstall();<br></pre>
-<ul>
-<li>and then running the installer</li>
-</ul>
-<pre>   installer.run();</pre>
-
-<p>In the code above, after the {@link
-com.instantiations.installer.core.InstallOptions} have been
-instantiated, the isUninstaller method determines whether or not the
-code should be installing or uninstalling. This method determines
-whether or not the code is being installed or unstalled based upon
-whether or not the data is contained within this instance of the
-installer or if this installer is a data-less copy of the installer
-generated by {@link
-com.instantiations.installer.core.operations.CreateUninstallerOperation}.
-Installation or uninstallation can be overridden by an option on the
-command line read as parsed by the parseCommandOptions method in the
-code above.</p><pre>&nbsp;&nbsp;&nbsp; protected boolean isUninstaller() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (selfPath == null) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipFile image = new ZipFile(selfPath);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipEntry installImage = image.getEntry(INSTALL_IMAGE);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (installImage == null) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (IOException ex) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; }</pre>
-
-<p>The directory into which the product is installed is determined at time of execution:</p><pre>&nbsp;&nbsp;&nbsp; protected String initInstallDir() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IPlatform platform = Platform.getPlatform();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (platform == null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String[] productLocations;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; productLocations = platform.readPreviousProductInstallLocations(options);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (Exception e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (options.isVerbose())<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (productLocations == null || productLocations.length == 0)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String installDir = productLocations[productLocations.length - 1];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (options.isVerbose())<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println("Setting InstallDir to prior installation: " + installDir);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; options.set(InstallOptions.OPTION_INSTALL_DIR, installDir);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return installDir;<br>&nbsp;&nbsp;&nbsp; }</pre><p>Once
-the&nbsp;{@link
-com.instantiations.installer.core.InstallOptions} have been initialized
-and a new installer instantiated by the&nbsp;{@link
-com.instantiations.installer.core.InstallerFactory}, either the
-createInstall method is called</p><pre>&nbsp;&nbsp;&nbsp; protected void createInstall() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installer.setTitle(options.getString("InstallerTitle"));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; welcomeStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; licenseStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installDirStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; chooseProductStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; chooseEclipseStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; checkEclipseRunning();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cleanConfigStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; removeEmbeddedInstallStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; verifyInstallStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installCodeStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installResultStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installCompleteStep();<br>&nbsp;&nbsp;&nbsp; }</pre><p>or the createUninstall method is called</p><pre>&nbsp;&nbsp;&nbsp; protected void createUninstall() {<br>&nbsp;&nbsp;&nbsp;     installer.setTitle(options.getString(InstallOptions.OPTION_PRODUCT_NAME) + " Uninstaller");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; verifyUninstallStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; uninstallCodeStep();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; uninstallCompletStep();<br>&nbsp;&nbsp;&nbsp; }</pre><p>The installDirStep() describes prompting the user for the application's installation location:</p><pre>&nbsp;&nbsp;&nbsp; protected String initInstallDir() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IPlatform platform = Platform.getPlatform();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (platform == null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String[] productLocations;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; productLocations = platform.readPreviousProductInstallLocations(options);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (Exception e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (options.isVerbose())<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (productLocations == null || productLocations.length == 0)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String installDir = productLocations[productLocations.length - 1];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (options.isVerbose())<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println("Setting InstallDir to prior installation: " + installDir);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; options.set(InstallOptions.OPTION_INSTALL_DIR, installDir);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return installDir;<br>&nbsp;&nbsp;&nbsp; }</pre><p>The
-installCodeStep method constructs {@link
-com.instantiations.installer.core.model.IInstallStep}s to lay down the
-bits on the disk based upon the&nbsp;{@link
-com.instantiations.installer.core.InstallOptions}.</p><pre>&nbsp;&nbsp;&nbsp; protected RunOperationsStep installCodeStep() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; final RunOperationsStep step = new RunOperationsStep(installer) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void aboutToStep() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; createInstallOperations(this);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (IOException e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; showException(e);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; initStep(step, "InstallCode");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installer.add(step);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return step;<br>&nbsp;&nbsp;&nbsp; }</pre><pre>&nbsp;&nbsp;&nbsp; protected void createInstallOperations(RunOperationsStep step) throws IOException {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Assemble install operations<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // The file containing code to be delivered<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipFile image = new ZipFile(selfPath);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // The directory into which the product will be installed<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File installDir = new File(options.getString(InstallOptions.OPTION_INSTALL_DIR));<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Get subproducts to be installed<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SubProduct[] subProducts = getSubProductsToInstall();<br><br>        // Build the install operations<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int j = 0; j &lt; subProducts.length; j++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SubProduct each = subProducts[j];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String relInstallPath = each.getInstallDirName() + File.separator + "E-" + eclipseTargetAlt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File installSubDir = new File(installDir, relInstallPath);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipEntry[] entries = each.getEntries(image);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int k = 0; k &lt; entries.length; k++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; step.add(new ExtractDirectoryOperation(image, entries[k], installSubDir));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String primaryProductDirName = getPrimaryProduct().getInstallDirName();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File primaryProductDir = new File(installDir, primaryProductDirName);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; step.add(new CreateUninstallerOperation(primaryProductDir, CreateUninstallerOperation.UNINSTALL_JAR,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INSTALL_IMAGE));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; step.add(new RegisterProductOperation(options, primaryProductDirName + File.separator<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; + CreateUninstallerOperation.UNINSTALL_JAR));<br>&nbsp;&nbsp;&nbsp; }</pre><p>The verifyUninstallStep method describes prompting the user to confirm the uninstall, while
-the uninstallCodeStep method&nbsp;constructs {@link
-com.instantiations.installer.core.model.IInstallStep}s to remove the
-bits from the disk. The {@link
-com.instantiations.installer.core.operations.UninstallOperation}
-operation referenced below reads the install log file and&nbsp;performs the
-inverse operation resulting in the removal of the application from the
-target machine.</p><pre>&nbsp;&nbsp;&nbsp; protected RunOperationsStep uninstallCodeStep() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; final RunOperationsStep step = new RunOperationsStep(installer) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void aboutToStep() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; createUninstallOperations(this);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; step.setDescription("Uninstalling...");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; installer.add(step);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return step;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; protected void createUninstallOperations(RunOperationsStep step) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Assemble uninstall operations<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String selfPath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File self = new File(selfPath);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File logFile = new File(self.getParentFile(), CreateUninstallerOperation.INSTALL_LOG);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; step.add(new UninstallOperation(logFile));<br>&nbsp;&nbsp;&nbsp; }</pre><h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="../../gettingstarted/packager.html">Introduction to RCP Packager</a></li>
-  <li><a href="../../gettingstarted/GenSample.html">Generating a Sample RCP Application</a></li>
-  <li><a href="../../gettingstarted/GenInstaller.html">Generating an Installer</a></li>
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.europa/.classpath b/plugins/org.eclipse.epp.installer.europa/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.europa/.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/plugins/org.eclipse.epp.installer.europa/.cvsignore b/plugins/org.eclipse.epp.installer.europa/.cvsignore
deleted file mode 100644
index 895cbfc..0000000
--- a/plugins/org.eclipse.epp.installer.europa/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-plugin_customization.ini
diff --git a/plugins/org.eclipse.epp.installer.europa/.project b/plugins/org.eclipse.epp.installer.europa/.project
deleted file mode 100644
index a4c9519..0000000
--- a/plugins/org.eclipse.epp.installer.europa/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.europa</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/plugins/org.eclipse.epp.installer.europa/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.europa/META-INF/MANIFEST.MF
deleted file mode 100644
index f551217..0000000
--- a/plugins/org.eclipse.epp.installer.europa/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.epp.installer.europa;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %pluginProvider
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.epp.installer.core,
- org.eclipse.core.runtime,
- org.eclipse.epp.installer.archive
diff --git a/plugins/org.eclipse.epp.installer.europa/build.properties b/plugins/org.eclipse.epp.installer.europa/build.properties
deleted file mode 100644
index 55d6182..0000000
--- a/plugins/org.eclipse.epp.installer.europa/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               splash.bmp,\
-               plugin.xml,\
-               plugin.properties,\
-               install.properties,\
-               install_win32.properties
diff --git a/plugins/org.eclipse.epp.installer.europa/europa_installer.product b/plugins/org.eclipse.epp.installer.europa/europa_installer.product
deleted file mode 100644
index 53f6195..0000000
--- a/plugins/org.eclipse.epp.installer.europa/europa_installer.product
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="Europa Installer (EPP)" id="org.eclipse.epp.installer.europa.installer" application="org.eclipse.epp.installer.core.application" useFeatures="false">
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages/>
-
-   <splash
-      location="org.eclipse.epp.installer.europa"
-      startupProgressRect="0,100,300,18"
-      startupMessageRect="0,0,300,30"
-      startupForegroundColor="000000" />
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.auth"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.epp.installer.core"/>
-      <plugin id="org.eclipse.epp.installer.core.win32" fragment="true"/>
-      <plugin id="org.eclipse.epp.installer.europa"/>
-      <plugin id="org.eclipse.epp.installer.ui"/>
-      <plugin id="org.eclipse.epp.sfx.archive"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-   </plugins>
-
-</product>
diff --git a/plugins/org.eclipse.epp.installer.europa/install.properties b/plugins/org.eclipse.epp.installer.europa/install.properties
deleted file mode 100644
index cba1a2b..0000000
--- a/plugins/org.eclipse.epp.installer.europa/install.properties
+++ /dev/null
@@ -1,97 +0,0 @@
-#Installer options
-
-LicenseAgreement = \
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-January 28, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Subdirectories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
-
-
-ProductName = Eclipse
-DisplayName = Eclipse 3.3 (Europa)
diff --git a/plugins/org.eclipse.epp.installer.europa/install_win32.properties b/plugins/org.eclipse.epp.installer.europa/install_win32.properties
deleted file mode 100644
index 51649d6..0000000
--- a/plugins/org.eclipse.epp.installer.europa/install_win32.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Installer options for win32
-
-InstallDir = ${ProgramFiles}\\Eclipse.org
diff --git a/plugins/org.eclipse.epp.installer.europa/plugin.properties b/plugins/org.eclipse.epp.installer.europa/plugin.properties
deleted file mode 100644
index 594e181..0000000
--- a/plugins/org.eclipse.epp.installer.europa/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-pluginName = Europa Installer (EPP)
-pluginProvider = Eclipse.org
-
diff --git a/plugins/org.eclipse.epp.installer.europa/plugin.xml b/plugins/org.eclipse.epp.installer.europa/plugin.xml
deleted file mode 100644
index 7eaa52d..0000000
--- a/plugins/org.eclipse.epp.installer.europa/plugin.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-   <extension
-         id="installer"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.epp.installer.core.application"
-            name="Europa Installer (EPP)">
-         <property
-               name="appName"
-               value="Europa Installer (EPP)">
-         </property>
-         <property
-               name="startupForegroundColor"
-               value="000000">
-         </property>
-         <property
-               name="startupMessageRect"
-               value="0,0,300,30">
-         </property>
-         <property
-               name="startupProgressRect"
-               value="0,100,300,18">
-         </property>
-         <property
-               name="preferenceCustomization"
-               value="plugin_customization.ini">
-         </property>
-      </product>
-   </extension>
-<!--   
-   <extension
-         point="org.eclipse.epp.installer.core.configurationProvider">
-      <provider
-            class="org.eclipse.epp.installer.europa.EuropaInstallConfiguration"
-            product="org.eclipse.epp.installer.europa.installer"
-            type="install">
-      </provider>
-   </extension>
--->
-   <extension
-         point="org.eclipse.epp.installer.core.configurationProvider">
-      <provider
-      		id="org.eclipse.epp.installer.europa.install"
-            class="org.eclipse.epp.installer.core.ExtendableInstallConfiguration"
-            product="org.eclipse.epp.installer.europa.installer"
-            type="install">
-      </provider>
-   </extension>
-   <extension
-         point="org.eclipse.epp.installer.core.steps">
-      <steps
-            providerId="org.eclipse.epp.installer.europa.install">
-	      <step
-	            id="org.eclipse.epp.installer.CheckAdminPrivilegesStep"
-	            title="Welcome to the Eclipse Europa installer">
-	         <parameter
-	               key="text"
-	               value="This is an example installer, which will install one of EPP packages on your platform">
-	         </parameter>
-	      </step>
-	      <step
-	            id="org.eclipse.epp.installer.ChoiceStep"
-	            title="License Agreement"
-	            description="Please read the following important information before continue.">
-	         <parameter
-	               key="choiceText"
-	               value="${LicenseAgreement}">
-	         </parameter>
-	         <parameter
-	               key="acceptText"
-	               value="I accept the agreement">
-	         </parameter>
-	         <parameter
-	               key="declineText"
-	               value="I do not accept the agreement">
-	         </parameter>
-	         <parameter
-	               key="continueOnDecline"
-	               value="false">
-	         </parameter>
-	         <parameter
-	               key="defaultChoice"
-	               value="false">
-	         </parameter>
-	      </step>
-	      <step
-	            id="org.eclipse.epp.installer.ChooseLocationStep"
-	            title="Select Destination Location"
-	            description="Where should the ${ProductName} be installed?">
-	      </step>
-	      <step
-	            id="org.eclipse.epp.installer.PromptUserStep"
-	            title="Ready to Install"
-	            description="Setup is now ready to begin installing ${ProductName} on your computer.">
-	         <aboutToStep>
-	            <parameter
-	                  key="text"
-	                  value="Click Next to continue with the installation, or click Back if you want to review or change any settings.\n\nProduct:\n   ${ProductName}\n\nLocation:\n   ${InstallDir}">
-	            </parameter>
-	         </aboutToStep>
-	      </step>
-	      <step
-	            id="org.eclipse.epp.installer.RunOperationsStep"
-	            description="Installing...">
-	         <aboutToStep>
-	            <process
-	                  class="org.eclipse.epp.installer.europa.CreateInstallOperationsProcessor">
-	            </process>
-	         </aboutToStep>
-	      </step>
-	      <step
-	            id="org.eclipse.epp.installer.PromptUserStep"
-	            title="Installation complete">
-	         <aboutToStep>
-	            <parameter
-	                  key="text"
-	                  value="Thank you very much for choosing ${ProductName}.\n\nClick Finish to exit setup.">
-	            </parameter>
-	         </aboutToStep>
-	      </step>
-      </steps>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.installer.europa/splash.bmp b/plugins/org.eclipse.epp.installer.europa/splash.bmp
deleted file mode 100644
index 1e71911..0000000
--- a/plugins/org.eclipse.epp.installer.europa/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/CreateInstallOperationsProcessor.java b/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/CreateInstallOperationsProcessor.java
deleted file mode 100644
index a08f280..0000000
--- a/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/CreateInstallOperationsProcessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.epp.installer.europa;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.epp.installer.archive.Archives;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.IStepProcessor;
-import org.eclipse.epp.installer.core.operations.ExtractDirectoryOperation;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-
-public class CreateInstallOperationsProcessor implements IStepProcessor {
-
-	public void process(IInstallStep step) {
-		if (step instanceof RunOperationsStep) {
-			String archivePath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);
-			if (archivePath == null)
-				throw new RuntimeException("archive name unspecified, please set "
-						+ Context.INSTALLER_JAR_PROPERTY + " property.");
-			IArchive archive;
-			try {
-				archive = Archives.createArchive(new File(archivePath));
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-			if(archive == null)
-				throw new RuntimeException("archive not found at: " + archivePath);
-			IArchiveEntry entry = archive.getEntry("eclipse");
-
-			File dir = new File(step.getOptions().getString(
-					InstallOptions.OPTION_INSTALL_DIR));
-
-			((RunOperationsStep) step).add(new ExtractDirectoryOperation(archive, entry, dir));
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/EuropaInstallConfiguration.java b/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/EuropaInstallConfiguration.java
deleted file mode 100644
index cfcb866..0000000
--- a/plugins/org.eclipse.epp.installer.europa/src/org/eclipse/epp/installer/europa/EuropaInstallConfiguration.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.eclipse.epp.installer.europa;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.epp.installer.archive.Archives;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-import org.eclipse.epp.installer.core.CheckAdminPrivilegesStep;
-import org.eclipse.epp.installer.core.IConfigurationProvider;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.operations.ExtractDirectoryOperation;
-import org.eclipse.epp.installer.core.steps.ChoiceStep;
-import org.eclipse.epp.installer.core.steps.ChooseLocationStep;
-import org.eclipse.epp.installer.core.steps.PromptUserStep;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-
-public class EuropaInstallConfiguration implements IConfigurationProvider {
-
-	public void configure(Installer installer) {
-		final InstallOptions options = installer.getOptions();
-
-		installer.setTitle(options
-				.getString(InstallOptions.OPTION_PRODUCT_NAME)
-				+ " Installer");
-		
-		// Welcome step
-		ScrollablePromptUserStep welcomeStep = new CheckAdminPrivilegesStep(
-				installer);
-		welcomeStep.setTitle("Welcome to the Eclipse Europa installer");
-		welcomeStep.setText("This is an example installer, which will install one of EPP packages on your platform");
-		installer.add(welcomeStep);
-
-		ChoiceStep licenseStep = new ChoiceStep(installer);
-		licenseStep.setTitle("License Agreement");
-		licenseStep
-				.setDescription("Please read the following important information before continue.");
-		licenseStep.setChoiceText(options
-				.getString(InstallOptions.OPTION_LICENSE_AGREEMENT));
-		licenseStep.setAcceptText("I accept the agreement");
-		licenseStep.setDeclineText("I do not accept the agreement");
-		licenseStep.setContinueOnDecline(false);
-		licenseStep.setDefaultChoice(false);
-		installer.add(licenseStep);
-
-		ChooseLocationStep installDirStep = new ChooseLocationStep(installer);
-		installDirStep.setDescription("Where should the "
-				+ options.getString(InstallOptions.OPTION_PRODUCT_NAME)
-				+ " be installed?");
-		installDirStep.setTitle("Select Destination Location");
-		installer.add(installDirStep);
-
-		final PromptUserStep verifyStep = new PromptUserStep(installer) {
-			public void aboutToStep() {
-				setText("Click Next to continue with the installation, or click Back if you want to review or change any settings.\n\n"
-						+ "Product:\n   "
-						+ options.getString(InstallOptions.OPTION_PRODUCT_NAME)
-						+ "\n\nLocation:\n   "
-						+ options.getString(InstallOptions.OPTION_INSTALL_DIR));
-			}
-		};
-		verifyStep.setTitle("Ready to Install");
-		verifyStep.setDescription("Setup is now ready to begin installing "
-				+ options.getString(InstallOptions.OPTION_PRODUCT_NAME)
-				+ " on your computer.");
-		installer.add(verifyStep);
-
-		final RunOperationsStep installStep = new RunOperationsStep(installer) {
-			public void aboutToStep() {
-				try {
-					createInstallOperations(this);
-				} catch (IOException e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		installStep.setDescription("Installing...");
-		installer.add(installStep);
-
-		final PromptUserStep resultStep = new PromptUserStep(installer) {
-			public void aboutToStep() {
-				setText("Thank you very much for choosing "
-						+ options.getString(InstallOptions.OPTION_PRODUCT_NAME)
-						+ ".\n\nClick Finish to exit setup.");
-			}
-		};
-		resultStep.setTitle("Installation complete");
-		installer.add(resultStep);
-	}
-
-	/**
-	 * Create the install operations based upon the user's choices.
-	 * 
-	 * @param step
-	 *            the step about to be performed
-	 */
-	protected void createInstallOperations(RunOperationsStep step)
-			throws IOException {
-		// Assemble install operations
-
-		String archivePath = System.getProperty(Context.INSTALLER_JAR_PROPERTY);
-		if (archivePath == null)
-			throw new IOException("archive name unspecified, please set "
-					+ Context.INSTALLER_JAR_PROPERTY + " property.");
-		IArchive archive = Archives.createArchive(new File(archivePath));
-		if(archive == null)
-			throw new IOException("archive not found at: " + archivePath);
-		IArchiveEntry entry = archive.getEntry("eclipse");
-
-		File dir = new File(step.getOptions().getString(
-				InstallOptions.OPTION_INSTALL_DIR));
-
-		step.add(new ExtractDirectoryOperation(archive, entry, dir));
-		// step.add(new RegisterProductOperation(step.getOptions(),
-		// "c:\\temp\\install.exe" ));
-		// step.add(new CreateUninstallerOperation(dir, UNINSTALL_JAR,
-		// EXCLUSION_PATTERN ));
-	}
-
-	private String id;
-	
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/.cdtproject b/plugins/org.eclipse.epp.installer.launcher.native/.cdtproject
deleted file mode 100644
index 9dabb52..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/.cdtproject
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse-cdt version="2.0"?>

-

-<cdtproject id="org.eclipse.cdt.make.core.make">

-<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>

-<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>

-<extension id="org.eclipse.cdt.core.domsourceindexer" point="org.eclipse.cdt.core.CIndexer"/>

-<data>

-<item id="scannerConfiguration">

-<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>

-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">

-<buildOutputProvider>

-<openAction enabled="true" filePath=""/>

-<parser enabled="false"/>

-</buildOutputProvider>

-<scannerInfoProvider id="specsFile">

-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

-<parser enabled="false"/>

-</scannerInfoProvider>

-</profile>

-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">

-<buildOutputProvider>

-<openAction enabled="false" filePath=""/>

-<parser enabled="true"/>

-</buildOutputProvider>

-<scannerInfoProvider id="makefileGenerator">

-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>

-<parser enabled="false"/>

-</scannerInfoProvider>

-</profile>

-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">

-<buildOutputProvider>

-<openAction enabled="false" filePath=""/>

-<parser enabled="true"/>

-</buildOutputProvider>

-<scannerInfoProvider id="specsFile">

-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

-<parser enabled="false"/>

-</scannerInfoProvider>

-</profile>

-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">

-<buildOutputProvider>

-<openAction enabled="false" filePath=""/>

-<parser enabled="true"/>

-</buildOutputProvider>

-<scannerInfoProvider id="specsFile">

-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

-<parser enabled="false"/>

-</scannerInfoProvider>

-</profile>

-</item>

-<item id="org.eclipse.cdt.core.pathentry">

-<pathentry kind="src" path="src"/>

-<pathentry kind="out" path=""/>

-<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>

-<pathentry kind="src" path="win32"/>

-</item>

-</data>

-</cdtproject>

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/.project b/plugins/org.eclipse.epp.installer.launcher.native/.project
deleted file mode 100644
index 2538c9a..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/.project
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.launcher.native</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.cdt.make.core.makeBuilder</name>
-			<triggers></triggers>
-			<arguments>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.arguments</key>
-					<value></value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.core.errorOutputParser</key>
-					<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.environment</key>
-					<value></value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
-					<value>false</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.target.inc</key>
-					<value>all</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.enableFullBuild</key>
-					<value>false</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>
-					<value>false</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.location</key>
-					<value></value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.command</key>
-					<value>make</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.target.clean</key>
-					<value>clean</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
-					<value>false</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.append_environment</key>
-					<value>true</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.target.full</key>
-					<value>clean all</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
-					<value>true</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.build.target.auto</key>
-					<value>all</value>
-				</dictionary>
-				<dictionary>
-					<key>org.eclipse.cdt.make.core.stopOnError</key>
-					<value>false</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.cdt.core.cnature</nature>
-		<nature>org.eclipse.cdt.make.core.makeNature</nature>
-		<nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/carbon/.cvsignore b/plugins/org.eclipse.epp.installer.launcher.native/carbon/.cvsignore
deleted file mode 100644
index 07746ad..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/carbon/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-install.exe
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/carbon/build.sh b/plugins/org.eclipse.epp.installer.launcher.native/carbon/build.sh
deleted file mode 100644
index 570cfd5..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/carbon/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh

-

-cd `dirname $0`

-

-makefile="make_macosx.mak"

-if [ "$OS" = "" ];  then

-    OS=`uname -s`

-fi

-

-# Set up environment variables needed by the makefiles.

-PROGRAM_OUTPUT="rcpinstaller"

-DEFAULT_OS="macosx"

-DEFAULT_OS_ARCH="ppc"

-DEFAULT_WS="carbon"

-OUTPUT_DIR="../../com.instantiations.installer.tools/template/$DEFAULT_OS/$DEFAULT_OS_ARCH/RCPInstaller.app/Contents/MacOS"

-

-export OUTPUT_DIR PROGRAM_OUTPUT DEFAULT_OS DEFAULT_OS_ARCH DEFAULT_WS

-

-echo "Building $DEFAULT_OS install launcher."

-make -f $makefile clean

-make -f $makefile $1 $2 $3 $4

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/carbon/install.c b/plugins/org.eclipse.epp.installer.launcher.native/carbon/install.c
deleted file mode 100644
index e9fadc2..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/carbon/install.c
+++ /dev/null
@@ -1,4 +0,0 @@
- 

-#define main original_main

-

-#include "../src/install.c"

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/carbon/installCarbon.c b/plugins/org.eclipse.epp.installer.launcher.native/carbon/installCarbon.c
deleted file mode 100644
index c268d02..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/carbon/installCarbon.c
+++ /dev/null
@@ -1,646 +0,0 @@
- 

-/* MacOS X Carbon specific logic for displaying the splash screen. */

-

-#include "installOS.h"

-

-#include <sys/stat.h>

-#include <sys/types.h>

-#include <fcntl.h>

-#include <ctype.h>

-#include <pwd.h>

-#include <stdlib.h>

-#include <sys/types.h>

-#include <sys/wait.h>

-#include <sys/ioctl.h>

-#include <unistd.h>

-

-#include <CoreServices/CoreServices.h>

-#include <Carbon/Carbon.h>

-

-#include "NgCommon.h"

-#include "NgImageData.h"

-#include "NgWinBMPFileFormat.h"

-

-#define startupJarName "startup.jar"

-#define APP_PACKAGE_PATTERN ".app/Contents/MacOS/"

-#define APP_PACKAGE "APP_PACKAGE"

-#define JAVAROOT "JAVAROOT"

-

-#define DEBUG 0

-

-char *findCommand(char *command);

-char* getProgramDir();

-

-static void debug(const char *fmt, ...);

-static void dumpArgs(char *tag, int argc, char* argv[]);

-static PixMapHandle loadBMPImage(const char *image);

-static void init();

-static char *append(char *buffer, const char *s);

-static char *appendc(char *buffer, char c);

-static char *expandShell(char *arg, const char *appPackage, const char *javaRoot);

-static char *my_strcasestr(const char *big, const char *little);

-

-/* Global Variables */

-char   dirSeparator  = '/';

-char   pathSeparator = ':';

-char*  consoleVM     = "java";

-char*  defaultVM     = "java";

-char*  shippedVMDir  = "jre/bin/";

-

-/* Define the window system arguments for the various Java VMs. */

-static char*  argVM_JAVA[] = { "-XstartOnFirstThread", NULL };

-

-static int fgPid, jvmPid, jvmExitCode = 0;

-static FILE *fgConsoleLog;

-static char *fgAppPackagePath;

-

-static WindowRef window;

-static ControlRef progress = NULL, pane = NULL;

-static RGBColor foreground = {0xFFFF, 0xFFFF, 0xFFFF};

-static CFStringRef string = NULL;

-static Rect messageRect = {0, 0, 0, 0}, progressRect = {0, 0, 0, 0};

-static int value = 0, maximum = 0;

-

-extern int original_main(int argc, char* argv[]);

-int main( int argc, char* argv[] ) {

-

-	SInt32 systemVersion= 0;

-	if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr) {

-		systemVersion &= 0xffff;

-		if (systemVersion < 0x1020) {

-			displayMessage("Install launcher requires Jaguar (Mac OS X >= 10.2)");

-			return 0;

-		}

-	}

-

-	fgConsoleLog= fopen("/dev/console", "w");

-	fgPid= getpid();

-

-	dumpArgs("start", argc, argv);

-	

-	if (argc > 1 && strncmp(argv[1], "-psn_", 5) == 0) {

-	

-		/* find path to application bundle (ignoring case) */

-		char *pos= my_strcasestr(argv[0], APP_PACKAGE_PATTERN);

-		if (pos != NULL) {

-			int l= pos-argv[0] + 4;	// reserve space for ".app"

-			fgAppPackagePath= malloc(l+1);

-			strncpy(fgAppPackagePath, argv[0], l);

-			fgAppPackagePath[l]= '\0';	// terminate result

-		}

-		

-		/* Get the main bundle for the app */

-		CFBundleRef mainBundle= CFBundleGetMainBundle();

-		if (mainBundle != NULL) {

-		

-			/* Get an instance of the info plist.*/

-			CFDictionaryRef bundleInfoDict= CFBundleGetInfoDictionary(mainBundle);

-						

-			/* If we succeeded, look for our property. */

-			if (bundleInfoDict != NULL) {

-				CFArrayRef ar= CFDictionaryGetValue(bundleInfoDict, CFSTR("RCPInstaller"));

-				if (ar) {

-					CFIndex size= CFArrayGetCount(ar);

-					if (size > 0) {

-						int i;

-						char **old_argv= argv;

-						argv= (char**) calloc(size+2, sizeof(char*));

-						argc= 0;

-						argv[argc++]= old_argv[0];

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

-							CFStringRef sr= (CFStringRef) CFArrayGetValueAtIndex (ar, i);

-							CFIndex argStringSize= CFStringGetMaximumSizeForEncoding(CFStringGetLength(sr), kCFStringEncodingUTF8);

-							char *s= malloc(argStringSize);

-							if (CFStringGetCString(sr, s, argStringSize, kCFStringEncodingUTF8)) {

-								argv[argc++]= expandShell(s, fgAppPackagePath, NULL);

-							} else {

-								fprintf(fgConsoleLog, "can't extract bytes\n");

-							}

-							//free(s);

-						}

-					}

-				} else {

-					fprintf(fgConsoleLog, "no RCPInstall dict found\n");

-				}

-			} else {

-				fprintf(fgConsoleLog, "no bundle dict found\n");

-			}

-		} else {

-			fprintf(fgConsoleLog, "no bundle found\n");

-		}

-	}

-	int exitcode= original_main(argc, argv);

-	debug("<<<< exit(%d)\n", exitcode);

-	fclose(fgConsoleLog);

-	return exitcode;

-}

-

-/* Display a Message */

-void displayMessage(char *message)

-{

-	CFStringRef inError, inDescription= NULL;

-

-	/* try to break the message into a first sentence and the rest */

-	char *pos= strstr(message, ". ");

-	if (pos != NULL) {	

-		char *to, *from, *buffer= calloc(pos-message+2, sizeof(char));

-		/* copy and replace line separators with blanks */

-		for (to= buffer, from= message; from <= pos; from++, to++) {

-			char c= *from;

-			if (c == '\n') c= ' ';

-			*to= c;

-		}

-		inError= CFStringCreateWithCString(kCFAllocatorDefault, buffer, kCFStringEncodingASCII);

-		free(buffer);

-		inDescription= CFStringCreateWithCString(kCFAllocatorDefault, pos+2, kCFStringEncodingASCII);

-	} else {

-		inError= CFStringCreateWithCString(kCFAllocatorDefault, message, kCFStringEncodingASCII);

-	}

-	

-	init();

-	

-	DialogRef outAlert;

-	OSStatus status= CreateStandardAlert(kAlertStopAlert, inError, inDescription, NULL, &outAlert);

-	if (status == noErr) {

-		DialogItemIndex outItemHit;

-		RunStandardAlert(outAlert, NULL, &outItemHit);

-	} else {

-		debug("rcpinstall: displayMessage: %s\n", message);

-	}

-	CFRelease(inError);

-	if (inDescription != NULL)

-		CFRelease(inDescription);

-}

-

-static void debug(const char *fmt, ...) {

-#if DEBUG

-	char buffer[200];

-	va_list ap;

-	va_start(ap, fmt);

-	fprintf(fgConsoleLog, "%05d: ", fgPid);

-	vfprintf(fgConsoleLog, fmt, ap);

-	va_end(ap);

-#endif

-}

-

-static void dumpArgs(char *tag, int argc, char* argv[]) {

-#if DEBUG

-	int i;

-	if (argc < 0) {

-		argc= 0;

-		for (i= 0; argv[i] != NULL; i++)

-			 argc++;

-	}

-	debug(">>>> %s:", tag);

-	for (i= 0; i < argc && argv[i] != NULL; i++)

-		fprintf(fgConsoleLog, " <%s>", argv[i]);

-	fprintf(fgConsoleLog, "\n");

-#endif

-}

-

-static void init() {

-	static int initialized= 0;

-	

-	if (!initialized) {

-		ProcessSerialNumber psn;

-		if (GetCurrentProcess(&psn) == noErr)

-			SetFrontProcess(&psn);

-		ClearMenuBar();

-		initialized= true;

-	}

-}

-

-/* Initialize Window System

- *

- * Initialize Carbon.

- */

-void initWindowSystem( int* pArgc, char* argv[], int showSplash )

-{

-	char *homeDir = getProgramDir();

-	debug("install dir: %s\n", homeDir);

-	if (homeDir != NULL)

-		chdir(homeDir);

-    

-	if (showSplash)

-		init();

-}

-

-static void eventLoopTimerProc(EventLoopTimerRef inTimer, void *inUserData) {

-	QuitApplicationEventLoop();

-}

-

-static void detectExitTimerProc(EventLoopTimerRef inTimer, void *inUserData) {

-	int exitCode = 0;

-	if (waitpid(jvmPid, &exitCode, WNOHANG) != 0) {

-		jvmExitCode = exitCode;

-		QuitApplicationEventLoop();

-	}

-}

-

-static void invalidateWindow () {

-	Rect rect;

-	RgnHandle rgn;

-	ControlRef root;

-	rgn = NewRgn();

-	GetRootControl(window, &root);

-	GetControlBounds(root, &rect);

-	SetRectRgn(rgn, rect.left, rect.top, rect.right, rect.bottom);

-	InvalWindowRgn (window, rgn);

-	DisposeRgn(rgn);

-}

-

-static void readRect(char *str, Rect *rect) {

-	int x, y, width, height;

-	char *temp = str, *comma;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	x = atoi(temp);

-	temp = comma + 1;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	y = atoi(temp);

-	temp = comma + 1;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	width = atoi(temp);

-	temp = comma + 1;

-	height = atoi(temp);

-	rect->left = x;

-	rect->top = y;

-	rect->right = x + width;

-	rect->bottom = y + height;

-}

-

-static void readColor(char *str, RGBColor *color) {

-	int value = atoi(str);

-	color->red = ((value & 0xFF0000) >> 16) * 0xFF;

-	color->green = ((value & 0xFF00) >> 8) * 0xFF;

-	color->blue = ((value & 0xFF) >> 0) * 0xFF;

-}

-

-static void readInput() {

-	int available;

-	FILE *fd = stdin;

-	char *buffer = NULL, *equals = NULL, *end, *line;

-	ioctl(fileno(fd), FIONREAD, &available);

-	if (available <= 0) return;

-	buffer = malloc(available + 1);

-	available = fread(buffer, 1, available, fd);

-	buffer[available] = 0;

-	line = buffer;

-	while (line != NULL) {

-		end = strchr(line, '\n');

-		equals = strchr(line, '=');

-		if (end != NULL) end[0] = 0;

-		if (equals != NULL) {

-			char *str = (char *)equals + 1;

-			equals[0] = 0;

-			if (strcmp(line, "maximum") == 0) {

-				maximum = atoi(str);

-				if (progress) {

-					SetControl32BitMaximum (progress, maximum);

-				}

-			} else if (strcmp(line, "value") == 0) {

-				value = atoi(str);

-				if (progress) {

-					SetControl32BitValue (progress, value);

-				}

-			} else if (strcmp(line, "progressRect") == 0) {

-				readRect(str, &progressRect);

-				if (progress) {

-					SetControlBounds (progress, &progressRect);

-				}

-			} else if (strcmp(line, "messageRect") == 0) {

-				readRect(str, &messageRect);

-				invalidateWindow();

-			} else if (strcmp(line, "foreground") == 0) {

-				readColor(str, &foreground);

-				invalidateWindow();

-			} else if (strcmp(line, "message") == 0) {

-				if (string != NULL) CFRelease(string);

-				string = CFStringCreateWithBytes (kCFAllocatorDefault, (UInt8 *)str, strlen(str), CFStringGetSystemEncoding(), 1);

-				invalidateWindow();

-			}

-			

-		}

-		if (end != NULL) line = end + 1;

-		else line = NULL;

-	}

-	free(buffer);

-}

-

-static void timerProc(EventLoopTimerRef inTimer, void *inUserData) {

-	readInput();

-	if ( isEndSplash() )

-	{

-		RemoveEventLoopTimer(inTimer);

-		DisposeWindow(window);

-		if (string != NULL) CFRelease(string);

-		string = NULL;

-		progress = pane = NULL;

-	}

-	

-}

-

-static OSStatus drawProc (EventHandlerCallRef eventHandlerCallRef, EventRef eventRef, PixMap * pixmap) {

-	Rect rect;

-	int result = CallNextEventHandler(eventHandlerCallRef, eventRef);

-	GrafPtr port = GetWindowPort(window);

-	SetPort(port);

-	GetControlBounds(pane, &rect);

-	CopyBits((BitMap*)pixmap, GetPortBitMapForCopyBits(port), &rect, &rect, srcCopy, NULL);

-	if (string != NULL) {

-		RGBForeColor(&foreground);

-		DrawThemeTextBox(string, kThemeSmallSystemFont, kThemeStateActive, 1, &messageRect, teFlushLeft, NULL);

-	}

-	return result;

-}

-

-/* Show the Splash Window

- *

- * Create the splash window, load the bitmap and display the splash window.

- */

-int showSplash( char* timeoutString, char* featureImage )

-{

-	Rect wRect;

-	int w, h, deviceWidth, deviceHeight;

-	PixMap *pm;

-	PixMapHandle pixmap;

-	EventTypeSpec draw = {kEventClassControl, 	kEventControlDraw};

-

-	debug("featureImage: %s\n", featureImage);

-

-	init();

-    

-	/* Determine the splash timeout value (in seconds). */

-	if (timeoutString != NULL && strlen(timeoutString) > 0) {

-		int timeout;

-		if (sscanf(timeoutString, "%d", &timeout) == 1) {

-			InstallEventLoopTimer(GetMainEventLoop(), (EventTimerInterval) timeout, 0.0, NewEventLoopTimerUPP(eventLoopTimerProc), NULL, NULL);

-		}

-	}

-

-	pixmap= loadBMPImage(featureImage);

-	/* If the splash image data could not be loaded, return an error. */

-	if (pixmap == NULL)

-		return ENOENT;

-		

-	pm= *pixmap;

-	w= pm->bounds.right;

-	h= pm->bounds.bottom;

-

-	GetAvailableWindowPositioningBounds(GetMainDevice(), &wRect);

-

-	deviceWidth= wRect.right - wRect.left;

-	deviceHeight= wRect.bottom - wRect.top;

-

-	wRect.left+= (deviceWidth-w)/2;

-	wRect.top+= (deviceHeight-h)/3;

-	wRect.right= wRect.left + w;

-	wRect.bottom= wRect.top + h;

-

-	CreateNewWindow(kModalWindowClass, kWindowStandardHandlerAttribute, &wRect, &window);

-	if (window != NULL) {

-		ControlRef root = NULL;

-		CreateRootControl(window, &root);

-		GetRootControl(window, &root);

-		SetRect(&wRect, 0, 0, w, h);

-		CreateUserPaneControl(window, &wRect, 0, &pane);

-		EmbedControl(pane, root);

-		CreateProgressBarControl(window, &progressRect, value, 0, maximum, 0, &progress);

-		EmbedControl(progress, pane);

-		InstallEventHandler(GetControlEventTarget(pane), (EventHandlerUPP)drawProc, 1, &draw, pm, NULL);

-		readInput();

-		InstallEventLoopTimer (GetCurrentEventLoop (), 50 / 1000.0, 50 / 1000.0, NewEventLoopTimerUPP(timerProc), NULL, NULL);

-		ShowWindow(window);

-//		RunApplicationEventLoop();

-//		DisposeWindow(window);

-//		if (string != NULL) CFRelease(string);

-//		string = NULL;

-//		progress = pane = NULL;

-	}

-

-	return 0;

-}

-

-

-/* Get the window system specific VM arguments */

-char** getArgVM( char* vm ) 

-{

-	char** result;

-

-	/* Use the default arguments for a standard Java VM */

-	result = argVM_JAVA;

-

-	return result;

-}

-

-/* Start the Java VM 

- *

- * This method is called to start the Java virtual machine and to wait until it

- * terminates. The function returns the exit code from the JVM.

- */

-int startJavaVM( char* args[] ) 

-{

-

-	/* Create a child process for the JVM. */	

-	pid_t pid= fork();

-	if (pid == 0) {

-

-		dumpArgs("execv", -1, args);

-

-		/* Child process ... start the JVM */

-		execv(args[0], args);

-

-		/* The JVM would not start ... return error code to parent process. */

-		_exit(errno);

-	}

-

-	if (pid == -1)

-		return errno;

-	

-	/* wait for it to terminate processing events */

-	jvmPid = pid;

-	InstallEventLoopTimer(GetCurrentEventLoop (), 100 / 1000.0, 100 / 1000.0, NewEventLoopTimerUPP(detectExitTimerProc), NULL, NULL);

-	RunApplicationEventLoop();

-	int exitCode = jvmExitCode;

-//	wait(&exitCode);

-

-	exitCode= ((exitCode & 0x00ff) == 0 ? (exitCode >> 8) : exitCode);

-

-	return exitCode;

-}

-

-/**

- * loadBMPImage

- * Create a QuickDraw PixMap representing the given BMP file.

- *

- * bmpPathname: absolute path and name to the bmp file

- *

- * returned value: the PixMapHandle newly created if successful. 0 otherwise.

- */

-static PixMapHandle loadBMPImage (const char *bmpPathname) { 

-	ng_stream_t in;

-	ng_bitmap_image_t image;

-	ng_err_t err= ERR_OK;

-	PixMapHandle pixmap;

-	PixMap *pm;

-

-	NgInit();

-

-	if (NgStreamInit(&in, (char*) bmpPathname) != ERR_OK) {

-		NgError(ERR_NG, "Error can't open BMP file");

-		return 0;

-	}

-

-	NgBitmapImageInit(&image);

-	err= NgBmpDecoderReadImage (&in, &image);

-	NgStreamClose(&in);

-

-	if (err != ERR_OK) {

-		NgBitmapImageFree(&image);

-		return 0;

-	}

-

-	UBYTE4 srcDepth= NgBitmapImageBitCount(&image);

-	if (srcDepth != 24) {	/* We only support image depth of 24 bits */

-		NgBitmapImageFree(&image);

-		NgError (ERR_NG, "Error unsupported depth - only support 24 bit");

-		return 0;

-	}

-

-	pixmap= NewPixMap();	

-	if (pixmap == 0) {

-		NgBitmapImageFree(&image);

-		NgError(ERR_NG, "Error XCreatePixmap failed");

-		return 0;

-	}

-

-	pm= *pixmap;

-

-	int width= (int)NgBitmapImageWidth(&image);

-	int height= (int)NgBitmapImageHeight(&image);

-	int rowBytes= width * 4;

-	

-	pm->bounds.right= width;

-	pm->bounds.bottom= height;

-	pm->rowBytes= rowBytes + 0x8000; 

-	pm->baseAddr= NewPtr(rowBytes * height);

-	pm->pixelType= RGBDirect;

-	pm->pixelSize= 32;

-	pm->cmpCount= 3;

-	pm->cmpSize= 8;

-

-	/* 24 bit source to direct screen destination */

-	NgBitmapImageBlitDirectToDirect(NgBitmapImageImageData(&image), NgBitmapImageBytesPerRow(&image), width, height,

-		(UBYTE1*)pm->baseAddr, pm->pixelSize, rowBytes, NgIsMSB(),

-			0xff0000, 0x00ff00, 0x0000ff);

-

-	NgBitmapImageFree(&image);

-

-	return pixmap;

-}

-

-/*

- * Expand $APP_PACKAGE, $JAVA_HOME, and does tilde expansion.

- 

-	A word beginning with an unquoted tilde character (~) is

-	subject to tilde expansion. All the characters up to a

-	slash (/) or the end of the word are treated as a username

-	and are replaced with the user's home directory. If the

-	username is missing (as in ~/foobar), the tilde is

-	replaced with the value of the HOME variable (the current

-	user's home directory).

- */

-static char *expandShell(char *arg, const char *appPackage, const char *javaRoot) {

-	

-	if (index(arg, '~') == NULL && index(arg, '$') == NULL)

-		return arg;

-	

-	char *buffer= strdup("");

-	char c, lastChar= ' ';

-	const char *cp= arg;

-	while ((c = *cp++) != 0) {

-		if (isspace(lastChar) && c == '~') {

-			char name[100], *dir= NULL;

-			int j= 0;

-			for (; (c = *cp) != 0; cp++) {

-				if (! isalnum(c))

-					break;

-				name[j++]= c;

-				lastChar= c;

-			}

-			name[j]= '\0';

-			if (j > 0) {

-				struct passwd *pw= getpwnam(name);

-				if (pw != NULL)

-					dir= pw->pw_dir;

-			} else {

-				dir= getenv("HOME");

-			}

-			if (dir != NULL)

-				buffer= append(buffer, dir);

-				

-		} else if (c == '$') {

-			int l= strlen(APP_PACKAGE);

-			if (appPackage != NULL && strncmp(cp, APP_PACKAGE, l) == 0) {

-				cp+= l;

-				buffer= append(buffer, appPackage);

-			} else {

-				int l= strlen(JAVAROOT);

-				if (javaRoot != NULL && strncmp(cp, JAVAROOT, l) == 0) {

-					cp+= l;

-					buffer= append(buffer, javaRoot);

-				} else {

-					buffer= appendc(buffer, c);

-				}

-			}

-		} else

-			buffer= appendc(buffer, c);

-		lastChar= c;

-	}

-	return buffer;

-}

-

-static char *my_strcasestr(const char *big, const char *little) {

-    char *cp, *s, *t;

-    for (cp= (char*) big; *cp; cp++) {

-        for (s= cp, t= (char*) little; *s && *t; s++, t++)

-            if (toupper(*s) != toupper(*t))

-                break;

-        if (*t == '\0')

-            return cp;

-    }

-    return NULL;

-}

-

-static char *append(char *buffer, const char *s) {

-	int bl= strlen(buffer);

-	int sl= strlen(s);

-	buffer= realloc(buffer, bl+sl+1);

-	strcpy(&buffer[bl], s);

-	return buffer;

-}

-

-static char *appendc(char *buffer, char c) {

-	int bl= strlen(buffer);

-	buffer= realloc(buffer, bl+2);

-	buffer[bl++]= c;

-	buffer[bl]= '\0';

-	return buffer;

-}

-

-_TCHAR* getTempPath()

-{

-	_TCHAR* buffer = malloc(MAX_PATH*sizeof(_TCHAR));

-	_TCHAR* tmp;

-	tmp = _ttempnam(_T_INSTALL("/tmp"),_T_INSTALL("_RITMP"));

-	_tcscpy(buffer,tmp);

-	_tcscat(buffer,_T_INSTALL("/"));

-	free(tmp);

-	return buffer;

-}

-

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/carbon/make_macosx.mak b/plugins/org.eclipse.epp.installer.launcher.native/carbon/make_macosx.mak
deleted file mode 100644
index 860c702..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/carbon/make_macosx.mak
+++ /dev/null
@@ -1,54 +0,0 @@
-

-# Makefile for creating the install launcher program.

-#

-

-# Define the object modules to be compiled and flags.

-OBJS = install.o installShm.o installConfig.o installCarbon.o NgImageData.o NgWinBMPFileFormat.o NgCommon.o extract.o log.o

-EXEC = $(PROGRAM_OUTPUT)

-LIBS = -framework Carbon

-ARCHS = -arch ppc

-#ARCHS = -arch i386 -arch ppc

-CFLAGS = -O -s \

-	-Wall \

-	$(ARCHS) \

-	-DMACOSX \

-	-DDEFAULT_OS="\"$(DEFAULT_OS)\"" \

-	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \

-	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \

-	-I../src -I../motif

-

-all: $(EXEC)

-

-.c.o: ../src/installOS.h

-	$(CC) $(CFLAGS) -c $< -o $@

-

-installShm.o: ../src/installShm.c ../src/installShm.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/installShm.c -o $@

-	

-installConfig.o: ../src/installConfig.c ../src/installConfig.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/installConfig.c -o $@

-

-NgCommon.o: ../motif/NgCommon.c

-	$(CC) $(CFLAGS) -c ../motif/NgCommon.c -o $@

-

-NgWinBMPFileFormat.o: ../motif/NgWinBMPFileFormat.c

-	$(CC) $(CFLAGS) -c ../motif/NgWinBMPFileFormat.c -o $@

-

-NgImageData.o: ../motif/NgImageData.c

-	$(CC) $(CFLAGS) -c ../motif/NgImageData.c -o $@

-

-extract.o: ../src/extract.c ../src/extract.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/extract.c -o $@

-

-log.o: ../src/log.c ../src/log.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/log.c -o $@

-

-$(EXEC): $(OBJS)

-	$(CC) -o $(EXEC) $(ARCHS) $(OBJS) $(LIBS)

-

-install: all

-	cp $(EXEC) $(OUTPUT_DIR)/$(PROGRAM_OUTPUT)

-	rm -f $(EXEC) $(OBJS)

-

-clean:

-	rm -f $(EXEC) $(OBJS)

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/gtk/.cvsignore b/plugins/org.eclipse.epp.installer.launcher.native/gtk/.cvsignore
deleted file mode 100644
index 7c32f55..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/gtk/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-install
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/gtk/build.sh b/plugins/org.eclipse.epp.installer.launcher.native/gtk/build.sh
deleted file mode 100644
index c19468c..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/gtk/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh

-

-cd `dirname $0`

-

-makefile="make_linux.mak"

-if [ "$MODEL" = "" ];  then

-    MODEL=`uname -m`

-fi

-

-arch=""

-case $MODEL in

-	"x86_64")

-		arch="x86_64"

-		;;

-	i?86)

-		arch="x86"

-		;;

-	*)

-		echo "*** Unknown MODEL <${MODEL}>"

-		;;

-esac

-

-# Set up environment variables needed by the makefiles.

-PROGRAM_OUTPUT="install"

-DEFAULT_OS="linux"

-DEFAULT_OS_ARCH="$arch"

-DEFAULT_WS="gtk"

-OUTPUT_DIR="../../com.instantiations.installer.tools/template/$DEFAULT_OS/$DEFAULT_OS_ARCH"

-

-export OUTPUT_DIR PROGRAM_OUTPUT DEFAULT_OS DEFAULT_OS_ARCH DEFAULT_WS

-

-echo "Building $DEFAULT_OS install launcher."

-make -f $makefile clean

-make -f $makefile all

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/gtk/installGtk.c b/plugins/org.eclipse.epp.installer.launcher.native/gtk/installGtk.c
deleted file mode 100644
index 7322f09..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/gtk/installGtk.c
+++ /dev/null
@@ -1,417 +0,0 @@
-

-#include "installOS.h"

-

-#include <signal.h>

-#include <unistd.h>

-#include <sys/types.h>

-#include <sys/stat.h>

-#include <sys/wait.h>

-#include <sys/ioctl.h>

-#include <errno.h>

-#include <stdio.h>

-#include <stdlib.h>

-#include <string.h>

-#include <locale.h>

-

-#include <gtk/gtk.h>

-#include <gdk-pixbuf/gdk-pixbuf.h>

-

-/* Global Variables */

-char   dirSeparator  = '/';

-char   pathSeparator = ':';

-char*  consoleVM     = "java";

-char*  defaultVM     = "java";

-char*  shippedVMDir  = "jre/bin/";

-

-/* Define the special arguments for the various Java VMs. */

-static char*  argVM_JAVA[]        = { NULL };

-

-

-/* Define local variables . */

-static int          saveArgc   = 0;

-static char**       saveArgv   = 0;

-static gboolean     gtkInitialized = FALSE;

-

-static GtkWidget *label = NULL, *progress = NULL;

-static GdkColor foreground = {0, 0, 0, 0};

-static GdkRectangle progressRect = {0, 0, 0, 0}, messageRect = {0, 0, 0, 0};

-static int value = 0, maximum = 100;

-

-/* Local functions */

-static gboolean splashTimeout(gpointer data);

-#ifdef MOZILLA_FIX

-static void fixEnvForMozilla();

-#endif /* MOZILLA_FIX */

-

-/* Display a Message */

-void displayMessage(char* message)

-{

-	GtkWidget* dialog;

-	

-    /* If GTK has not been initialized yet, do it now. */

-    if (!gtkInitialized) 

-    {

-		initWindowSystem( &saveArgc, saveArgv, 1 );

-    }

-

-  	dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT,

-				   					GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,

-				   					"%s", message);

-  	gtk_dialog_run(GTK_DIALOG (dialog));

-  	gtk_widget_destroy(dialog);

-}

-

-

-/* Initialize the Window System */

-void initWindowSystem(int* pArgc, char* argv[], int showSplash)

-{

-    

-    /* Save the arguments in case displayMessage() is called in the main launcher. */ 

-    if (saveArgv == 0)

-    {

-    	saveArgc = *pArgc;

-    	saveArgv =  argv;

-    }  

-

-    

-    /* If the splash screen is going to be displayed by this process */

-    if (showSplash)

-    {

-    	/* Initialize GTK. */

-  		gtk_set_locale();

-  		gtk_init(pArgc, &argv);

-  		gdk_set_program_class(officialName);

-  		gtkInitialized = TRUE;

-	}

-}

-

-static void readRect(char *str, GdkRectangle *rect) {

-	int x, y, width, height;

-	char *temp = str, *comma;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	x = atoi(temp);

-	temp = comma + 1;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	y = atoi(temp);

-	temp = comma + 1;

-	comma = strchr(temp, ',');

-	if (comma == NULL) return;

-	comma[0] = 0;

-	width = atoi(temp);

-	temp = comma + 1;

-	height = atoi(temp);

-	rect->x = x;

-	rect->y = y;

-	rect->width = width;

-	rect->height = height;

-}

-

-static void readColor(char *str, GdkColor *color) {

-	int value = atoi(str);

-	color->red = ((value & 0xFF0000) >> 16) * 0xFF;

-	color->green = ((value & 0xFF00) >> 8) * 0xFF;

-	color->blue = ((value & 0xFF) >> 0) * 0xFF;

-}

-

-static void readInput() {

-	int available;

-	FILE *fd = stdin;

-	char *buffer = NULL, *equals = NULL, *end, *line;

-	ioctl(fileno(fd), FIONREAD, &available);

-	if (available <= 0) return;

-	buffer = malloc(available + 1);

-	available = fread(buffer, 1, available, fd);

-	buffer[available] = 0;

-	line = buffer;

-	while (line != NULL) {

-		end = strchr(line, '\n');

-		equals = strchr(line, '=');

-		if (end != NULL) end[0] = 0;

-		if (equals != NULL) {

-			char *str = (char *)equals + 1;

-			equals[0] = 0;

-			if (strcmp(line, "maximum") == 0) {

-				maximum = atoi(str);

-				if (progress) {

-					double fraction = maximum == 0 ? 1 : (double)(value / maximum);

-					gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(progress), fraction);

-				}

-			} else if (strcmp(line, "value") == 0) {

-				value = atoi(str);

-				if (progress) {

-					double fraction = maximum == 0 ? 1 : (double)value / maximum;

-					gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(progress), fraction);

-				}

-			} else if (strcmp(line, "progressRect") == 0) {

-				readRect(str, &progressRect);

-				if (progress) {

-					gtk_fixed_move(GTK_FIXED(gtk_widget_get_parent(progress)), progress, progressRect.x, progressRect.y);

-				  	gtk_widget_set_size_request(GTK_WIDGET(progress), progressRect.width, progressRect.height);

-				}

-			} else if (strcmp(line, "messageRect") == 0) {

-				readRect(str, &messageRect);

-				if (label) {

-					gtk_fixed_move(GTK_FIXED(gtk_widget_get_parent(label)), label, messageRect.x, messageRect.y);

-				  	gtk_widget_set_size_request(GTK_WIDGET(label), messageRect.width, messageRect.height);

-				}

-			} else if (strcmp(line, "foreground") == 0) {

-				readColor(str, &foreground);

-				if (label) {

-					gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &foreground);

-				}

-			} else if (strcmp(line, "message") == 0) {

-				if (label) {

-					gtk_label_set_text(GTK_LABEL(label), str);

-				}

-			}

-			

-		}

-		if (end != NULL) line = end + 1;

-		else line = NULL;

-	}

-	free(buffer);

-}

-

-static gboolean timerProc(gpointer data) {

-	readInput();

-  	return TRUE;

-}

-

-/* Create and DIsplay the Splash Window */

-int showSplash( char* timeoutString, char* featureImage )

-{

-	GdkPixbuf* imageData = NULL;

-	GtkWidget* image, *fixed;

-  	GtkWindow* main;

-  	int        timeout = 0;

-

-	/* Determine the splash timeout value (in seconds). */

-	if (timeoutString != NULL && strlen( timeoutString ) > 0)

-	{

-	    sscanf( timeoutString, "%d", &timeout );

-	}

-

-    /* Load the feature specific splash image data if defined. */

-    if (featureImage != NULL)

-    {

-    	imageData = gdk_pixbuf_new_from_file(featureImage, NULL);

-    }

-   

-    /* If the splash image data could not be loaded, return an error. */

-    if (imageData == NULL)

-    	return ENOENT;

-    

-    /* Create the image from its data. */

-    fixed = gtk_fixed_new();

-    image = gtk_image_new_from_pixbuf(imageData);

-  	label = gtk_label_new("");

-  	progress = gtk_progress_bar_new();

-

-	/* Create a top level window for the image. */

- 	main = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));

-	gtk_window_set_title(main, officialName);

-

-  	gtk_container_add(GTK_CONTAINER(main), GTK_WIDGET(fixed));

-  	gtk_container_add(GTK_CONTAINER(fixed), GTK_WIDGET(image));

-  	gtk_container_add(GTK_CONTAINER(fixed), GTK_WIDGET(label));

-  	gtk_container_add(GTK_CONTAINER(fixed), GTK_WIDGET(progress));

-

-	gtk_misc_set_alignment (GTK_MISC(label), 0.0f, 0.0f);

-	gtk_label_set_justify (GTK_LABEL(label), GTK_JUSTIFY_LEFT);

-	gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &foreground);

-

-    readInput();

- 	gtk_timeout_add(50, timerProc, NULL);

-

-	gtk_fixed_move(GTK_FIXED(fixed), label, messageRect.x, messageRect.y);

-  	gtk_widget_set_size_request(GTK_WIDGET(label), messageRect.width, messageRect.height);

-	gtk_fixed_move(GTK_FIXED(fixed), progress, progressRect.x, progressRect.y);

-  	gtk_widget_set_size_request(GTK_WIDGET(progress), progressRect.width, progressRect.height);

-  	gtk_widget_set_size_request(GTK_WIDGET(fixed), gdk_pixbuf_get_width(imageData), gdk_pixbuf_get_height(imageData));

-

-  	/* Remove window decorations and centre the window on the display. */

-  	gtk_window_set_decorated(main, FALSE);

-  	gtk_window_set_position(main, GTK_WIN_POS_CENTER);

-    gtk_window_set_resizable(main, FALSE);

-

-    /* Set the background pixmap to NULL to avoid a gray flash when the image appears. */

-    gtk_widget_realize(GTK_WIDGET(main));

-    gdk_window_set_back_pixmap(GTK_WIDGET(main)->window, NULL, FALSE);

-

-	/* If a timeout for the splash window was given */

-	if (timeout != 0)

-	{

-		/* Add a timeout (in milliseconds) to bring down the splash screen. */

-    	gtk_timeout_add((timeout * 1000), splashTimeout, (gpointer) main);

-	}

-

-	/* Show the window and wait for the timeout (or until the process is terminated). */

-	gtk_widget_show_all(GTK_WIDGET (main));

-	gtk_main ();

-

-	label = progress = NULL;

-

-  	return 0;

-}

-

-

-/* Get the window system specific VM arguments */

-char** getArgVM( char* vm ) 

-{

-    char** result;

-    char*  version;

-

-    /* Use the default arguments for a standard Java VM */

-    result = argVM_JAVA;

-    return result;

-}

-

-

-/* Start the Java VM 

- *

- * This method is called to start the Java virtual machine and to wait until it

- * terminates. The function returns the exit code from the JVM.

- */

-int startJavaVM( char* args[] ) 

-{

-	int     jvmExitCode = 1;

-  	pid_t   jvmProcess;

-  	int     exitCode;

-

-#ifdef MOZILLA_FIX

-	fixEnvForMozilla();

-#endif /* MOZILLA_FIX */

-

-	jvmProcess = fork();

-  	if (jvmProcess == 0) 

-    {

-    	/* Child process ... start the JVM */

-      	execv(args[0], args);

-

-      	/* The JVM would not start ... return error code to parent process. */

-      	_exit(errno);

-    }

-

-	/* If the JVM is still running, wait for it to terminate. */

-	if (jvmProcess != 0)

-	{

-		wait(&exitCode);

-      	if (WIFEXITED(exitCode))

-			jvmExitCode = WEXITSTATUS(exitCode);

-    }

-

-  return jvmExitCode;

-}

-

-/* Splash Timeout - Hide the main window and exit the main loop. */

-static gboolean splashTimeout(gpointer data)

-{

-	GtkWidget* main = GTK_WIDGET(data);

-  	gtk_widget_hide(main);

-  	gtk_main_quit();

-  	return FALSE;

-}

-

-/* Set the environmnent required by the SWT Browser widget to bind to Mozilla. 

- * The SWT Browser widget relies on Mozilla on Linux. The LD_LIBRARY_PATH

- * and the Mozilla environment variable MOZILLA_FIVE_HOME must point

- * to the installation directory of Mozilla.

- * 

- * 1. Use the location set by MOZILLA_FIVE_HOME if it is defined

- * 2. Parse the file /etc/gre.conf if it is defined. This file is

- *    set by the RedtHat RPM manager.

- */

-#ifdef MOZILLA_FIX

-void fixEnvForMozilla() {

-	static int fixed = 0;

-	if (fixed) return; 

-	{

-		char *ldPath = (char*)getenv("LD_LIBRARY_PATH");

-		char *mozillaFiveHome = (char*)getenv("MOZILLA_FIVE_HOME");

-		char *grePath = NULL; /* Gecko Runtime Environment Location */

-		char *XPCOM_LIB = "libxpcom.so";

-		fixed = 1;

-		/* Always dup the string so we can free later */

-		if (ldPath != NULL) ldPath = strdup(ldPath);

-		else ldPath = strdup("");

-		

-		/* MOZILLA_FIVE_HOME (if defined) points to the Mozilla

-		 * install directory. Don't look any further if it is set.

-		 */

-		if (mozillaFiveHome != NULL) 

-		{

-			grePath = strdup(mozillaFiveHome);

-		}

-

-		/* The file gre.conf (if available) points to the

-		 * Mozilla install directory. Don't look any further if 

-		 * it is set.

-		 */

-		if (grePath == NULL)

-		{

-			struct stat buf;

-			FILE *file = NULL;

-#if defined(__amd64__) || defined(__x86_64__)

-			if (stat("/etc/gre64.conf", &buf) == 0)

-			{

-				file = fopen("/etc/gre64.conf", "r");

-			}

-			else if (stat("/etc/gre.d/gre64.conf", &buf) == 0)

-			{

-				file = fopen("/etc/gre.d/gre64.conf", "r");

-			} else

-#endif

-			if (stat("/etc/gre.conf", &buf) == 0)

-			{

-				file = fopen("/etc/gre.conf", "r");

-			}

-			else if (stat("/etc/gre.d/gre.conf", &buf) == 0)

-			{

-				file = fopen("/etc/gre.d/gre.conf", "r");

-			}

-			if (file != NULL)

-			{

-				char buffer[1024];

-				char path[1024];

-				while (fgets(buffer, 1024, file) != NULL)

-				{

-					if (sscanf(buffer, "GRE_PATH=%s", path) == 1)

-					{

-						grePath = strdup(path);

-						break;

-					}

-				}

-				fclose(file);

-			}

-		}

-		

-		if (grePath != NULL)

-		{

-			ldPath = (char*)realloc(ldPath, strlen(ldPath) + strlen(grePath) + 2);

-			if (strlen(ldPath) > 0) strcat(ldPath, ":");

-			strcat(ldPath, grePath);

-			setenv("LD_LIBRARY_PATH", ldPath, 1);

-			

-			if (mozillaFiveHome == NULL) setenv("MOZILLA_FIVE_HOME", grePath, 1);

-			free(grePath);

-		}

-		free(ldPath);

-	}

-}

-#endif /* MOZILLA_FIX */

-

-

-_TCHAR* getTempPath()

-{

-	_TCHAR* buffer = malloc(MAX_PATH*sizeof(_TCHAR));

-	_TCHAR* tmp;

-	tmp = _ttempnam(_T_INSTALL("/tmp"),_T_INSTALL("_RITMP"));

-	_tcscpy(buffer,tmp);

-	_tcscat(buffer,_T_INSTALL("/"));

-	free(tmp);

-	return buffer;

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/gtk/make_linux.mak b/plugins/org.eclipse.epp.installer.launcher.native/gtk/make_linux.mak
deleted file mode 100644
index 895657a..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/gtk/make_linux.mak
+++ /dev/null
@@ -1,46 +0,0 @@
-

-# Makefile for creating the install launcher program.

-#

-

-# Define the object modules to be compiled and flags.

-CC=gcc

-OBJS = install.o installShm.o installConfig.o installGtk.o extract.o log.o

-EXEC = $(PROGRAM_OUTPUT).exe

-LIBS = `pkg-config --libs-only-L gtk+-2.0` -lgtk-x11-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lgdk-x11-2.0

-CFLAGS = -O -s \

-	-fpic \

-	-DLINUX \

-	-DMOZILLA_FIX \

-	-DDEFAULT_OS="\"$(DEFAULT_OS)\"" \

-	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \

-	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \

-	-I. \

-	-I../src \

-	`pkg-config --cflags gtk+-2.0`

-

-all: $(EXEC)

-

-install.o: ../src/install.c ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/install.c -o install.o

-

-installShm.o: ../src/installShm.c ../src/installShm.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/installShm.c -o installShm.o

-

-installConfig.o: ../src/installConfig.c ../src/installConfig.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/installConfig.c -o installConfig.o

-

-extract.o: ../src/extract.c ../src/extract.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/extract.c -o extract.o

-

-log.o: ../src/log.c ../src/log.h ../src/installOS.h

-	$(CC) $(CFLAGS) -c ../src/log.c -o log.o

-	

-$(EXEC): $(OBJS)

-	$(CC) -o $(EXEC) $(OBJS) $(LIBS)

-

-install: all

-	cp $(EXEC) $(OUTPUT_DIR)/$(PROGRAM_OUTPUT)

-	rm -f $(EXEC) $(OBJS)

-

-clean:

-	rm -f $(EXEC) $(OBJS)

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.c b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.c
deleted file mode 100644
index 28c69d4..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.c
+++ /dev/null
@@ -1,168 +0,0 @@
-

-#include <stdlib.h>

-#include <string.h>

-#include "NgCommon.h"

-

-/* Non-zero = big-endian architecture */

-static BYTE4 hostIsMSB = 0;

-

-/* Store last error msg */

-#define MAX_MSG_SIZE 100

-char errorMsg[MAX_MSG_SIZE];

-

-/* Library initialization */

-void NgInit()

-{

-	BYTE4 result = (BYTE4) 'A';

-	

-	/* determine the byte ordering of the host machine */

-	hostIsMSB = (BYTE4) (*((char *) &result) != 'A');

-	

-	errorMsg[0] = 0;

-}

-

-/**

- * Memory allocation routine

- */

-void *NgMalloc (UBYTE4 size) 

-{

-	return malloc (size);

-}

-

-/**

- * Memory allocation routine

- */

-void NgFree (void *memblock) 

-{

-	if (memblock != NULL)

-		free (memblock);

-}

-

-void NgMemSet (void *dest, UBYTE1 c, BYTE4 count)

-{

-	memset (dest, c, count);

-}

-

-void NgMemCpy (void *dest, void *src, BYTE4 count)

-{

-	memcpy (dest, src, count);

-}

-

-/**

- * Error Reporting

- */

-

-ng_err_t NgError (ng_err_t error_type, char* msg) {

-	if (msg != NULL)

-	{

-		/* Store a copy of the last error msg - truncate if necessary */

-		size_t size = strlen (msg);

-		if (size >= MAX_MSG_SIZE) size = MAX_MSG_SIZE - 1;

-		NgMemCpy (errorMsg, msg, size);

-		errorMsg[size] = 0;

-	}	

-	return error_type;

-}

-

-const char *NgGetLastErrorMsg()

-{

-	return errorMsg;

-}

-

-/**

- * Stream manipulation routines

- */

-ng_err_t NgStreamInit (ng_stream_t *stream, char *fullname)

-{

-	stream->file = fopen (fullname, "rb");

-	stream->size = 0;

-	stream->pos = 0;

-	if (stream->file == NULL) return NgError (ERR_NG, "Can't open file");

-	return ERR_OK;

-}

-

-void NgStreamClose (ng_stream_t *stream)

-{

-	if (stream->file != NULL)

-	{

-		fclose (stream->file);

-		stream->file = NULL;

-	}

-	stream->size = -1;

-}

-

-char NgStreamEof (ng_stream_t *stream) 

-{

-	return stream->size == -1;

-}

-

-BYTE4 NgStreamGetPosition (ng_stream_t *stream)

-{

-	return stream->pos;

-}

-

-BYTE4 NgStreamSkip (ng_stream_t *stream, BYTE4 nbr)

-{

-	if (stream->size == -1) return 0;

-	if (fseek (stream->file, nbr, SEEK_CUR))

-	{

-		NgStreamClose (stream);

-		return 0;

-	}

-	stream->pos += nbr;

-	return nbr;

-}

-

-BYTE4 NgStreamRead (ng_stream_t *stream, char *buffer, BYTE4 nbr)

-{

-	size_t cnt;

-	if (stream->size == -1) return 0;

-	cnt = fread (buffer, sizeof (char), nbr, stream->file);

-	if (cnt != nbr)

-	{

-		NgStreamClose (stream);

-		return 0;

-	}

-	stream->pos += nbr;

-	return nbr;

-}

-

-BYTE1 NgIsMSB()

-{

-	return hostIsMSB != 0;

-}

-

-UBYTE2 SystemToLittleEndianUBYTE2 (UBYTE2 value)

-{

-	return hostIsMSB ? ((value&0xFF) << 8)|((value&0xFF00)>>8) : value;

-}

-

-UBYTE4 SystemToLittleEndianUBYTE4 (UBYTE4 value)

-{

-	return hostIsMSB ? ((value&0xFF000000L)>>24)|((value&0xFF0000L)>>8) | ((value&0xFF00L)<<8) | ((value&0xFFL)<<24) : value;

-}

-

-UBYTE2 SystemToBigEndianUBYTE2 (UBYTE2 value)

-{

-	return hostIsMSB ? value : ((value&0xFF) << 8)|((value&0xFF00)>>8);

-}

-

-UBYTE2 LittleEndianToSystemUBYTE2 (UBYTE2 value)

-{

-	return hostIsMSB ? ((value&0xFF) << 8)|((value&0xFF00)>>8) : value;

-}

-

-UBYTE4 LittleEndianToSystemUBYTE4 (UBYTE4 value)

-{

-	return hostIsMSB ? ((value&0xFF000000L)>>24)|((value&0xFF0000L)>>8) | ((value&0xFF00L)<<8) | ((value&0xFFL)<<24) : value;

-}

-

-UBYTE2 BigEndianToSystemUBYTE2 (UBYTE2 value)

-{

-	return hostIsMSB ? value : ((value&0xFF) << 8)|((value&0xFF00)>>8);

-}

-

-UBYTE4 BigEndianToSystemUBYTE4 (UBYTE4 value)

-{

-	return hostIsMSB ? value : ((value&0xFF000000L)>>24)|((value&0xFF0000L)>>8)|((value&0xFF00L)<<8) | ((value&0xFFL)<<24);

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.h b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.h
deleted file mode 100644
index cb2b1b0..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgCommon.h
+++ /dev/null
@@ -1,85 +0,0 @@
-

-#ifndef __NG_COMMON_H

-#define __NG_COMMON_H

-

-#include <memory.h>

-#include <stdio.h>

-

-typedef char BYTE1;

-typedef unsigned char UBYTE1;

-typedef short BYTE2;

-typedef unsigned short UBYTE2;

-typedef long BYTE4;

-typedef unsigned long UBYTE4;

-

-/* error reporting */

-#define ERR_OK 1

-#define ERR_SUBSCRIPT_OUT_OF_RANGE -1

-#define ERR_INVALID_BIT_COUNT -2

-#define ERR_NG -4

-

-typedef BYTE4 ng_err_t;

-ng_err_t NgError (ng_err_t error_type, char* msg);

-const char *NgGetLastErrorMsg();

-

-/**

- * NgInit

- * Must be called prior to using the image decoders 

- */

-void NgInit();

-

-/* memory management */

-void *NgMalloc (UBYTE4 size);

-void NgFree (void *memblock);

-void NgMemSet (void *dest, UBYTE1 c, BYTE4 count);

-void NgMemCpy (void *dest, void *src, BYTE4 count);

-

-/* stream api */

-typedef struct {

-	FILE *file;

-	BYTE4 size;

-	BYTE4 pos;

-} ng_stream_t;

-

-/**

- * Init a stream given the path and name of a file

- * Note.  NgStreamClose should be called to release

- * the related OS resource.

- */

-ng_err_t NgStreamInit (ng_stream_t *stream, char *fullname);

-

-/**

- * Close any OS resource managed the given stream.

- * In particular, close the file if the stream is using one.

- */

-void NgStreamClose (ng_stream_t *stream);

-

-char NgStreamEof (ng_stream_t *stream);

-

-BYTE4 NgStreamGetPosition (ng_stream_t *stream);

-/**

- * Skips nbr bytes.

- * Return nbr if all bytes were skipped.

- * If nbr bytes can't be skipped, the stream is closed

- * (NgStreamEof returns 1). 0 is returned.

- */

-BYTE4 NgStreamSkip (ng_stream_t *stream, BYTE4 nbr);

-/**

- * Copies nbr bytes to buffer from stream.

- * Returns nbr if all bytes were copied.

- * If nbr bytes can't be read, no bytes are copied. The stream

- * is closed (NgStreamEof returns 1). 0 is returned.

- */

-BYTE4 NgStreamRead (ng_stream_t *stream, char *buffer, BYTE4 nbr);

-

-/* little/big endian conversion */

-BYTE1 NgIsMSB();

-UBYTE2 SystemToLittleEndianUBYTE2 (UBYTE2);

-UBYTE4 SystemToLittleEndianUBYTE4 (UBYTE4);

-UBYTE2 SystemToBigEndianUBYTE2 (UBYTE2);

-UBYTE2 LittleEndianToSystemUBYTE2 (UBYTE2);

-UBYTE4 LittleEndianToSystemUBYTE4 (UBYTE4);

-UBYTE2 BigEndianToSystemUBYTE2 (UBYTE2);

-UBYTE4 BigEndianToSystemUBYTE4 (UBYTE4);

-

-#endif /* NG_COMMON_H */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.c b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.c
deleted file mode 100644
index baa0566..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.c
+++ /dev/null
@@ -1,480 +0,0 @@
-

-#include "NgImageData.h"

-

-static UBYTE4 RoundRow (UBYTE4 width)

-{

-  UBYTE4 result = (width + RowRounding - 1)

-                      & ~(RowRounding - 1) ;

-  return result ;

-}

-

-void NgBitmapImageInit (ng_bitmap_image_t *image)

-{

-	NgBitmapImageClearData (image);

-}

-

-void NgBitmapImageFree (ng_bitmap_image_t *image)

-{

-	NgFree (image->color_map);

-	NgFree (image->image_data);

-	NgFree (image->alpha_data);

-}

-

-void NgBitmapImageClearData (ng_bitmap_image_t *image)

-{

-	image->bit_count = 0;

-	image->image_width = 0;

-	image->image_height = 0;

-	image->color_count = 0;

-	image->color_map = NULL;

-	image->image_data = NULL;

-	image->alpha_data = NULL;

-	image->transparent_pixel = -1;

-}

-

-void NgBitmapImageSetSize(ng_bitmap_image_t *image,

-						   UBYTE4 color_count,

-						   UBYTE4 bits,

-						   UBYTE4 width,

-						   UBYTE4 height)

-{

-	NgFree (image->color_map);

-	NgFree (image->image_data);

-	NgBitmapImageClearData (image);

-

-	switch (bits)

-	{

-		case 1:

-		case 2:

-		case 4:

-		case 8:

-		{

-			UBYTE4 bitsize;

-			UBYTE4 bytecount;

-

-			image->bit_count = bits;

-			image->color_count = color_count;

-			image->image_width = width;

-			image->image_height = height;

-	

-			image->color_map = (ng_color_map_entry_t *) NgMalloc (sizeof(ng_color_map_entry_t) * image->color_count);

-			NgMemSet (image->color_map, 0, sizeof (ng_color_map_entry_t) * image->color_count);

-			bitsize = image->bit_count * image->image_width;

-			image->row_width = RoundRow ((bitsize + 7)/8);

-			bytecount = image->row_width * image->image_height;

-			image->image_data = (UBYTE1 *) NgMalloc (bytecount);

-			NgMemSet (image->image_data, 0, (BYTE4)bytecount);

-		}

-		break ;

-		case 16:

-		{

-			image->bit_count = bits;

-			image->color_count = color_count;

-			image->image_width = width;

-			image->image_height = height;

-			image->row_width = RoundRow (2 * image->image_width);

-			image->image_data = (UBYTE1 *) NgMalloc (image->row_width * image->image_height);

-			NgMemSet (image->image_data, 0, image->row_width * image->image_height);

-		}

-		break;

-		case 24:

-		{

-			image->bit_count = bits;

-			image->color_count = color_count;

-			image->image_width = width;

-			image->image_height = height;

-			image->row_width = RoundRow (3 * image->image_width);

-			image->image_data = (UBYTE1 *) NgMalloc (image->row_width * image->image_height);

-			NgMemSet (image->image_data, 0, image->row_width * image->image_height);

-		}

-		break;

-		case 32:

-		{

-			image->bit_count = bits;

-			image->color_count = color_count;

-			image->image_width = width;

-			image->image_height = height;

-			image->row_width = RoundRow (4 * image->image_width);

-			image->image_data = (UBYTE1 *) NgMalloc (image->row_width * image->image_height);

-			NgMemSet (image->image_data, 0, image->row_width * image->image_height);

-		}

-		break ;

-		default:

-		NgError (ERR_INVALID_BIT_COUNT, NULL);

-	}

-}

-

-ng_color_map_entry_t *NgBitmapImageColorMap (ng_bitmap_image_t *image, UBYTE4 index)

-{

-	if (index >= image->color_count)

-	{

-		NgError (ERR_SUBSCRIPT_OUT_OF_RANGE, "Error NgBitmapImageColorMap failed");

-		return NULL;

-	}

-

-	return &image->color_map [index] ;

-}

-

-/* blit constants */

-#define TYPE_INDEX_1_MSB 1

-#define TYPE_INDEX_1_LSB 2

-#define TYPE_INDEX_2 3

-#define TYPE_INDEX_4 4

-#define TYPE_INDEX_8 5

-#define TYPE_GENERIC_24 6

-#define TYPE_GENERIC_8 7

-#define TYPE_GENERIC_16_MSB 8

-#define TYPE_GENERIC_16_LSB 9

-#define TYPE_GENERIC_32_MSB 10

-#define TYPE_GENERIC_32_LSB 11

-

-/**

- * Computes the required channel shift from a mask.

- */

-UBYTE4 getChannelShift(UBYTE4 mask)

-{

-	UBYTE4 i;

-	if (mask == 0) return 0;

-	for (i = 0; ((mask & 1) == 0) && (i < 32); ++i)

-	{

-		mask >>= 1;

-	}

-	return i;

-}

-

-/**

- * Computes the required channel width (depth) from a mask.

- */

-UBYTE4 getChannelWidth(UBYTE4 mask, UBYTE4 shift)

-{

-	UBYTE4 i;

-	if (mask == 0) return 0;

-	mask >>= shift;

-	for (i = shift; ((mask & 1) != 0) && (i < 32); ++i) 

-	{

-		mask >>= 1;

-	}

-	return i - shift;

-}

-

-/**

- * Blits a direct palette image into a direct palette image.

- * 

- * srcData the source byte array containing image data

- * srcStride the source number of bytes per line

- * srcWidth the width of the source blit region

- * srcHeight the height of the source blit region

- * destData the destination byte array containing image data

- * destDepth the destination depth: one of 8, 16, 24, 32

- * destStride the destination number of bytes per line

- * destOrder the destination byte ordering: 0 for LSB, 1 otherwise

- *        ignored if destDepth is not 16 or 32

- * destRedMask the destination red channel mask

- * destGreenMask the destination green channel mask

- * destBlueMask the destination blue channel mask

- *

- * It is assumed that.

- * srcDepth: 24 - BGR ordering (BMP format)

- * no alpha

- * srcX: 0

- * srcY: 0

- * destX: 0

- * destY: 0

- * destWidth: same as srcWidth

- * destHeight: same as srcHeight 

- */

-void NgBitmapImageBlitDirectToDirect(

-	UBYTE1 *srcData, BYTE4 srcStride,

-	BYTE4 srcWidth, BYTE4 srcHeight,

-	UBYTE1 *destData, BYTE4 destDepth, BYTE4 destStride, BYTE4 destOrder,

-	UBYTE4 destRedMask, UBYTE4 destGreenMask, UBYTE4 destBlueMask)

-{

-	BYTE4 srcX = 0, srcY = 0, destX = 0, destY = 0, destWidth = srcWidth, destHeight = srcHeight;

-	

-	BYTE4 sbpp, stype, spr, dbpp, dtype, dpr, dprxi, dpryi, dp, sp, dy, dx;

-	BYTE4 destRedShift, destRedWidth;

-	BYTE4 destRedPreShift, destGreenShift, destGreenWidth, destGreenPreShift;

-	BYTE4 destBlueShift, destBlueWidth, destBluePreShift;

-	UBYTE1 r, g, b;

-	UBYTE4 data;

-	

-	/*** Prepare source-related data ***/

-	sbpp = 3;

-	stype = TYPE_GENERIC_24;

-

-	spr = srcY * srcStride + srcX * sbpp;

-

-	/*** Prepare destination-related data ***/

-	switch (destDepth)

-	{

-		case 8:

-			dbpp = 1;

-			dtype = TYPE_GENERIC_8;

-			break;

-		case 16:

-			dbpp = 2;

-			dtype = (destOrder != 0) ? TYPE_GENERIC_16_MSB : TYPE_GENERIC_16_LSB;

-			break;

-		case 24:

-			dbpp = 3;

-			dtype = TYPE_GENERIC_24;

-			break;

-		case 32:

-			dbpp = 4;

-			dtype = (destOrder != 0) ? TYPE_GENERIC_32_MSB : TYPE_GENERIC_32_LSB;

-			break;

-		default:

-			return;

-	}			

-	

-	dpr = destY * destStride + destX * dbpp;

-	dprxi = dbpp;

-	dpryi = destStride;

-

-	/*** Blit ***/

-	dp = dpr;

-	sp = spr;

-

-	/*** Comprehensive blit (apply transformations) ***/

-	destRedShift = getChannelShift(destRedMask);

-	destRedWidth = getChannelWidth(destRedMask, destRedShift);

-	destRedPreShift = 8 - destRedWidth;

-	destGreenShift = getChannelShift(destGreenMask);

-	destGreenWidth = getChannelWidth(destGreenMask, destGreenShift);

-	destGreenPreShift = 8 - destGreenWidth;

-	destBlueShift = getChannelShift(destBlueMask);

-	destBlueWidth = getChannelWidth(destBlueMask, destBlueShift);

-	destBluePreShift = 8 - destBlueWidth;

-

-	r = 0; g = 0; b = 0;

-	for (dy = destHeight; dy > 0; --dy, sp = spr += srcStride, dp = dpr += dpryi)

-	{

-		for (dx = destWidth; dx > 0; --dx, dp += dprxi) 

-		{

-			/*** READ NEXT PIXEL ASSUMING BGR ordering (BMP format) ***/

-			b = srcData[sp];

-			g = srcData[sp + 1];

-			r = srcData[sp + 2];

-			sp += 3;

-			/*** WRITE NEXT PIXEL ***/

-			data = 

-				(r >> destRedPreShift << destRedShift) |

-				(g >> destGreenPreShift << destGreenShift) |

-				(b >> destBluePreShift << destBlueShift);

-			switch (dtype)

-			{

-				case TYPE_GENERIC_8:

-				{

-					destData[dp] = (UBYTE1) data;

-				} break;

-				case TYPE_GENERIC_16_MSB:

-				{

-					destData[dp] = (UBYTE1) (data >> 8);

-					destData[dp + 1] = (UBYTE1) (data & 0xff);

-				} break;

-				case TYPE_GENERIC_16_LSB: 

-				{

-					destData[dp] = (UBYTE1) (data & 0xff);

-					destData[dp + 1] = (UBYTE1) (data >> 8);

-				} break;

-				case TYPE_GENERIC_24: 

-				{

-					destData[dp] = (UBYTE1) (data >> 16);

-					destData[dp + 1] = (UBYTE1) (data >> 8);

-					destData[dp + 2] = (UBYTE1) (data & 0xff);

-				} break;

-				case TYPE_GENERIC_32_MSB: 

-				{

-					destData[dp] = (UBYTE1) (data >> 24);

-					destData[dp + 1] = (UBYTE1) (data >> 16);

-					destData[dp + 2] = (UBYTE1) (data >> 8);

-					destData[dp + 3] = (UBYTE1) (data & 0xff);

-				} break;

-				case TYPE_GENERIC_32_LSB: 

-				{

-					destData[dp] = (UBYTE1) (data & 0xff);

-					destData[dp + 1] = (UBYTE1) (data >> 8);

-					destData[dp + 2] = (UBYTE1) (data >> 16);

-					destData[dp + 3] = (UBYTE1) (data >> 24);

-				} break;

-			}

-		}

-	}			

-}

-

-/**

- * Create a simple hash table used when converting direct colors to values in a palette

- * Each bucket stores the RGB codes and the corresponding palette index.

- * The key is made from the RGB values.

- * It is used as a cache. New entries colliding with older ones simply

- * replace them.

- */

-ng_palette_bucket_t *NgRGBIndexCreate ()

-{

-	ng_palette_bucket_t *table = (ng_palette_bucket_t *)NgMalloc (RGBIndexTableSize * sizeof (ng_palette_bucket_t));

-	NgMemSet (table, 0, RGBIndexTableSize * sizeof (ng_palette_bucket_t));

-	return table;

-}

-

-void NgRGBIndexFree (ng_palette_bucket_t *table)

-{

-	NgFree (table);

-}

-

-void NgRGBIndexSet (ng_palette_bucket_t *table, UBYTE1 r, UBYTE1 g, UBYTE1 b, UBYTE1 index)

-{

-	int i = (r * g * b) % RGBIndexTableSize;

-	table[i].blue = b;

-	table[i].green = g;

-	table[i].red = r;

-	table[i].index = index;

-	table[i].isSet = 1;

-}

-

-int NgRGBIndexGet (ng_palette_bucket_t *table, UBYTE1 r, UBYTE1 g, UBYTE1 b)

-{

-	int i = (r * g * b) % RGBIndexTableSize;

-	if (table[i].isSet && table[i].blue == b && table[i].green == g && table[i].red == r)

-		return table[i].index;

-	return -1;

-}

-

-/**

- * Blits a direct palette image into an index palette image.

- * 

- * srcData the source byte array containing image data

- * srcStride the source number of bytes per line

- * srcX the top-left x-coord of the source blit region

- * srcY the top-left y-coord of the source blit region

- * srcWidth the width of the source blit region

- * srcHeight the height of the source blit region

- * destData the destination byte array containing image data

- * destDepth the destination depth: one of 1, 2, 4, 8

- * destStride the destination number of bytes per line

- * destOrder the destination byte ordering: 0 if LSB, 1 otherwise;

- *        ignored if destDepth is not 1

- * destX the top-left x-coord of the destination blit region

- * destY the top-left y-coord of the destination blit region

- * destWidth the width of the destination blit region

- * destHeight the height of the destination blit region

- * destColors the destination palette red green blue component intensities

- * destNumColors the number of colors in destColors

- * 

- * It is assumed that.

- * srcDepth: 24 - BGR ordering (BMP format)

- * no alpha

- * srcX: 0

- * srcY: 0

- * destX: 0

- * destY: 0

- * destWidth: same as srcWidth

- * destHeight: same as srcHeight

- */

-

-void NgBitmapImageBlitDirectToPalette(

-	UBYTE1 *srcData, BYTE4 srcStride,

-	BYTE4 srcWidth, BYTE4 srcHeight,

-	UBYTE1 *destData, BYTE4 destDepth, BYTE4 destStride, BYTE4 destOrder,

-	UBYTE1 *destColors, int destNumColors)

-{	

-	BYTE4 srcX = 0, srcY = 0, destX = 0, destY = 0, destWidth = srcWidth, destHeight = srcHeight;

-	BYTE4 sbpp, spr, dtype, dpr, dp, sp, destPaletteSize, dy, dx, j, dr, dg, db, distance, minDistance;

-

-	UBYTE1 r = 0, g = 0, b = 0, index = 0;

-	int storedIndex;

-	ng_palette_bucket_t *RGBIndexTable;

-		

-	/*** Prepare source-related data ***/

-	sbpp = 3;

-	spr = srcY * srcStride + srcX * sbpp;

-

-	/*** Prepare destination-related data ***/

-	switch (destDepth)

-	{

-		case 8:

-			dtype = TYPE_INDEX_8;

-			break;

-		case 4:

-			destStride <<= 1;

-			dtype = TYPE_INDEX_4;

-			break;

-		case 2:

-			destStride <<= 2;

-			dtype = TYPE_INDEX_2;

-			break;

-		case 1:

-			destStride <<= 3;

-			dtype = (destOrder != 0) ? TYPE_INDEX_1_MSB : TYPE_INDEX_1_LSB;

-			break;

-		default:

-			return;

-	}			

-	dpr = destY * destStride + destX;

-

-	dp = dpr;

-	sp = spr;

-	destPaletteSize = destNumColors;

-

-	RGBIndexTable = NgRGBIndexCreate ();

-	for (dy = destHeight; dy > 0; --dy, sp = spr += srcStride, dp = dpr += destStride)

-		{

-		for (dx = destWidth; dx > 0; --dx, dp += 1)

-		{

-			/*** READ NEXT PIXEL ASSUMING BGR ordering (BMP format) ***/

-			b = srcData[sp];

-			g = srcData[sp+1];

-			r = srcData[sp+2];

-			sp += 3;

-

-			/*** MAP COLOR TO THE PALETTE ***/

-			storedIndex = NgRGBIndexGet (RGBIndexTable, r, g, b);

-			if (storedIndex >= 0)

-			{

-				index = (UBYTE1) storedIndex;

-			} else

-			{

-				for (j = 0, minDistance = 0x7fffffff; j < destPaletteSize; ++j)

-				{

-					dr = (destColors[j*3] & 0xff) - r;

-					dg = (destColors[j*3+1] & 0xff) - g;

-					db = (destColors[j*3+2] & 0xff) - b;

-					distance = dr * dr + dg * dg + db * db;

-					if (distance < minDistance)

-					{

-						index = (UBYTE1)j;

-						if (distance == 0) break;

-						minDistance = distance;

-					}

-				}

-				NgRGBIndexSet (RGBIndexTable, r, g, b, index);

-			}

-

-			/*** WRITE NEXT PIXEL ***/

-			switch (dtype) {

-				case TYPE_INDEX_8:

-					destData[dp] = (UBYTE1) index;

-					break;

-				case TYPE_INDEX_4:

-					if ((dp & 1) != 0) destData[dp >> 1] = ((destData[dp >> 1] & 0xf0) | index);

-					else destData[dp >> 1] = ((destData[dp >> 1] & 0x0f) | (index << 4));

-					break;

-				case TYPE_INDEX_2: 

-				{

-					int shift = 6 - (dp & 3) * 2;

-					destData[dp >> 2] = ((destData[dp >> 2] & ~(0x03 << shift)) | (index << shift));

-				} break;					

-				case TYPE_INDEX_1_MSB:

-				{

-					int shift = 7 - (dp & 7);

-					destData[dp >> 3] = ((destData[dp >> 3] & ~(0x01 << shift)) | (index << shift));

-				} break;

-				case TYPE_INDEX_1_LSB: 

-				{

-					int shift = dp & 7;

-					destData[dp >> 3] = ((destData[dp >> 3] & ~(0x01 << shift)) | (index << shift));

-				} break;					

-			}

-		}

-	}

-	NgRGBIndexFree (RGBIndexTable);

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.h b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.h
deleted file mode 100644
index ff529c5..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgImageData.h
+++ /dev/null
@@ -1,160 +0,0 @@
-

-#ifndef __NG_IMAGEDATA_H

-#define __NG_IMAGEDATA_H

-

-/**

- * Type ng_bitmap_image_t (C version of SWT ImageData)

- * 

- * Unlike ImageData, ng_bitmap_image_t and all its api are 'internal'.

- * The api marked 'public' is in the sense that it can be used

- * by the rest of the native graphic library.

- */

-

-#include "NgCommon.h"

-

-typedef struct ng_bitmap_image_t ng_bitmap_image_t;

-

-typedef struct {

-	UBYTE1 blue;

-	UBYTE1 green;

-	UBYTE1 red;

-} ng_color_map_entry_t;

-

-/* ImageData in SWT expects RGB not BGR */

-enum { RedOffset=0, GreenOffset=1, BlueOffset=2 };

-

-struct ng_bitmap_image_t {

-	/* Width in bytes of each row */

-	UBYTE4 row_width;

-	/* Number of bits per pixel (depth) 1, 2, 4, 8, 16 or 24 */

-	UBYTE4 bit_count;

-	UBYTE4 image_width;

-	UBYTE4 image_height;

-	/* image data

-	 * 24-bit images, 3 bytes per pixel representing RGB values

-	 * 32 bit images, 4 bytes per pixel representing RGB values + one wasted byte

-	 * 16 bit images, 2 bytes per pixel

-	 * rest (1, 2, 4, 8): index into color map

-	 */

-	UBYTE1 *image_data;

-	/* alpha data (either NULL or of size image_width*image_height) */

-	UBYTE1 *alpha_data;

-	/* transparent pixel - default is -1 which means no transparent pixel */

-	BYTE4 transparent_pixel;

-	/* number of entries in color map */

-	UBYTE4 color_count;

-	ng_color_map_entry_t *color_map;

-};

-

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

- * Public API ng_bitmap_image_t

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

-

-/**

- * Init an image

- */

-void NgBitmapImageInit (ng_bitmap_image_t *);

-

-/**

- * Dispose the resources allocated by the image.

- */

-void NgBitmapImageFree (ng_bitmap_image_t *);

-

-/**

- * Access start of image data

- * return: a pointer to an array of UBYTE1 of size image_row * image_width

- * signature: UBYTE1 *NgBitmapImageImageData (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageImageData(image) ((image)->image_data)

-

-/**

- * signature: UBYTE4 NgBitmapImageWidth (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageWidth(image) ((image)->image_width)

-

-/**

- * signature: UBYTE4 NgBitmapImageHeight (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageHeight(image) ((image)->image_height)

-

-/**

- * signature: UBYTE4 NgBitmapImageBitCount (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageBitCount(image) ((image)->bit_count)

-

-/**

- * signature: UBYTE4 NgBitmapImageColorCount (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageColorCount(image) ((image)->color_count)

-

-/**

- * Access a row of the image

- * row: a value which must be between 0 and image_height-1

- * return: a pointer to the desired row, which is an array of size row_width

- * signature: UBYTE1 *NgBitmapImageGetRow (ng_bitmap_image_t *image, UBYTE4 row)

- */

-#define NgBitmapImageGetRow(image, row) (&image->image_data[row * image->row_width])

-

-/**

- * signature: UBYTE4 NgBitmapImageBytesPerRow (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageBytesPerRow(image) ((image)->row_width)

-

-/**

- * Retrieve an entry from the color map

- * index: a value which must be between 0 and color_count-1

- */

-ng_color_map_entry_t *NgBitmapImageColorMap (ng_bitmap_image_t *, UBYTE4 index);

-

-/**

- * Get the value of the transparent pixel

- * signature: BYTE4 NgBitmapImageGetTransparent (ng_bitmap_image_t *image)

- */

-#define NgBitmapImageGetTransparent(image) ((image)->transparent_pixel)

-

-/**

- * Get the alpha data

- * signature: UBYTE1 *NgBitmapImageGetAlpha (ng_bitmap_image_t* image)

- */

-#define NgBitmapImageGetAlpha(image) ((image)->alpha_data)

-

-void NgBitmapImageBlitDirectToDirect(

-	UBYTE1 *srcData, BYTE4 srcStride,

-	BYTE4 srcWidth, BYTE4 srcHeight,

-	UBYTE1 *destData, BYTE4 destDepth, BYTE4 destStride, BYTE4 destOrder,

-	UBYTE4 destRedMask, UBYTE4 destGreenMask, UBYTE4 destBlueMask);

-

-/* Size of hash table used in NgBitmapImageBlitDirectToPalette */

-#define RGBIndexTableSize 103

-

-typedef struct {

-	UBYTE1 isSet;

-	UBYTE1 blue;

-	UBYTE1 green;

-	UBYTE1 red;

-	UBYTE1 index;

-} ng_palette_bucket_t;

-	

-void NgBitmapImageBlitDirectToPalette(

-	UBYTE1 *srcData, BYTE4 srcStride,

-	BYTE4 srcWidth, BYTE4 srcHeight,

-	UBYTE1 *destData, BYTE4 destDepth, BYTE4 destStride, BYTE4 destOrder,

-	UBYTE1 *destColors, int destNumColors);

-

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

- * Private API ng_bitmap_image_t

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

-

-/* Number of bytes to round each row to */

-#define RowRounding 4

-

-void NgBitmapImageInitialize (ng_bitmap_image_t *);

-void NgBitmapImageClearData (ng_bitmap_image_t *);

-

-void NgBitmapImageSetSize(ng_bitmap_image_t *,

-						   UBYTE4 color_count,

-						   UBYTE4 bits,

-						   UBYTE4 width,

-						   UBYTE4 height);

-

-#endif /* NG_IMAGEDATA_H */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.c b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.c
deleted file mode 100644
index 6013072..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.c
+++ /dev/null
@@ -1,357 +0,0 @@
-

-#include "NgCommon.h"

-#include "NgWinBMPFileFormat.h"

-

-#define BMPHeaderFixedSize 40

-

-BYTE4 decompressRLE4Data(BYTE1 *src, BYTE4 numBytes, BYTE4 stride, BYTE1 *dest, BYTE4 destSize)

-{

-	BYTE4 sp = 0;

-	BYTE4 se = numBytes;

-	BYTE4 dp = 0;

-	BYTE4 de = destSize;

-	BYTE4 x = 0, y = 0;

-	BYTE4 i;

-	while (sp < se)

-	{

-		int len = src[sp] & 0xFF;

-		sp++;

-		if (len == 0) 

-		{

-			len = src[sp] & 0xFF;

-			sp++;

-			switch (len) 

-			{

-				case 0: /* end of line */

-					y++;

-					x = 0;

-					dp = y * stride;

-					if (dp >= de)

-						return -1;

-					break;

-				case 1: /* end of bitmap */

-					return 1;

-				case 2: /* delta */

-					x += src[sp] & 0xFF;

-					sp++;

-					y += src[sp] & 0xFF;

-					sp++;

-					dp = y * stride + x / 2;

-					if (dp >= de)

-						return -1;

-					break;

-				default: /* absolute mode run */

-					if ((len & 1) != 0) /* odd run lengths not currently supported */

-						return -1;

-					x += len;

-					len = len / 2;

-					if (len > (se - sp))

-						return -1;

-					if (len > (de - dp))

-						return -1;

-					for (i = 0; i < len; i++) 

-					{

-						dest[dp] = src[sp];

-						dp++;

-						sp++;

-					}

-					if ((sp & 1) != 0)

-						sp++; /* word align sp? */

-					break;

-			}

-		} else 

-		{

-			BYTE1 theByte;

-			if ((len & 1) != 0)

-				return -1;

-			x += len;

-			len = len / 2;

-			theByte = src[sp];

-			sp++;

-			if (len > (de - dp))

-				return -1;

-			for (i = 0; i < len; i++) 

-			{

-				dest[dp] = theByte;

-				dp++;

-			}

-		}

-	}

-	return 1;

-}

-

-BYTE4 decompressRLE8Data(BYTE1 *src, BYTE4 numBytes, BYTE4 stride, BYTE1 *dest, BYTE4 destSize)

-{

-	BYTE4 sp = 0;

-	BYTE4 se = numBytes;

-	BYTE4 dp = 0;

-	BYTE4 de = destSize;

-	BYTE4 x = 0, y = 0;

-	BYTE4 i;

-	while (sp < se) {

-		int len = src[sp] & 0xFF;

-		sp++;

-		if (len == 0) {

-			len = src[sp] & 0xFF;

-			sp++;

-			switch (len)

-			{

-				case 0: /* end of line */

-					y++;

-					x = 0;

-					dp = y * stride;

-					if (dp >= de)

-						return -1;

-					break;

-				case 1: /* end of bitmap */

-					return 1;

-				case 2: /* delta */

-					x += src[sp] & 0xFF;

-					sp++;

-					y += src[sp] & 0xFF;

-					sp++;

-					dp = y * stride + x;

-					if (dp >= de)

-						return -1;

-					break;

-				default: /* absolute mode run */

-					if (len > (se - sp))

-						return -1;

-					if (len > (de - dp))

-						return -1;

-					for (i = 0; i < len; i++)

-					{

-						dest[dp] = src[sp];

-						dp++;

-						sp++;

-					}

-					if ((sp & 1) != 0)

-						sp++; /* word align sp? */

-					x += len;

-					break;

-			}

-		} else 

-		{

-			BYTE1 theByte = src[sp];

-			sp++;

-			if (len > (de - dp))

-				return -1;

-			for (i = 0; i < len; i++)

-			{

-				dest[dp] = theByte;

-				dp++;

-			}

-			x += len;

-		}

-	}

-	return 1;

-}

-

-ng_err_t decompressData (BYTE1 *src, BYTE4 numBytes, BYTE1 *dest, BYTE4 destSize, BYTE4 stride, BYTE4 cmp)

-{

-	if (cmp == 1)

-	{

-		/* BMP_RLE8_COMPRESSION */

-		if (decompressRLE8Data (src, numBytes, stride, dest, destSize) <= 0)

-			return NgError (ERR_NG, "Error decompressRLE8Data failed");

-	} else if (cmp == 2)

-	{

-		/* BMP_RLE4_COMPRESSION */

-		if (decompressRLE4Data (src, numBytes, stride, dest, destSize) <= 0)

-			return NgError (ERR_NG, "Error decompressRLE4Data failed");

-	} else 

-	{

-		return NgError (ERR_NG, "Error decompressData failed - unsupported compression");

-	}

-	return ERR_OK;

-}

-

-void flipScanLines(BYTE1 *data, BYTE4 numBytes, int stride, int height)

-{

-	BYTE4 i1 = 0;

-	BYTE4 i2 = (height - 1) * stride;

-	BYTE4 i, index;

-	for (i = 0; i < height / 2; i++)

-	{

-		for (index = 0; index < stride; index++)

-		{

-			BYTE1 b = data[index + i1];

-			data[index + i1] = data[index + i2];

-			data[index + i2] = b;

-		}

-		i1 += stride;

-		i2 -= stride;

-	}

-}

-

-/**

- * BmpDecoderReadImage

- * 

- * Decode the content of a bmp file. 

- *

- * in    : the input stream

- * image : a pointer to a ng_bitmap_image_t

- *

- * return: ERR_OK if the image was correctly built from the input stream

- *		   ERR_NG otherwise.

- */

-ng_err_t NgBmpDecoderReadImage (ng_stream_t *in, ng_bitmap_image_t *image)

-{

-	BYTE4 *fileHeader = (BYTE4*) NgMalloc (5 * sizeof(BYTE4));

-	BYTE1 *infoHeader, *data;

-	BYTE4 width, height, stride, dataSize, cmp, pos;	

-	BYTE2 depth;

-	BYTE2 d0;

-	

-	NgStreamRead (in, (char *) &d0, sizeof(BYTE2));

-	fileHeader[0] = (BYTE4)LittleEndianToSystemUBYTE2(d0);

-	NgStreamRead (in, (char *) &fileHeader[1], sizeof(BYTE4));

-	fileHeader[1] = LittleEndianToSystemUBYTE4(fileHeader[1]);

-	NgStreamRead (in, (char *) &d0, sizeof(BYTE2));

-	fileHeader[2] = (BYTE4)LittleEndianToSystemUBYTE2(d0);

-	NgStreamRead (in, (char *) &d0, sizeof(BYTE2));

-	fileHeader[3] = (BYTE4)LittleEndianToSystemUBYTE2(d0);

-	NgStreamRead (in, (char *) &fileHeader[4], sizeof(BYTE4));

-	fileHeader[4] = LittleEndianToSystemUBYTE4(fileHeader[4]);

-	

-	if (NgStreamEof (in))

-	{

-		NgFree (fileHeader);

-		return NgError (ERR_NG, "Error invalid header file");

-	}

-	if (fileHeader[0] != 0x4D42)

-	{

-		NgFree (fileHeader);

-		return NgError (ERR_NG, "Error not a BMP file");

-	}

-	

-	infoHeader = (BYTE1*) NgMalloc (BMPHeaderFixedSize * sizeof (BYTE1));	

-	NgStreamRead (in, infoHeader, BMPHeaderFixedSize * sizeof (BYTE1));

-	

-	if (NgStreamEof (in))

-	{

-		NgFree (fileHeader);

-		NgFree (infoHeader);

-		return NgError (ERR_NG, "Error invalid info header");

-	}

-	

-	NgMemCpy (&width, &infoHeader[4], sizeof (BYTE4));

-	width = LittleEndianToSystemUBYTE4(width);

-

-	NgMemCpy (&height, &infoHeader[8], sizeof (BYTE4));

-	height = LittleEndianToSystemUBYTE4(height);

-	

-	NgMemCpy (&depth, &infoHeader[14], sizeof (BYTE2));

-	depth = LittleEndianToSystemUBYTE2(depth);

-

-	stride = (width * depth + 7) / 8;

-	stride = (stride + 3) / 4 * 4; /* Round up to 4 byte multiple */

-

-	if (depth <= 8)

-	{

-		BYTE4 i, index;

-		BYTE1 *colors;

-		BYTE4 numColors;

-		NgMemCpy (&numColors, &infoHeader[32], sizeof (BYTE4));

-		numColors = LittleEndianToSystemUBYTE4(numColors);

-		if (numColors == 0)

-		{

-			BYTE2 value;

-			NgMemCpy (&value, &infoHeader[14], sizeof (BYTE2));

-			value = LittleEndianToSystemUBYTE2(value);

-			numColors = 1 << value;

-		} else

-		{

-			if (numColors > 256)

-				numColors = 256;

-		}

-		colors = (BYTE1*) NgMalloc (numColors * 4);

-		NgStreamRead (in, colors, numColors * 4);

-		

-		if (NgStreamEof (in))

-		{

-			NgFree (fileHeader);

-			NgFree (infoHeader);

-			NgFree (colors);

-			return NgError (ERR_NG, "Error invalid palette info");

-		} 

-		

-		index = 0;

-		

-		NgBitmapImageSetSize(image, (UBYTE4)numColors, (UBYTE4)depth,

-			(UBYTE4)width, (UBYTE4)height);

-			

-		for (i = 0; i < numColors; i++)

-		{

-			ng_color_map_entry_t *color_map = NgBitmapImageColorMap (image, i);

-			color_map->blue = colors[index++];

-			color_map->green = colors[index++];

-			color_map->red = colors[index++];

-			index++;

-		}

-		

-		NgFree (colors);

-	} else

-	{

-		/* direct - 16 and 24 bits */

-		NgBitmapImageSetSize(image, 0, (UBYTE4)depth,

-			(UBYTE4)width, (UBYTE4)height);

-	}

-	

-	pos = NgStreamGetPosition (in);

-	if (pos < fileHeader[4])

-	{

-		NgStreamSkip (in, fileHeader[4] - pos);

-	}

-	

-	dataSize = height * stride;

-	

-	data = (BYTE1*)NgBitmapImageImageData(image);

-	NgMemCpy (&cmp, &infoHeader[16], sizeof (BYTE4));

-	cmp = LittleEndianToSystemUBYTE4(cmp);

-	if (cmp == 0)

-	{

-		/* BMP_NO_COMPRESSION */

-		BYTE4 cnt;

-		cnt = NgStreamRead (in, data, dataSize);

-		if (cnt != dataSize)

-		{

-			NgFree (fileHeader);

-			NgFree (infoHeader);

-			return NgError (ERR_NG, "Error failed reading uncompressed data");

-		}

-	} else

-	{

-		BYTE4 compressedSize;

-		BYTE1 *compressed;

-		BYTE4 cnt;

-		ng_err_t res;

-		NgMemCpy (&compressedSize, &infoHeader[20], sizeof (BYTE4));

-		compressedSize = LittleEndianToSystemUBYTE4(compressedSize);

-		compressed = (BYTE1*) NgMalloc (compressedSize * sizeof (BYTE1));

-		cnt = NgStreamRead (in, compressed, compressedSize);

-		if (cnt != compressedSize)

-		{

-			NgFree (fileHeader);

-			NgFree (infoHeader);

-			NgFree (compressed);

-			return NgError (ERR_NG, "Error failed reading compressed data");

-		}

-		res = decompressData (compressed, compressedSize, data, dataSize, stride, cmp);

-		if (res != ERR_OK)

-		{

-			NgFree (fileHeader);

-			NgFree (infoHeader);

-			NgFree (compressed);

-			return NgError (res, "Error failed data decompression");			

-		}

-				

-		NgFree (compressed);

-	}

-		

-	flipScanLines(data, dataSize, stride, height);

-	

-	NgFree (fileHeader);

-	NgFree (infoHeader);

-	return ERR_OK;

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.h b/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.h
deleted file mode 100644
index 975f7aa..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/motif/NgWinBMPFileFormat.h
+++ /dev/null
@@ -1,24 +0,0 @@
-

-#ifndef __NG_WINBMPFILEFORMAT_H

-#define __NG_WINBMPFILEFORMAT_H

-

-/**

- * BMP Decoder

- */

-#include "NgCommon.h"

-#include "NgImageData.h"

-

-/**

- * BmpDecoderReadImage

- * 

- * Decode the content of a bmp file. 

- *

- * in    : the input stream

- * image : a pointer to a ng_bitmap_image_t

- *

- * return: ERR_OK if the image was correctly built from the input stream

- *		   ERR_NG otherwise.

- */

-ng_err_t NgBmpDecoderReadImage (ng_stream_t *in, ng_bitmap_image_t *image);

-

-#endif /* __NG_WINBMPFILEFORMAT_H */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/extract.c b/plugins/org.eclipse.epp.installer.launcher.native/src/extract.c
deleted file mode 100644
index 4a5f9b7..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/extract.c
+++ /dev/null
@@ -1,295 +0,0 @@
-

-#include "installOS.h"

-#include "log.h"

-#include "extract.h"

-

-#include <stdio.h>

-#include <stdlib.h>

-#include <string.h>

-

-/*

- * Self-Extracting File Structure

- * 

- * |---------------------------|

- * |   Executable Extractor    |

- * |                           |

- * |---------------------------|

- * |       Files Data          |

- * |                           |

- * |---------------------------|

- * |       SFX Header          |

- * |                           |

- * |---------------------------|

- * |     Table Of Contents     |

- * |           (TOC)           |

- * |---------------------------|

- * |       SFX Footer          |

- * |                           |

- * |---------------------------|

- * 

- * 

- *  SFX Header:

- *  12 bytes - SFX signature ( including format version )

- *  4 bytes - number of files

- *  

- *  TOC Entry:

- *  4 bytes - file data offset

- *  4 bytes - file data size

- *  4 bytes - filename length (N)

- *  N bytes - filename

- *

- *  SFX Footer:

- *  4 bytes - SFX header offset

- *  4 bytes - 32-bit complementary checksum

- */

-

-static const char* SIGNATURE = "!SFX.PKG-0.1";

-static TOC_ENTRY * toc = NULL;

-static unsigned int file_count = 0;

-

-static int doError( int error, _TCHAR* str );

-

-#ifdef MACOSX

-#define SWAP32(x)	/* do nothing */

-#else

-#define SWAP32(x)	(x) = ((x)>>24)|(((x)&0x00FF0000)>>8)|(((x)&0x0000FF00)<<8)|(((x)&0x000000FF)<<24)

-#endif

-

-#define BUFFER_SIZE		1024

-#define MIN(a,b)		(a)<(b) ? (a) : (b)

-

-

-#define FLAGS_EXTRACT		(0x00000001)

-

-/*

- * Errors

- */

-#define ERROR_READ					(-1)

-#define ERROR_INVALID_CONTENT		(-2)

-#define ERROR_WRITE					(-3)

-

-/*

- * Read Table Of Contents

- */

-static int readTOC( FILE *file )

-{

-	long filesize = 0;

-	unsigned int value = 0;

-	unsigned int i;

-	char sign[12];

-	char * filename;

-	TOC_ENTRY* entry;

-

-	/* verify checksum here */

-	

-	if ( fseek(file, -8, SEEK_END ) != 0 ) return ERROR_READ;

-	if ( fread(&value,4,1,file) != 1 ) return ERROR_READ;

-	SWAP32(value);

-	if ( (filesize = ftell(file)) <= (long)value ) return ERROR_INVALID_CONTENT;

-

-	if ( fseek(file, value, SEEK_SET ) != 0 ) return ERROR_READ;

-	if ( fread(sign,sizeof(sign),1,file) != 1 ) return ERROR_READ;

-	

-	if ( strncmp(SIGNATURE,sign,sizeof(sign)) != 0 ) return ERROR_INVALID_CONTENT;

-	if ( fread(&file_count,4,1,file) != 1 ) return ERROR_READ;

-	SWAP32(file_count);

-	

-	toc = entry = calloc(file_count,sizeof(TOC_ENTRY));

-	for( i = 0; i < file_count; ++i, ++entry )

-	{

-		if ( fread(entry,4,3,file) != 3 ) return ERROR_READ;

-		if ( fread(&value,4,1,file) != 1 ) return ERROR_READ;

-		SWAP32(entry->OFFSET);

-		SWAP32(entry->SIZE);

-		SWAP32(entry->FLAGS);

-		SWAP32(value);

-		if ( filesize <= (long)(entry->OFFSET+entry->SIZE) ) return ERROR_INVALID_CONTENT;

-		filename = malloc(value+1);

-		if ( fread(filename,1,value,file) != value ) return ERROR_READ;		

-#ifdef _UNICODE

-		{

-			WCHAR *wstring = malloc((value + 1) * sizeof(WCHAR));

-			value = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, filename, value, wstring, value);

-			wstring[value] = 0;

-			entry->FILENAME = wstring;

-			free(filename);

-		}

-#else

-		filename[value] = '\0';

-		entry->FILENAME = filename;

-#endif

-	}

-	

-	return 0;

-}

-

-/*

- * Free TOC resources

- */

-static void freeTOC()

-{

-	if ( toc != NULL )

-	{

-		unsigned int i;

-		TOC_ENTRY* entry = toc;

-		for( i = 0; i < file_count; ++i, ++entry )

-			free(entry->FILENAME);

-		free(toc);

-		toc = NULL;

-	}

-		

-}

-	

-/*

- * Extract all contents to directory

- */

-int extract( _TCHAR* fromfile, _TCHAR* todir )

-{

-	int error = 0;

-	unsigned int i;

-	TOC_ENTRY* entry;

-	_TCHAR * string;

-	char * buffer;

-	FILE *fout;

-	

-	FILE *file = _tfopen(fromfile, _T_INSTALL("rb"));

-	if (file == NULL)

-		return doError(ERROR_READ,fromfile);

-	if ( (error = readTOC(file)) != 0 ) {

-		fclose(file);

-		return doError(error,fromfile);

-	}

-	entry = toc;

-	string = malloc( MAX_PATH * sizeof(_TCHAR) );

-	buffer = malloc( BUFFER_SIZE );

-	for( i = 0; i < file_count; ++i, ++entry )

-	{

-		unsigned int size = entry->SIZE;	

-		if ( (entry->FLAGS & FLAGS_EXTRACT ) == 0 ) continue;

-		if ( entry->CREATED) continue;	

-		_tcscpy(string, todir);

-		_tcscat(string,entry->FILENAME);

-		logFormatS(_T_INSTALL("[i] Extracting file %s"),string);

-		fout = _tfopen(string, _T_INSTALL("wb"));

-		if (fout == NULL) { error = doError(ERROR_WRITE,string); break; }

-		if ( fseek(file, entry->OFFSET, SEEK_SET ) != 0 ) { error = doError(ERROR_READ,fromfile); fclose(fout); break; }

-		

-		while( size > 0 )

-		{

-			unsigned int n = MIN(size,BUFFER_SIZE);

-			if ( fread(buffer,n,1,file) != 1 ) { error = doError(ERROR_READ,fromfile); fclose(fout); break; }

-			if ( fwrite(buffer,n,1,fout) != 1 ) { error = doError(ERROR_WRITE,string); fclose(fout); break; }

-			size -= n;

-		}

-		if ( error != 0 ) break;		

-		fclose(fout);

-		entry->FILENAME = _tcsdup(string);

-		entry->CREATED = 1;

-	}

-	if ( error != 0 )

-	{

-		logFormatI(_T_INSTALL("[i] Total %i files extracted"),file_count);	

-	}

-	free(buffer);

-	free(string);	

-	fclose(file);

-	return error;

-}

-

-/*

- * Extract splash file to directory

- */

-int extractFile( _TCHAR* fromfile, _TCHAR* todir, _TCHAR* fileName )

-{

-	int error = 0;

-	unsigned int i;

-	TOC_ENTRY* entry;

-	_TCHAR * string;

-	char * buffer;

-	FILE *fout;

-	

-	FILE *file = _tfopen(fromfile, _T_INSTALL("rb"));

-	if (file == NULL)

-		return doError(ERROR_READ,fromfile);

-	if ( (error = readTOC(file)) != 0 ) {

-		fclose(file);

-		return doError(error,fromfile);

-	}

-	entry = toc;

-	string = malloc( MAX_PATH * sizeof(_TCHAR) );

-	buffer = malloc( BUFFER_SIZE );

-	for( i = 0; i < file_count; ++i, ++entry )

-	{

-		

-		unsigned int size = entry->SIZE;	

-		if ( (entry->FLAGS & FLAGS_EXTRACT ) == 0 ) continue;

-		if(_tcscmp(entry->FILENAME,fileName)!=0) continue;

-		_tcscpy(string, todir);

-		_tcscat(string,entry->FILENAME);

-		

-		logFormatS(_T_INSTALL("[i] Extracting file %s"),string);

-		fout = _tfopen(string, _T_INSTALL("wb"));

-		if (fout == NULL) { error = doError(ERROR_WRITE,string); break; }

-		if ( fseek(file, entry->OFFSET, SEEK_SET ) != 0 ) { error = doError(ERROR_READ,fromfile); fclose(fout); break; }

-		

-		while( size > 0 )

-		{

-			unsigned int n = MIN(size,BUFFER_SIZE);

-			if ( fread(buffer,n,1,file) != 1 ) { error = doError(ERROR_READ,fromfile); fclose(fout); break; }

-			if ( fwrite(buffer,n,1,fout) != 1 ) { error = doError(ERROR_WRITE,string); fclose(fout); break; }

-			size -= n;

-		}

-		if ( error != 0 ) break;		

-		fclose(fout);

-		entry->FILENAME = _tcsdup(string);

-		entry->CREATED = 1;

-	}

-	if ( error != 0 )

-	{

-		logFormatI(_T_INSTALL("[i] Total %i files extracted"),file_count);	

-	}

-	free(buffer);

-	free(string);	

-	fclose(file);

-	return error;

-}

-

-

-/*

- * Delete all extracted contents

- */

-void cleanup()

-{

-	unsigned int i;

-	TOC_ENTRY* entry = toc;

-	if ( toc == NULL ) return;

-	for( i = 0; i < file_count; ++i, ++entry )

-	{

-		if ( entry->CREATED )

-		{

-			logFormatS(_T_INSTALL("[i] Deleting file %s"),entry->FILENAME);

-			_tremove(entry->FILENAME);

-		}

-	}

-	freeTOC();

-}

-

-static int doError( int error, _TCHAR* str )

-{

-	switch( error ) {

-		case ERROR_READ:

-			writeLog(_T_INSTALL("[x] Error reading INSTALL_FILE"));

-			break;

-		case ERROR_INVALID_CONTENT:

-			writeLog(_T_INSTALL("[x] File INSTALL_FILE has no valid SFX signature or its content corrupted"));

-			break;

-		case ERROR_WRITE:

-			logFormatS(_T_INSTALL("[x] Error writing to file %s"),str);

-			break;

-	}

-	return error;

-}

-

-

-

-/* EOF */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/extract.h b/plugins/org.eclipse.epp.installer.launcher.native/src/extract.h
deleted file mode 100644
index 6dcf402..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/extract.h
+++ /dev/null
@@ -1,25 +0,0 @@
-

-#ifndef _EXTRACT_H

-#define _EXTRACT_H

-

-typedef struct {

-	unsigned int OFFSET;

-	unsigned int SIZE;

-	unsigned int FLAGS;

-	_TCHAR * FILENAME;

-	unsigned int CREATED;

-} TOC_ENTRY;

-

-#ifdef UNICODE

-#define extract extractW

-#define cleanup cleanupW

-#define extractFile extractFileW

-#endif

-

-extern int extract( _TCHAR* fromfile, _TCHAR* todir );

-extern int extractFile( _TCHAR* fromfile, _TCHAR* todir, _TCHAR* fileName);

-extern void cleanup();

-

-#endif /* _EXTRACT_H */

-

-/* EOF */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/install.c b/plugins/org.eclipse.epp.installer.launcher.native/src/install.c
deleted file mode 100644
index 8d13853..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/install.c
+++ /dev/null
@@ -1,991 +0,0 @@
-

-#include "installOS.h"

-#include "installShm.h"

-#include "installConfig.h"

-#include "log.h"

-#include "extract.h"

-

-#ifdef _WIN32

-#include <direct.h>

-#else

-#include <unistd.h>

-#include <strings.h>

-#endif

-

-#include <stdio.h>

-#include <stdlib.h>

-#include <string.h>

-#include <sys/types.h>

-#include <sys/stat.h>

-#include <errno.h>

-#include <ctype.h>

-#include <signal.h>

-#include <stddef.h>

-#ifndef boolean

-#define boolean int

-#endif

-

-#define MAX_PATH_LENGTH   2000

-#define MAX_SHARED_LENGTH   (16 * 1024)

-

-#ifdef _WIN32

-#define LOG_FILE		_T_INSTALL("C:\\rcpinstall.log")

-#else

-#define LOG_FILE		_T_INSTALL("/tmp/rcpinstall.log")

-#endif

-/* Global Variables */

-_TCHAR* officialName = NULL;

-

-/* Global Data */

-static _TCHAR*  program     = NULL;       /* full pathname of the program */

-static _TCHAR*  temporaryDir  = NULL;      /* temporary directory where files extracted */

-static _TCHAR*  javaVM      = NULL;       /* full pathname of the Java VM to run */

-static _TCHAR*  jarFile     = NULL;		  /* full pathname of the startup jar file to run */

-static _TCHAR*  sharedID    = NULL;       /* ID for the shared memory */

-static _TCHAR*  sharedSplashID    = NULL;       /* ID for the shared memory */

-

-/* Define the maximum time (in seconds) for the splash window to remain visible. */

-static _TCHAR*  splashTimeout = _T_INSTALL("600");   /* 10 minutes */

-

-/* Define error messages. (non-NLS) */

-static _TCHAR* exitMsg = _T_INSTALL("JVM terminated. Exit code=%d\n%s");

-static _TCHAR* pathMsg = _T_INSTALL("%s\n'%s' in your current PATH");

-static _TCHAR* showMsg = _T_INSTALL("Could not load splash bitmap:\n%s");

-static _TCHAR* shareMsg = _T_INSTALL("No shared data available.");

-static _TCHAR* noVMMsg =

-_T_INSTALL("A Java Runtime Environment (JRE) or Java Development Kit (JDK)\n\

-must be available in order to run %s. No Java virtual machine\n\

-was found after searching the following locations:\n\

-%s");

-

-static _TCHAR* configName = _T_INSTALL("install.ini");

-static _TCHAR* splashName = _T_INSTALL("splash.bmp");

-

-#define DEFAULT_STARTUP _T_INSTALL("install.jar")

-

-/* Define constants for the options recognized by the launcher. */

-#define CONSOLE      _T_INSTALL("-console")

-#define CONSOLELOG   _T_INSTALL("-consoleLog")

-#define DEBUG        _T_INSTALL("-debug")

-#define LOG        _T_INSTALL("-log")

-#define OS           _T_INSTALL("-os")

-#define OSARCH       _T_INSTALL("-arch")

-#define NOSPLASH     _T_INSTALL("-nosplash")

-#define LAUNCHER     _T_INSTALL("-launcher")

-#define SHOWSPLASH   _T_INSTALL("-showsplash")

-#define ENDSPLASH   _T_INSTALL("-endsplash")

-#define EXITDATA     _T_INSTALL("-exitdata")

-#define STARTUP      _T_INSTALL("-startup")

-#define VM           _T_INSTALL("-vm")

-#define WS           _T_INSTALL("-ws")

-#define NAME         _T_INSTALL("-name")

-#define VMARGS       _T_INSTALL("-vmargs")					/* special option processing required */

-

-/* Define the variables to receive the option values. */

-static int     needConsole   = 0;				/* True: user wants a console	*/

-static int     debug         = 0;				/* True: output debugging info	*/

-static int     log         = 0;				/* True: enable logging	*/

-static int     noSplash      = 0;				/* True: do not show splash win	*/

-static _TCHAR*  osArg         = _T_INSTALL(DEFAULT_OS);

-static _TCHAR*  osArchArg     = _T_INSTALL(DEFAULT_OS_ARCH);

-static _TCHAR*  showSplashArg = NULL;			/* showsplash data (main launcher window) */

-static _TCHAR*  exitDataArg   = NULL;

-static _TCHAR * startupArg    = DEFAULT_STARTUP; /* path of the startup.jar the user wants to run relative to the program path */

-static _TCHAR*  vmName        = NULL;     		/* Java VM that the user wants to run */

-static _TCHAR*  wsArg         = _T_INSTALL(DEFAULT_WS);	/* the SWT supported GUI to be used */

-static _TCHAR*  name          = NULL;			/* program name */		

-static _TCHAR** userVMarg     = NULL;     		/* user specific args for the Java VM  */

-static _TCHAR*  endSplashArg   = NULL;

-

-/* Define a table for processing command line options. */

-typedef struct

-{

-	_TCHAR*  name;		/* the option recognized by the launcher */

-	_TCHAR** value;		/* the variable where the option value is saved */

-	int*   flag;		/* the variable that is set if the option is defined */

-	int    remove;		/* the number of argments to remove from the list */

-} Option;

-

-static Option options[] = {

-    { CONSOLE,		NULL,			&needConsole,	0 },

-    { CONSOLELOG,	NULL,			&needConsole,	0 },

-    { DEBUG,		NULL,			&debug,			0 },

-    { LOG,			NULL,			&log,			0 },

-    { NOSPLASH,     NULL,           &noSplash,		1 },

-    { OS,			&osArg,			NULL,			2 },

-    { OSARCH,		&osArchArg,		NULL,			2 },

-//    { SHOWSPLASH,   &showSplashArg,	NULL,			2 },

-    { ENDSPLASH,   	&endSplashArg,	NULL,			2 },

-//    { EXITDATA,		&exitDataArg,	NULL,			2 },

-//    { STARTUP,		&startupArg,	NULL,			2 },

-    { VM,           &vmName,		NULL,			2 },

-    { NAME,         &name,			NULL,			2 },

-    { WS,			&wsArg,			NULL,			2 } };

-static int optionsSize = (sizeof(options) / sizeof(options[0]));

-

-static int configArgc = 0;

-static _TCHAR** configArgv = NULL;

-

-/* Define the required VM arguments (all platforms). */

-static _TCHAR* jar = _T_INSTALL("-jar");

-static _TCHAR**  reqVMarg[] = { &jar, &jarFile, NULL };

-

-/* Local methods */

-static int createUserArgs(int configArgc, _TCHAR **configArgv, int *argc, _TCHAR ***argv);

-static void   parseArgs( int* argc, _TCHAR* argv[] );

-static _TCHAR** parseArgList( _TCHAR *data );

-static void   freeArgList( _TCHAR** data );

-static _TCHAR** getVMCommand( int argc, _TCHAR* argv[] );

-       _TCHAR*  findCommand( _TCHAR* command );

-static _TCHAR*  formatVmCommandMsg( _TCHAR* args[] );

-       _TCHAR*  getProgramDir();

-static _TCHAR* getDefaultOfficialName();

-static int isMainInstall( int argc, _TCHAR **argv );

-

-#ifdef _WIN32

-#ifdef UNICODE

-extern int main(int, char**);

-int mainW(int, wchar_t**);

-int wmain( int argc, wchar_t** argv ) {

-	OSVERSIONINFOW info;

-	info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);

-	/*

-	* If the OS supports UNICODE functions, run the UNICODE version

-	* of the main function. Otherwise, convert the arguments to

-	* MBCS and run the ANSI version of the main function.

-	*/

-	if (!GetVersionExW (&info)) {

-		int i, result;

-		char **newArgv = malloc(argc * sizeof(char *));

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

-			wchar_t *oldArg = argv[i];

-			int byteCount = WideCharToMultiByte (CP_ACP, 0, oldArg, -1, NULL, 0, NULL, NULL);

-			char *newArg  = malloc(byteCount+1);

-			newArg[byteCount] = 0;

-			WideCharToMultiByte (CP_ACP, 0, oldArg, -1, newArg, byteCount, NULL, NULL);

-			newArgv[i] = newArg;

-		}

-		result = main(argc, newArgv);

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

-			free(newArgv[i]);

-		}

-		free(newArgv);

-		return result;

-	}

-	return mainW(argc, argv);

-}

-#define main mainW

-#endif /* UNICODE */

-#endif /* _WIN32 */

-

-int main( int argc, _TCHAR* argv[] )

-{

-    _TCHAR*   splashBitmap = NULL;

-    _TCHAR*   data;

-    _TCHAR*   shippedVM    = NULL;

-    _TCHAR*   vmSearchPath = NULL;

-    _TCHAR**  vmCommand = NULL;

-    _TCHAR**  vmCommandList = NULL;

-    _TCHAR**  vmCommandArgs = NULL;

-    _TCHAR*   vmCommandMsg = NULL;

-    _TCHAR*   errorMsg;

-    int       exitCode;

-    _TCHAR*  configFile = NULL;

-    struct _stat stats;

-    boolean isMain;

-    	

-	/* Determine the full pathname of this program. */

-#ifdef _WIN32

-	program = malloc( MAX_PATH_LENGTH + 1 );

-	GetModuleFileName( NULL, program, MAX_PATH_LENGTH );

-#else

-    program = findCommand( argv[0] );

-    if (program == NULL)

-    {

-    	program = malloc( strlen( argv[0] ) + 1 );

-    	strcpy( program, argv[0] );

-    }

-#endif

-	

-    /* Parse command line arguments (looking for the VM to use). */

-    /* Override configuration file arguments */

-    parseArgs( &argc, argv );

-

-	/* Special case - user arguments specified in the config file

-	 * are appended to the user arguments passed from the command line.

-	 */

-	if (configArgc > 1)

-	{	

-		createUserArgs(configArgc, configArgv, &argc, &argv);

-	}

-

-    if ( isMain = isMainInstall(argc, argv) )

-    {

-	    	int error;

-	    	if ( log ) createLog(LOG_FILE);

-		    logFormatS(_T_INSTALL("\tINSTALL_FILE = %s"),program);

-	

-	    	temporaryDir = getTempPath();    	    	

-	    	logFormatS(_T_INSTALL("\tTEMPORARY_DIR = %s"),temporaryDir);

-	    	

-	   		writeLog(_T_INSTALL("[i] Creating TEMPORARY_DIR"));

-	    	if ( _tmkdir(temporaryDir) != 0 )

-	    	{

-	  		writeLog(_T_INSTALL("[x] Failed to create TEMPORARY_DIR"));

-		    	exit( 1 );

-	    	}

-//****************extract config and splash files first****************************

-		error = extractFile(program,temporaryDir,configName);

-		if ( error != 0 ) {

-	        cleanup();

-	    	exit( error );

-		}

-

-		error = extractFile(program,temporaryDir,splashName);

-		if ( error != 0 ) {

-	        cleanup();

-	    	exit( error );

-		}

-

-//****************old implementation******************************

-/*		error = extract(program,temporaryDir);

-		if ( error != 0 ) {

-	        cleanup();

-	    	exit( error );

-		}

-*/

-		configFile = malloc((_tcslen(temporaryDir)+_tcslen(configName))*sizeof(_TCHAR));

-		_tcscpy(configFile,temporaryDir);

-		_tcscat(configFile,configName);

-

-		if (_tstat( configFile, &stats ) == 0)

-		{

-		    logFormatS(_T_INSTALL("\tCONFIG_FILE = %s"),configFile);

-	   		writeLog(_T_INSTALL("[i] Reading CONFIG_FILE"));

-			/* Parse configuration file arguments */

-			if ( readConfigFile(configFile, argv[0], &configArgc, &configArgv) == 0 )

-			{

-		   		writeLog(_T_INSTALL("[i] Parsing CONFIG_FILE options"));

-				parseArgs (&configArgc, configArgv);

-			}

-		}

-		if ( configFile != NULL )

-			free(configFile);

-    }

-

-	/* Initialize official program name */

-	officialName = name != NULL ? _tcsdup( name ) : getDefaultOfficialName();

-

-    /* Initialize the window system. */

-    initWindowSystem( &argc, argv, (showSplashArg != NULL) );

-

-    /* If the exit data option was given, set exit data */

-    if (exitDataArg != NULL)

-    {

-       	/* If an extra argument was given, use it as the exit data, otherwise clear exit data */

-       	data = argc > 1 ? argv[1] : NULL;

-       	if (data != NULL && _tcslen( data ) > MAX_SHARED_LENGTH - 1)

-       	{

-       		exitCode = EINVAL;       		

-       	}

-       	else {

-	        exitCode = setSharedData( exitDataArg, data );

-    	}

-   	    if (exitCode != 0 && debug) displayMessage( shareMsg );

-		exit( exitCode );

-    }

-    if ( endSplashArg != NULL )

-    {

-    	exitCode = setSharedData( endSplashArg, ENDSPLASH );

-   	    if (exitCode != 0 && debug) displayMessage( shareMsg );

-		exit( exitCode );

-    }

-

-    /* If the showsplash option was given */

-	if ( isMain && !noSplash )

-	{

-		/* look for splash */

-		splashBitmap = malloc((_tcslen(temporaryDir)+_tcslen(splashName))*sizeof(_TCHAR));

-		_tcscpy(splashBitmap,temporaryDir);

-		_tcscat(splashBitmap,splashName);

-		if (_tstat( splashBitmap, &stats ) == 0)

-		{

-		    logFormatS(_T_INSTALL("\tSPLASH_FILE = %s"),splashBitmap);

-	   		writeLog(_T_INSTALL("[i] Showing SPLASH_FILE"));

-	    	exitCode = showSplash( NULL, splashBitmap );

-	    	if (exitCode && debug)

-	    	{

-	        	errorMsg = malloc( (_tcslen(showMsg) + _tcslen(splashBitmap) + 10) * sizeof(_TCHAR) );

-	        	_stprintf( errorMsg, showMsg, splashBitmap );

-	        	displayMessage( errorMsg );

-	        	free( errorMsg );

-	     } else {

-			    if (createSharedData( &sharedSplashID, MAX_SHARED_LENGTH )) {

-			        if (debug) {

-			   			displayMessage( shareMsg );

-			        }

-			        exit(1);

-			    }

-	    	}

-		}

-	} else if ( showSplashArg != NULL && argc > 1)

-    {

-    	splashBitmap = _tcsdup(argv[1]);

-    	exitCode = showSplash( showSplashArg, splashBitmap );

-    	if (exitCode && debug)

-    	{

-        	errorMsg = malloc( (_tcslen(showMsg) + _tcslen(splashBitmap) + 10) * sizeof(_TCHAR) );

-        	_stprintf( errorMsg, showMsg, splashBitmap );

-        	displayMessage( errorMsg );

-        	free( errorMsg );

-     	}

-    	exit( exitCode );

-    }

-	

-    /* If the user did not specify a VM to be used */

-    if (vmName == NULL)

-    {

-    	/* Determine which type of VM should be used. */

-    	vmName = ((debug || needConsole) ? consoleVM : defaultVM);

-

-        /* Try to find the VM shipped with installer. */

-        shippedVM = malloc( (_tcslen( temporaryDir ) + _tcslen( shippedVMDir ) + _tcslen( vmName ) + 10) * sizeof(_TCHAR) );

-        _stprintf( shippedVM, _T_INSTALL("%s%s%s"), temporaryDir, shippedVMDir, vmName );

-        javaVM = findCommand( shippedVM );

-

-        /* Format a message to indicate the default VM search path. */

-        vmSearchPath = malloc( (_tcslen( pathMsg ) + _tcslen( shippedVM ) + _tcslen( vmName ) + 10) * sizeof(_TCHAR) );

-        _stprintf( vmSearchPath, pathMsg, shippedVM, vmName );

-        free( shippedVM );

-        shippedVM = NULL;

-	}

-

-	/* If a Java VM has not been found yet */

-	if (javaVM == NULL)

-	{

-		/* Either verify the VM specified by the user or

-		   attempt to find the VM in the user's PATH. */

-		javaVM = findCommand( vmName );

-

-		/* If the VM was not found, display a message and exit. */

-		if (javaVM == NULL)

-		{

-			if (vmSearchPath != NULL) vmName = vmSearchPath; /* used default VM searching */

-        	errorMsg = malloc( (_tcslen(noVMMsg) + _tcslen(officialName) + _tcslen(vmName) + 10) * sizeof(_TCHAR) );

-        	_stprintf( errorMsg, noVMMsg, officialName, vmName );

-	        cleanup();

-        	displayMessage( errorMsg );

-        	free( errorMsg );

-        	exit(1);

-		}

-	}

-    logFormatS(_T_INSTALL("\tJAVA_VM = %s"),javaVM);

-

-    if (createSharedData( &sharedID, MAX_SHARED_LENGTH )) {

-        if (debug) {

-   			displayMessage( shareMsg );

-        }

-    }

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

-	if ( isMain )

-    {

-	int error = extract(program,temporaryDir);

-		if ( error != 0 ) {

-	        cleanup();

-	    	exit( error );

-		}

-	}

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

-	/* Construct the absolute name of the startup jar */

-	jarFile = malloc( (_tcslen( temporaryDir ) + _tcslen( startupArg ) + 1) * sizeof( _TCHAR ) );

-	jarFile = _tcscpy( jarFile, temporaryDir );

-  	jarFile = _tcscat( jarFile, startupArg );

-

-    logFormatS(_T_INSTALL("\tSTARTUP_JAR = %s"),jarFile);

-

-	/* If the file does not exist, treat the argument as an absolute path */

-	if (_tstat( jarFile, &stats ) != 0)

-	{

-		/* TODO: no STARTUP_JAR */

-		writeLog(_T_INSTALL("[x] Failed to find STARTUP_JAR"));

-	}

-

-    /* Get the command to start the Java VM. */

-    vmCommandArgs = getVMCommand( argc, argv );

-

-    /* While the Java VM should be restarted */

-    vmCommand = vmCommandArgs;

-    while (vmCommand != NULL)

-    {

-	    	vmCommandMsg = formatVmCommandMsg( vmCommand );

-	    	if ( debug ) logFormatS(_T_INSTALL("\tVM_COMMAND = %s"),vmCommandMsg);

-		writeLog(_T_INSTALL("[i] Starting JAVA_VM"));

-	    	exitCode = startJavaVM( vmCommand );

-		logFormatI(_T_INSTALL("[i] Process JAVA_VM completes with exitcode #%i"),exitCode);

-        switch( exitCode ) {

-            case 0:

-                vmCommand = NULL;

-            	break;

-	    default:

-                vmCommand = NULL;

-                errorMsg = NULL;

-                if (getSharedData( sharedID, &errorMsg ) == 0) {

-                    if (_tcslen( errorMsg ) == 0) {

-                	    free( errorMsg );

-                	    errorMsg = NULL;

-                    }

-                } else {

-                    if (debug) displayMessage( shareMsg );

-                }

-                if (errorMsg == NULL) {

-	                errorMsg = malloc( (_tcslen(exitMsg) + _tcslen(vmCommandMsg) + 10) * sizeof(_TCHAR) );

-	                _stprintf( errorMsg, exitMsg, exitCode, vmCommandMsg );

-                }

-	            displayMessage( errorMsg );

-	            free( errorMsg );

-                break;

-        }

-        free( vmCommandMsg );

-    }

-

-    /* Cleanup time. */

-    cleanup();

-    writeLog(_T_INSTALL("[i] Deleting TEMPORARY_DIR"));

-   	_trmdir(temporaryDir);

-    free( jarFile );

-    free( splashBitmap );

-    free( temporaryDir );

-    free( program );

-    if ( vmSearchPath != NULL ) free( vmSearchPath );

-    if ( vmCommandList != NULL ) freeArgList( vmCommandList );

-    if ( configArgv != NULL ) freeConfig( configArgv );

-    if (configArgc > 1) free( argv );

-    free( officialName );

-    if ( sharedID != NULL ) {

-        if (destroySharedData( sharedID ) != 0) {

-           if (debug) displayMessage( shareMsg );

-        }

-        free( sharedID );

-    }

-    if ( sharedSplashID != NULL ) {

-        if (destroySharedData( sharedSplashID ) != 0) {

-           if (debug) displayMessage( shareMsg );

-        }

-        free( sharedSplashID );

-    }

-

-    return 0;

-}

-

-

-int isEndSplash()

-{

-	_TCHAR* end;

-	if (getSharedData( sharedSplashID, &end ) == 0) {

-	    if (_tcscmp( end, ENDSPLASH ) == 0) {

-		    free( end );

-		    setSharedData( sharedSplashID, _T_INSTALL("") );

-		    writeLog(_T_INSTALL("[i] Hide SPLASH_FILE"));

-		    return 1;

-	    }

-	    free( end );

-	}

-	return 0;

-}

-

-/* Return 1 if the current process is the process that starts the java VM

- * Return 0 if it is an process used to display a splash screen or to write

- * data to a shared memory segment.

- * The main process is the only one that reads the .ini file.

- */

-static int isMainInstall( int argc, _TCHAR **argv )

-{

-	/* It is the main program if the argument 3 is neither SHOWSPLASH|ENDSPLASH nor EXITDATA */

-//	if (argc < 4) return 1;

-//	return (_tcsicmp( argv[3], SHOWSPLASH ) != 0 && _tcsicmp( argv[3], ENDSPLASH ) != 0 && _tcsicmp( argv[3], EXITDATA ) != 0);

-	return (exitDataArg == NULL) && (endSplashArg == NULL);

-}

-

-/*

- * Parse arguments of the command.

- */

-static void parseArgs( int* pArgc, _TCHAR* argv[] )

-{

-	Option* option;

-    int     remArgs;

-    int     index;

-    int     i;

-

-    /* Ensure the list of user argument is NULL terminated. */

-    argv[ *pArgc ] = NULL;

-

-	/* For each user defined argument (excluding the program) */

-    for (index = 1; index < *pArgc; index++){

-        remArgs = 0;

-

-        /* Find the corresponding argument is a option supported by the launcher */

-        option = NULL;

-        for (i = 0; option == NULL && i < optionsSize; i++)

-        {

-        	if (_tcsicmp( argv[ index ], options[ i ].name ) == 0)

-        	    option = &options[ i ];

-       	}

-

-       	/* If the option is recognized by the launcher */

-       	if (option != NULL)

-       	{

-       		/* If the option requires a value and there is one, extract the value. */

-       		if (option->value != NULL && (index+1) < *pArgc)

-       			*option->value = argv[ index+1 ];

-

-       		/* If the option requires a flag to be set, set it. */

-       		if (option->flag != NULL)

-       			*option->flag = 1;

-       		remArgs = option->remove;

-       	}

-

-        /* All of the remaining arguments are user VM args. */

-        else if (_tcsicmp( argv[ index ], VMARGS ) == 0)

-        {

-            userVMarg = &argv[ index+1 ];

-            argv[ index ] = NULL;

-            *pArgc = index;

-        }

-

-		/* Remove any matched arguments from the list. */

-        if (remArgs > 0)

-        {

-            for (i = (index + remArgs); i <= *pArgc; i++)

-            {

-                argv[ i - remArgs ] = argv[ i ];

-            }

-            index--;

-            *pArgc -= remArgs;

-        }

-    }

-}

-

-/*

- * Create a new array containing user arguments from the config file first and

- * from the command line second.

- * Allocate an array large enough to host all the strings passed in from

- * the argument configArgv and argv. That array is passed back to the

- * argv argument. That array must be freed with the regular free().

- * Note that both arg lists are expected to contain the argument 0 from the C

- * main method. That argument contains the path/executable name. It is

- * only copied once in the resulting list.

- *

- * Returns 0 if success.

- */

-static int createUserArgs(int configArgc, _TCHAR **configArgv, int *argc, _TCHAR ***argv)

-{

-	 _TCHAR** newArray = (_TCHAR **)malloc((configArgc + *argc) * sizeof(_TCHAR *));

-

-	memcpy(newArray, configArgv, configArgc * sizeof(_TCHAR *));	

-	

-	/* Skip the argument zero (program path and name) */

-	memcpy(newArray + configArgc, *argv + 1, (*argc - 1) * sizeof(_TCHAR *));

-

-	/* Null terminate the new list of arguments and return it. */	 

-	*argv = newArray;

-	*argc += configArgc - 1;

-	(*argv)[*argc] = NULL;

-	

-	return 0;

-}

-

-/*

- * Free the memory allocated by parseArgList().

- */

-static void freeArgList( _TCHAR** data ) {

-	if (data == NULL) return;

-	free( data [0] );

-	free( data );

-}

-

-/*

- * Parse the data into a list of arguments separarted by \n.

- *

- * The list of strings returned by this function must be freed with

- * freeArgList().

- */

-static _TCHAR** parseArgList( _TCHAR* data ) {

-    int totalArgs = 0, dst = 0, length;

-    _TCHAR *ch1, *ch2, **execArg;

-    length = _tcslen( data );

-    ch1 = ch2 = data;

-    while ((ch2 = _tcschr( ch1, _T_INSTALL('\n') )) != NULL) {

-    	totalArgs++;

-    	ch1 = ch2 + 1;

-    }

-    if (ch1 != data + length) totalArgs++;

-    execArg = malloc( (totalArgs + 1) * sizeof( _TCHAR* ) );

-    ch1 = ch2 = data;

-    while ((ch2 = _tcschr( ch1, _T_INSTALL('\n') )) != NULL) {

-    	execArg[ dst++ ] = ch1;

-    	ch2[ 0 ] = _T_INSTALL('\0');

-    	ch1 = ch2 + 1;

-    }

-    if (ch1 != data + length) execArg[ dst++ ] = ch1;

-    execArg[ dst++ ] = NULL;

-    return execArg;

-}

-

-/*

- * Find the absolute pathname to where a command resides.

- *

- * The string returned by the function must be freed.

- */

-#define EXTRA 20

-_TCHAR* findCommand( _TCHAR* command )

-{

-    _TCHAR*  cmdPath;

-    int    length;

-    _TCHAR*  ch;

-    _TCHAR*  dir;

-    _TCHAR*  path;

-    struct _stat stats;

-

-    /* If the command was an abolute pathname, use it as is. */

-    if (command[0] == dirSeparator ||

-       (_tcslen( command ) > 2 && command[1] == _T_INSTALL(':')))

-    {

-        length = _tcslen( command );

-        cmdPath = malloc( (length + EXTRA) * sizeof(_TCHAR) ); /* add extra space for a possible ".exe" extension */

-        _tcscpy( cmdPath, command );

-    }

-

-    else

-    {

-        /* If the command string contains a path separator */

-        if (_tcschr( command, dirSeparator ) != NULL)

-        {

-            /* It must be relative to the current directory. */

-            length = MAX_PATH_LENGTH + EXTRA + _tcslen( command );

-            cmdPath = malloc( length * sizeof (_TCHAR));

-            _tgetcwd( cmdPath, length );

-            if (cmdPath[ _tcslen( cmdPath ) - 1 ] != dirSeparator)

-            {

-                length = _tcslen( cmdPath );

-                cmdPath[ length ] = dirSeparator;

-                cmdPath[ length+1 ] = _T_INSTALL('\0');

-            }

-            _tcscat( cmdPath, command );

-        }

-

-        /* else the command must be in the PATH somewhere */

-        else

-        {

-            /* Get the directory PATH where executables reside. */

-            path = _tgetenv( _T_INSTALL("PATH") );

-            if (!path)

-            {

-	            return NULL;

-            }

-            else

-            {

-	            length = _tcslen( path ) + _tcslen( command ) + MAX_PATH_LENGTH;

-	            cmdPath = malloc( length * sizeof(_TCHAR));

-	

-	            /* Foreach directory in the PATH */

-	            dir = path;

-	            while (dir != NULL && *dir != _T_INSTALL('\0'))

-	            {

-	                ch = _tcschr( dir, pathSeparator );

-	                if (ch == NULL)

-	                {

-	                    _tcscpy( cmdPath, dir );

-	                }

-	                else

-	                {

-	                    length = ch - dir;

-	                    _tcsncpy( cmdPath, dir, length );

-	                    cmdPath[ length ] = _T_INSTALL('\0');

-	                    ch++;

-	                }

-	                dir = ch; /* advance for the next iteration */

-

-#ifdef _WIN32

-                    /* Remove quotes */

-	                if (_tcschr( cmdPath, _T_INSTALL('"') ) != NULL)

-	                {

-	                    int i = 0, j = 0, c;

-	                    length = _tcslen( cmdPath );

-	                    while (i < length) {

-	                        c = cmdPath[ i++ ];

-	                        if (c == _T_INSTALL('"')) continue;

-	                        cmdPath[ j++ ] = c;

-	                    }

-	                    cmdPath[ j ] = _T_INSTALL('\0');

-	                }

-#endif

-	                /* Determine if the executable resides in this directory. */

-	                if (cmdPath[0] == _T_INSTALL('.') &&

-	                   (_tcslen(cmdPath) == 1 || (_tcslen(cmdPath) == 2 && cmdPath[1] == dirSeparator)))

-	                {

-	                	_tgetcwd( cmdPath, MAX_PATH_LENGTH );

-	                }

-	                if (cmdPath[ _tcslen( cmdPath ) - 1 ] != dirSeparator)

-	                {

-	                    length = _tcslen( cmdPath );

-	                    cmdPath[ length ] = dirSeparator;

-	                    cmdPath[ length+1 ] = _T_INSTALL('\0');

-	                }

-	                _tcscat( cmdPath, command );

-	

-	                /* If the file is not a directory and can be executed */

-	                if (_tstat( cmdPath, &stats ) == 0 && (stats.st_mode & S_IFREG) != 0)

-	                {

-	                    /* Stop searching */

-	                    dir = NULL;

-	                }

-	            }

-	        }

-        }

-    }

-

-#ifdef _WIN32

-	/* If the command does not exist */

-    if (_tstat( cmdPath, &stats ) != 0 || (stats.st_mode & S_IFREG) == 0)

-    {

-    	/* If the command does not end with .exe, append it an try again. */

-    	length = _tcslen( cmdPath );

-    	if (length > 4 && _tcsicmp( &cmdPath[ length - 4 ], _T_INSTALL(".exe") ) != 0)

-    	    _tcscat( cmdPath, _T_INSTALL(".exe") );

-    }

-#endif

-

-    /* Verify the resulting command actually exists. */

-    if (_tstat( cmdPath, &stats ) != 0 || (stats.st_mode & S_IFREG) == 0)

-    {

-        free( cmdPath );

-        cmdPath = NULL;

-    }

-

-    /* Return the absolute command pathname. */

-    return cmdPath;

-}

-

-/*

- * Get the command and arguments to start the Java VM.

- *

- * Memory allocated by this function is assumed to be

- * deallocated when the program terminates.

- *

- * Some of the arguments returned by this function were

- * passed directly from the main( argv ) array so they

- * should not be deallocated.

- */

-static _TCHAR** getVMCommand( int argc, _TCHAR* argv[] )

-{

-	_TCHAR** defVMarg;

-    int     nDefVMarg = 0;

-    int     nReqVMarg = 0;

-    int     nUserVMarg = 0;

-    int     totalArgs;

-    _TCHAR** execArg;

-    int     src;

-    int     dst;

-

- 	/* Calculate the number of user VM arguments. */

- 	if (userVMarg != NULL)

- 	{

-	 	while (userVMarg[ nUserVMarg ] != NULL)

- 			nUserVMarg++;

- 	}

-

- 	/* Calculate the number of default VM arguments. */

- 	defVMarg = getArgVM( javaVM );

- 	while (defVMarg[ nDefVMarg ] != NULL)

- 		nDefVMarg++;

-

- 	/* Calculate the number of required VM arguments. */

- 	while (reqVMarg[ nReqVMarg ] != NULL)

- 		nReqVMarg++;

-

-    /* Allocate the arg list for the exec call.

-     *  (VM + userVMargs + defaultVMargs + requiredVMargs + OS <os> + WS <ws> + ARCH <arch> + LAUNCHER <launcher> + NAME <officialName> +

-     *      + [SHOWSPLASH <cmd> | ENDSPLASH <cmd>] + EXITDATA <cmd> + argv[] + VM + <vm> + VMARGS + userVMargs + defaultVMargs + requiredVMargs

-     *      + NULL)

-     */

-    totalArgs  = 1 + nUserVMarg + nDefVMarg + nReqVMarg + 2 + 2 + 2 + 2 + 2 + 2 + 2 + argc + 2 + 1 + nUserVMarg + nDefVMarg + nReqVMarg + 1;

-	execArg = malloc( totalArgs * sizeof( _TCHAR* ) );

-    dst = 0;

-    execArg[ dst++ ] = javaVM;

-

-    /* If the user specified "-vmargs", add them instead of the default VM args. */

-    if (userVMarg != NULL)

-    {

-    	for (src = 0; src < nUserVMarg; src++)

-	    	execArg[ dst++ ] = userVMarg[ src ];

-	}

-	else

-	{

-    	for (src = 0; src < nDefVMarg; src++)

-	    	execArg[ dst++ ] = defVMarg[ src ];

-	}

-

-    /* For each required VM arg */

-	for (src = 0; src < nReqVMarg; src++)

-    	execArg[ dst++ ] = *(reqVMarg[ src ]);

-

-	/* Append the required options. */

-    execArg[ dst++ ] = OS;

-    execArg[ dst++ ] = osArg;

-    execArg[ dst++ ] = WS;

-    execArg[ dst++ ] = wsArg;

-    execArg[ dst++ ] = OSARCH;

-    execArg[ dst++ ] = osArchArg;

-

-	/* Append the launcher command */

-	execArg[ dst++ ] = LAUNCHER;

-	execArg[ dst++ ] = program;

-

-	/* Append the name command */

-	execArg[ dst++ ] = NAME;

-	execArg[ dst++ ] = 	officialName;

-	

-	/* Append the show splash window command, if defined. */

-    if (!noSplash)

-    {

-    	if ( sharedSplashID == NULL )

-    	{

-        	execArg[ dst++ ] = SHOWSPLASH;

-        	execArg[ dst++ ] = splashTimeout;

-    	} else {

-        	execArg[ dst++ ] = ENDSPLASH;

-        	execArg[ dst++ ] = sharedSplashID;

-    	}

-    }

-

-	/* Append the exit data command. */

-	if (sharedID) {

-	    execArg[ dst++ ] = EXITDATA;

-	    execArg[ dst++ ] = sharedID;

-	}

-

-	/* Append the remaining user defined arguments. */

-    for (src = 1; src < argc; src++)

-    {

-        execArg[ dst++ ] = argv[ src ];

-    }

-

-    /* Append VM and VMARGS to be able to relaunch using exit data. */

-	execArg[ dst++ ] = VM;

-	execArg[ dst++ ] = javaVM;

-    execArg[ dst++ ] = VMARGS;

-    /* If the user specified "-vmargs", add them instead of the default VM args. */

-    if (userVMarg != NULL)

-    {

-    	for (src = 0; src < nUserVMarg; src++)

-	    	execArg[ dst++ ] = userVMarg[ src ];

-	}

-	else

-	{

-    	for (src = 0; src < nDefVMarg; src++)

-	    	execArg[ dst++ ] = defVMarg[ src ];

-	}

-    /* For each required VM arg */

-    for (src = 0; src < nReqVMarg; src++)

-        execArg[ dst++ ] = *(reqVMarg[ src ]);

-

-    execArg[ dst++ ] = NULL;

-

-	return execArg;

- }

-

- /* Format the JVM start command for error messages

-  *

-  * This method formats a string with the JVM start command (and all arguments)

-  * that can be used in displaying error messages. The string returned from this

-  * method is probably not NLS compliant and must be deallocated by the caller.

-  */

-static _TCHAR* formatVmCommandMsg( _TCHAR* args[] )

-{

-	int   index;

-    int   length;

-    _TCHAR* ch;

-    _TCHAR* message;

-

-	/* Determine the length of the message buffer. */

-	length = 0;

-	for (index = 0; args[index] != NULL; index++)

-	{

-		length += _tcslen(args[index]) + 1;

-	}

-	message = malloc( (length + 5) * sizeof(_TCHAR) );

-	

-	/* Format the message such that options (args starting with '-') begin

-	   on a new line. Otherwise, the Motif MessageBox does not automatically wrap

-	   the messages and the message window can extend beyond both sides of the display. */

-	ch = message;

-	for (index = 0; args[index] != NULL; index++)

-	{

-		if (args[index][0] == _T_INSTALL('-') && *(ch-1) == _T_INSTALL(' '))

-			*(ch-1) = _T_INSTALL('\n');

-		_tcscpy( ch, args[index] );

-		ch += _tcslen( args[index] );

-		*ch++ = _T_INSTALL(' ');

-	}

-	*ch = _T_INSTALL('\0');

-

-	return message;

-}

-

-/*

- * Determine the default official application name

- *

- */

-static _TCHAR* getDefaultOfficialName()

-{

-	_TCHAR *ch = NULL;

-	

-	/* Skip the directory part */

-	ch = _tcsrchr( program, dirSeparator );

-	if (ch == NULL) ch = program;

-	else ch++;

-	

-	ch = _tcsdup( ch );

-#ifdef _WIN32

-	{

-		/* Search for the extension .exe and cut it */

-		_TCHAR *extension = _tcsrchr(ch, _T_INSTALL('.'));

-		if (extension != NULL) 

-		{

-			*extension = _T_INSTALL('\0');

-		}

-	}

-#endif

-	/* Upper case the first character */

-#ifndef LINUX

-	{

-		*ch = _totupper(*ch);

-	}

-#else

-	{

-		if (*ch >= 'a' && *ch <= 'z')

-		{

-			*ch -= 32;

-		}

-	}

-#endif

-	return ch;

-}

-	

-_TCHAR* getProgramDir( )

-{

-        _TCHAR*  ch;

-        _TCHAR*  programDir;

-

-    programDir = malloc( (_tcslen( program ) + 1) * sizeof(_TCHAR) );

-    _tcscpy( programDir, program );

-    ch = _tcsrchr( programDir, dirSeparator );

-        if (ch != NULL)

-    {

-        *(ch+1) = _T_INSTALL('\0');

-                return programDir;

-    }

-

-    free( programDir );

-    return NULL;

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.c b/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.c
deleted file mode 100644
index f11f458..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.c
+++ /dev/null
@@ -1,81 +0,0 @@
-

-#include "installOS.h"

-#include "installConfig.h"

-

-#ifdef _WIN32

-

-#include <stdio.h>

-

-

-#else /* Unix like platforms */

-

-#include <string.h>

-#include <stdlib.h>

-#include <stdio.h>

-#include <sys/types.h>

-#include <unistd.h>

-

-#endif

-

-int readConfigFile(_TCHAR* config_file, _TCHAR* arg0, int *argc, _TCHAR ***argv) 

-{

-	_TCHAR buffer[1024];

-	_TCHAR argument[1024];

-	FILE *file = NULL;

-	int maxArgs = 128;

-	int index;

-	

-	if (config_file == NULL || argc == NULL || argv == NULL) return -1;

-

-	/* Open the config file as a text file 

-	 */	

-	file = _tfopen(config_file, _T_INSTALL("rt"));	

-	if (file == NULL) return -3;

-

-	*argv = (_TCHAR **)malloc(1 + maxArgs * sizeof(_TCHAR*));

-	

-	/* Make it look like a regular list of arguments that starts with the executable location and name */

-	(*argv)[0] = _tcsdup(arg0);

-	index = 1;

-	

-	/* Parse every line */	

-	while (_fgetts(buffer, 1024, file) != NULL)

-	{

-		/* Extract the string prior to the first newline character.

-		 * We don't have to worry about \r\n combinations since the file

-		 * is opened in translated mode.

-		 */

-		if (_stscanf(buffer, _T_INSTALL("%[^\n]"), argument) == 1)

-		{

-			(*argv)[index] = _tcsdup(argument);

-			index++;

-			

-			/* Grow the array of TCHAR*. Ensure one more entry is

-			 * available for the final NULL entry

-			 */

-			if (index == maxArgs - 1)

-			{

-				maxArgs += 128;

-				*argv = (_TCHAR **)realloc(*argv, maxArgs * sizeof(_TCHAR*));

-			}

-		}

-	}

-	(*argv)[index] = NULL;

-	*argc = index;

-	

-	fclose(file);

-	free(config_file);

-	return 0;

-}

-

-void freeConfig(_TCHAR **argv) 

-{

-	int index = 0;

-	if (argv == NULL) return;

-	while (argv[index] != NULL)

-	{

-		free(argv[index]);

-		index++;

-	}

-	free(argv);

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.h b/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.h
deleted file mode 100644
index 1241ade..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installConfig.h
+++ /dev/null
@@ -1,20 +0,0 @@
-

-#ifndef INSTALL_CONFIG_H

-#define INSTALL_CONFIG_H

-

-#ifdef UNICODE

-#define readConfigFile readConfigFileW

-#define freeConfig freeConfigW

-#endif

-

-/* Configuration file reading utilities */

-

-extern int readConfigFile(_TCHAR* program, _TCHAR* arg0, int *nArgs, _TCHAR ***args);

-

-/**

- * Free the memory allocated by readConfigFile().

- */

-extern void freeConfig(_TCHAR **args);

-

-

-#endif /* INSTALL_CONFIG_H */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installOS.h b/plugins/org.eclipse.epp.installer.launcher.native/src/installOS.h
deleted file mode 100644
index 75974dd..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installOS.h
+++ /dev/null
@@ -1,110 +0,0 @@
-

-#ifndef INSTALL_OS_H

-#define INSTALL_OS_H

-

-#include "installUnicode.h"

-

-#ifndef _WIN32

-#define MAX_PATH	(2000)

-#endif

-

-#ifdef UNICODE

-#define shippedVMDir shippedVMDirW

-#define defaultVM defaultVMW

-#define consoleVM consoleVMW

-#define pathSeparator pathSeparatorW

-#define dirSeparator dirSeparatorW

-#define displayMessage displayMessageW

-#define initWindowSystem initWindowSystemW

-#define showSplash showSplashW

-#define getArgVM getArgVMW

-#define startJavaVM startJavaVMW

-#define findCommand findCommandW

-#define getProgramDir getProgramDirW

-#define officialName officialNameW

-#define getTempPath getTempPathW

-#define isEndSplash isEndSplashW

-#endif

-

-/* Operating System Dependent Information */

-

-/*** See install.c for information on the launcher runtime architecture ***/

-

-/* Global Variables */

-

-extern _TCHAR   dirSeparator;         /* '/' or '\\' */

-extern _TCHAR   pathSeparator;        /* separator used in PATH variable */

-extern _TCHAR*  consoleVM;   			/* name of VM to use for debugging */

-extern _TCHAR*  defaultVM;   			/* name of VM to use normally      */

-extern _TCHAR*  shippedVMDir;			/* VM bin directory with separator */

-extern _TCHAR*  officialName;			/* Program official name           */

-

-/* OS Specific Functions */

-

-/** Display a Message

- *

- * This method is called to display a message to the user.

- * The method should not return until the user has acknowledged

- * the message. This method will only be called after the window

- * system has been initialized.

- */

-extern void displayMessage( _TCHAR* message );

-

-

-/** Initialize the Window System

- *

- * This method is called after the command line arguments have been

- * parsed. Its purpose is to initialize the corresponding window system.

- *

- * The showSplash flag indicates the splash window will be displayed by

- * this process (e.g., value will be zero for the main launcher).

- */

-extern void initWindowSystem( int* argc, _TCHAR* argv[], int showSplash );

-

-

-/** Show the Splash Window

- *

- * This method is called to display the actual splash window. It will only

- * be called by the splash window process and not the main launcher process.

- * The splash ID passed corresponds to the string returned from initWindowSystem().

- * If possible, this ID should be used to communicate some piece of data back

- * to the main launcher program for two reasons:

- * 1) to detect when the splash window process terminates

- * 2) to terminate the splash window process should the JVM terminate before it

- *    completes its initialization.

- *

- * Two parameters are passed: the install home directory and a specific bitmap image

- * file for a feature. The feature's image file is tried first and if it cannot be

- * displayed, the images from the install directory are used.

- *

- * Return (exit code):

- * 0        - success

- * non-zero - could not find a splash image to display

- */

-extern int showSplash( _TCHAR* splashId, _TCHAR* featureImage );

-

-

-/** Get List of Java VM Arguments

- *

- * A given Java VM might require a special set of arguments in order to

- * optimize its performance. This method returns a NULL terminated array

- * of strings, where each string is a separate VM argument.

- */

-extern _TCHAR** getArgVM( _TCHAR *vm );

-

-

-/* Start the Java VM and Wait For It to Terminate

- *

- * This method is responsible for starting the Java VM and for

- * detecting its termination. The resulting JVM exit code should

- * be returned to the main launcher, which will display a message if

- * the termination was not normal.

- */

-extern int startJavaVM( _TCHAR* args[] );

-

-extern _TCHAR* getTempPath();

-

-extern int isEndSplash();

-

-#endif /* INSTALL_OS_H */

-

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.c b/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.c
deleted file mode 100644
index d7484c9..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.c
+++ /dev/null
@@ -1,176 +0,0 @@
-

-#include "installOS.h"

-#include "installShm.h"

-

-#ifdef _WIN32

-

-#include <stdio.h>

-

-

-int createSharedData(_TCHAR** id, int size) {

-	HANDLE mapHandle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, NULL);

-	if (mapHandle == 0) return -1;

-	if (id != NULL) {

-		*id = malloc(18 * sizeof(_TCHAR));

-		_stprintf(*id, _T_INSTALL("%lx_%lx"), GetCurrentProcessId(), (DWORD) mapHandle);

-	}

-	return 0;

-}

-

-static int getShmID(_TCHAR* id, LPDWORD processID, LPHANDLE handle) {

-	if (id != NULL && _tcslen(id) > 0) {

-		DWORD i1, i2;

-		if (_stscanf(id, _T_INSTALL("%lx_%lx"), &i1, &i2) != 2) return -1;

-		*processID = (DWORD)i1;

-		*handle = (HANDLE)i2;

-		return 0;

-	}

-	return -1;

-}

-

-int destroySharedData(_TCHAR* id) {

-	DWORD processID;

-	HANDLE handle;

-	if (getShmID(id, &processID, &handle) == -1) return -1;

-	if (!CloseHandle(handle)) return -1;

-	return 0;

-}

-

-int getSharedData(_TCHAR* id, _TCHAR** data) {

-	_TCHAR *sharedData, *newData = NULL;

-	DWORD processID;

-	HANDLE handle, mapHandle = NULL, processHandle;

-	if (getShmID(id, &processID, &handle) == -1) return -1;

-	if (processID == GetCurrentProcessId()) {

-		mapHandle = handle;

-	} else {

-		processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

-		if (processHandle == NULL) return -1;

-		DuplicateHandle(processHandle, handle, GetCurrentProcess(), &mapHandle, DUPLICATE_SAME_ACCESS, FALSE, DUPLICATE_SAME_ACCESS);

-		CloseHandle(processHandle);

-	}

-	if (mapHandle == NULL) return -1;

-	sharedData = MapViewOfFile(handle, FILE_MAP_WRITE, 0, 0, 0);

-	if (sharedData == NULL) return -1;

-	if (data != NULL) {

-		int length = (_tcslen(sharedData) + 1) * sizeof(_TCHAR);

-		newData = malloc(length);

-		memcpy(newData, sharedData, length);

-	}

-	if (!UnmapViewOfFile(sharedData)) {

-		free(newData);

-		return -1;

-	}

-	if (handle != mapHandle) {

-		CloseHandle(mapHandle);

-	}

-	*data = newData;

-	return 0;

-}

-

-int setSharedData(_TCHAR* id, _TCHAR* data) {

-	_TCHAR* sharedData;

-	DWORD processID;

-	HANDLE handle, mapHandle = NULL, processHandle;

-	if (getShmID(id, &processID, &handle) == -1) return -1;

-	if (processID == GetCurrentProcessId()) {

-		mapHandle = handle;

-	} else {

-		processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

-		if (processHandle == NULL) return -1;

-		DuplicateHandle(processHandle, handle, GetCurrentProcess(), &mapHandle, DUPLICATE_SAME_ACCESS, FALSE, DUPLICATE_SAME_ACCESS);

-		CloseHandle(processHandle);

-	}

-	if (mapHandle == NULL) return -1;

-	sharedData = MapViewOfFile(mapHandle, FILE_MAP_WRITE, 0, 0, 0);

-	if (sharedData == NULL) return -1;

-	if (data != NULL) {

-		int length = (_tcslen(data) + 1) * sizeof(_TCHAR);

-		memcpy(sharedData, data, length);

-	} else {

-		memset(sharedData, 0, sizeof(_TCHAR));

-	}

-	if (!UnmapViewOfFile(sharedData)) {

-		return -1;

-	}

-	if (handle != mapHandle) {

-		CloseHandle(mapHandle);

-	}

-	return 0;

-}

-

-#else /* Unix like platforms */

-

-#include <sys/shm.h>

-#include <string.h>

-#include <stdlib.h>

-#include <stdio.h>

-#include <sys/types.h>

-#include <unistd.h>

-

-int createSharedData(char** id, int size) {

-	int shmid;

-	key_t key = IPC_PRIVATE;//getpid();

-	if ((shmid = shmget(key, size, IPC_CREAT | 0666)) < 0) {

-		return -1;

-	}

-	if (id != NULL) {

-		*id = malloc(9 * sizeof(char));

-		sprintf(*id, "%x", shmid);

-	}

-	return 0;

-}

-

-static int getShmID(char* id) {

-	int shmid = -1;

-	/* Determine the shared memory id. */

-	if (id != NULL && strlen(id) > 0) {

-		sscanf(id, "%x", &shmid);

-	}

-	return shmid;

-}

-

-int destroySharedData(char* id) {

-	int shmid = getShmID(id);

-	if (shmid == -1) return -1;

-	return shmctl(shmid, IPC_RMID, NULL);

-}

-

-int getSharedData( char* id, char** data ) {

-	char *sharedData, *newData = NULL;

-	int length;

-	int shmid = getShmID(id);

-	if (shmid == -1) return -1;

- 	sharedData = shmat(shmid, (void *)0, 0);

-    if (sharedData == (char *)(-1)) return -1;

-    length = strlen(sharedData) + 1;

-    newData = malloc(length);

-    memcpy(newData, sharedData, length);

-	if (shmdt(sharedData) != 0) {

-		free(newData);

-		return -1;

-	}

-	*data = newData;

-	return 0;

-}

-

-int setSharedData(char* id, char* data) {

-	char* sharedData;

-	int length;

-	int shmid = getShmID(id);

-	if (shmid == -1) return -1;

- 	sharedData = shmat(shmid, (void *)0, 0);

-	if (sharedData == (char *)(-1)) return -1;

-	if (data != NULL) {

-		length = strlen(data) + 1;

-		memcpy(sharedData, data, length);

-	} else {

-		memset(sharedData, 0, sizeof(char));

-	}

-	if (shmdt(sharedData) != 0) {

-		return -1;

-	}

-	return 0;

-}

-

-#endif /* Unix like platforms */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.h b/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.h
deleted file mode 100644
index af9c395..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installShm.h
+++ /dev/null
@@ -1,56 +0,0 @@
-

-#ifndef INSTALL_SHM_H

-#define INSTALL_SHM_H

-

-#ifdef UNICODE

-#define createSharedData createSharedDataW

-#define destroySharedData destroySharedDataW

-#define getSharedData getSharedDataW

-#define setSharedData setSharedDataW

-#endif

-

-/* Shared memory utilities */

-

-/**

- * Creates and initializes a shared memory segment

- * with the specified size in bytes. The id for the

- * shared memory segment is stored in the id argument

- * and can be used from any process. It must be freed

- * with free().

- *

- * Returns 0 if success.

- */

-extern int createSharedData(_TCHAR** id, int size);

-

-/**

- * Destroy the shared memory segment specified by the

- * id argument. The id is the same as the one return

- * by createSharedData(). This function must be called

- * by the same process that created the segment.

- *

- * Returns 0 if success.

- */

-extern int destroySharedData(_TCHAR* id);

-

-/**

- * Gets a copy of the shared memory segment specified

- * by the id argument. The copy is stored in the data

- * argument as a null terminated string and must be

- * freed by free().

- *

- * Returns 0 if success.

- */

-extern int getSharedData(_TCHAR* id, _TCHAR** data);

-

-/**

- * Sets the shared memory segment specified by the id

- * argument with a null terminated string specified by

- * data.

- *

- * Returns 0 if sucess.

- */

-extern int setSharedData(_TCHAR* id, _TCHAR* data);

-

-#endif /* INSTALL_SHM_H */

-

-

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/installUnicode.h b/plugins/org.eclipse.epp.installer.launcher.native/src/installUnicode.h
deleted file mode 100644
index bcfbd10..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/installUnicode.h
+++ /dev/null
@@ -1,49 +0,0 @@
-

-#ifndef INSTALL_UNICODE_H

-#define INSTALL_UNICODE_H

-

-#ifdef _WIN32

-

-#ifdef UNICODE

-#define _UNICODE

-#endif

-#include <windows.h>

-#include <tchar.h>

-#include <ctype.h>

-

-#define _T_INSTALL _T

-

-#else /* Platforms other than Windows */

-

-#define _TCHAR char

-#define _T_INSTALL(s) s

-#define _fgetts fgets

-#define _fputts fputs

-#define _stat stat

-#define _stprintf sprintf

-#define _stscanf sscanf

-#define _tcscat strcat

-#define _tcschr strchr

-#define _tcscmp strcmp

-#define _tcscpy strcpy

-#define _tcsdup strdup

-#define _tcsicmp strcasecmp

-#define _tcslen strlen

-#define _tcsncpy strncpy

-#define _tcsrchr strrchr

-#define _tfopen fopen

-#define _tgetcwd getcwd

-#define _tgetenv getenv

-#ifndef LINUX

-#define _totupper toupper

-#endif /* LINUX */

-#define _tprintf printf

-#define _tstat stat

-#define _ttempnam tempnam

-#define _tmkdir(path) mkdir((path),00700)

-#define _trmdir rmdir

-#define _tremove remove

-#define _tcsftime strftime

-#endif /* _WIN32 */

-

-#endif /* INSTALL_UNICODE_H */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/log.c b/plugins/org.eclipse.epp.installer.launcher.native/src/log.c
deleted file mode 100644
index 0d090aa..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/log.c
+++ /dev/null
@@ -1,81 +0,0 @@
-

-#include "installOS.h"

-#include "log.h"

-

-#include <stdio.h>

-#include <stdlib.h>

-#include <string.h>

-#include <time.h>

-

-static FILE *file = NULL;

-static _TCHAR* logMessage = _T_INSTALL("Log file created ");

-static _TCHAR* timeSepatator = _T_INSTALL(" | ");

-static _TCHAR* lineSepatator = _T_INSTALL("\n");

-static _TCHAR* sectionSepatator = _T_INSTALL("################################################################################");

- 	

-/*

- * Create and open log file

- */

-int createLog( _TCHAR* logfile )

-{

-	_TCHAR buffer[50];

-	_TCHAR datetime[30];

-	time_t ltime = time(NULL);

-	_tcsftime(datetime,sizeof(datetime),_T_INSTALL("%m/%d/%Y"),localtime( &ltime ));

-	file = _tfopen(logfile, _T_INSTALL("wt"));

-	if (file == NULL) return -1;

-	_tcscpy(buffer,logMessage);

-	_tcscat(buffer,datetime);

-	return writeLog(buffer) == 0 && writeLog(sectionSepatator) == 0 ? 0 : -1;

-}

-

-/*

- * Write string with time and newline to log file

- */

-int writeLog( _TCHAR* string )

-{

-	_TCHAR datetime[30];

-	time_t ltime = time(NULL);

-	if ( file == NULL ) return -2;

-	_tcsftime(datetime,sizeof(datetime),_T_INSTALL("%H:%M:%S"),localtime( &ltime ));

-	if ( _fputts(datetime,file) < 0 )

-		return -1;

-	if ( _fputts(timeSepatator,file) < 0 )

-		return -1;

-	if ( _fputts(string,file) < 0 )

-		return -1;

-	if ( _fputts(lineSepatator,file) < 0 )

-		return -1;

-	return fflush(file);

-}

-

-/*

- * Close log file

- */

-void closeLog()

-{

-	if ( file != NULL ) {

-		fclose(file);

-		file = NULL;

-	}

-}

-

-/* Helpers */

-

-void logFormatS( _TCHAR* format, _TCHAR* string )

-{

-	_TCHAR *buffer = malloc((_tcslen(format)+_tcslen(string))*sizeof(_TCHAR));

-	_stprintf(buffer, format, string );

-	writeLog(buffer);

-	free(buffer);

-}

-

-void logFormatI( _TCHAR* format, int i )

-{

-	_TCHAR *buffer = malloc((_tcslen(format)+15)*sizeof(_TCHAR));

-	_stprintf(buffer, format, i );

-	writeLog(buffer);

-	free(buffer);

-}

-

-/* EOF */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/src/log.h b/plugins/org.eclipse.epp.installer.launcher.native/src/log.h
deleted file mode 100644
index 14e721e..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/src/log.h
+++ /dev/null
@@ -1,23 +0,0 @@
-

-#ifndef _LOG_H

-#define _LOG_H

-

-#ifdef UNICODE

-#define createLog createLogW

-#define writeLog writeLogW

-#define closeLog closeLogW

-#define logFormatS logFormatSW

-#define logFormatI logFormatIW

-#endif

-

-extern int createLog( _TCHAR* logfile );

-extern int writeLog( _TCHAR* string );

-extern void closeLog();

-

-/* helpers */

-extern void logFormatS( _TCHAR* format, _TCHAR* string );

-extern void logFormatI( _TCHAR* format, int i );

-

-#endif /* _LOG_H */

-

-/* EOF */

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/.cvsignore b/plugins/org.eclipse.epp.installer.launcher.native/win32/.cvsignore
deleted file mode 100644
index 4b1be1e..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.exe
-*.res
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/build.bat b/plugins/org.eclipse.epp.installer.launcher.native/win32/build.bat
deleted file mode 100644
index 29d2ee1..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/build.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off

-call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat"

-

-set OS=Windows

-set makefile=make_win32.mak

-set PROGRAM_OUTPUT=install.exe

-set DEFAULT_OS=win32

-set DEFAULT_OS_ARCH=x86

-set DEFAULT_WS=win32

-set OUTPUT_DIR=..\..\com.instantiations.installer.tools\template\%DEFAULT_OS%\%DEFAULT_OS_ARCH%

-

-echo Building %DEFAULT_OS% install launcher

-nmake -f %makefile% clean

-nmake -f %makefile% %1 %2 %3 %4

-

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.exe.manifest b/plugins/org.eclipse.epp.installer.launcher.native/win32/install.exe.manifest
deleted file mode 100644
index 697844c..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.exe.manifest
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

-	<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Install Launcher" type="win32"/>

-	<description>Install</description>

-	<dependency>

-		<dependentAssembly>

-			<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"/>

-		</dependentAssembly>

-	</dependency>

-

-<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">

-      <security>

-      <requestedPrivileges>

-        <requestedExecutionLevel

-          level="requireAdministrator"

-          uiAccess="false"/>

-      </requestedPrivileges>

-    </security>

-   </trustInfo>

-</assembly>

-	
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.ico b/plugins/org.eclipse.epp.installer.launcher.native/win32/install.ico
deleted file mode 100644
index 5783760..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.rc b/plugins/org.eclipse.epp.installer.launcher.native/win32/install.rc
deleted file mode 100644
index 38bc98d..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/install.rc
+++ /dev/null
@@ -1,11 +0,0 @@
-

-#define INSTALL_ICON  401

-

-#include "windows.h"

-#include "winver.h"

-

-

-INSTALL_ICON            ICON    DISCARDABLE     "install.ico"

-

-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "install.exe.manifest" 

-

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/installWin.c b/plugins/org.eclipse.epp.installer.launcher.native/win32/installWin.c
deleted file mode 100644
index 6949fc3..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/installWin.c
+++ /dev/null
@@ -1,463 +0,0 @@
-

-#include "installOS.h"

-

-#include <windows.h>

-

-#include <commctrl.h>

-#include <process.h>

-#include <stdio.h>

-#include <string.h>

-#include <errno.h>

-

-#define INSTALL_ICON  401

-

-/* Global Variables */

-_TCHAR   dirSeparator  = _T('\\');

-_TCHAR   pathSeparator = _T(';');

-_TCHAR*  consoleVM     = _T("java.exe");

-_TCHAR*  defaultVM     = _T("javaw.exe");

-_TCHAR*  shippedVMDir  = _T("jre\\bin\\");

-

-/* Define the window system arguments for the Java VM. */

-static _TCHAR*  argVM[] = { NULL };

-

-/* Define local variables for the main window. */

-static HWND    topWindow  = 0;

-static WNDPROC oldProc;

-

-/* Define local variables for running the JVM and detecting its exit. */

-static int     jvmProcess     = 0;

-static int     jvmExitCode    = 0;

-static int     jvmExitTimeout = 100;

-static int     jvmExitTimerId = 99;

-

-/* Define local variables for handling the splash window and its image. */

-static int      splashTimerId = 88, inputTimerId = 89;

-

-static HWND label = NULL, progress = NULL;

-static COLORREF foreground = 0;

-static RECT progressRect = {0, 0, 0, 0}, messageRect = {0, 0, 0, 0};

-static int value = 0, maximum = 100;

-

-/* Local functions */

-static void CALLBACK  detectJvmExit( HWND hwnd, UINT uMsg, UINT id, DWORD dwTime );

-static HBITMAP        loadSplashImage(_TCHAR *baseDir, _TCHAR *fileName);

-static void CALLBACK  splashTimeout( HWND hwnd, UINT uMsg, UINT id, DWORD dwTime );

-static LRESULT WINAPI WndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

-

-

-/* Display a Message */

-void displayMessage( _TCHAR* message )

-{

-	MessageBox( topWindow, message, officialName, MB_OK );

-}

-

-/* Initialize Window System

- *

- * Create a pop window to display the bitmap image.

- *

- * Return the window handle as the data for the splash command.

- *

- */

-void initWindowSystem( int* pArgc, _TCHAR* argv[], int showSplash )

-{

-    /* Create a window that has no decorations. */

-	InitCommonControls();

-    topWindow = CreateWindowEx (0,

-		_T("STATIC"),

-		officialName,

-		SS_BITMAP | WS_POPUP,

-		0,

-		0,

-		0,

-		0,

-		NULL,

-		NULL,

-		GetModuleHandle (NULL),

-		NULL);

-	SetClassLong(topWindow, GCL_HICON, (LONG)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(INSTALL_ICON)));

-    oldProc = (WNDPROC) GetWindowLong (topWindow, GWL_WNDPROC);

-    SetWindowLong (topWindow, GWL_WNDPROC, (LONG) WndProc);

-}

-

-

-static void readRect(_TCHAR *str, RECT *rect) {

-	int x, y, width, height;

-	_TCHAR *temp = str, *comma;

-	comma = _tcschr(temp, _T(','));

-	if (comma == NULL) return;

-	comma[0] = 0;

-	x = _ttoi(temp);

-	temp = comma + 1;

-	comma = _tcschr(temp, _T(','));

-	if (comma == NULL) return;

-	comma[0] = 0;

-	y = _ttoi(temp);

-	temp = comma + 1;

-	comma = _tcschr(temp, _T(','));

-	if (comma == NULL) return;

-	comma[0] = 0;

-	width = _ttoi(temp);

-	temp = comma + 1;

-	height = _ttoi(temp);

-	rect->left = x;

-	rect->top = y;

-	rect->right = x + width;

-	rect->bottom = y + height;

-}

-

-static void readColor(_TCHAR *str, COLORREF *color) {

-	int value = _ttoi(str);

-	*color = ((value & 0xFF0000) >> 16) | (value & 0xFF00) | ((value & 0xFF) << 16);

-}

-

-static void readInput() {

-	int available;

-	FILE *fd = stdin;

-#ifdef _UNICODE

-	WCHAR *buffer1 = NULL;

-#endif

-	char *buffer = NULL;

-	_TCHAR *equals = NULL, *end, *line;

-	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);

-	available = GetFileSize (hStdin, NULL) - SetFilePointer (hStdin, 0, NULL, FILE_CURRENT);

-	if (available <= 0) return;

-	buffer = malloc(available + 1);

-	if (!ReadFile(hStdin, buffer, available, &available, NULL)) {

-		return;

-	}

-	if (available <= 0) {

-		free(buffer);

-		return;

-	}

-	buffer[available] = 0;

-#ifdef _UNICODE

-	{

-	buffer1 = malloc((available + 1) * sizeof(TCHAR));

-	available = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, (LPCSTR)buffer, available, (LPWSTR)buffer1, available);

-	buffer1[available] = 0;

-	line = buffer1;

-	}

-#else

-	line = buffer;

-#endif

-	while (line != NULL) {

-		end = _tcschr(line, _T('\n'));

-		equals = _tcschr(line, _T('='));

-		if (end != NULL) end[0] = 0;

-		if (equals != NULL) {

-			_TCHAR *str = (_TCHAR *)equals + 1;

-			equals[0] = 0;

-			if (_tcscmp(line, _T("maximum")) == 0) {

-				maximum = _ttoi(str);

-				if (progress) {

-					SendMessage (progress, PBM_SETRANGE32, 0, maximum);

-				}

-			} else if (_tcscmp(line, _T("value")) == 0) {

-				value = _ttoi(str);

-				if (progress) {

-					SendMessage (progress, PBM_SETPOS, value, 0);

-				}

-			} else if (_tcscmp(line, _T("progressRect")) == 0) {

-				readRect(str, &progressRect);

-				if (progress) {

-					int flags = SWP_NOZORDER | SWP_DRAWFRAME | SWP_NOACTIVATE;

-					SetWindowPos (progress, 0, progressRect.left, progressRect.top, progressRect.right - progressRect.left, progressRect.bottom - progressRect.top, flags);

-				}

-			} else if (_tcscmp(line, _T("messageRect")) == 0) {

-				readRect(str, &messageRect);

-				if (label) {

-					int flags = SWP_NOZORDER | SWP_DRAWFRAME | SWP_NOACTIVATE;

-					SetWindowPos (label, 0, messageRect.left, messageRect.top, messageRect.right - messageRect.left, messageRect.bottom - messageRect.top, flags);

-				}

-			} else if (_tcscmp(line, _T("foreground")) == 0) {

-				readColor(str, &foreground);

-				if (label) {

-					RECT rect;

-					GetWindowRect (label, &rect);

-					MapWindowPoints (0, topWindow, (POINT *)&rect, 2);

-					InvalidateRect (topWindow, &rect, 1);

-				}

-			} else if (_tcscmp(line, _T("message")) == 0) {

-				if (label) {

-					RECT rect;

-					SetWindowText (label, str);

-					GetWindowRect (label, &rect);

-					MapWindowPoints (0, topWindow, (POINT *)&rect, 2);

-					InvalidateRect (topWindow, &rect, 1);

-				}

-			}

-			

-		}

-		if (end != NULL) line = end + 1;

-		else line = NULL;

-	}

-	free(buffer);

-#ifdef _UNICODE

-	if (buffer1 != NULL) free(buffer1);

-#endif

-}

-

-static void CALLBACK timerProc( HWND hwnd, UINT uMsg, UINT id, DWORD dwTime ) {

-	readInput();

-	if ( isEndSplash() )

-	{

-		/* Kill the timer. */

-		KillTimer( topWindow, splashTimerId );

-		ShowWindow( topWindow, SW_HIDE );

-	}

-}

-

-/* Show the Splash Window

- *

- * Open the bitmap, insert into the splash window and display it.

- *

- */

-int showSplash( _TCHAR* timeoutString, _TCHAR* featureImage )

-{

-	int     timeout = 0;

-    RECT    rect;

-    HBITMAP hBitmap = 0;

-    HDC     hDC;

-    int     depth;

-    int     x, y;

-    int     width, height;

-    MSG     msg;

-    int q = 0;

-

-	/* Determine the splash timeout value (in seconds). */

-	if (timeoutString != NULL && _tcslen( timeoutString ) > 0)

-	{

-	    _stscanf( timeoutString, _T("%d"), &timeout );

-	}

-

-    /* Load the bitmap for the feature. */

-    hDC = GetDC( NULL);

-    depth = GetDeviceCaps( hDC, BITSPIXEL ) * GetDeviceCaps( hDC, PLANES);

-    ReleaseDC(NULL, hDC);

-    if (featureImage != NULL)

-    	hBitmap = LoadImage(NULL, featureImage, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

-

-    /* If the bitmap could not be found, return an error. */

-    if (hBitmap == 0)

-    	return ERROR_FILE_NOT_FOUND;

-

-	/* Load the bitmap into the splash popup window. */

-    SendMessage( topWindow, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBitmap );

-

-	progress = CreateWindowEx (0, _T("msctls_progress32"),

-		_T(""),

-		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,

-		0,

-		0,

-		0,

-		0,

-		topWindow,

-		NULL,

-		GetModuleHandle (NULL),

-		NULL);

-	label = CreateWindowEx (0, _T("STATIC"),

-		_T(""),

-		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,

-		0,

-		0,

-		0,

-		0,

-		topWindow,

-		NULL,

-		GetModuleHandle (NULL),

-		NULL);		

- 	SendMessage (label, WM_SETFONT, (WPARAM)GetStockObject (DEFAULT_GUI_FONT), (LPARAM)1);		

-		

-    /* Centre the splash window and display it. */

-    GetWindowRect (topWindow, &rect);

-    width = GetSystemMetrics (SM_CXSCREEN);

-    height = GetSystemMetrics (SM_CYSCREEN);

-    x = (width - (rect.right - rect.left)) / 2;

-    y = (height - (rect.bottom - rect.top)) / 2;

-    SetWindowPos (topWindow, 0, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);

-    ShowWindow( topWindow, SW_SHOW );    

-    BringWindowToTop( topWindow );

-    

-    readInput();

-    SetTimer( topWindow, inputTimerId, 50, timerProc );

-

-	/* If a timeout for the splash window was given */

-	if (timeout != 0)

-	{

-		/* Add a timeout (in milliseconds) to bring down the splash screen. */

-        SetTimer( topWindow, splashTimerId, (timeout * 1000), splashTimeout );

-	}

-			

-	while (GetMessage( &msg, NULL, 0, 0 ) && q < 20)

-   	{

-		TranslateMessage( &msg );

-		DispatchMessage( &msg );

-		q++;

-	}

-

-    /* Process messages until the splash window is closed or process is terminated. */

-/*

-   	while (GetMessage( &msg, NULL, 0, 0 ))

-   	{

-		TranslateMessage( &msg );

-		DispatchMessage( &msg );

-	}

-*/

-	return 0;

-}

-

-

-/* Get the window system specific VM args */

-_TCHAR** getArgVM( _TCHAR *vm )

-{

-	return argVM;

-}

-

-

-/* Start the Java VM

- *

- * This method is called to start the Java virtual machine and to wait until it

- * terminates. The function returns the exit code from the JVM.

- */

-int startJavaVM( _TCHAR* args[] )

-{

-    MSG   msg;

-	int   index, length;

-	_TCHAR *commandLine, *ch, *space;

-

-	/*

-	* Build the command line. Any argument with spaces must be in

-	* double quotes in the command line. 

-	*/

-	length = 0;

-	for (index = 0; args[index] != NULL; index++)

-	{

-		/* String length plus space character */

-		length += _tcslen( args[ index ] ) + 1;

-		/* Quotes */

-		if (_tcschr( args[ index ], _T(' ') ) != NULL) length += 2;

-	}

-	commandLine = ch = malloc ( (length + 1) * sizeof(_TCHAR) );

-	for (index = 0; args[index] != NULL; index++)

-	{

-		space = _tcschr( args[ index ], _T(' '));

-		if (space != NULL) *ch++ = _T('\"');

-		_tcscpy( ch, args[index] );

-		ch += _tcslen( args[index] );

-		if (space != NULL) *ch++ = _T('\"');

-		*ch++ = _T(' ');

-	}

-	*ch = _T('\0');

-	

-	/*

-	* Start the Java virtual machine. Use CreateProcess() instead of spawnv()

-	* otherwise the arguments cannot be freed since spawnv() segments fault.

-	*/

-	{

-	STARTUPINFO    si;

-    PROCESS_INFORMATION  pi;

-    GetStartupInfo(&si);

-    if (CreateProcess(NULL, commandLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi)) {

-    	CloseHandle( pi.hThread );

-    	jvmProcess = (int)pi.hProcess;

-    }    

-	}

-

-	free( commandLine );

-

-	/* If the child process (JVM) would not start */

-	if (jvmProcess == -1)

-	{

-		/* Return the error number. */

-		jvmExitCode = errno;

-		jvmProcess  = 0;

-	}

-

-	/* else */

-	else

-	{

-        /* Set a timer to detect JVM process termination. */

-        SetTimer( topWindow, jvmExitTimerId, jvmExitTimeout, detectJvmExit );

-

-    	/* Process messages until the JVM terminates.

-    	   This launcher process must continue to process events until the JVM exits

-    	   or else Windows 2K will hang if the desktop properties (e.g., background) are

-    	   changed by the user. Windows does a SendMessage() to every top level window

-    	   process, which blocks the caller until the process responds. */

-   		while (jvmProcess != 0)

-   		{

-   			GetMessage( &msg, NULL, 0, 0 );

-			TranslateMessage( &msg );

-			DispatchMessage( &msg );

-		}

-

-		/* Kill the timer. */

-        KillTimer( topWindow, jvmExitTimerId );

-	}

-

-	/* Return the exit code from the JVM. */

-	return jvmExitCode;

-}

-

-/* Local functions */

-

-/* Detect JVM Process Termination */

-static void CALLBACK detectJvmExit( HWND hwnd, UINT uMsg, UINT id, DWORD dwTime )

-{

-    DWORD   exitCode;

-

-    /* If the JVM process has terminated */

-    if (!GetExitCodeProcess( (HANDLE)jvmProcess, &exitCode ) ||

-    		 exitCode != STILL_ACTIVE)

-    {

-    	/* Save the JVM exit code. This should cause the loop in startJavaVM() to exit. */

-        jvmExitCode = exitCode;

-        jvmProcess = 0;

-    }

-}

-

-/* Splash Timeout */

-static void CALLBACK splashTimeout( HWND hwnd, UINT uMsg, UINT id, DWORD dwTime )

-{

-	/* Kill the timer. */

-    KillTimer( topWindow, id );

-	PostMessage( topWindow, WM_QUIT, 0, 0 );

-}

-

-/* Window Procedure for the Spash window.

- *

- * A special WndProc is needed to return the proper vlaue for WM_NCHITTEST.

- * It must also detect the message from the splash window process.

- */

-static LRESULT WINAPI WndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

-{

-	switch (uMsg)

-	{

-		case WM_NCHITTEST: return HTCLIENT;

-		case WM_CLOSE:

-	    	PostQuitMessage(  0 );

-	    	break;

-		case WM_CTLCOLORSTATIC:

-			if ((HWND)lParam == label) {

-				SetTextColor((HDC)wParam, foreground);

-				SetBkMode((HDC)wParam, TRANSPARENT);

-				return (LRESULT)GetStockObject (NULL_BRUSH);

-			}

-			break;

-	}

-	return CallWindowProc (oldProc, hwnd, uMsg, wParam, lParam);

-}

-

-

-_TCHAR* getTempPath()

-{

-	_TCHAR* buffer = malloc(MAX_PATH*sizeof(_TCHAR));

-	_TCHAR* tmp;

-	GetTempPath(MAX_PATH,buffer);

-	tmp = _ttempnam(buffer,_T_INSTALL("_RITMP"));

-	_tcscpy(buffer,tmp);

-	_tcscat(buffer,_T_INSTALL("\\"));

-	free(tmp);

-	return buffer;

-}

diff --git a/plugins/org.eclipse.epp.installer.launcher.native/win32/make_win32.mak b/plugins/org.eclipse.epp.installer.launcher.native/win32/make_win32.mak
deleted file mode 100644
index fb8c22d..0000000
--- a/plugins/org.eclipse.epp.installer.launcher.native/win32/make_win32.mak
+++ /dev/null
@@ -1,70 +0,0 @@
-#*******************************************************************************

-

-# Makefile for creating the install launcher program.

-

-!include <ntwin32.mak>

-

-# Define the object modules to be compiled and flags.

-OBJS   = install.obj installWin.obj installShm.obj installConfig.obj ainstall.obj ainstallWin.obj ainstallShm.obj ainstallConfig.obj extract.obj aextract.obj log.obj alog.obj

-LIBS   = kernel32.lib user32.lib gdi32.lib comctl32.lib

-LFLAGS = /INCREMENTAL:NO /NOLOGO -subsystem:windows,4.0 -entry:wmainCRTStartup

-RES    = install.res

-EXEC   = install.exe

-DEBUG  = #$(cdebug)

-acflags = -I../src -DDEFAULT_OS="\"$(DEFAULT_OS)\"" \

-	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \

-	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \

-	-D_INSTALLER \

-	$(cflags)

-wcflags = -DUNICODE $(acflags)

-	

-all: $(EXEC)

-

-install.obj: ../src/installOS.h ../src/installUnicode.h ../src/install.c ../src/installShm.h

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../src/install.c

-

-installShm.obj: ../src/installShm.h ../src/installUnicode.h ../src/installShm.c

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../src/installShm.c

-

-installConfig.obj: ../src/installConfig.h ../src/installUnicode.h ../src/installConfig.c

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../src/installConfig.c

-

-installWin.obj: ../src/installOS.h ../src/installUnicode.h installWin.c

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj installWin.c

-

-ainstall.obj: ../src/installOS.h ../src/installUnicode.h ../src/install.c ../src/installShm.h

-    $(cc) $(DEBUG) $(acflags) $(cvars) /Foainstall.obj ../src/install.c

-

-ainstallShm.obj: ../src/installShm.h ../src/installUnicode.h ../src/installShm.c

-    $(cc) $(DEBUG) $(acflags) $(cvars) /FoainstallShm.obj ../src/installShm.c

-

-ainstallConfig.obj: ../src/installConfig.h ../src/installConfig.h ../src/installConfig.c

-    $(cc) $(DEBUG) $(acflags) $(cvars) /FoainstallConfig.obj ../src/installConfig.c

-    

-ainstallWin.obj: ../src/installOS.h ../src/installUnicode.h installWin.c

-    $(cc) $(DEBUG) $(acflags) $(cvars) /FoainstallWin.obj installWin.c

-

-$(EXEC): $(OBJS) $(RES)

-    $(link) $(LFLAGS) -out:$(PROGRAM_OUTPUT) $(OBJS) $(RES) $(LIBS)

-

-$(RES): install.rc

-    $(rc) -r -fo $(RES) install.rc

-

-aextract.obj: ../src/installOS.h ../src/installUnicode.h ../src/extract.c ../src/extract.h

-    $(cc) $(DEBUG) $(acflags) $(cvars) /Fo$*.obj ../src/extract.c

-

-extract.obj: ../src/installOS.h ../src/installUnicode.h ../src/extract.c ../src/extract.h

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../src/extract.c

-

-alog.obj: ../src/installOS.h ../src/installUnicode.h ../src/log.c ../src/log.h

-    $(cc) $(DEBUG) $(acflags) $(cvars) /Fo$*.obj ../src/log.c

-

-log.obj: ../src/installOS.h ../src/installUnicode.h ../src/log.c ../src/log.h

-    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../src/log.c

-

-install: all

-	copy $(EXEC) $(OUTPUT_DIR)

-	rm -f $(EXEC) $(OBJS) $(RES)

-   

-clean:

-	del $(EXEC) $(OBJS) $(RES)

diff --git a/plugins/org.eclipse.epp.installer.launcher/.classpath b/plugins/org.eclipse.epp.installer.launcher/.classpath
deleted file mode 100644
index 8030506..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/.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 combineaccessrules="false" kind="src" path="/org.eclipse.epp.installer.archive"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.launcher/.cvsignore b/plugins/org.eclipse.epp.installer.launcher/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.launcher/.project b/plugins/org.eclipse.epp.installer.launcher/.project
deleted file mode 100644
index 33e5c5d..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/.project
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.launcher</name>
-	<comment></comment>
-	<projects>
-		<project>com.instantiations.installer.archive</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.installer.launcher/build-project.xml b/plugins/org.eclipse.epp.installer.launcher/build-project.xml
deleted file mode 100644
index e87db54..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/build-project.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project default="build_all" basedir=".">
-	<import file="../com.instantiations.eclipse.shared_build/build-macros.xml" />
-
-	<!-- ================================================= 
-		Build this project as part of a bundle
-	-->
-	<target name="build_all">
-		<basename file="." property="Local-Name" />
-		<property name="Local-Temp"
-		          location="${Project-Out}/../../${Local-Name}" />
-
-		<compile_lib eclipsetarget="3.1"
-		             oldconfig="eclipse_3.1"
-		             source="src"
-		             tempSrcDir="${Local-Temp}/src"
-		             destDir="${Local-Temp}/bin" />
-		<copy todir="${Project-Out}/lib">
-			<fileset dir="${Local-Temp}/bin" />
-		</copy>
-
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Archives.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Archives.java
deleted file mode 100644
index 467e6b2..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Archives.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-import java.io.IOException;
-
-import org.eclipse.epp.installer.archive.Archive;
-import org.eclipse.epp.installer.archive.ArchiveEntry;
-import org.eclipse.epp.installer.archive.zip.DirSubArchive;
-import org.eclipse.epp.installer.archive.zip.ZipSubArchive;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class Archives {
-	public static Archive getSubArchive(Archive archive, ArchiveEntry path) throws IOException{
-		String name = path.getName();
-		if(path.isDirectory())
-			return new DirSubArchive(archive, path);
-		if(name.endsWith(".jar") || name.endsWith(".zip") )
-			return new ZipSubArchive(archive, path);
-		return null;
-	}
-	
-	public static Archive getSubArchive(Archive archive, String[] path) throws IOException{
-		for(int i=0; i<path.length; i++){
-			ArchiveEntry nextEntry = archive.getEntry(path[i]);
-			archive = getSubArchive(archive, nextEntry);
-		}
-		return archive;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/InstallManifest.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/InstallManifest.java
deleted file mode 100644
index f23ce7d..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/InstallManifest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class InstallManifest {
-	private Map mainSection;
-	private Map sections = new HashMap();
-	
-	public InstallManifest(){
-		
-	}
-	
-	public InstallManifest(InputStream is) throws IOException{
-		load(is);
-	}
-	
-	public void load(InputStream is) throws IOException{
-		BufferedReader br = new BufferedReader(new InputStreamReader(is));
-		String sectionName = null; 
-		mainSection = new HashMap();
-		String mainSectionName = readSection(br, mainSection);
-		if(mainSectionName != null){
-			// there should be no "Platform" key in main section!
-			throw new IOException("Invalid main manifest section");
-		}
-		do{
-			Map section = new HashMap();
-			sectionName = readSection(br, section);
-			if(sectionName == null && section.size() != 0) {
-				// "Platform" key not found in section
-				throw new IOException("Invalid manifest section: no key 'Platform'");
-			}else if(sectionName != null){
-				sections.put(sectionName, section);
-			}
-		}while(sectionName != null);
-	}
-
-	private String readSection(BufferedReader br, Map section) throws IOException {
-		String sectionName = null;
-		String line;
-		while((line = br.readLine()) != null){
-			if(line.equals("")){ // empty line is section delimiter
-				return sectionName;
-			}
-			
-			int delimiter = line.indexOf(":");
-			if(delimiter == -1) {
-				throw new IOException("Invalid manifest: Line is not key:value pair!");
-			}
-				
-			String name = line.substring(0, delimiter).trim();
-			String value = line.substring(delimiter+1).trim();
-			
-			if(name.equals("Platform")){
-				sectionName = value;
-			}else{
-				if(section.get(name) != null) {
-					throw new IOException("Invalid manifest: duplicated keys in section!");
-				}
-				section.put(name, value);
-			}
-		}
-		return sectionName;
-	}
-	
-	public Map getMainAttributes(){
-		return mainSection;
-	}
-	public Collection getEntries(){
-		return sections.entrySet();
-	}
-	public Map getAttributes(String name){
-		return (Map) sections.get(name);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Main.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Main.java
deleted file mode 100644
index 3c58106..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Main.java
+++ /dev/null
@@ -1,332 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.eclipse.epp.installer.archive.Archive;
-import org.eclipse.epp.installer.archive.ArchiveEntry;
-import org.eclipse.epp.installer.archive.zip.ZipArchive;
-import org.eclipse.epp.installer.archive.zip.ZipUtil;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class Main {
-
-	private static final String VERBOSE_ARGUMENT = "--verbose";
-	private static final String TMP_ARGUMENT = "-tmp";
-
-	public static boolean VERBOSE = false;
-	
-	private final static String INSTALER_PROPERTY_PREFIX = "installer.";
-
-	public final static String INSTALLER_JAR_PROPERTY = INSTALER_PROPERTY_PREFIX
-			+ "jar.path";
-
-	private final static String INSTALLER_MF = "META-INF/INSTALLER.MF";
-
-	private final static String JAR_URL_PREFIX = "jar:file:";
-	private final static String DLL_EXTENSION = ".dll";
-	private final static String SO_EXTENSION = ".so";
-
-	private final static String CLASSPATH_ENTRY = "Classpath-Entry";
-	private final static String NATIVE_LIBRARIES = "Native-Libraries";
-	private final static String MAIN_CLASS = "Main-Class";
-
-	private ZipArchive self;
-	private SFXClassLoader classLoader;
-	private String mainClassName;
-
-	public Main() throws MalformedURLException {
-		classLoader = new SFXClassLoader();		
-	}
-
-	private String getSelfPath() {
-		String classFile = getClass().getName().replace('.', '/') + ".class";
-		URL url = ClassLoader
-				.getSystemResource(classFile);
-		String urlString = "";
-		try {
-			urlString = URLDecoder.decode(url.toExternalForm(), "UTF8");
-		}
-		// TODO [author=Dan] try older URLDecoder method for JDK 1.3
-		catch (NoSuchMethodError e) {
-			urlString = URLDecoder.decode(url.toExternalForm());
-			if (urlString == null) {
-				e.printStackTrace();
-				throw e;
-			}
-		}
-		catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-		}
-		if (!urlString.startsWith(JAR_URL_PREFIX))
-			//for debug purposes
-			//please set -jar option to use
-			return "/"+System.getProperty("installer.jar");
-		int i = urlString.indexOf("!/");
-		if (i < 0)
-			return null;
-		return urlString.substring(JAR_URL_PREFIX.length(), i);
-	}
-
-	private void processClasspathEntry(String value) {
-		classLoader.addClassPath(self, value);
-	}
-
-	private boolean isNativeLibrary(ArchiveEntry e) {
-		if (e.isDirectory())
-			return false;
-		String name = e.getName();
-		if (Platform.OS_WIN32.equals(Platform.getOS()))
-			return name.toLowerCase().endsWith(DLL_EXTENSION);
-		else
-			return name.toLowerCase().endsWith(SO_EXTENSION);
-	}
-
-	private void processLibrary(Archive subArchive, ArchiveEntry e) throws IOException {		
-		String libname = ZipUtil.discardPath(e);
-		if( VERBOSE ) {
-			System.out.println("processLibrary:" + libname );
-		}
-		int i = libname.indexOf('.');
-		String libExt = libname.substring(i+1);
-		File tmpDir ;
-		if(System.getProperty("installer.tmp")==null)
-			tmpDir = new File(System.getProperty("java.io.tmpdir"));
-		else tmpDir  = new File(System.getProperty("installer.tmp"));
-		if( VERBOSE ) {
-			System.out.println("Library temp path: "+tmpDir.getAbsolutePath());
-		}
-		
-		File library = File.createTempFile("installer-", "." + libExt,tmpDir);
-		ZipUtil.extractFile(subArchive.getInputStream(e), library);
-		classLoader.mapLibrary(libname.substring(0, i), library.getAbsolutePath());
-		
-		if( VERBOSE ) {
-			System.out.println("processLibrary: mapLibrary: " + libname.substring(0, i) + " to 	" + library.getAbsolutePath() +  " is exist " +library.exists());
-		}
-		library.deleteOnExit();
-	}
-
-	private void processNativeLibraries(String value) {
-		Archive subArchive;
-		try {
-			subArchive = Archives.getSubArchive(self, value.split("!"));
-			Iterator entries = subArchive.entries().iterator();
-			while(entries.hasNext()) {
-				ArchiveEntry entry = (ArchiveEntry) entries.next();
-				if (isNativeLibrary(entry)) {
-					processLibrary(subArchive, entry);
-				}
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private void processAttribute(String key, String value) {
-		if (CLASSPATH_ENTRY.equals(key)) {
-			StringTokenizer tz = new StringTokenizer(value, ":");
-			while(tz.hasMoreTokens()) processClasspathEntry(tz.nextToken());
-		} else if (NATIVE_LIBRARIES.equals(key)) {
-			StringTokenizer tz = new StringTokenizer(value, ":");
-			while(tz.hasMoreTokens()) processNativeLibraries(tz.nextToken());
-		} else if (MAIN_CLASS.equals(key))
-			mainClassName = value;
-		else{
-			System.out.println("Unknown INSTALLER.MF attribute: " + key + " : " + value);
-		}
-	}
-
-	public static String getCurrentPlatform() {
-		return Platform.getOS() + ";" + Platform.getArch();
-	}
-	
-	public void launch(String[] args) throws IOException {
-		String selfPath = getSelfPath();
-		if (selfPath != null) {
-			if(VERBOSE) {
-				System.out.println("SFX path: " + selfPath);
-			}
-			System.setProperty(INSTALLER_JAR_PROPERTY, selfPath);
-			launch(selfPath, args);
-		}
-	}
-
-	public InstallManifest getInstallManifest() throws IOException{
-		ArchiveEntry entry = self.getEntry(INSTALLER_MF);
-		if(entry != null) {
-			return new InstallManifest(self.getInputStream(entry));
-		}
-		return null;
-	}
-
-	public void processSection(Map section){
-		Iterator i = section.entrySet().iterator();
-		while (i.hasNext()) {
-			Map.Entry entry = (Map.Entry) i.next();
-			String key = (String) entry.getKey();
-			String value = (String) entry.getValue();
-			processAttribute(key, value);
-		}
-	}
-	
-	public void launch(String jarPath, String[] args) throws IOException {
-		self = new ZipArchive(new File(jarPath));
-		InstallManifest manifest = getInstallManifest();
-		Map attrs = manifest.getMainAttributes();
-		processSection(attrs);
-		Map specialAttrs = manifest.getAttributes(getCurrentPlatform());
-		if (specialAttrs != null)
-			processSection(specialAttrs);
-		else
-			System.err.println("warning: No platform-specific attributes present");
-		
-		if (mainClassName != null)
-			launchInstaller(args);
-		else
-			System.err.println("warning: Main-Class not specified");
-	}
-	
-	private void launchInstaller(String[] args) {
-		try {
-			Class mainClass = classLoader.loadClass(mainClassName);
-			Method main = mainClass.getMethod("main", new Class[] {String[].class});
-			main.invoke(null, new Object[] { args });
-		} catch(ClassNotFoundException cnfe) {
-			cnfe.printStackTrace();
-		} catch(NoSuchMethodException nsme) {
-			nsme.printStackTrace();
-		} catch(IllegalAccessException iae) {
-			iae.printStackTrace();
-		} catch(InvocationTargetException ite) {
-			ite.printStackTrace();
-		}
-		
-	}
-	
-	private static void printInfo() {
-		System.out.println("System properties:");
-		Properties prop = System.getProperties();
-		prop.list(System.out);
-	}
-	
-	private static void printArgs(String args[]) {
-		System.out.println("-----------Listing Arguments-----------");
-		for (int i = 0; i < args.length; i++) {
-				System.out.println(args[i]);
-		}
-		
-	}
-
-	private static void setOption(String option, String value) {
-		if (option.equalsIgnoreCase(INSTALER_PROPERTY_PREFIX + "out")) {
-			try {
-				PrintStream fileStream = new PrintStream(new FileOutputStream(value));
-				TwinOutputStream tosOut = new TwinOutputStream(fileStream, System.out);
-				TwinOutputStream tosErr = new TwinOutputStream(fileStream, System.err);
-				System.setOut(new PrintStream(tosOut));
-				System.setErr(new PrintStream(tosErr));
-			} catch (FileNotFoundException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		} else {
-			System.setProperty(option, value);
-		}
-	}
-
-	/**
-	 * Check for Java 1.4 or better
-	 */
-	private static void assertValidJavaVM_and_Runtime() {
-		assertVersion("java.vm.version");
-		assertVersion("java.runtime.version");
-	}
-
-	private static void assertVersion(String key) {
-		String version = System.getProperty(key);
-		int dot1 = version.indexOf('.');
-		if (dot1 == -1)
-			return;
-		int major;
-		try {
-			major = Integer.parseInt(version.substring(0, dot1));
-		}
-		catch (NumberFormatException e) {
-			return;
-		}
-		int dot2 = version.indexOf('.', dot1 + 1);
-		if (dot2 == -1)
-			return;
-		int minor;
-		try {
-			minor = Integer.parseInt(version.substring(dot1 + 1, dot2));
-		}
-		catch (NumberFormatException e) {
-			return;
-		}
-		if (major > 1 || (major == 1 && minor >= 4))
-			return;
-		System.out.println("**************************************************");
-		System.out.println("Expected " + key + " version 1.4 or better, but found " + major + "." + minor);
-		System.out.println("Please use the -vm command line option to specify a different JVM.");
-		System.out.println("For example:  -vm C:\\Programs\\jdk1.5.0_05\\jre\\bin\\java.exe");
-		System.exit(7);
-	}
-
-	public static void main(String[] args) {
-		int i = 0;
-		while(i<args.length) {
-			if(args[i].charAt(0) != '-') {
-				i++;
-				continue; //it's not option, skipped
-			}
-			String option = INSTALER_PROPERTY_PREFIX + args[i].substring(1);			
-			String value = "";
-
-			if (args[i].equalsIgnoreCase(VERBOSE_ARGUMENT)) {
-				VERBOSE = true;
-			}
-			
-			if(++i < args.length)
-				value = args[i];
-			if(value.length() == 0 || value.charAt(0) == '-') {
-				//empty option
-				System.setProperty(option, "");
-			} else {
-				setOption(option, value);
-				++i;
-			}
-		}
-		if (VERBOSE) {
-			printInfo();
-			printArgs(args);
-		}
-		assertValidJavaVM_and_Runtime();
-		try {
-			new Main().launch(args);
-		} catch(Throwable t) {
-			System.err.println("exception while launching SFX archive: ");
-			t.printStackTrace(System.err);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Platform.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Platform.java
deleted file mode 100644
index b021f85..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/Platform.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class Platform {
-	
-	private static final String PROP_OS = "os.name";
-	private static final String PROP_ARCH = "os.arch";
-
-	public static final String ARCH_PPC = "ppc";
-	public static final String ARCH_X86 = "x86";
-	public static final String ARCH_X86_64 = "x86_64";
-
-	public static final String OS_WIN32 = "win32";
-	public static final String OS_LINUX = "linux";
-	public static final String OS_MACOSX = "macosx";
-	public static final String OS_UNKNOWN = "unknown";
-
-	public static String getOS() {
-		String name = System.getProperty(PROP_OS);
-		if(name.startsWith("Windows")) {
-			return OS_WIN32;
-		}
-		else if( name.startsWith("Linux")) {
-			return OS_LINUX;
-		}
-		return OS_UNKNOWN;
-	}
-	
-	public static String getArch() {
-		String arch = System.getProperty(PROP_ARCH);
-		if( arch.equals("amd64")) {
-			return ARCH_X86_64;
-		}
-		else if( arch.equals("i386") || arch.equals("i486") || arch.equals("i586") || arch.equals("i686") ) {
-			return ARCH_X86;
-		}
-		return arch;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/SFXClassLoader.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/SFXClassLoader.java
deleted file mode 100644
index 5c30e04..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/SFXClassLoader.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.epp.installer.archive.Archive;
-import org.eclipse.epp.installer.archive.ArchiveEntry;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class SFXClassLoader extends ClassLoader {
-	private final static int BUFFER_SIZE = 4096;
-	
-	private Map libraryMap;
-	private List classPath;
-
-	public SFXClassLoader() {
-		libraryMap = new HashMap();
-		classPath = new ArrayList();
-	}
-
-	protected String findLibrary(String libname) {		
-		String path = (String)libraryMap.get(libname);	
-		if(path != null) {			
-			return path;
-		}
-		else {			
-			return super.findLibrary(libname);
-		}
-	}
-	
-	void addClassPath(Archive archive, String entry) {
-		try {
-			classPath.add(Archives.getSubArchive(archive, entry.split("!")));
-		} catch (IOException e) {
-			e.printStackTrace();
-		} 
-	}
-
-	void mapLibrary(String libraryName, String path) {
-		if(libraryMap.get(libraryName) != null) {
-			System.err.println("warning: library already mapped, check INSTALLER.MF");
-		}
-		libraryMap.put(libraryName, path);
-	}
-
-	public InputStream getResourceAsStream(String name) {
-		for(int i=0;i<classPath.size();i++) {
-			Archive archive = (Archive) classPath.get(i);
-			InputStream is = null;
-			try {
-				ArchiveEntry entry = archive.getEntry(name);
-				if(entry != null) {
-					is = archive.getInputStream(entry);
-					return is;
-				}
-			} catch(IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return super.getResourceAsStream(name);
-	}
-
-	protected Class findClass(String name) throws ClassNotFoundException {		
-		for( int i = classPath.size() - 1; i >= 0; i-- ) {
-			Archive archive = (Archive)classPath.get(i);
-			String path = name.replace('.', '/') + ".class";
-			InputStream is = null;
-			try {
-				ArchiveEntry entry = archive.getEntry(path);
-				if(entry == null) continue;
-				is = archive.getInputStream(entry);
-				ByteArrayOutputStream bos = new ByteArrayOutputStream();
-				byte[] buf = new byte[BUFFER_SIZE];
-				int n;
-				while ((n = is.read(buf)) != -1) {
-					bos.write(buf, 0, n);
-				}
-				byte[] clazz = bos.toByteArray(); 
-				return defineClass(name, clazz, 0, clazz.length); 
-			} catch(IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return super.findClass(name);
-	}
-
-	protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
-        // First, check if the class has already been loaded
-        Class c = findLoadedClass(name);
-
-        // if not loaded, search the local (child) resources
-        if (c == null) {
-           try {
-              c = findClass(name);
-           } catch(ClassNotFoundException cnfe) {
-              // ignore
-           }
-        }
-
-        // delegate to parent
-        if (c == null) {
-           if (getParent() != null) {
-              c = getParent().loadClass(name);
-           } else {
-              c = getSystemClassLoader().loadClass(name);
-           }
-        }
-
-        // Resolve the class, if required
-        if (resolve) {
-           resolveClass(c);
-        }
-
-        return c;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/TwinOutputStream.java b/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/TwinOutputStream.java
deleted file mode 100644
index 7196ed8..0000000
--- a/plugins/org.eclipse.epp.installer.launcher/src/org/eclipse/epp/installer/launcher/TwinOutputStream.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.eclipse.epp.installer.launcher;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-
-public class TwinOutputStream extends OutputStream {
-
-	private PrintStream out1, out2;
-	
-	public TwinOutputStream(PrintStream out1, PrintStream out2) {
-		this.out1 = out1;
-		this.out2 = out2;
-	}
-	
-	public void write(int b) throws IOException {
-		out1.write(b);
-		out2.write(b);
-	}
-
-	public void close() throws IOException {
-		out1.close();
-		out2.close();
-	}
-
-	public void flush() throws IOException {
-		out1.flush();
-		out2.flush();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.tools/.classpath b/plugins/org.eclipse.epp.installer.tools/.classpath
deleted file mode 100644
index fb50116..0000000
--- a/plugins/org.eclipse.epp.installer.tools/.classpath
+++ /dev/null
@@ -1,6 +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="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.tools/.cvsignore b/plugins/org.eclipse.epp.installer.tools/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.tools/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.tools/.project b/plugins/org.eclipse.epp.installer.tools/.project
deleted file mode 100644
index c5f08ec..0000000
--- a/plugins/org.eclipse.epp.installer.tools/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.tools</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.installer.tools/build-project.xml b/plugins/org.eclipse.epp.installer.tools/build-project.xml
deleted file mode 100644
index a154035..0000000
--- a/plugins/org.eclipse.epp.installer.tools/build-project.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project default="build_all" basedir=".">
-	<import file="../com.instantiations.eclipse.shared_build/build-macros.xml" />
-
-	<!-- ================================================= 
-		Build this project as part of a bundle
-	-->
-	<target name="build_all">
-		<basename file="." property="Local-Name" />
-		<property name="Local-Temp"
-		          location="${Project-Out}/../../${Local-Name}" />
-
-		<compile_lib eclipsetarget="3.1"
-		             oldconfig="eclipse_3.1"
-		             source="src"
-		             tempSrcDir="${Local-Temp}/src"
-		             destDir="${Local-Temp}/bin" />
-
-		<jar_lib eclipsetarget="3.1"
-		         sourceDir="${Local-Temp}/bin"
-		         dest="installerTools.jar" />
-		
-		<mkdir dir="${Project-Out}/template"/>
-		<copy todir="${Project-Out}/template">
-			<fileset dir="./template" />
-		</copy>
-
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.tools/src/org/eclipse/epp/installer/tools/packager/NativePackager.java b/plugins/org.eclipse.epp.installer.tools/src/org/eclipse/epp/installer/tools/packager/NativePackager.java
deleted file mode 100644
index fc5cc01..0000000
--- a/plugins/org.eclipse.epp.installer.tools/src/org/eclipse/epp/installer/tools/packager/NativePackager.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Created on 28.11.2005
- */
-package org.eclipse.epp.installer.tools.packager;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/*
- * Self-Extracting File Structure
- * 
- * |---------------------------|
- * |   Executable Extractor    |
- * |                           |
- * |---------------------------|
- * |       Files Data          |
- * |                           |
- * |---------------------------|
- * |       SFX Header          |
- * |                           |
- * |---------------------------|
- * |     Table Of Contents     |
- * |           (TOC)           |
- * |---------------------------|
- * |       SFX Footer          |
- * |                           |
- * |---------------------------|
- * 
- * 
- *  SFX Header:
- *  12 bytes - SFX signature ( including format version )
- *  4 bytes - number of files
- *  
- *  TOC Entry:
- *  4 bytes - file data offset
- *  4 bytes - file data size
- *  4 bytes - file flags
- *  4 bytes - filename length (N)
- *  N bytes - filename
- *
- *  SFX Footer:
- *  4 bytes - SFX header offset
- *  4 bytes - 32-bit complementary checksum
- */
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- *
- * @author Max Stepanov (max@xored.com)
- */
-public class NativePackager {
-
-	public static final String FORMAT_VERSION = "0.1";
-	private static final String SIGNATURE = "!SFX.PKG-";
-	
-	private static final int FLAGS_EXTRACT = 0x0001;
-
-		private class Entry {
-		File file;
-		String name;
-		int size;
-		int offset;
-		int flags;
-
-		public Entry( File file) {
-			this(file,0);
-		}
-
-		public Entry( File file, int flags ) {
-			this(file,file.getName(),flags);
-		}
-		
-		public Entry( File file, String name, int flags ) {
-			this.file = file;
-			this.name = name;
-			this.flags = flags;
-		}
-	}
-	
-	private class ChecksumOutputStream extends FilterOutputStream {
-		private int checksum = 0;
-		private int index = 0;
-		public ChecksumOutputStream(OutputStream out) {
-			super(out);
-		}
-		public void write(byte[] b, int off, int len) throws IOException {
-			super.write(b, off, len);
-			calc(b, off, len);
-		}
-		private void calc(byte[] b, int off, int len) {
-			while( index != 0 && len > 0 ) {
-				calc(b[off++]);
-				--len;
-			}
-			for( ; len >= 4 ; len-=4 ) {
-				checksum += ((int)b[off++]) << 24;
-				checksum += (((int)b[off++]) << 16) & 0xFF0000;
-				checksum += (((int)b[off++]) << 8) & 0xFF00;
-				checksum += ((int)b[off++]) & 0xFF;
-			}
-			while( len > 0 ) {
-				calc(b[off++]);
-				--len;
-			}
-		}
-		private void calc(byte b) {
-			switch ( index ) {
-			case 0:
-				checksum += ((int)b) << 24;
-				index = 1;
-				break;
-			case 1:
-				checksum += (((int)b) << 16) & 0xFF0000;
-				index = 2;
-				break;
-			case 2:
-				checksum += (((int)b) << 8) & 0xFF00;
-				index = 3;
-				break;
-			case 3:
-				checksum += ((int)b) & 0xFF;
-				index = 0;
-				break;
-			}
-		}
-		public int getChecksum() {
-			return checksum;
-		}
-		public int getIndex() {
-			return index;
-		}
-	}
-	
-	private ArrayList entries = new ArrayList();
-	
-	public NativePackager( File container ) {
-		/* entry 0 is a fake entry for container */
-		entries.add( new Entry(container));
-	}
-	
-	public void addFile( File file ) {
-		if ( file == null )
-			throw new IllegalArgumentException();
-		entries.add( new Entry(file));
-	}
-
-	public void addFile( File file, boolean extract ) {
-		if ( file == null )
-			throw new IllegalArgumentException();
-		entries.add( new Entry(file,extract ? FLAGS_EXTRACT : 0));
-	}
-
-	public void build( File dest ) throws IOException {
-		if ( dest == null )
-			throw new IllegalArgumentException();
-		if ( dest.exists() )
-			dest.delete();
-		ChecksumOutputStream out = new ChecksumOutputStream(new BufferedOutputStream( new FileOutputStream(dest)));
-		
-		/* write data */
-		int n;
-		int offset = 0;
-		byte[] buffer = new byte[1024];		
-		for( Iterator i = entries.iterator(); i.hasNext(); ) {
-			Entry entry = (Entry) i.next();
-			InputStream in = new FileInputStream(entry.file);
-			entry.offset = offset;
-			while( (n = in.read(buffer)) > 0 ) {
-				out.write(buffer,0,n);
-				offset += n;
-			}
-			entry.size = offset - entry.offset;
-			in.close();
-		}
-		
-		/* remove fake entry 0 */
-		entries.remove(0);
-				
-		/* write SFX Header */
-		out.write((SIGNATURE+FORMAT_VERSION).getBytes());
-		out.write(toArray32(entries.size()));
-
-		/* write TOC */
-		for( Iterator i = entries.iterator(); i.hasNext(); ) {
-			Entry entry = (Entry) i.next();
-			out.write(toArray32(entry.offset));
-			out.write(toArray32(entry.size));
-			out.write(toArray32(entry.flags));
-			byte[] filename = entry.name.getBytes();
-			out.write(toArray32(filename.length));
-			out.write(filename);
-		}
-
-		/* align to 4 bytes */
-		if ( out.getIndex() != 0 )
-			out.write( new byte[4-out.getIndex()]);
-		
-		/* write SFX Footer */
-		out.write(toArray32(offset));
-		out.write(toArray32(-1-out.getChecksum()));
-		out.close();
-	}
-	
-	private static byte[] toArray32(int value) {
-		byte[] data = new byte[4];
-		data[0] = (byte)( value >>> 24 );
-		data[1] = (byte)( value >>> 16 );
-		data[2] = (byte)( value >>> 8 );
-		data[3] = (byte)( value );
-		return data;
-	}
-	
-	public static void main( String args[] ) {
-		if ( args.length < 3 ) {
-			System.out.println("Usage:\nNativePackager dest src [-x]file1 [-x]file2 ...");
-			return;
-		}
-		NativePackager p = new NativePackager( new File(args[1]) );
-		for( int i = 2; i < args.length; ++i ) {
-			String file = args[i];
-			if ( file.startsWith("-x") ) {
-				p.addFile( new File(file.substring(2)), true );				
-			} else {
-				p.addFile( new File(file) );
-			}
-		}
-		try {
-			p.build( new File(args[0]) );
-			System.out.println("Packaging complete.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			// Exit with non-zero status so that the build will fail
-			System.exit(1);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.tools/template/linux/x86/install b/plugins/org.eclipse.epp.installer.tools/template/linux/x86/install
deleted file mode 100644
index 12c4f89..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/linux/x86/install
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Info.plist b/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Info.plist
deleted file mode 100644
index c83457a..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Info.plist
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

-<plist version="1.0">

-

-<dict>

-	<key>CFBundleExecutable</key>

-		<string>rcpinstaller</string>

-	<key>CFBundleGetInfoString</key>

-		<string>RCP Installer for Mac OS X, Copyright Instantiations 2006. All rights reserved.</string>

-	<key>CFBundleIconFile</key>

-		<string>package.icns</string>

-	<key>CFBundleIdentifier</key>

-		<string>com.instantiations.installer.launcher</string>

-	<key>CFBundleInfoDictionaryVersion</key>

-		<string>6.0</string>

-	<key>CFBundleName</key>

-		<string>RCPInstaller</string>

-	<key>CFBundlePackageType</key>

-		<string>APPL</string>

-	<key>CFBundleShortVersionString</key>

-		<string>1.1</string>

-	<key>CFBundleSignature</key>

-		<string>????</string>

-	<key>CFBundleVersion</key>

-		<string>1.1</string>

-		

-	<key>LSUIElement</key><string>1</string>

-		

-	<key>RCPInstall</key>

-		<array>

-			<!--string>-log</string-->

-		</array>

-</dict>

-

-</plist>

diff --git a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/MacOS/rcpinstaller b/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/MacOS/rcpinstaller
deleted file mode 100644
index b973433..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/MacOS/rcpinstaller
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/PkgInfo b/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/PkgInfo
deleted file mode 100644
index bd04210..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-APPL????
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Resources/package.icns b/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Resources/package.icns
deleted file mode 100644
index 3ff1d35..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/macosx/ppc/RCPInstaller.app/Contents/Resources/package.icns
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.tools/template/win32/x86/install.exe b/plugins/org.eclipse.epp.installer.tools/template/win32/x86/install.exe
deleted file mode 100644
index 97d0843..0000000
--- a/plugins/org.eclipse.epp.installer.tools/template/win32/x86/install.exe
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.ui/.classpath b/plugins/org.eclipse.epp.installer.ui/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.installer.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.installer.ui/.cvsignore b/plugins/org.eclipse.epp.installer.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.installer.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.installer.ui/.project b/plugins/org.eclipse.epp.installer.ui/.project
deleted file mode 100644
index 589ba8c..0000000
--- a/plugins/org.eclipse.epp.installer.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer.ui</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/plugins/org.eclipse.epp.installer.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.installer.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 3a8690d..0000000
--- a/plugins/org.eclipse.epp.installer.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.epp.installer.ui;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.swt,
- org.eclipse.jface,
- org.eclipse.core.runtime,
- org.eclipse.epp.installer.core
diff --git a/plugins/org.eclipse.epp.installer.ui/build.properties b/plugins/org.eclipse.epp.installer.ui/build.properties
deleted file mode 100644
index e9863e2..0000000
--- a/plugins/org.eclipse.epp.installer.ui/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml
diff --git a/plugins/org.eclipse.epp.installer.ui/plugin.xml b/plugins/org.eclipse.epp.installer.ui/plugin.xml
deleted file mode 100644
index 5207ca8..0000000
--- a/plugins/org.eclipse.epp.installer.ui/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.epp.installer.core.installer">
-      <installer
-            class="org.eclipse.epp.installer.internal.ui.WizardInstaller"
-            environmentId="swt"> 
-      </installer>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallWizard.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallWizard.java
deleted file mode 100644
index 8b9118b..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallWizard.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.epp.installer.internal.ui;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.widgets.Display;
-
-class InstallWizard extends Wizard
-{
-	private WizardInstaller installer;
-	
-	final private static String CANCEL_INSTALL_MESSAGE_STRING = "Do you really want to cancel installation?";
-
-	final private static String CANCEL_UNINSTALL_MESSAGE_STRING = "Do you really want to cancel uninstallation?";
-	
-	InstallWizard(WizardInstaller installer) {
-		this.installer = installer;
-	}
-	
-	public WizardInstaller getInstaller() {
-		return installer;
-	}
-
-	public boolean performFinish() {
-		return true;
-	}
-
-	public boolean performCancel() {
-		boolean isUninstall = installer.getOptions().isUninstall();
-		
-		return MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), installer.getTitle(),
-					isUninstall ? CANCEL_UNINSTALL_MESSAGE_STRING : CANCEL_INSTALL_MESSAGE_STRING);
-	}
-
-	public boolean canFinish() {
-		return getContainer().getCurrentPage().getNextPage() == null;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallerWizardDialog.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallerWizardDialog.java
deleted file mode 100644
index 0da3091..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/InstallerWizardDialog.java
+++ /dev/null
@@ -1,1430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.epp.installer.internal.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ControlEnableState;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardContainer2;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.ProgressMonitorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog to show a wizard to the end user.
- * <p>
- * In typical usage, the client instantiates this class with a particular
- * wizard. The dialog serves as the wizard container and orchestrates the
- * presentation of its pages.
- * <p>
- * The standard layout is roughly as follows: it has an area at the top
- * containing both the wizard's title, description, and image; the actual wizard
- * page appears in the middle; below that is a progress indicator (which is made
- * visible if needed); and at the bottom of the page is message line and a
- * button bar containing Help, Next, Back, Finish, and Cancel buttons (or some
- * subset).
- * </p>
- * <p>
- * Clients may subclass <code>WizardDialog</code>, although this is rarely
- * required.
- * </p>
- */
-public class InstallerWizardDialog extends TitleAreaDialog implements
-		IWizardContainer2, IPageChangeProvider {
-	/**
-	 * Image registry key for error message image (value
-	 * <code>"dialog_title_error_image"</code>).
-	 */
-	public static final String WIZ_IMG_ERROR = "dialog_title_error_image"; //$NON-NLS-1$
-
-	// The wizard the dialog is currently showing.
-	private IWizard wizard;
-
-	// Wizards to dispose
-	private ArrayList createdWizards = new ArrayList();
-
-	// Current nested wizards
-	private ArrayList nestedWizards = new ArrayList();
-
-	// The currently displayed page.
-	private IWizardPage currentPage = null;
-
-	// The number of long running operation executed from the dialog.
-	private long activeRunningOperations = 0;
-
-	// The current page message and description
-	private String pageMessage;
-
-	private int pageMessageType = IMessageProvider.NONE;
-
-	private String pageDescription;
-
-	// The progress monitor
-	private ProgressMonitorPart progressMonitorPart;
-
-	private Cursor waitCursor;
-
-	private Cursor arrowCursor;
-
-	private MessageDialog windowClosingDialog;
-
-	// Navigation buttons
-	private Button backButton;
-
-	private Button nextButton;
-
-	private Button finishButton;
-
-	private Button cancelButton;
-
-	private Button helpButton;
-
-	private Label logoLabel;
-
-	private Image logoImage;
-
-	private SelectionAdapter cancelListener;
-
-	private boolean isMovingToPreviousPage = false;
-
-	private Composite pageContainer;
-
-	private PageContainerFillLayout pageContainerLayout = new PageContainerFillLayout(
-			5, 5, 300, 225);
-
-	private int pageWidth = SWT.DEFAULT;
-
-	private int pageHeight = SWT.DEFAULT;
-
-	private static final String FOCUS_CONTROL = "focusControl"; //$NON-NLS-1$
-
-	private boolean lockedUI = false;
-
-	private ListenerList pageChangedListeners = new ListenerList(3);
-
-	private Listener progressMonitorListener = new Listener() {
-		public void handleEvent(Event e) {
-			if (progressMonitorPart != null) {
-				progressMonitorPart.setCanceled(true);
-			}
-		}
-	};
-
-	/**
-	 * A layout for a container which includes several pages, like a notebook,
-	 * wizard, or preference dialog. The size computed by this layout is the
-	 * maximum width and height of all pages currently inserted into the
-	 * container.
-	 */
-	protected class PageContainerFillLayout extends Layout {
-		/**
-		 * The margin width; <code>5</code> pixels by default.
-		 */
-		public int marginWidth = 5;
-
-		/**
-		 * The margin height; <code>5</code> pixels by default.
-		 */
-		public int marginHeight = 5;
-
-		/**
-		 * The minimum width; <code>0</code> pixels by default.
-		 */
-		public int minimumWidth = 0;
-
-		/**
-		 * The minimum height; <code>0</code> pixels by default.
-		 */
-		public int minimumHeight = 0;
-
-		/**
-		 * Creates new layout object.
-		 * 
-		 * @param mw
-		 *            the margin width
-		 * @param mh
-		 *            the margin height
-		 * @param minW
-		 *            the minimum width
-		 * @param minH
-		 *            the minimum height
-		 */
-		public PageContainerFillLayout(int mw, int mh, int minW, int minH) {
-			marginWidth = mw;
-			marginHeight = mh;
-			minimumWidth = minW;
-			minimumHeight = minH;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Layout.
-		 */
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean force) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-				return new Point(wHint, hHint);
-			Point result = null;
-			Control[] children = composite.getChildren();
-			if (children.length > 0) {
-				result = new Point(0, 0);
-				for (int i = 0; i < children.length; i++) {
-					Point cp = children[i].computeSize(wHint, hHint, force);
-					result.x = Math.max(result.x, cp.x);
-					result.y = Math.max(result.y, cp.y);
-				}
-				result.x = result.x + 2 * marginWidth;
-				result.y = result.y + 2 * marginHeight;
-			} else {
-				Rectangle rect = composite.getClientArea();
-				result = new Point(rect.width, rect.height);
-			}
-			result.x = Math.max(result.x, minimumWidth);
-			result.y = Math.max(result.y, minimumHeight);
-			if (wHint != SWT.DEFAULT)
-				result.x = wHint;
-			if (hHint != SWT.DEFAULT)
-				result.y = hHint;
-			return result;
-		}
-
-		/**
-		 * Returns the client area for the given composite according to this
-		 * layout.
-		 * 
-		 * @param c
-		 *            the composite
-		 * @return the client area rectangle
-		 */
-		public Rectangle getClientArea(Composite c) {
-			Rectangle rect = c.getClientArea();
-			rect.x = rect.x + marginWidth;
-			rect.y = rect.y + marginHeight;
-			rect.width = rect.width - 2 * marginWidth;
-			rect.height = rect.height - 2 * marginHeight;
-			return rect;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Layout.
-		 */
-		public void layout(Composite composite, boolean force) {
-			Rectangle rect = getClientArea(composite);
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				children[i].setBounds(rect);
-			}
-		}
-
-		/**
-		 * Lays outs the page according to this layout.
-		 * 
-		 * @param w
-		 *            the control
-		 */
-		public void layoutPage(Control w) {
-			w.setBounds(getClientArea(w.getParent()));
-		}
-
-		/**
-		 * Sets the location of the page so that its origin is in the upper left
-		 * corner.
-		 * 
-		 * @param w
-		 *            the control
-		 */
-		public void setPageLocation(Control w) {
-			w.setLocation(marginWidth, marginHeight);
-		}
-	}
-
-	/**
-	 * Creates a new wizard dialog for the given wizard.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param newWizard
-	 *            the wizard this dialog is working on
-	 */
-	public InstallerWizardDialog(Shell parentShell, IWizard newWizard) {
-		super(parentShell);
-		setShellStyle(SWT.CLOSE | SWT.TITLE | SWT.BORDER
-				| SWT.APPLICATION_MODAL | SWT.RESIZE | getDefaultOrientation());
-		setWizard(newWizard);
-		// since VAJava can't initialize an instance var with an anonymous
-		// class outside a constructor we do it here:
-		cancelListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				cancelPressed();
-			}
-		};		
-		setBlockOnOpen(false);
-	}
-
-	/**
-	 * About to start a long running operation triggered through the wizard.
-	 * Shows the progress monitor and disables the wizard's buttons and
-	 * controls.
-	 * 
-	 * @param enableCancelButton
-	 *            <code>true</code> if the Cancel button should be enabled,
-	 *            and <code>false</code> if it should be disabled
-	 * @return the saved UI state
-	 */
-	private Object aboutToStart(boolean enableCancelButton) {
-		Map savedState = null;
-		if (getShell() != null) {
-			// Save focus control
-			Control focusControl = getShell().getDisplay().getFocusControl();
-			if (focusControl != null && focusControl.getShell() != getShell())
-				focusControl = null;
-			boolean needsProgressMonitor = wizard.needsProgressMonitor();
-			cancelButton.removeSelectionListener(cancelListener);
-			// Set the busy cursor to all shells.
-			Display d = getShell().getDisplay();
-			waitCursor = new Cursor(d, SWT.CURSOR_WAIT);
-			setDisplayCursor(waitCursor);
-			// Set the arrow cursor to the cancel component.
-			arrowCursor = new Cursor(d, SWT.CURSOR_ARROW);
-			cancelButton.setCursor(arrowCursor);
-			// Deactivate shell
-			savedState = saveUIState(needsProgressMonitor && enableCancelButton);
-			if (focusControl != null)
-				savedState.put(FOCUS_CONTROL, focusControl);
-			// Attach the progress monitor part to the cancel button
-			if (needsProgressMonitor) {
-				// progressMonitorPart.attachToCancelComponent(cancelButton);
-
-				cancelButton
-						.addListener(SWT.Selection, progressMonitorListener);
-				progressMonitorPart.setVisible(true);
-			}
-		}
-		return savedState;
-	}
-
-	/**
-	 * The Back button has been pressed.
-	 */
-	protected void backPressed() {
-		IWizardPage page = currentPage.getPreviousPage();
-		if (page == null)
-			// should never happen since we have already visited the page
-			return;
-		// set flag to indicate that we are moving back
-		isMovingToPreviousPage = true;
-		// show the page
-		showPage(page);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void buttonPressed(int buttonId) {
-		switch (buttonId) {
-		case IDialogConstants.HELP_ID: {
-			helpPressed();
-			break;
-		}
-		case IDialogConstants.BACK_ID: {
-			backPressed();
-			break;
-		}
-		case IDialogConstants.NEXT_ID: {
-			nextPressed();
-			break;
-		}
-		case IDialogConstants.FINISH_ID: {
-			finishPressed();
-			break;
-		}
-		// The Cancel button has a listener which calls cancelPressed directly
-		}
-	}
-
-	/**
-	 * Calculates the difference in size between the given page and the page
-	 * container. A larger page results in a positive delta.
-	 * 
-	 * @param page
-	 *            the page
-	 * @return the size difference encoded as a
-	 *         <code>new Point(deltaWidth,deltaHeight)</code>
-	 */
-	private Point calculatePageSizeDelta(IWizardPage page) {
-		Control pageControl = page.getControl();
-		if (pageControl == null)
-			// control not created yet
-			return new Point(0, 0);
-		Point contentSize = pageControl.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-				true);
-		Rectangle rect = pageContainerLayout.getClientArea(pageContainer);
-		Point containerSize = new Point(rect.width, rect.height);
-		return new Point(Math.max(0, contentSize.x - containerSize.x), Math
-				.max(0, contentSize.y - containerSize.y));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void cancelPressed() {
-		if (activeRunningOperations <= 0) {
-			// Close the dialog. The check whether the dialog can be
-			// closed or not is done in <code>okToClose</code>.
-			// This ensures that the check is also evaluated when the user
-			// presses the window's close button.
-			setReturnCode(CANCEL);
-			close();
-		} else {
-			if( progressMonitorPart != null ) {
-				progressMonitorPart.setCanceled(true);
-			}
-			else {
-				cancelButton.setEnabled(false);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (okToClose())
-			return hardClose();
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		// Register help listener on the shell
-		newShell.addHelpListener(new HelpListener() {
-			public void helpRequested(HelpEvent event) {
-				// call perform help on the current page
-				if (currentPage != null) {
-					currentPage.performHelp();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Creates and returns the contents of this dialog's button bar.
-	 * <p>
-	 * The <code>WizardDialog</code> implementation of this framework method
-	 * prevents the composite's columns from being made equal width in order to
-	 * remove the margin between the Back and Next buttons.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite to contain the button bar
-	 * @return the button bar control
-	 */
-	protected Control createButtonBar(Composite parent) {
-		Composite withLogoComposite = new Composite(parent, SWT.NONE);
-		withLogoComposite.setLayout(new GridLayout(3, false));
-
-		logoLabel = new Label(withLogoComposite, SWT.NONE);
-
-		if (logoImage != null) {
-			logoLabel.setImage(logoImage);
-		}
-
-		GridData data = new GridData(GridData.FILL, SWT.DEFAULT, true, false);
-		withLogoComposite.setLayoutData(data);
-
-		Label l = new Label(withLogoComposite, SWT.NONE);
-		data = new GridData(GridData.FILL, GridData.CENTER, true, false);
-		// data.verticalAlignment = GridData.CENTER;
-		l.setLayoutData(data);
-		// TODO: Label l is a hack to prevent resizing of logoLabel, resizing
-		// 		 appears on windows, doesn't apper on linux
-
-		Composite composite = (Composite) super
-				.createButtonBar(withLogoComposite);
-		((GridLayout) composite.getLayout()).makeColumnsEqualWidth = false;
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		if (wizard.isHelpAvailable()) {
-			helpButton = createButton(parent, IDialogConstants.HELP_ID,
-					IDialogConstants.HELP_LABEL, false);
-		}
-		if (wizard.needsPreviousAndNextButtons())
-			createPreviousAndNextButtons(parent);
-		finishButton = createButton(parent, IDialogConstants.FINISH_ID,
-				IDialogConstants.FINISH_LABEL, true);
-		cancelButton = createCancelButton(parent);
-	}
-
-	/**
-	 * Creates the Cancel button for this wizard dialog. Creates a standard (<code>SWT.PUSH</code>)
-	 * button and registers for its selection events. Note that the number of
-	 * columns in the button bar composite is incremented. The Cancel button is
-	 * created specially to give it a removeable listener.
-	 * 
-	 * @param parent
-	 *            the parent button bar
-	 * @return the new Cancel button
-	 */
-	private Button createCancelButton(Composite parent) {
-		// increment the number of columns in the button bar
-		((GridLayout) parent.getLayout()).numColumns++;
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(IDialogConstants.CANCEL_LABEL);
-		setButtonLayoutData(button);
-		button.setFont(parent.getFont());
-		button.setData(new Integer(IDialogConstants.CANCEL_ID));
-		button.addSelectionListener(cancelListener);
-		return button;
-	}
-
-	/**
-	 * Return the cancel button if the id is a the cancel id.
-	 * 
-	 * @param id
-	 *            the button id
-	 * @return the button corresponding to the button id
-	 */
-	protected Button getButton(int id) {
-		if (id == IDialogConstants.CANCEL_ID)
-			return cancelButton;
-		return super.getButton(id);
-	}
-
-	/**
-	 * The <code>WizardDialog</code> implementation of this
-	 * <code>Window</code> method calls call <code>IWizard.addPages</code>
-	 * to allow the current wizard to add extra pages, then
-	 * <code>super.createContents</code> to create the controls. It then calls
-	 * <code>IWizard.createPageControls</code> to allow the wizard to
-	 * pre-create their page controls prior to opening, so that the wizard opens
-	 * to the correct size. And finally it shows the first page.
-	 */
-	protected Control createContents(Composite parent) {
-		// Allow the wizard to add pages to itself
-		// Need to call this now so page count is correct
-		// for determining if next/previous buttons are needed
-		wizard.addPages();
-		Control contents = super.createContents(parent);
-		// Allow the wizard pages to precreate their page controls
-		createPageControls();
-		// Show the first page
-		showStartingPage();
-				
-		return contents;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		// Build the Page container
-		pageContainer = createPageContainer(composite);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = pageWidth;
-		gd.heightHint = pageHeight;
-		pageContainer.setLayoutData(gd);
-		pageContainer.setFont(parent.getFont());
-		// Insert a progress monitor
-		GridLayout pmlayout = new GridLayout();
-		pmlayout.numColumns = 1;
-		progressMonitorPart = createProgressMonitorPart(composite, pmlayout);
-		progressMonitorPart
-				.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		progressMonitorPart.setVisible(false);
-		// Build the separator line
-		Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		applyDialogFont(progressMonitorPart);
-		return composite;
-	}
-
-	/**
-	 * Create the progress monitor part in the receiver.
-	 * 
-	 * @param composite
-	 * @param pmlayout
-	 * @return ProgressMonitorPart
-	 */
-	protected ProgressMonitorPart createProgressMonitorPart(
-			Composite composite, GridLayout pmlayout) {
-		return new ProgressMonitorPart(composite, pmlayout, SWT.DEFAULT) {
-			String currentTask = null;
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#setBlocked(org.eclipse.core.runtime.IStatus)
-			 */
-			public void setBlocked(IStatus reason) {
-				super.setBlocked(reason);
-				if (!lockedUI)// Do not show blocked if we are locking the UI
-					getBlockedHandler().showBlocked(getShell(), this, reason,
-							currentTask);
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#clearBlocked()
-			 */
-			public void clearBlocked() {
-				super.clearBlocked();
-				if (!lockedUI)// Do not vlear if we never set it
-					getBlockedHandler().clearBlocked();
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#beginTask(java.lang.String,
-			 *      int)
-			 */
-			public void beginTask(String name, int totalWork) {
-				super.beginTask(name, totalWork);
-				currentTask = name;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#setTaskName(java.lang.String)
-			 */
-			public void setTaskName(String name) {
-				super.setTaskName(name);
-				currentTask = name;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#subTask(java.lang.String)
-			 */
-			public void subTask(String name) {
-				super.subTask(name);
-				// If we haven't got anything yet use this value for more
-				// context
-				if (currentTask == null)
-					currentTask = name;
-			}
-		};
-	}
-
-	/**
-	 * Creates the container that holds all pages.
-	 * 
-	 * @param parent
-	 * @return Composite
-	 */
-	private Composite createPageContainer(Composite parent) {
-		Composite result = new Composite(parent, SWT.NULL);
-		result.setLayout(pageContainerLayout);
-		return result;
-	}
-
-	/**
-	 * Allow the wizard's pages to pre-create their page controls. This allows
-	 * the wizard dialog to open to the correct size.
-	 */
-	private void createPageControls() {
-		// Allow the wizard pages to precreate their page controls
-		// This allows the wizard to open to the correct size
-		wizard.createPageControls(pageContainer);
-		// Ensure that all of the created pages are initially not visible
-		IWizardPage[] pages = wizard.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			IWizardPage page = pages[i];
-			if (page.getControl() != null)
-				page.getControl().setVisible(false);
-		}
-	}
-
-	/**
-	 * Creates the Previous and Next buttons for this wizard dialog. Creates
-	 * standard (<code>SWT.PUSH</code>) buttons and registers for their
-	 * selection events. Note that the number of columns in the button bar
-	 * composite is incremented. These buttons are created specially to prevent
-	 * any space between them.
-	 * 
-	 * @param parent
-	 *            the parent button bar
-	 * @return a composite containing the new buttons
-	 */
-	private Composite createPreviousAndNextButtons(Composite parent) {
-		// increment the number of columns in the button bar
-		((GridLayout) parent.getLayout()).numColumns++;
-		Composite composite = new Composite(parent, SWT.NONE);
-		// create a layout with spacing and margins appropriate for the font
-		// size.
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 0; // will be incremented by createButton
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_CENTER
-				| GridData.VERTICAL_ALIGN_CENTER);
-		composite.setLayoutData(data);
-		composite.setFont(parent.getFont());
-		backButton = createButton(composite, IDialogConstants.BACK_ID,
-				IDialogConstants.BACK_LABEL, false);
-		nextButton = createButton(composite, IDialogConstants.NEXT_ID,
-				IDialogConstants.NEXT_LABEL, false);
-		return composite;
-	}
-
-	/**
-	 * Creates and return a new wizard closing dialog without openiong it.
-	 * 
-	 * @return MessageDalog
-	 */
-	private MessageDialog createWizardClosingDialog() {
-		MessageDialog result = new MessageDialog(getShell(), JFaceResources
-				.getString("WizardClosingDialog.title"), //$NON-NLS-1$
-				null, JFaceResources.getString("WizardClosingDialog.message"), //$NON-NLS-1$
-				MessageDialog.QUESTION,
-				new String[] { IDialogConstants.OK_LABEL }, 0);
-		return result;
-	}
-
-	/**
-	 * The Finish button has been pressed.
-	 */
-	protected void finishPressed() {
-		// Wizards are added to the nested wizards list in setWizard.
-		// This means that the current wizard is always the last wizard in the
-		// list.
-		// Note that we first call the current wizard directly (to give it a
-		// chance to
-		// abort, do work, and save state) then call the remaining n-1 wizards
-		// in the
-		// list (to save state).
-		if (wizard.performFinish()) {
-			// Call perform finish on outer wizards in the nested chain
-			// (to allow them to save state for example)
-			for (int i = 0; i < nestedWizards.size() - 1; i++) {
-				((IWizard) nestedWizards.get(i)).performFinish();
-			}
-			// Hard close the dialog.
-			setReturnCode(OK);
-			hardClose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public IWizardPage getCurrentPage() {
-		return currentPage;
-	}
-
-	/**
-	 * Returns the progress monitor for this wizard dialog (if it has one).
-	 * 
-	 * @return the progress monitor, or <code>null</code> if this wizard
-	 *         dialog does not have one
-	 */
-	protected IProgressMonitor getProgressMonitor() {
-		return progressMonitorPart;
-	}
-
-	/**
-	 * Returns the wizard this dialog is currently displaying.
-	 * 
-	 * @return the current wizard
-	 */
-	protected IWizard getWizard() {
-		return wizard;
-	}
-
-	/**
-	 * Closes this window.
-	 * 
-	 * @return <code>true</code> if the window is (or was already) closed, and
-	 *         <code>false</code> if it is still open
-	 */
-	private boolean hardClose() {
-		// inform wizards
-		for (int i = 0; i < createdWizards.size(); i++) {
-			IWizard createdWizard = (IWizard) createdWizards.get(i);
-			createdWizard.dispose();
-			// Remove this dialog as a parent from the managed wizard.
-			// Note that we do this after calling dispose as the wizard or
-			// its pages may need access to the container during
-			// dispose code
-			createdWizard.setContainer(null);
-		}
-		return super.close();
-	}
-
-	/**
-	 * The Help button has been pressed.
-	 */
-	protected void helpPressed() {
-		if (currentPage != null) {
-			currentPage.performHelp();
-		}
-	}
-
-	/**
-	 * The Next button has been pressed.
-	 */
-	protected void nextPressed() {
-		IWizardPage page = currentPage.getNextPage();
-		if (page == null) {
-			// something must have happend getting the next page
-			return;
-		}
-		// show the next page
-		showPage(page);
-	}
-
-	/**
-	 * Checks whether it is alright to close this wizard dialog and performed
-	 * standard cancel processing. If there is a long running operation in
-	 * progress, this method posts an alert message saying that the wizard
-	 * cannot be closed.
-	 * 
-	 * @return <code>true</code> if it is alright to close this dialog, and
-	 *         <code>false</code> if it is not
-	 */
-	private boolean okToClose() {
-		if (activeRunningOperations > 0) {
-			synchronized (this) {
-				windowClosingDialog = createWizardClosingDialog();
-			}
-			windowClosingDialog.open();
-			synchronized (this) {
-				windowClosingDialog = null;
-			}
-			return false;
-		}
-		return wizard.performCancel();
-	}
-
-	/**
-	 * Restores the enabled/disabled state of the given control.
-	 * 
-	 * @param w
-	 *            the control
-	 * @param h
-	 *            the map (key type: <code>String</code>, element type:
-	 *            <code>Boolean</code>)
-	 * @param key
-	 *            the key
-	 * @see #saveEnableStateAndSet
-	 */
-	private void restoreEnableState(Control w, Map h, String key) {
-		if (w != null) {
-			Boolean b = (Boolean) h.get(key);
-			if (b != null)
-				w.setEnabled(b.booleanValue());
-		}
-	}
-
-	/**
-	 * Restores the enabled/disabled state of the wizard dialog's buttons and
-	 * the tree of controls for the currently showing page.
-	 * 
-	 * @param state
-	 *            a map containing the saved state as returned by
-	 *            <code>saveUIState</code>
-	 * @see #saveUIState
-	 */
-	private void restoreUIState(Map state) {
-		restoreEnableState(backButton, state, "back"); //$NON-NLS-1$
-		restoreEnableState(nextButton, state, "next"); //$NON-NLS-1$
-		restoreEnableState(finishButton, state, "finish"); //$NON-NLS-1$
-		restoreEnableState(cancelButton, state, "cancel"); //$NON-NLS-1$
-		restoreEnableState(helpButton, state, "help"); //$NON-NLS-1$
-		Object pageValue = state.get("page"); //$NON-NLS-1$
-		if (pageValue != null)// page may never have been created
-			((ControlEnableState) pageValue).restore();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IRunnableContext.
-	 */
-	public void run(boolean fork, boolean cancelable,
-			IRunnableWithProgress runnable) throws InvocationTargetException,
-			InterruptedException {
-		// The operation can only be canceled if it is executed in a separate
-		// thread.
-		// Otherwise the UI is blocked anyway.
-		Object state = null;
-		if (activeRunningOperations == 0)
-			state = aboutToStart(fork && cancelable);
-		activeRunningOperations++;
-		try {
-			if (!fork)// If we are not forking do not open other dialogs
-				lockedUI = true;
-			ModalContext.run(runnable, fork, getProgressMonitor(), getShell()
-					.getDisplay());
-			lockedUI = false;
-		} finally {
-			activeRunningOperations--;
-			// Stop if this is the last one
-			if (state != null)
-				stopped(state);
-		}
-	}
-
-	/**
-	 * Saves the enabled/disabled state of the given control in the given map,
-	 * which must be modifiable.
-	 * 
-	 * @param w
-	 *            the control, or <code>null</code> if none
-	 * @param h
-	 *            the map (key type: <code>String</code>, element type:
-	 *            <code>Boolean</code>)
-	 * @param key
-	 *            the key
-	 * @param enabled
-	 *            <code>true</code> to enable the control, and
-	 *            <code>false</code> to disable it
-	 * @see #restoreEnableState(Control, Map, String)
-	 */
-	private void saveEnableStateAndSet(Control w, Map h, String key,
-			boolean enabled) {
-		if (w != null) {
-			h.put(key, new Boolean(w.getEnabled()));
-			w.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * Captures and returns the enabled/disabled state of the wizard dialog's
-	 * buttons and the tree of controls for the currently showing page. All
-	 * these controls are disabled in the process, with the possible excepton of
-	 * the Cancel button.
-	 * 
-	 * @param keepCancelEnabled
-	 *            <code>true</code> if the Cancel button should remain
-	 *            enabled, and <code>false</code> if it should be disabled
-	 * @return a map containing the saved state suitable for restoring later
-	 *         with <code>restoreUIState</code>
-	 * @see #restoreUIState
-	 */
-	private Map saveUIState(boolean keepCancelEnabled) {
-		Map savedState = new HashMap(10);
-		saveEnableStateAndSet(backButton, savedState, "back", false); //$NON-NLS-1$
-		saveEnableStateAndSet(nextButton, savedState, "next", false); //$NON-NLS-1$
-		saveEnableStateAndSet(finishButton, savedState, "finish", false); //$NON-NLS-1$
-		saveEnableStateAndSet(cancelButton, savedState,
-				"cancel", keepCancelEnabled); //$NON-NLS-1$
-		saveEnableStateAndSet(helpButton, savedState, "help", false); //$NON-NLS-1$
-		if (currentPage != null)
-			savedState
-					.put(
-							"page", ControlEnableState.disable(currentPage.getControl())); //$NON-NLS-1$
-		return savedState;
-	}
-
-	/**
-	 * Sets the given cursor for all shells currently active for this window's
-	 * display.
-	 * 
-	 * @param c
-	 *            the cursor
-	 */
-	private void setDisplayCursor(Cursor c) {
-		Shell[] shells = getShell().getDisplay().getShells();
-		for (int i = 0; i < shells.length; i++)
-			shells[i].setCursor(c);
-	}
-
-	/**
-	 * Sets the minimum page size used for the pages.
-	 * 
-	 * @param minWidth
-	 *            the minimum page width
-	 * @param minHeight
-	 *            the minimum page height
-	 * @see #setMinimumPageSize(Point)
-	 */
-	public void setMinimumPageSize(int minWidth, int minHeight) {
-		Assert.isTrue(minWidth >= 0 && minHeight >= 0);
-		pageContainerLayout.minimumWidth = minWidth;
-		pageContainerLayout.minimumHeight = minHeight;
-	}
-
-	/**
-	 * Sets the minimum page size used for the pages.
-	 * 
-	 * @param size
-	 *            the page size encoded as <code>new Point(width,height)</code>
-	 * @see #setMinimumPageSize(int,int)
-	 */
-	public void setMinimumPageSize(Point size) {
-		setMinimumPageSize(size.x, size.y);
-	}
-
-	/**
-	 * Sets the size of all pages. The given size takes precedence over computed
-	 * sizes.
-	 * 
-	 * @param width
-	 *            the page width
-	 * @param height
-	 *            the page height
-	 * @see #setPageSize(Point)
-	 */
-	public void setPageSize(int width, int height) {
-		pageWidth = width;
-		pageHeight = height;
-	}
-
-	/**
-	 * Sets the size of all pages. The given size takes precedence over computed
-	 * sizes.
-	 * 
-	 * @param size
-	 *            the page size encoded as <code>new Point(width,height)</code>
-	 * @see #setPageSize(int,int)
-	 */
-	public void setPageSize(Point size) {
-		setPageSize(size.x, size.y);
-	}
-
-	/**
-	 * Sets the wizard this dialog is currently displaying.
-	 * 
-	 * @param newWizard
-	 *            the wizard
-	 */
-	protected void setWizard(IWizard newWizard) {
-		wizard = newWizard;
-		wizard.setContainer(this);
-		if (!createdWizards.contains(wizard)) {
-			createdWizards.add(wizard);
-			// New wizard so just add it to the end of our nested list
-			nestedWizards.add(wizard);
-			if (pageContainer != null) {
-				// Dialog is already open
-				// Allow the wizard pages to precreate their page controls
-				// This allows the wizard to open to the correct size
-				createPageControls();
-				// Ensure the dialog is large enough for the wizard
-				updateSizeForWizard(wizard);
-				pageContainer.layout(true);
-			}
-		} else {
-			// We have already seen this wizard, if it is the previous wizard
-			// on the nested list then we assume we have gone back and remove
-			// the last wizard from the list
-			int size = nestedWizards.size();
-			if (size >= 2 && nestedWizards.get(size - 2) == wizard)
-				nestedWizards.remove(size - 1);
-			else
-				// Assume we are going forward to revisit a wizard
-				nestedWizards.add(wizard);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void showPage(IWizardPage page) {
-		if (page == null || page == currentPage) {
-			return;
-		}
-		if (!isMovingToPreviousPage)
-			// remember my previous page.
-			page.setPreviousPage(currentPage);
-		else
-			isMovingToPreviousPage = false;
-		// Update for the new page ina busy cursor if possible
-		if (getContents() == null)
-			updateForPage(page);
-
-		else {
-			final IWizardPage finalPage = page;
-			BusyIndicator.showWhile(getContents().getDisplay(), new Runnable() {
-				public void run() {
-					updateForPage(finalPage);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Update the receiver for the new page.
-	 * 
-	 * @param page
-	 */
-	private void updateForPage(IWizardPage page) {
-		// ensure this page belongs to the current wizard
-		if (wizard != page.getWizard())
-			setWizard(page.getWizard());
-		// ensure that page control has been created
-		// (this allows lazy page control creation)
-		if (page.getControl() == null) {
-			page.createControl(pageContainer);
-			// the page is responsible for ensuring the created control is
-			// accessable
-			// via getControl.
-			Assert.isNotNull(page.getControl());
-			// ensure the dialog is large enough for this page
-			updateSize(page);
-		}
-		// make the new page visible
-		IWizardPage oldPage = currentPage;
-		currentPage = page;
-		currentPage.setVisible(true);
-		if (oldPage != null)
-			oldPage.setVisible(false);
-		// update the dialog controls
-		update();
-	}
-
-	/**
-	 * Shows the starting page of the wizard.
-	 */
-	private void showStartingPage() {
-		currentPage = wizard.getStartingPage();
-		if (currentPage == null) {
-			// something must have happend getting the page
-			return;
-		}
-		// ensure the page control has been created
-		if (currentPage.getControl() == null) {
-			currentPage.createControl(pageContainer);
-			// the page is responsible for ensuring the created control is
-			// accessable
-			// via getControl.
-			Assert.isNotNull(currentPage.getControl());
-			// we do not need to update the size since the call
-			// to initialize bounds has not been made yet.
-		}
-		// make the new page visible
-		currentPage.setVisible(true);
-		// update the dialog controls
-		update();
-	}
-
-	/**
-	 * A long running operation triggered through the wizard was stopped either
-	 * by user input or by normal end. Hides the progress monitor and restores
-	 * the enable state wizard's buttons and controls.
-	 * 
-	 * @param savedState
-	 *            the saved UI state as returned by <code>aboutToStart</code>
-	 * @see #aboutToStart
-	 */
-	private void stopped(Object savedState) {
-		if (getShell() != null) {
-			if (wizard.needsProgressMonitor()) {
-				progressMonitorPart.setVisible(false);
-
-				cancelButton.removeListener(SWT.Selection,
-						progressMonitorListener);
-
-				// progressMonitorPart.removeFromCancelComponent(cancelButton);
-			}
-			Map state = (Map) savedState;
-			restoreUIState(state);
-			cancelButton.addSelectionListener(cancelListener);
-			setDisplayCursor(null);
-			cancelButton.setCursor(null);
-			waitCursor.dispose();
-			waitCursor = null;
-			arrowCursor.dispose();
-			arrowCursor = null;
-			Control focusControl = (Control) state.get(FOCUS_CONTROL);
-			if (focusControl != null)
-				focusControl.setFocus();
-		}
-	}
-
-	/**
-	 * Updates this dialog's controls to reflect the current page.
-	 */
-	protected void update() {
-		// Update the window title
-		updateWindowTitle();
-		// Update the title bar
-		updateTitleBar();
-		// Update the buttons
-		updateButtons();
-		// Fires the page change event
-		firePageChanged(new PageChangedEvent(this, getCurrentPage()));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateButtons() {
-		boolean canFlipToNextPage = false;
-		boolean canFinish = wizard.canFinish();
-		if (backButton != null)
-			backButton.setEnabled(currentPage.getPreviousPage() != null);
-		if (nextButton != null) {
-			canFlipToNextPage = currentPage.canFlipToNextPage();
-			nextButton.setEnabled(canFlipToNextPage);
-		}
-		finishButton.setEnabled(canFinish);
-		// finish is default unless it is diabled and next is enabled
-		if (canFlipToNextPage && !canFinish)
-			getShell().setDefaultButton(nextButton);
-		else
-			getShell().setDefaultButton(finishButton);
-	}
-
-	/**
-	 * Update the message line with the page's description.
-	 * <p>
-	 * A discription is shown only if there is no message or error message.
-	 * </p>
-	 */
-	private void updateDescriptionMessage() {
-		pageDescription = currentPage.getDescription();
-		if (pageMessage == null)
-			setMessage(currentPage.getDescription());
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateMessage() {
-
-		if (currentPage == null)
-			return;
-
-		pageMessage = currentPage.getMessage();
-		if (pageMessage != null && currentPage instanceof IMessageProvider)
-			pageMessageType = ((IMessageProvider) currentPage).getMessageType();
-		else
-			pageMessageType = IMessageProvider.NONE;
-		if (pageMessage == null)
-			setMessage(pageDescription);
-		else
-			setMessage(pageMessage, pageMessageType);
-		setErrorMessage(currentPage.getErrorMessage());
-	}
-
-	/**
-	 * Changes the shell size to the given size, ensuring that it is no larger
-	 * than the display bounds.
-	 * 
-	 * @param width
-	 *            the shell width
-	 * @param height
-	 *            the shell height
-	 */
-	private void setShellSize(int width, int height) {
-		Rectangle size = getShell().getBounds();
-		size.height = height;
-		size.width = width;
-		getShell().setBounds(getConstrainedShellBounds(size));
-	}
-
-	/**
-	 * Computes the correct dialog size for the current page and resizes its
-	 * shell if nessessary. Also causes the container to refresh its layout.
-	 * 
-	 * @param page
-	 *            the wizard page to use to resize the dialog
-	 * @since 2.0
-	 */
-	protected void updateSize(IWizardPage page) {
-		if (page == null || page.getControl() == null)
-			return;
-		updateSizeForPage(page);
-		pageContainerLayout.layoutPage(page.getControl());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.IWizardContainer2#updateSize()
-	 */
-	public void updateSize() {
-		updateSize(currentPage);
-	}
-
-	/**
-	 * Computes the correct dialog size for the given page and resizes its shell
-	 * if nessessary.
-	 * 
-	 * @param page
-	 *            the wizard page
-	 */
-	private void updateSizeForPage(IWizardPage page) {
-		// ensure the page container is large enough
-		Point delta = calculatePageSizeDelta(page);
-		if (delta.x > 0 || delta.y > 0) {
-			// increase the size of the shell
-			Shell shell = getShell();
-			Point shellSize = shell.getSize();
-			setShellSize(shellSize.x + delta.x, shellSize.y + delta.y);
-			constrainShellSize();
-		}
-	}
-
-	/**
-	 * Computes the correct dialog size for the given wizard and resizes its
-	 * shell if nessessary.
-	 * 
-	 * @param sizingWizard
-	 *            the wizard
-	 */
-	private void updateSizeForWizard(IWizard sizingWizard) {
-		Point delta = new Point(0, 0);
-		IWizardPage[] pages = sizingWizard.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			// ensure the page container is large enough
-			Point pageDelta = calculatePageSizeDelta(pages[i]);
-			delta.x = Math.max(delta.x, pageDelta.x);
-			delta.y = Math.max(delta.y, pageDelta.y);
-		}
-		if (delta.x > 0 || delta.y > 0) {
-			// increase the size of the shell
-			Shell shell = getShell();
-			Point shellSize = shell.getSize();
-			setShellSize(shellSize.x + delta.x, shellSize.y + delta.y);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateTitleBar() {
-		String s = null;
-		if (currentPage != null)
-			s = currentPage.getTitle();
-		if (s == null)
-			s = ""; //$NON-NLS-1$
-		setTitle(s);
-		if (currentPage != null)
-			setTitleImage(currentPage.getImage());
-		updateDescriptionMessage();
-		updateMessage();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateWindowTitle() {
-		if (getShell() == null)
-			// Not created yet
-			return;
-		String title = wizard.getWindowTitle();
-		if (title == null)
-			title = ""; //$NON-NLS-1$
-		getShell().setText(title);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#getSelectedPage()
-	 */
-	public Object getSelectedPage() {
-		return getCurrentPage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialog.IPageChangeProvider#addPageChangedListener()
-	 */
-	public void addPageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialog.IPageChangeProvider#removePageChangedListener()
-	 */
-	public void removePageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.remove(listener);
-	}
-
-	/**
-	 * Notifies any selection changed listeners that the selected page has
-	 * changed. Only listeners registered at the time this method is called are
-	 * notified.
-	 * 
-	 * @param event
-	 *            a selection changed event
-	 * 
-	 * @see IPageChangedListener#pageChanged
-	 * 
-	 * @since 3.1
-	 */
-	protected void firePageChanged(final PageChangedEvent event) {
-		Object[] listeners = pageChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final IPageChangedListener l = (IPageChangedListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.pageChanged(event);
-				}
-			});
-		}
-	}
-
-	public void setLogoImage(Image logoImage) {
-		this.logoImage = logoImage;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/WizardInstaller.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/WizardInstaller.java
deleted file mode 100644
index 36cf6c7..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/WizardInstaller.java
+++ /dev/null
@@ -1,327 +0,0 @@
-package org.eclipse.epp.installer.internal.ui;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.CheckAdminPrivilegesStep;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.epp.installer.core.steps.ChoiceStep;
-import org.eclipse.epp.installer.core.steps.ChooseLocationStep;
-import org.eclipse.epp.installer.core.steps.ChooseProductStep;
-import org.eclipse.epp.installer.core.steps.CustomizeStep;
-import org.eclipse.epp.installer.core.steps.PromptUserStep;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-import org.eclipse.epp.installer.core.steps.SelectInstallTypeStep;
-import org.eclipse.epp.installer.core.steps.ShowWarningsStep;
-import org.eclipse.epp.installer.internal.ui.steps.CheckAdminPrivilegesWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.ChoiceWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.ChooseLocationWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.CustomizeWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.PromptUserWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.RunOperationsWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.ScrollablePromptUserWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.SelectInstallTypeWizardStep;
-import org.eclipse.epp.installer.internal.ui.steps.ShowWarningsWizardStep;
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.epp.installer.ui.InstallerErrorDialog;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- * Copyied and refactored <code>SWTInstaller</code>
- */
-public class WizardInstaller extends Installer
-	implements IPageChangedListener
-{
-	public static final String PLUGIN_ID = "org.eclipse.epp.installer.ui";
-	public static final String ENVIRONMENT_ID = "swt";
-
-	// private static final String TITLE = "Installer";
-
-	private static final int[] INSTALLER_ACTIONS = new int[]{
-		Context.RETRY, Context.ABORT, Context.IGNORE
-	};
-
-	private static final String[] DIALOG_LABELS = new String[]{
-		IDialogConstants.RETRY_LABEL, IDialogConstants.ABORT_LABEL, IDialogConstants.IGNORE_LABEL
-	};
-
-	private Display display = new Display();
-
-	private Map preferredAnswers = new HashMap();
-
-	private InstallWizard wizard;
-
-	private InstallerWizardDialog dialog;
-
-	public WizardInstaller() {
-		addAdapter(ChoiceStep.class, ChoiceWizardStep.class);
-		addAdapter(CheckAdminPrivilegesStep.class, CheckAdminPrivilegesWizardStep.class);
-		addAdapter(ChooseLocationStep.class, ChooseLocationWizardStep.class);
-		//addAdapter(ChooseProductStep.class, ChooseProductWizardStep.class);
-		addAdapter(CustomizeStep.class, CustomizeWizardStep.class);
-		addAdapter(SelectInstallTypeStep.class, SelectInstallTypeWizardStep.class);
-		addAdapter(PromptUserStep.class, PromptUserWizardStep.class);
-		addAdapter(ScrollablePromptUserStep.class, ScrollablePromptUserWizardStep.class);
-		addAdapter(ShowWarningsStep.class, ShowWarningsWizardStep.class);
-		addAdapter(RunOperationsStep.class, RunOperationsWizardStep.class);
-	}
-
-	protected Class getRequiredAdapterType() {
-		return IWizardStep.class;
-	}
-
-	/*
-	 * Hide native launcher splash if any.
-	 */
-	private static void hideSplash() {
-		String code = System.getProperty("installer.endsplash");
-		if (code != null) {
-			String launcher = System.getProperty("installer.launcher");
-			try {
-				Runtime.getRuntime().exec(new String[]{
-					launcher, "-endsplash", code
-				});
-			}
-			catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/**
-	 * Open the wizard, create the pages, prompt the user, and install the product
-	 */
-	public IStatus run() {
-		wizard = new InstallWizard(this);
-		wizard.setWindowTitle(getTitle());
-		wizard.setNeedsProgressMonitor(true);
-		dialog = new InstallerWizardDialog(null, wizard);
-
-		InputStream logoStream;
-		String logoTag = getOptions().getString("poweredLogo");
-		if ("off".equals(logoTag)) {
-			logoStream = null;
-		}
-		else {
-			logoStream = this.getClass().getResourceAsStream("logo.png");
-		}
-		if (logoStream != null) {
-			Image logoImage = new Image(this.display, logoStream);
-			dialog.setLogoImage(logoImage);
-		}
-
-		super.run();
-		dialog.addPageChangedListener(this);
-
-		dialog.setPageSize(getIntValue("WizardWidthHint", 300, 100), getIntValue("WizardHeightHint", 225, 100));
-		// TODO: replace with code preventing from resizing the window
-		// TODO [author=Dan] continue to allow window to be resized
-
-		
-		
-
-		
-		//Dialog should call setBlockOnOpen(false); to remove blocking of open operation.
-//		dialog.setBlockOnOpen(false);
-		dialog.open();
-//		 hide splash if any
-		hideSplash();
-//		Use the display provided by the shell if possible
-		runEventLoop();
-		
-		dialog.removePageChangedListener(this);
-		return Status.OK_STATUS;
-	}
-
-	private void runEventLoop() {
-		Display display;
-		Shell shell = dialog.getShell();
-		
-		display = Display.getCurrent();
-		
-		display.addFilter(SWT.KeyDown, new Listener() {
-			public void handleEvent(Event event) {
-				if( event.keyCode == SWT.ESC ) {
-					dialog.cancelPressed();					
-				}
-			}			
-		});
-
-		while (shell != null && !shell.isDisposed()) {
-			try {			
-				if (!display.readAndDispatch())
-					display.sleep();
-			} catch (Throwable e) {
-				//exceptionHandler.handleException(e);
-				//TODO: Add logging here.
-				e.printStackTrace();
-			}
-		}
-		display.update();		
-	}
-
-	/**
-	 * Read an integer value from the installation options.
-	 * 
-	 * @param opKey the installation option key
-	 * @param defaultValue the default value
-	 * @param minimumValue the minimum integer value
-	 * @return the value
-	 */
-	private int getIntValue(String opKey, int defaultValue, int minimumValue) {
-		int intValue = defaultValue;
-		try {
-			intValue = Math.max(Integer.parseInt(getOptions().getString(opKey)), minimumValue);
-		}
-		catch (NumberFormatException e) {
-			// ignored
-		}
-		return intValue;
-	}
-
-	protected IStatus performStep(IInstallStep step) {
-		IWizardStep wizardStep = (IWizardStep) step.getAdapter(IWizardStep.class);
-		if (wizardStep == null)
-			return STEP_NOT_SUPPORTED;
-		wizardStep.addPage(wizard);
-		return Status.OK_STATUS;
-	}
-
-	public boolean confirm(final int code, final String message, final Object[] param) {
-		final boolean[] answer = new boolean[1];
-		Boolean pref = (Boolean) preferredAnswers.get(new Integer(code));
-		if (pref == null) {
-			display.syncExec(new Runnable() {
-				public void run() {
-					MessageDialogWithToggle dialog = new ResizableMessageDialogWithToggle(Display.getCurrent().getActiveShell(),
-						getTitle(), null, MessageFormat.format(message, param), MessageDialog.QUESTION, new String[]{
-							IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL
-						}, 0, "&Always use this answer.", false);
-					answer[0] = (dialog.open() == IDialogConstants.YES_ID);
-					if (dialog.getToggleState()) {
-						preferredAnswers.put(new Integer(code), new Boolean(answer[0]));
-					}
-				}
-			});
-		}
-		else
-			answer[0] = pref.booleanValue();
-		return answer[0];
-	}
-
-	public boolean warning(final int code, final String message, final Object[] param) {
-		final boolean[] answer = new boolean[1];
-		Boolean pref = (Boolean) preferredAnswers.get(new Integer(code));
-		if (pref == null) {
-			display.syncExec(new Runnable() {
-				public void run() {
-					MessageDialogWithToggle dialog = new ResizableMessageDialogWithToggle(Display.getCurrent().getActiveShell(),
-						getTitle(), null, MessageFormat.format(message, param), MessageDialog.WARNING, new String[]{
-							IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL
-						}, 0, "&Don't show this dialog anymore.", false);
-					answer[0] = (dialog.open() == IDialogConstants.YES_ID);
-					if (dialog.getToggleState()) {
-						preferredAnswers.put(new Integer(code), new Boolean(true));
-					}
-				}
-			});
-		}
-		else
-			answer[0] = pref.booleanValue();
-		return answer[0];
-	}
-	private static class ErrorResizableMessageDialog extends MessageDialog {
-		public ErrorResizableMessageDialog(Shell parentShell, String dialogTitle,
-	            Image dialogTitleImage, String dialogMessage, int dialogImageType,
-	            String[] dialogButtonLabels, int defaultIndex) {
-			super(parentShell,dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
-			this.setShellStyle(getShellStyle() | SWT.RESIZE);
-			
-		}
-	}
-	
-	private static class ResizableMessageDialogWithToggle extends MessageDialogWithToggle {
-		public ResizableMessageDialogWithToggle(Shell parentShell, String dialogTitle, Image image, String message, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, String toggleMessage, boolean toggleState) {
-			super(parentShell, dialogTitle, image, message, dialogImageType,
-					dialogButtonLabels, defaultIndex, toggleMessage, toggleState);
-			this.setShellStyle(getShellStyle() | SWT.RESIZE);
-			
-		}
-
-		
-	}
-	
-	public int abortRetryIgnore(final IStatus status) {
-		final int[] rc = new int[1];
-		display.syncExec(new Runnable() {
-			public void run() {
-				Dialog errorDialog = new ErrorResizableMessageDialog(Display.getCurrent().getActiveShell(), getTitle(), null, status
-					.getMessage(), status.getSeverity() == IStatus.WARNING
-					? MessageDialog.WARNING
-					: MessageDialog.ERROR, DIALOG_LABELS, 0) {					
-				};		
-				int actionId = errorDialog.open();
-				if(actionId==-1)actionId=1;
-				rc[0] = INSTALLER_ACTIONS[actionId];
-			}
-		});
-		return rc[0];
-	}
-
-	public void error(final IStatus status) {
-		if (status != null) {
-			System.out.println(status);
-			Throwable exception = status.getException();
-			if (exception != null)
-				exception.printStackTrace();
-		}
-		display.syncExec(new Runnable() {
-			public void run() {
-				InstallerErrorDialog.openError(Display.getCurrent().getActiveShell(), getTitle(), "Installer error",
-					status);
-			}
-		});
-	}
-
-	public void pageChanged(PageChangedEvent event) {
-		InstallPage page = (InstallPage) event.getSelectedPage();
-		page.getAdapter().aboutToShow();
-	}
-
-	protected boolean confirmCancel() {
-		final boolean answer[] = new boolean[1];
-		display.syncExec(new Runnable() {
-			public void run() {
-				answer[0] = MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), getTitle(),
-					"Do you really want to cancel installation?");
-				;
-			}
-		});
-		return answer[0];
-	}
-
-	public String getEnvironmentId() {
-		return ENVIRONMENT_ID;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/logo.png b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/logo.png
deleted file mode 100644
index ae98c20..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/logo.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/BasicTextPage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/BasicTextPage.java
deleted file mode 100644
index a313000..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/BasicTextPage.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-
-/**
- * A simple page containing a single text control used for displaying a basic message to
- * the user.
- */
-public class BasicTextPage extends InstallPage
-{
-	private Label label;
-
-	public BasicTextPage(IWizardStep step, String pageName) {
-		super(step, pageName);
-	}
-
-	public BasicTextPage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final FillLayout fillLayout = new FillLayout();
-		fillLayout.marginHeight = 10;
-		fillLayout.marginWidth = 15;
-		container.setLayout(fillLayout);
-
-		label = new Label(container, SWT.WRAP);
-		
-		setControl(container);
-	}
-
-	/**
-	 * Set the text to be displayed. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String message
-	 */
-	public void setText(String message) {
-		if(message == null)
-			message = "BasicTextPage: setText(null), please check installer code";
-		label.setText(message);
-	}
-
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-	
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		label.setFocus();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ChoicePage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ChoicePage.java
deleted file mode 100644
index 122dc04..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ChoicePage.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * Wizard page displaying a text and two radio buttons.
- */
-public class ChoicePage extends InstallPage
-{
-	private StyledText agreement;
-	private Button acceptButton;
-	private Button declineButton;
-	private boolean continueOnDecline = true;
-	private boolean choice;
-	
-	public ChoicePage(IWizardStep step) {
-		super(step, "choicePage");
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param Composite parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.marginHeight = 10;
-		gridLayout.marginWidth = 15;
-		container.setLayout(gridLayout);
-		setControl(container);
-		
-		createAgreement(container);
-		createRadioButtons(container);
-
-		updatePageComplete();
-		setPageComplete(continueOnDecline);
-	}
-
-	private void createAgreement(Composite container) {
-		agreement = new StyledText(container, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP );		
-		agreement.setEditable(false);
-		agreement.setWordWrap(true);
-		agreement.setLayoutData(new GridData( GridData.FILL, GridData.FILL, true, true));
-	}
-	
-	private void createRadioButtons(Composite container) {
-		acceptButton = new Button(container, SWT.RADIO);
-		acceptButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		acceptButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				choice = true;
-				updatePageComplete();
-				setPageComplete(true);
-			}
-		});
-
-		declineButton = new Button(container, SWT.RADIO);
-		declineButton.setSelection(true);
-		declineButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		declineButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				choice = false;
-				updatePageComplete();
-				setPageComplete(continueOnDecline);
-			}
-		});
-	}
-	
-	/**
-	 * Set the text to be displayed. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String choiceText
-	 */
-	public void setChoiceText(String choiceText) {
-		agreement.setText(choiceText);
-	}
-	
-	/**
-	 * Set the text for 'accept' option. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String acceptText
-	 */
-	public void setAcceptText(String acceptText) {
-		acceptButton.setText(acceptText);
-	}
-
-	/**
-	 * Set the text for 'decline' option. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String declineText
-	 */
-	public void setDeclineText(String declineText) {
-		declineButton.setText(declineText);
-	}
-
-	/**
-	 * Triggers behaivior of dialog page if 'decline' option selected. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param boolean flag
-	 */
-	public void setContinueOnDecline(boolean flag) {
-		continueOnDecline = flag;
-		setPageComplete(continueOnDecline);
-	}
-	
-	/**
-	 * Defines which button will be selected by default, 'Accept' if <code>true</code>,
-	 * 'decline' if <code>false</code>.
-	 * 
-	 * @param boolean flag
-	 */
-	public void setDefaultChoice(boolean flag) {
-		choice = flag;
-		acceptButton.setSelection(flag);
-		declineButton.setSelection(!flag);
-	}
-	
-	/**
-	 * Return the choice made. <code>true</code> for 'accept', <code>false</code> for 'decline'.
-	 * 
-	 * @return boolean
-	 */
-	public boolean getChoice() {
-		return choice;
-	}
-
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		if (getChoice()) {
-			acceptButton.setFocus();
-		} else {
-			declineButton.setFocus();
-		}
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/CustomizePage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/CustomizePage.java
deleted file mode 100644
index a642b4f..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/CustomizePage.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.epp.installer.core.steps.CustomizeOption;
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-
-/**
- * Wizard page prompting the user for an installation location
- */
-public class CustomizePage extends InstallPage
-{
-	private StyledText label;
-	private Tree optionTree;
-	private TreeItem[] optionTreeItems;
-	private HashMap optionMap = new HashMap();
-	private HashMap itemMap = new HashMap();
-	private HashMap checkMap = new HashMap();
-
-	public CustomizePage(IWizardStep step, String pageName) {
-		super(step, pageName);
-	}
-
-	public CustomizePage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.marginHeight = 10;
-		gridLayout.marginWidth = 15;
-		container.setLayout(gridLayout);
-		setControl(container);
-
-		createOptionTree(container);
-		createOptionText(container);
-		
-		updatePageComplete();
-	}
-	
-	private void createOptionTree(Composite container) {
-		optionTree = new Tree(container, SWT.BORDER | SWT.CHECK);
-		optionTree.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
-		optionTree.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.detail != SWT.CHECK)
-					return;
-				
-				TreeItem optionTreeItem = (TreeItem)e.item;
-				Boolean b = (Boolean)checkMap.get(optionTreeItem);
-				if (optionTreeItem.getChecked() != b.booleanValue()) {
-					checkMap.put(optionTreeItem, Boolean.valueOf(!b.booleanValue()));
-					updateSelection(optionTreeItem);
-				}
-				updatePageComplete();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-	}
-	
-	private void createOptionText(Composite container) {
-		label = new StyledText(container, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP );		
-		label.setEditable(false);
-		label.setWordWrap(true);
-		label.setLayoutData(new GridData( GridData.FILL, GridData.FILL, true, true));
-	}
-	
-	private void updateSelection(TreeItem optionTreeItem) {
-		if (optionTreeItem.getGrayed()) {
-			optionTreeItem.setChecked(true);
-			return;
-		}
-//		if (optionTreeItem.getChecked()) {
-			CustomizeOption option = (CustomizeOption)optionMap.get(optionTreeItem);
-			ArrayList dependencies = new ArrayList(option.getDepends());
-			for (int i = 0; i < dependencies.size(); i++) {
-				TreeItem item = (TreeItem)itemMap.get(dependencies.get(i));
-				item.setChecked(optionTreeItem.getChecked());
-				item.setGrayed(optionTreeItem.getChecked());
-				updateSelection(item);
-			}
-//		}
-	}
-	
-	public List getSelectedOptionList() {
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < optionTreeItems.length; i++) {
-			if (optionTreeItems[i].getChecked()) {
-				result.add(optionMap.get(optionTreeItems[i]));
-			}
-		}
-		return result;
-	}
-
-	public void setOptionList(Collection optionList) {
-		optionTreeItems = new TreeItem[optionList.size()];
-		int i = 0;
-		Iterator iter = optionList.iterator();
-		while (iter.hasNext()) {
-			CustomizeOption option = (CustomizeOption)iter.next();
-			
-			optionTreeItems[i] = new TreeItem(optionTree, SWT.CHECK);
-			optionTreeItems[i].setText(option.getName());
-			optionTreeItems[i].setGrayed(option.getRequired());
-			
-			optionMap.put(optionTreeItems[i], option);
-			itemMap.put(option, optionTreeItems[i]);
-			checkMap.put(optionTreeItems[i], new Boolean(false));
-
-			i++;
-		}
-	}
-
-	public void setLabelText(String labelText) {
-		label.setText(labelText);
-	}
-
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		optionTree.setFocus();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallCodePage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallCodePage.java
deleted file mode 100644
index fba1342..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallCodePage.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * A page for displaying installation progress to the user.
- */
-public class InstallCodePage extends InstallPage
-{
-	public InstallCodePage(IWizardStep step, String title) {
-		super(step, title);
-	}
-
-	public InstallCodePage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		setControl(container);
-	}
-
-	/**
-	 * Override the superclass implementation to return <code>null</code> indicating
-	 * that there is no previous page, because once we start installing code there is no
-	 * turning back.
-	 */
-	public IWizardPage getPreviousPage() {
-		return null;
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallDirPage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallDirPage.java
deleted file mode 100644
index a8386a6..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/InstallDirPage.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-
-/**
- * Wizard page prompting the user for an installation location
- */
-public class InstallDirPage extends InstallPage
-{
-	private static final String DIALOG_TEXT = "Select directory to install software.";
-	private static final String DIALOG_MESSAGE = "Select directory to install software.";
-	private static final String LABEL_TEXT = "To select a destination folder, click Browse. Then click Next to continue.";
-	private static final String BUTTON_TEXT = "Bro&wse...";
-
-	private Text text;
-	private Label label;
-	private Label details;
-	private Button uninstallButton;
-
-	public InstallDirPage(IWizardStep step) {
-		super(step, "Install location");
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		gridLayout.marginHeight = 10;
-		gridLayout.marginWidth = 15;
-		container.setLayout(gridLayout);
-		setControl(container);
-
-		createTextLabel(container);
-		createSelectDirBar(container);
-		createUninstallButton(container);
-		createDetails(container);
-
-		updatePageComplete();
-	}
-
-	private void createTextLabel(Composite container) {
-		label = new Label(container, SWT.WRAP);
-		label.setText(LABEL_TEXT);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data); 
-	}
-
-	private void createSelectDirBar(Composite container) {
-		text = new Text(container, SWT.BORDER);
-		text.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updatePageComplete();
-			}
-		});
-
-		final Button browseButton = new Button(container, SWT.NONE);
-		browseButton.setText(BUTTON_TEXT);
-		browseButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				String path = browse();
-				if (path != null)
-					text.setText(path);
-				updatePageComplete();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-	}
-
-	private void createDetails(Composite container) {
-		details = new Label(container, SWT.WRAP);
-		details.setText("");
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 2;
-		details.setLayoutData(data); 
-	}
-	
-	private void createUninstallButton(Composite container)
-	{
-		uninstallButton = new Button(container, SWT.NONE);
-		uninstallButton.setText("Uninstall..");
-		
-	}
-
-	public void addUninstallSelectionListener(SelectionListener listener)
-	{
-		uninstallButton.addSelectionListener(listener);
-	} 
-	
-	public void setVisibleUninstallButton(boolean visible)
-	{
-		uninstallButton.setVisible(visible);
-	}
-	/**
-	 * Set the explainatory text that appears in the wizard page below the select field
-	 *  
-	 * @param text the details
-	 */
-	public void setDetails(String text) {
-		details.setText(text != null ? text : "");
-	}
-	
-	/**
-	 * Answer the installation directory. Cannot be called before controls are created or
-	 * after controls are disposed.
-	 * 
-	 * @return the installation directory selected by the user
-	 */
-	public String getInstallDir() {
-		return text.getText().trim();
-	}
-
-	/**
-	 * Set the installation directory. Cannot be called before controls are created or
-	 * after controls are disposed.
-	 * 
-	 * @param pathString the installation directory
-	 */
-	public void setInstallDir(String pathString) {
-		text.setText(pathString != null ? pathString.trim() : "");
-	}
-	
-	/**
-	 * Prompt the user for an installation location.
-	 * 
-	 * @return the installation location or <code>null</code> if canceled by the user
-	 */
-	protected String browse() {
-		DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
-		dialog.setText(DIALOG_TEXT);
-		dialog.setMessage(DIALOG_MESSAGE);
-		String path = dialog.open();
-		return path;
-	}
-	
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-	
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		text.setFocus();
-		text.setSelection(0,text.getText().length());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ScrollableTextPage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ScrollableTextPage.java
deleted file mode 100644
index 80cd6c4..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/ScrollableTextPage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * A simple page containing a single text control used for displaying a basic message to
- * the user.
- */
-public class ScrollableTextPage extends InstallPage
-{
-	private StyledText label;
-
-	public ScrollableTextPage(IWizardStep step, String pageName) {
-		super(step, pageName);
-	}
-
-	public ScrollableTextPage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final FillLayout fillLayout = new FillLayout();
-		fillLayout.marginHeight = 10;
-		fillLayout.marginWidth = 15;
-		container.setLayout(fillLayout);
-
-		label = new StyledText(container, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP );		
-		label.setEditable(false);
-		label.setWordWrap(true);
-		label.setLayoutData(new GridData( GridData.FILL, GridData.FILL, true, true));
-
-		setControl(container);
-	}
-	
-	/**
-	 * Set the text to be displayed. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String message
-	 */
-	public void setText(String message) {
-		if(message == null)
-			message = "ScrollableTextPage: setText(null), please check installer code";
-		label.setText(message);
-	}
-	
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		label.setFocus();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/SelectInstallTypePage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/SelectInstallTypePage.java
deleted file mode 100644
index 5b24cc1..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/SelectInstallTypePage.java
+++ /dev/null
@@ -1,296 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.epp.installer.core.InstallType;
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-
-/**
- * Wizard page prompting the user to choose an installation type
- */
-public class SelectInstallTypePage extends InstallPage
-{
-	class InstallTypeControlListenerEvent {
-		public boolean selection;
-
-		InstallTypeControlListenerEvent(boolean selection) {
-			this.selection = selection;
-		}
-	};
-
-	abstract class InstallTypeControlListener {
-		abstract void widgetSelected(InstallTypeControlListenerEvent e);
-	};
-	
-	/**
-	 * Represents a selectable control with information about given Installation type
-	 */
-	class InstallTypeControl {
-		
-		/**
-		 * Controls
-		 */
-		private Composite container;
-		private Label textLabel;
-		private Label imageLabel;
-		private Button button;
-		
-		/**
-		 * Listeners
-		 */
-		private ArrayList listeners = new ArrayList();
-		
-		private void notifyAllListeners(InstallTypeControlListenerEvent e) {
-			Iterator iter = listeners.iterator();
-			if (iter.hasNext()) {
-				InstallTypeControlListener listener = (InstallTypeControlListener)iter.next();
-				listener.widgetSelected(e);
-			}
-		}
-		
-		/**
-		 * Register listener
-		 * 
-		 * @param listener
-		 */
-		public void addListener(InstallTypeControlListener listener) {
-			listeners.add(listener);
-		}
-		
-		public InstallTypeControl(Composite parent, String buttonText, String descriptionText, Image image) {
-			createControl(parent, buttonText, descriptionText, image);
-		}
-		public InstallTypeControl(Composite parent, InstallType entity) {
-			Image image = null;
-			if( entity.getImage() instanceof Image ) {
-				image = (Image)entity.getImage();
-			}
-			createControl(parent, entity.getTitle(), entity.getDescription(), image);
-		}
-
-		/**
-		 * Create contents of control
-		 * 
-		 * @param parent
-		 * @param buttonText
-		 * @param descriptionText
-		 * @param image
-		 */
-		private void createControl(Composite parent, String buttonText, String descriptionText, Image image) {
-			container = parent;
-			
-			button = new Button(container, SWT.RADIO);
-			GridData gd = new GridData();
-			gd.horizontalSpan = 2;
-			button.setLayoutData(gd);
-			button.setText(buttonText);
-			button.addSelectionListener(new SelectionListener() {
-
-				public void widgetSelected(SelectionEvent e) {
-					notifyAllListeners(new InstallTypeControlListenerEvent(getSelection()));
-				}
-
-				public void widgetDefaultSelected(SelectionEvent e) {
-					widgetSelected(e);
-				}
-				
-			});
-
-			imageLabel = new Label(container, SWT.NONE);
-			if (image != null) {
-				imageLabel.setImage(image);
-			}
-			
-			textLabel = new Label(container, SWT.WRAP);
-			textLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			textLabel.setText(descriptionText);
-		}
-		
-		/**
-		 * Set selection of control
-		 * 
-		 * @param flag
-		 */
-		public void setSelection(boolean flag) {
-			button.setSelection(flag);
-		}
-		
-		/**
-		 * Answers whether control is selected or not 
-		 * 
-		 * @return
-		 */
-		public boolean getSelection() {
-			return button.getSelection();
-		}
-
-		public void setFocus() {
-			button.setFocus();
-		}
-	}
-
-	/**
-	 * Represents a list of selectable install type controls.   
-	 */
-	class InstallTypeListControl {
-
-		private Composite container;
-		private HashMap controls = new HashMap();
-		
-		private InstallType selectedEntity;
-		
-		public InstallTypeListControl(Composite parent, Collection entityList) {
-			createControl(parent, entityList);
-		}
-
-		private void createControl(Composite parent, Collection entityList) {
-			container = parent;			
-			container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			
-			if (entityList != null) {
-				addAll(entityList);
-			}
-		}
-
-		public void add(final InstallType entity) {
-			InstallTypeControl ptc = new InstallTypeControl(container, entity);
-			ptc.addListener(new InstallTypeControlListener() {
-				void widgetSelected(InstallTypeControlListenerEvent e) {
-					selectedEntity = entity;
-					updatePageComplete();
-				}
-				
-			});
-			controls.put(entity, ptc);
-		}
-		public void addAll(Collection entities) {
-			Iterator iter = entities.iterator();
-			if (iter.hasNext()) {
-				InstallType entity = (InstallType)iter.next();
-				add(entity);
-				setSelection(entity);
-			}
-			while (iter.hasNext()) {
-				add((InstallType)iter.next());
-			}
-		}
-		
-		/**
-		 * 
-		 * @param entity Entity to be selected, if <code>null</code> will unselect all
-		 */
-		public void setSelection(InstallType entity) {
-			if (entity != null) {
-				if (controls.containsKey(entity)) {
-					if (selectedEntity != null) {
-						InstallTypeControl ptc = (InstallTypeControl)controls.get(selectedEntity);
-						ptc.setSelection(false);
-					}
-					InstallTypeControl ptc = (InstallTypeControl)controls.get(entity);
-					ptc.setSelection(true);
-					selectedEntity = entity;
-				}
-			} else {
-				if (selectedEntity != null) {
-					InstallTypeControl ptc = (InstallTypeControl)controls.get(selectedEntity);
-					ptc.setSelection(false);
-				}
-			}
-		}
-		
-		public InstallType getSelection() {
-			return selectedEntity;
-		}
-		public InstallTypeControl get(InstallType entity) {
-			return (InstallTypeControl)(controls.get(entity));
-		}
-
-		public void setFocus() {
-			InstallType entity = getSelection();
-			if (entity != null) {
-				InstallTypeControl ptc = (InstallTypeControl)controls.get(entity);
-				ptc.setFocus();
-			}
-		}
-	}
-	
-	private InstallTypeListControl entityContainer;
-
-	public SelectInstallTypePage(IWizardStep step, String pageName) {
-		super(step, pageName);
-	}
-
-	public SelectInstallTypePage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.marginHeight = 10;
-		gridLayout.marginWidth = 15;
-		gridLayout.numColumns = 2;
-		container.setLayout(gridLayout);
-		setControl(container);
-		
-		entityContainer = new InstallTypeListControl(container, null);
-				
-		updatePageComplete();
-	}
-
-	public InstallType getSelectedInstallType() {
-		if (entityContainer == null) {
-			return null;
-		}
-		return entityContainer.getSelection();
-	}
-
-	public String getSelectedInstallTypeName() {
-		InstallType entity = getSelectedInstallType();
-		if (entity == null) {
-			return "";
-		}
-		return entity.getName();
-	}
-	
-	public void addInstallTypes(Collection types) {
-		entityContainer.addAll(types);
-	}
-
-	public void addInstallType(InstallType type) {
-		entityContainer.add(type);
-	}
-
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		entityContainer.setFocus();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/WarningPage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/WarningPage.java
deleted file mode 100644
index 9a82653..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/pages/WarningPage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.pages;
-
-import org.eclipse.epp.installer.ui.IWizardStep;
-import org.eclipse.epp.installer.ui.InstallPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * A simple page containing a single text control used for displaying warnings to
- * the user.
- */
-public class WarningPage extends InstallPage
-{
-	private StyledText label;
-
-	public WarningPage(IWizardStep step, String pageName) {
-		super(step, pageName);
-	}
-
-	public WarningPage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(step, pageName, title, titleImage);
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final FillLayout fillLayout = new FillLayout();
-		fillLayout.marginHeight = 10;
-		fillLayout.marginWidth = 15;
-		container.setLayout(fillLayout);
-
-		label = new StyledText(container, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP );		
-		label.setEditable(false);
-		label.setWordWrap(true);
-		label.setLayoutData(new GridData( GridData.FILL, GridData.FILL, true, true));
-
-		setControl(container);
-	}
-	
-	/**
-	 * Set the text to be displayed. 
-	 * 
-	 * Must be called after the wizard page content has been created.
-	 * 
-	 * @param String message
-	 */
-	public void setText(String message) {
-		if(message == null)
-			message = "WarningPage: setText(null), please check installer code";
-		label.setText(message);
-	}
-	
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setDefaultFocus();
-	}
-
-	/**
-	 * Focus on default element
-	 */
-	public void setDefaultFocus() {
-		label.setFocus();
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CheckAdminPrivilegesWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CheckAdminPrivilegesWizardStep.java
deleted file mode 100644
index 5496e82..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CheckAdminPrivilegesWizardStep.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-
-public class CheckAdminPrivilegesWizardStep extends
-		ScrollablePromptUserWizardStep {
-
-	public CheckAdminPrivilegesWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	public void aboutToShow() {
-		//TODO there is a bug - update page complete not called on the first page?
-		updatePageComplete();
-		super.aboutToShow();
-	}
-	
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChoiceWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChoiceWizardStep.java
deleted file mode 100644
index 3f5a02c..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChoiceWizardStep.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ChoiceStep;
-import org.eclipse.epp.installer.internal.ui.pages.ChoicePage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ChoiceWizardStep extends WizardStep {
-
-	public ChoiceWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new ChoicePage(this);
-	}
-		
-	public void updatePageComplete() {
-		ChoicePage page = (ChoicePage) getPage();
-		ChoiceStep step = (ChoiceStep) getInstallStep();
-
-		updatePageComplete(Status.OK_STATUS);
-
-		if (step.getOptionName() != null) {
-			step.getOptions().set(
-					step.getOptionName(),
-					page.getChoice() ? step.getAcceptString() : step
-							.getDeclineString());
-		}
-	}
-
-	public void aboutToShow() {
-		super.aboutToShow();
-
-		ChoicePage page = (ChoicePage) getPage();
-		ChoiceStep step = (ChoiceStep) getInstallStep();
-
-		page.setChoiceText(step.getChoiceText());
-	}
-	
-	public void init() {
-		ChoicePage page = (ChoicePage) getPage();
-		ChoiceStep step = (ChoiceStep) getInstallStep();
-
-		page.setChoiceText(step.getChoiceText());
-		page.setAcceptText(step.getAcceptText());
-		page.setDeclineText(step.getDeclineText());
-		
-		page.setContinueOnDecline(step.getContinueOnDecline());
-		page.setDefaultChoice(step.getDefaultChoice());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChooseLocationWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChooseLocationWizardStep.java
deleted file mode 100644
index bacaecb..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ChooseLocationWizardStep.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.InstallOptions;
-import org.eclipse.epp.installer.core.Variables;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ChooseLocationStep;
-import org.eclipse.epp.installer.internal.ui.WizardInstaller;
-import org.eclipse.epp.installer.internal.ui.pages.InstallDirPage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ChooseLocationWizardStep extends WizardStep {
-
-	private static final String ALREADY_EXISTS_IN_SELECTED_PATH = "A product found in selected path. To uninstall it press \"Uninstall..\"";
-	private static final String CANT_INSTALL_IN_SELECTED_PATH = "Can't install in selected path. Product already installed in this path. To uninstall press \"Uninstall\"";
-	private static final String CANT_UNINSTALL_OLD_VERSION = "Product already installed in this path, but uninstallation has failed to complete or was terminated.";
-	
-	private static final boolean ALLOW_OVERWRITE = false;
-	
-	private boolean canShowUpdateDialog;
-	private InstallDirPage page;
-	boolean showAlreadyInstalledWarning;
-
-	public ChooseLocationWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		page  =new InstallDirPage(this); 
-		return page;
-	}
-	
-	public void aboutToShow() {
-		canShowUpdateDialog = true;
-		showAlreadyInstalledWarning = !getInstallStep().getOptions().getBoolean(ChooseLocationStep.OPTION_SUPPRESS_ALREADY_INSTALLED_WARNING);
-		updatePageComplete();
-	}
-	
-	public void updatePageComplete() {
-		//InstallDirPage page = (InstallDirPage) getPage();
-		IStatus status = ChooseLocationStep.validatePath(page.getInstallDir());
-		if (status.getSeverity() == IStatus.OK && canShowUpdateDialog) {
-			if(showAlreadyInstalledWarning && ChooseLocationStep.isAlreadyInstalled(page.getInstallDir())) {
-				page.setVisibleUninstallButton(true);
-				if(getInstallStep().getOptions().isAllowOverwrite())
-					status = new Status(IStatus.WARNING, WizardInstaller.PLUGIN_ID, 0, ALREADY_EXISTS_IN_SELECTED_PATH, null);
-				else
-					status = new Status(IStatus.ERROR, WizardInstaller.PLUGIN_ID, 0, CANT_INSTALL_IN_SELECTED_PATH, null);
-			}else
-			{
-				page.setVisibleUninstallButton(false);
-			}
-		}
-		
-		updatePageComplete(status);
-		getInstallStep().getOptions().set(
-				InstallOptions.OPTION_INSTALL_DIR, page.getInstallDir());
-	}	
-
-	public void init() {
-		//InstallDirPage page = (InstallDirPage) getPage();
-		ChooseLocationStep step = (ChooseLocationStep) getInstallStep();
-		page.setInstallDir( Variables.resolve(step.getOptions().getString(
-				InstallOptions.OPTION_INSTALL_DIR), step.getOptions()) );
-		page.setDetails(step.getDetails());
-		page.addUninstallSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				ChooseLocationStep.runUninstall(page.getInstallDir());
-				updatePageComplete();
-				
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-				
-			}
-		});
-		page.setVisibleUninstallButton(false);
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CustomizeWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CustomizeWizardStep.java
deleted file mode 100644
index 01027ac..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/CustomizeWizardStep.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.Context;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.CustomizeStep;
-import org.eclipse.epp.installer.internal.ui.pages.CustomizePage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class CustomizeWizardStep extends WizardStep {
-
-	public CustomizeWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new CustomizePage(this, "customizePage");
-	}
-
-	public void updatePageComplete() {
-		CustomizePage page = (CustomizePage) getPage();
-		CustomizeStep step = (CustomizeStep) getInstallStep();
-
-		updatePageComplete(Status.OK_STATUS);
-
-		ArrayList selectedOptions = new ArrayList(page.getSelectedOptionList());
-		if (selectedOptions.size() == 0) {
-			updatePageComplete(new Status(IStatus.ERROR, Context.PLUGIN_ID, 0,
-					"Select at least one component", null));
-		} else {
-			step.updateSelectedOptions(selectedOptions);
-			updatePageComplete(Status.OK_STATUS);
-		}
-	}
-
-	public void init() {
-		CustomizePage page = (CustomizePage) getPage();
-		CustomizeStep step = (CustomizeStep) getInstallStep();
-		page.setLabelText(step.getText());
-		page.setOptionList(step.getCustomizeOptions());
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/PromptUserWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/PromptUserWizardStep.java
deleted file mode 100644
index 64c0852..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/PromptUserWizardStep.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.PromptUserStep;
-import org.eclipse.epp.installer.internal.ui.pages.BasicTextPage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class PromptUserWizardStep extends WizardStep {
-
-	public PromptUserWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new BasicTextPage(this, "verifyPage");
-	}
-
-	public void aboutToShow() {
-		super.aboutToShow();
-		BasicTextPage page = (BasicTextPage) getPage();
-		PromptUserStep step = (PromptUserStep) getInstallStep();
-		page.setText(step.getText());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/RunOperationsWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/RunOperationsWizardStep.java
deleted file mode 100644
index 65262fb..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/RunOperationsWizardStep.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.InstallOperation;
-import org.eclipse.epp.installer.core.operations.UndoInstallOperation;
-import org.eclipse.epp.installer.core.steps.RunOperationsStep;
-import org.eclipse.epp.installer.internal.ui.WizardInstaller;
-import org.eclipse.epp.installer.internal.ui.pages.InstallCodePage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class RunOperationsWizardStep extends WizardStep {
-
-	public RunOperationsWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new InstallCodePage(this, "installCode");
-	}
-
-	public void aboutToShow() {
-		super.aboutToShow();
-		final IStatus[] status = new IStatus[1];
-		IWizardContainer dialog = getPage().getWizard().getContainer();
-		RunOperationsStep step = (RunOperationsStep) getInstallStep();		
-		try {
-			dialog.run(true, true, getOperationRunnable(step.getRootOperation()));
-			status[0] = step.verifyStep();
-			
-		} catch(Exception e) {
-			status[0] = new Status(IStatus.ERROR, WizardInstaller.PLUGIN_ID, 0,
-					"error running operations", e);
-		}				
-		if(status[0].getSeverity() >= IStatus.ERROR) {
-			if(status[0].getSeverity() == IStatus.CANCEL ) {
-				/*updatePageComplete(new Status(IStatus.WARNING, WizardInstaller.PLUGIN_ID, 0,
-						"Install was canceled...", null));*/
-				IWizardPage page = this.getPage();
-				page.setDescription("Installing canceled.");
-			}
-			else {
-				updatePageComplete(status[0]);
-			}
-			if (step.canRollback()) {
-				InstallOperation rollback = new UndoInstallOperation(step.getInstaller().getInstallLog());
-				try {
-					dialog.run(true, false, getOperationRunnable(rollback));
-				}
-				catch (Exception e) {
-					updatePageComplete(new Status(IStatus.ERROR, WizardInstaller.PLUGIN_ID, 0,
-						"error running operations", e));
-					e.printStackTrace();
-				}
-			}
-		}
-		nextPage();
-	}	
-	
-	private void nextPage() {
-		IWizardContainer dialog = getPage().getWizard().getContainer();
-		if( dialog != null ) {
-			IWizardPage page = this.getPage();
-			if( page != null ) {
-				IWizardPage nextPage = page.getNextPage();
-				if( nextPage != null ) {
-					dialog.showPage(nextPage);
-				}
-			}
-		}
-	}
-
-	private IRunnableWithProgress getOperationRunnable(final InstallOperation operation) {
-		return new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-					throws InvocationTargetException, InterruptedException {
-				RunOperationsStep step = (RunOperationsStep) getInstallStep();
-				step.run(operation, monitor);
-			}
-		};		
-	}
-		
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ScrollablePromptUserWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ScrollablePromptUserWizardStep.java
deleted file mode 100644
index 4a4a509..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ScrollablePromptUserWizardStep.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ScrollablePromptUserStep;
-import org.eclipse.epp.installer.internal.ui.pages.ScrollableTextPage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ScrollablePromptUserWizardStep extends WizardStep {
-
-	public ScrollablePromptUserWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new ScrollableTextPage(this, "textPage");
-	}
-
-	public void aboutToShow() {
-		super.aboutToShow();
-		ScrollableTextPage page = (ScrollableTextPage) getPage();
-		ScrollablePromptUserStep step = (ScrollablePromptUserStep) getInstallStep();
-		page.setText(step.getText());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/SelectInstallTypeWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/SelectInstallTypeWizardStep.java
deleted file mode 100644
index 865d43d..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/SelectInstallTypeWizardStep.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.SelectInstallTypeStep;
-import org.eclipse.epp.installer.internal.ui.pages.SelectInstallTypePage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class SelectInstallTypeWizardStep extends WizardStep {
-
-	public SelectInstallTypeWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		SelectInstallTypePage page = new SelectInstallTypePage(this, "installTypePage");
-		return page;
-	}
-
-	public void updatePageComplete() {
-		SelectInstallTypePage page = (SelectInstallTypePage) getPage();
-		SelectInstallTypeStep step = (SelectInstallTypeStep) getInstallStep();
-		
-		IStatus status = SelectInstallTypeStep.validateProductString(page.getSelectedInstallTypeName());
-		updatePageComplete(status);
-		step.updateOption(page.getSelectedInstallType());
-	}
-
-	public void init() {
-		SelectInstallTypePage page = (SelectInstallTypePage) getPage();
-		SelectInstallTypeStep step = (SelectInstallTypeStep) getInstallStep();
-		page.addInstallTypes(step.getInstallTypes());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ShowWarningsWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ShowWarningsWizardStep.java
deleted file mode 100644
index 00705f2..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/internal/ui/steps/ShowWarningsWizardStep.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.epp.installer.internal.ui.steps;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.steps.ShowWarningsStep;
-import org.eclipse.epp.installer.internal.ui.pages.WarningPage;
-import org.eclipse.epp.installer.ui.WizardStep;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public class ShowWarningsWizardStep extends WizardStep {
-
-	public ShowWarningsWizardStep(IInstallStep step) {
-		super(step);
-	}
-
-	protected WizardPage createPage() {
-		return new WarningPage(this, "textPage");
-	}
-
-	public void aboutToShow() {
-		super.aboutToShow();
-		WarningPage page = (WarningPage) getPage();
-		ShowWarningsStep step = (ShowWarningsStep) getInstallStep();
-		page.setText(step.getWarningText());
-	}
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/IWizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/IWizardStep.java
deleted file mode 100644
index d34c6ea..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/IWizardStep.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.epp.installer.ui;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * A wizard based installer will first check that the install step implements this
- * interface and then call {@link #addPages(Wizard)} once for wizard page(s) to be
- * created.
- */
-public interface IWizardStep {
-
-	/**
-	 * Return associated install step instance.
-	 * @return associated install step.
-	 */
-	IInstallStep getInstallStep();
-	
-	/**
-	 * Called once so that the install prompt can add page to the wizard. Typically, the
-	 * receiver adds subclasses of {@link InstallPage} to the wizard and registers an
-	 * {@link InstallPageListener} with the page to intialize and collection information
-	 * from the page
-	 * 
-	 * @param wizard the wizard to contain the page
-	 */
-	void addPage(Wizard wizard);
-
-	/**
-	 * Answer the first wizard page (typically the only wizard page)
-	 * associated with this step
-	 * 
-	 * @return the page (not <code>null</code>)
-	 */
-	IWizardPage getPage();
-		
-	/**
-	 * Called immediately after the page controls are made visible and before
-	 * {@link #aboutToShow()}. Typically, operations set the initial page state based
-	 * upon the settings in the install options.
-	 */
-	void init();
-
-	/**
-	 * Called each time immediately before a page is made visible. This is a chance for
-	 * the operation to adjust the state of that page before it is shown to the user.
-	 */
-	void aboutToShow();
-
-	/**
-	 * Called after the controls are created and during user input to update whether the
-	 * page content is valid and complete. Typically implementors call such methods as
-	 * {@link WizardPage#setPageComplete(boolean)}, {@link WizardPage#setMessage(String)}
-	 * and {@link WizardPage#setErrorMessage(String)} to adjust the page state.
-	 * 
-	 * Also this is a good place to  extract information from the wizard page and and place it into the install options.
-	 */
-	void updatePageComplete();
-	
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallPage.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallPage.java
deleted file mode 100644
index cf611c0..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallPage.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.eclipse.epp.installer.ui;
-
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.epp.installer.core.model.Installer;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * A concrete wizard page that may be extended by clients. Typically, wizard pages should
- * not directly interact with
- * {@link org.eclipse.epp.installer.ui.IWizardStep}, but
- * rather provide the appropriate accessor methods so that the install prompt may get
- * information from the install options and set the recevier's state and get information
- * from the receiver to be cached in the install options. Typically, operations call
- * {@link #setListener(InstallPageListener)} so that they can receive page state change
- * notifications to initialize and gather information from the page.
- */
-public abstract class InstallPage extends WizardPage
-{
-	private final IWizardStep step;
-
-	/**
-	 * Flag indicating whether the listener's {@link InstallPageListener#init()} method
-	 * has been called.
-	 */
-	private boolean initWasCalled = false;
-
-	protected InstallPage(IWizardStep step, String pageName) {
-		this(step, pageName, step.getInstallStep().getTitle(), null);
-	}
-
-	protected InstallPage(IWizardStep step, String pageName, String title, ImageDescriptor titleImage) {
-		super(pageName, title, titleImage);
-		this.step = step;
-		setDescription(step.getInstallStep().getDescription());
-	}
-
-	public IWizardStep getAdapter() {
-		return step;
-	}
-
-	/**
-	 * Override the superclass implementation to query the installer as to which
-	 * page is next. Subclasses may override this method to return a different
-	 * page, but typically
-	 * {@link com.instantiations.installer.provisional.ui.InstallStepListener#adjustNextStep(IInstallStep)
-	 * is used to adjust the next page instead.
-	 */
-	public IWizardPage getNextPage() {
-		
-		IInstallStep currentStep = getAdapter().getInstallStep();
-		Installer installer = currentStep.getInstaller();
-		
-		IInstallStep nextStep = installer.getNextStep(currentStep);
-		if (nextStep == null) {
-			return null;
-		}
-		return ((IWizardStep) (nextStep
-				.getAdapter(IWizardStep.class))).getPage();
-	}
-
-	/**
-	 * Override the superclass implementation to return <code>null</code> under certain
-	 * circumstances indicating that there is no previous page. Once we have
-	 * installed the code, there is no turning back.
-	 */
-	public IWizardPage getPreviousPage() {
-		
-		IInstallStep currentStep = getAdapter().getInstallStep();
-		if( !currentStep.canBack() ) {
-			return null;
-		}
-		
-		Installer installer = currentStep.getInstaller();
-		
-		IInstallStep prevStep = installer.getPrevStep(currentStep);
-		if (prevStep == null)
-			return null;
-		return ((IWizardStep) (prevStep
-				.getAdapter(IWizardStep.class))).getPage();
-	}
-	
-	/**
-	 * This method overrides the superclass implementation to call
-	 * {@link InstallPageListener#aboutToShow(InstallPage)} when this page is about to be
-	 * made visible and {@link InstallPageListener#aboutToHide(InstallPage)} when this
-	 * page is about to be hidden.
-	 * 
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		initPage();
-		super.setVisible(visible);
-	}
-
-	/**
-	 * Should be called by subclasses after the controls are created and during user input
-	 * to update whether the page content is valid and complete. This method notifies the
-	 * associated listener, giving it a chance to weigh in on page completion. Typically
-	 * subclasses and/or the associated listener call such methods as
-	 * {@link WizardPage#setPageComplete(boolean)}, {@link WizardPage#setMessage(String)}
-	 * and {@link WizardPage#setErrorMessage(String)} to adjust the page state.
-	 * <p>
-	 * Subclasses may extend, calling this superclass implementation only if the subclass
-	 * implementation determines that the page content is valid and complete.
-	 */
-	public void updatePageComplete() {
-		initPage();
-		getAdapter().updatePageComplete();
-	}
-
-	/**
-	 * Called by {@link #setVisible(boolean)} and {@link #updatePageComplete()} to
-	 * initialize the page as necessary.
-	 */
-	private void initPage() {
-		if (!initWasCalled) {
-			initWasCalled = true;
-			getAdapter().init();
-		}
-	}
-
-	
-}
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallerErrorDialog.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallerErrorDialog.java
deleted file mode 100644
index 9e677d1..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/InstallerErrorDialog.java
+++ /dev/null
@@ -1,579 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 		IBM Corporation - initial API and implementation 
- * 		Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog font should
- * 			be activated and used by other components.
- *******************************************************************************/
-package org.eclipse.epp.installer.ui;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IconAndMessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog to display one or more errors to the user, as contained in an
- * <code>IStatus</code> object. If an error contains additional detailed
- * information then a Details button is automatically supplied, which shows or
- * hides an error details viewer when pressed by the user.
- * 
- * @see org.eclipse.core.runtime.IStatus
- */
-public class InstallerErrorDialog extends IconAndMessageDialog {
-	/**
-	 * Static to prevent opening of error dialogs for automated testing.
-	 */
-	public static boolean AUTOMATED_MODE = false;
-
-	/**
-	 * Reserve room for this many lines of text.
-	 */
-	private static final int LABEL_LINE_COUNT = 7;
-
-	/**
-	 * The Details button.
-	 */
-	private Button detailsButton;
-
-	/**
-	 * The title of the dialog.
-	 */
-	private String title;
-
-	/**
-	 * The SWT list control that displays the error details.
-	 */
-	private StyledText label;
-
-	/**
-	 * Indicates whether the error details viewer is currently created.
-	 */
-	private boolean labelCreated = false;
-
-	/**
-	 * Filter mask for determining which status items to display.
-	 */
-	private int displayMask = 0xFFFF;
-
-	/**
-	 * The main status object.
-	 */
-	private IStatus status;
-
-	/**
-	 * The current clipboard. To be disposed when closing the dialog.
-	 */
-	private Clipboard clipboard;
-
-	/**
-	 * Creates an error dialog. Note that the dialog will have no visual
-	 * representation (no widgets) until it is told to open.
-	 * <p>
-	 * Normally one should use <code>openError</code> to create and open one
-	 * of these. This constructor is useful only if the error object being
-	 * displayed contains child items <it>and </it> you need to specify a mask
-	 * which will be used to filter the displaying of these children.
-	 * </p>
-	 * 
-	 * @param parentShell
-	 *            the shell under which to create this dialog
-	 * @param dialogTitle
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @param displayMask
-	 *            the mask to use to filter the displaying of child items, as
-	 *            per <code>IStatus.matches</code>
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	public InstallerErrorDialog(Shell parentShell, String dialogTitle,
-			String message, IStatus status, int displayMask) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.title = dialogTitle == null ? JFaceResources
-				.getString("Problem_Occurred") : //$NON-NLS-1$
-				dialogTitle;
-		this.message = message == null ? status.getMessage()
-				: JFaceResources
-						.format(
-								"Reason", new Object[] { message, status.getMessage() }); //$NON-NLS-1$
-		this.status = status;
-		this.displayMask = displayMask;
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog. Handles the pressing of the Ok
-	 * or Details button in this dialog. If the Ok button was pressed then close
-	 * this dialog. If the Details button was pressed then toggle the displaying
-	 * of the error details area. Note that the Details button will only be
-	 * visible if the error being displayed specifies child details.
-	 */
-	protected void buttonPressed(int id) {
-		if (id == IDialogConstants.DETAILS_ID) {
-			// was the details button pressed?
-			toggleDetailsArea();
-		} else {
-			super.buttonPressed(id);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(title);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Details buttons
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-				true);
-		if (shouldShowDetailsButton()) {
-			detailsButton = createButton(parent, IDialogConstants.DETAILS_ID,
-					IDialogConstants.SHOW_DETAILS_LABEL, false);
-		}
-	}
-
-	/**
-	 * This implementation of the <code>Dialog</code> framework method creates
-	 * and lays out a composite and calls <code>createMessageArea</code> and
-	 * <code>createCustomArea</code> to populate it. Subclasses should
-	 * override <code>createCustomArea</code> to add contents below the
-	 * message.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		createMessageArea(parent);
-		// create a composite with standard margins and spacing
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		GridData childData = new GridData(GridData.FILL_BOTH);
-		childData.horizontalSpan = 2;
-		composite.setLayoutData(childData);
-		composite.setFont(parent.getFont());
-		return composite;
-	}
-
-	/*
-	 * @see IconAndMessageDialog#createDialogAndButtonArea(Composite)
-	 */
-	protected void createDialogAndButtonArea(Composite parent) {
-		super.createDialogAndButtonArea(parent);
-		if (this.dialogArea instanceof Composite) {
-			// Create a label if there are no children to force a smaller layout
-			Composite dialogComposite = (Composite) dialogArea;
-			if (dialogComposite.getChildren().length == 0)
-				new Label(dialogComposite, SWT.NULL);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-	 */
-	protected Image getImage() {
-		if (status != null) {
-			if (status.getSeverity() == IStatus.WARNING)
-				return getWarningImage();
-			if (status.getSeverity() == IStatus.INFO)
-				return getInfoImage();
-		}
-		// If it was not a warning or an error then return the error image
-		return getErrorImage();
-	}
-
-	/**
-	 * Create this dialog's drop-down list component.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @return the drop-down list component
-	 */
-	protected StyledText createLabel(Composite parent) {
-		// create the list
-		label = new StyledText(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.MULTI);
-
-		populateLabel(label);
-
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL
-				| GridData.GRAB_VERTICAL);
-		data.heightHint = label.getLineHeight() * LABEL_LINE_COUNT;
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		label.setFont(parent.getFont());
-		labelCreated = true;
-		Menu copyMenu = new Menu(label);
-		MenuItem copyItem = new MenuItem(copyMenu, SWT.NONE);
-		copyItem.addSelectionListener(new SelectionListener() {
-			/*
-			 * @see SelectionListener.widgetSelected (SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-
-			/*
-			 * @see SelectionListener.widgetDefaultSelected(SelectionEvent)
-			 */
-			public void widgetDefaultSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-		});
-		copyItem.setText(JFaceResources.getString("copy")); //$NON-NLS-1$
-		label.setMenu(copyMenu);
-		return label;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	/**
-	 * Extends <code>Window.open()</code>. Opens an error dialog to display
-	 * the error. If you specified a mask to filter the displaying of these
-	 * children, the error dialog will only be displayed if there is at least
-	 * one child status matching the mask.
-	 */
-	public int open() {
-		if (!AUTOMATED_MODE && shouldDisplay(status, displayMask)) {
-			return super.open();
-		}
-		setReturnCode(OK);
-		return OK;
-	}
-
-	/**
-	 * Opens an error dialog to display the given error. Use this method if the
-	 * error object being displayed does not contain child items, or if you wish
-	 * to display all such items without filtering.
-	 * 
-	 * @param parent
-	 *            the parent shell of the dialog, or <code>null</code> if none
-	 * @param dialogTitle
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @return the code of the button that was pressed that resulted in this
-	 *         dialog closing. This will be <code>Dialog.OK</code> if the OK
-	 *         button was pressed, or <code>Dialog.CANCEL</code> if this
-	 *         dialog's close window decoration or the ESC key was used.
-	 */
-	public static int openError(Shell parent, String dialogTitle,
-			String message, IStatus status) {
-		return openError(parent, dialogTitle, message, status, IStatus.OK
-				| IStatus.INFO | IStatus.WARNING | IStatus.ERROR);
-	}
-
-	/**
-	 * Opens an error dialog to display the given error. Use this method if the
-	 * error object being displayed contains child items <it>and </it> you wish
-	 * to specify a mask which will be used to filter the displaying of these
-	 * children. The error dialog will only be displayed if there is at least
-	 * one child status matching the mask.
-	 * 
-	 * @param parentShell
-	 *            the parent shell of the dialog, or <code>null</code> if none
-	 * @param title
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @param displayMask
-	 *            the mask to use to filter the displaying of child items, as
-	 *            per <code>IStatus.matches</code>
-	 * @return the code of the button that was pressed that resulted in this
-	 *         dialog closing. This will be <code>Dialog.OK</code> if the OK
-	 *         button was pressed, or <code>Dialog.CANCEL</code> if this
-	 *         dialog's close window decoration or the ESC key was used.
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	public static int openError(Shell parentShell, String title,
-			String message, IStatus status, int displayMask) {
-		InstallerErrorDialog dialog = new InstallerErrorDialog(parentShell,
-				title, message, status, displayMask);
-		return dialog.open();
-	}
-
-	/**
-	 * Populates the list using this error dialog's status object. This walks
-	 * the child static of the status object and displays them in a list. The
-	 * format for each entry is status_path : status_message If the status's
-	 * path was null then it (and the colon) are omitted.
-	 * 
-	 * @param listToPopulate
-	 *            The list to fill.
-	 */
-	private void populateLabel(StyledText labelToPopulate) {
-		populateLabel(labelToPopulate, status/*
-												 * , 0,
-												 * shouldIncludeTopLevelErrorInDetails
-												 */);
-	}
-
-	private String getStackTraceMessage(Throwable t) {
-		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-		t.printStackTrace(pw);
-		pw.flush();
-		sw.flush();
-		return sw.getBuffer().toString();
-	}
-
-	/**
-	 * Populate the list with the messages from the given status. Traverse the
-	 * children of the status deeply and also traverse CoreExceptions that
-	 * appear in the status.
-	 * 
-	 * @param listToPopulate
-	 *            the list to populate
-	 * @param buildingStatus
-	 *            the status being displayed
-	 * @param nesting
-	 *            the nesting level (increases one level for each level of
-	 *            children)
-	 * @param includeStatus
-	 *            whether to include the buildingStatus in the display or just
-	 *            its children
-	 */
-	private void populateLabel(StyledText labelToPopulate,
-			IStatus buildingStatus) {
-
-		if (!buildingStatus.matches(displayMask)) {
-			return;
-		}
-
-		Throwable t = buildingStatus.getException();
-		boolean isCoreException = t instanceof CoreException;
-		String stackMessage = null;
-
-		if (!isCoreException && t != null) {
-			stackMessage = getStackTraceMessage(t);
-		}
-
-		if (stackMessage != null) {
-			labelToPopulate.setText(stackMessage);
-		}
-
-		// Look for a nested core exception
-		if (isCoreException) {
-			CoreException ce = (CoreException) t;
-			IStatus eStatus = ce.getStatus();
-			// Only print the exception message if it is not contained in the
-			// parent message
-			if (message == null || message.indexOf(eStatus.getMessage()) == -1) {
-				populateLabel(labelToPopulate, eStatus);
-			}
-		}
-	}
-
-	/**
-	 * Returns whether the given status object should be displayed.
-	 * 
-	 * @param status
-	 *            a status object
-	 * @param mask
-	 *            a mask as per <code>IStatus.matches</code>
-	 * @return <code>true</code> if the given status should be displayed, and
-	 *         <code>false</code> otherwise
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	protected static boolean shouldDisplay(IStatus status, int mask) {
-		IStatus[] children = status.getChildren();
-		if (children == null || children.length == 0) {
-			return status.matches(mask);
-		}
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].matches(mask))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Toggles the unfolding of the details area. This is triggered by the user
-	 * pressing the details button.
-	 */
-	private void toggleDetailsArea() {
-		Point windowSize = getShell().getSize();
-		Point oldSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		if (labelCreated) {
-			label.dispose();
-			labelCreated = false;
-			detailsButton.setText(IDialogConstants.SHOW_DETAILS_LABEL);
-		} else {
-			label = createLabel((Composite) getContents());
-			detailsButton.setText(IDialogConstants.HIDE_DETAILS_LABEL);
-		}
-		Point newSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		getShell()
-				.setSize(
-						new Point(windowSize.x, windowSize.y
-								+ (newSize.y - oldSize.y)));
-	}
-
-	/**
-	 * Put the details of the status of the error onto the stream.
-	 * 
-	 * @param buildingStatus
-	 * @param buffer
-	 * @param nesting
-	 */
-	private void populateCopyBuffer(IStatus buildingStatus, StringBuffer buffer) {
-
-		if (!buildingStatus.matches(displayMask)) {
-			return;
-		}
-
-		Throwable t = buildingStatus.getException();
-		boolean isCoreException = t instanceof CoreException;
-		String stackMessage = null;
-
-		if (!isCoreException && t != null) {
-			stackMessage = getStackTraceMessage(t);
-		}
-
-		buffer.append(buildingStatus.getMessage());
-		if (stackMessage != null) {
-			buffer.append("\n"); //$NON-NLS-1$
-			buffer.append(stackMessage);
-		}
-	}
-
-	/**
-	 * Copy the contents of the statuses to the clipboard.
-	 */
-	private void copyToClipboard() {
-		if (clipboard != null)
-			clipboard.dispose();
-		StringBuffer statusBuffer = new StringBuffer();
-		populateCopyBuffer(status, statusBuffer);
-		clipboard = new Clipboard(label.getDisplay());
-		clipboard.setContents(new Object[] { statusBuffer.toString() },
-				new Transfer[] { TextTransfer.getInstance() });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (clipboard != null)
-			clipboard.dispose();
-		return super.close();
-	}
-
-	/**
-	 * Show the details portion of the dialog if it is not already visible. This
-	 * method will only work when it is invoked after the control of the dialog
-	 * has been set. In other words, after the <code>createContents</code>
-	 * method has been invoked and has returned the control for the content area
-	 * of the dialog. Invoking the method before the content area has been set
-	 * or after the dialog has been disposed will have no effect.
-	 * 
-	 * @since 3.1
-	 */
-	protected final void showDetailsArea() {
-		if (!labelCreated) {
-			Control control = getContents();
-			if (control != null && !control.isDisposed())
-				toggleDetailsArea();
-		}
-	}
-
-	/**
-	 * Return whether the Details button should be included. This method is
-	 * invoked once when the dialog is built. By default, the Details button is
-	 * only included if the status used when creating the dialog was a
-	 * multi-status or if the status contains an exception. Subclasses may
-	 * override.
-	 * 
-	 * @return whether the Details button should be included
-	 * @since 3.1
-	 */
-	protected boolean shouldShowDetailsButton() {
-		return status.isMultiStatus() || status.getException() != null;
-	}
-
-	/**
-	 * Set the status displayed by this error dialog to the given status. This
-	 * only affects the status displayed by the Details list. The message, image
-	 * and title should be updated by the subclass, if desired.
-	 * 
-	 * @param status
-	 *            the status to be displayed in the details list
-	 * @since 3.1
-	 */
-	protected final void setStatus(IStatus status) {
-		if (this.status != status) {
-			this.status = status;
-		}
-		if (labelCreated) {
-			repopulateLabel();
-		}
-	}
-
-	/**
-	 * Repopulate the supplied list widget.
-	 */
-	private void repopulateLabel() {
-		if (label != null && !label.isDisposed()) {
-			populateLabel(label);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/WizardStep.java b/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/WizardStep.java
deleted file mode 100644
index 344d3f6..0000000
--- a/plugins/org.eclipse.epp.installer.ui/src/org/eclipse/epp/installer/ui/WizardStep.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.eclipse.epp.installer.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.epp.installer.core.model.IInstallStep;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-
-
-/**
- * <p>
- * Copyright (c) 2006, Instantiations, Inc.<br>
- * All Rights Reserved
- */
-public abstract class WizardStep implements IWizardStep {
-
-	private IInstallStep step;
-	private WizardPage page;
-	
-	public WizardStep(IInstallStep step) {
-		this.step = step;
-	}
-	
-	/**
-	 * Return associated instal lstep. 
-	 * @return IInstallStep associated install step.
-	 */
-	public IInstallStep getInstallStep() {
-		return step;
-	}
-	
-	public IWizardPage getPage() {
-		return page;
-	}
-	
-	public void addPage(Wizard wizard) {
-		page = createPage();
-		wizard.addPage(page);
-	}
-	
-	protected abstract WizardPage createPage();
-
-	public void init() {		
-	}
-	
-	public void aboutToShow() {
-		getInstallStep().aboutToStep();
-	}
-	
-	protected void updatePageComplete(IStatus status) {		
-		if(status.getSeverity() == IStatus.INFO || status.getSeverity() == IStatus.WARNING) {
-			page.setErrorMessage(null);
-			page.setMessage(status.getMessage(), status.getSeverity());
-			page.setPageComplete(true);
-		}else
-		if(status.getSeverity() != IStatus.OK) {
-			page.setErrorMessage(status.getMessage());
-			page.setPageComplete(false);
-		} else {
-			page.setErrorMessage(null);
-			page.setMessage(null);
-			page.setPageComplete(true);			
-		}
-	}
-
-	public void updatePageComplete() {
-		IStatus status = getInstallStep().verifyStep();
-		updatePageComplete(status);
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.installer/.project b/plugins/org.eclipse.epp.installer/.project
deleted file mode 100644
index 1690422..0000000
--- a/plugins/org.eclipse.epp.installer/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.installer</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/.classpath b/plugins/org.eclipse.epp.sfx.archive.ant/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/.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/plugins/org.eclipse.epp.sfx.archive.ant/.project b/plugins/org.eclipse.epp.sfx.archive.ant/.project
deleted file mode 100644
index dcc4825..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.archive.ant</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/plugins/org.eclipse.epp.sfx.archive.ant/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.sfx.archive.ant/META-INF/MANIFEST.MF
deleted file mode 100644
index 224ddbe..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Ant Plug-in
-Bundle-SymbolicName: org.eclipse.epp.sfx.archive.ant;singleton:=true
-Bundle-Version: 1.0.0
-Require-Bundle: org.apache.ant,
- org.eclipse.epp.sfx.tools,
- org.eclipse.ant.core
-Bundle-Localization: plugin
-Bundle-ClassPath: archiveAntSupport.jar,
- templates/
-Export-Package: org.eclipse.epp.sfx.archive.ant
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build.properties b/plugins/org.eclipse.epp.sfx.archive.ant/build.properties
deleted file mode 100644
index 75c65a6..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               templates/,\
-               archiveAntSupport.jar
-source.archiveAntSupport.jar = src/
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build.xml b/plugins/org.eclipse.epp.sfx.archive.ant/build.xml
deleted file mode 100644
index 463ed44..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="SFX Archive Ant Task" default="main" basedir=".">
-
-  <!-- properties -->
-  <property environment="env"/>
-  <property name="eclipse.home" value="C:\eclipse-3.3RC4\eclipse"/>
-  <property name="src.dir" value="${basedir}/src"/>
-  <property name="tools.src.dir" value="${basedir}/../org.eclipse.epp.sfx.tools/src"/>
-  <property name="archive.src.dir" value="${basedir}/../org.eclipse.epp.sfx.archive/src"/>
-  <property name="core.src.dir" value="${basedir}/../org.eclipse.epp.installer.archive/src"/>
-  <property name="templates.dir" value="${basedir}/../org.eclipse.epp.sfx.tools"/>
-  <property name="lib.dir" value="${basedir}/lib"/>
-  <property name="build.dir" value="${basedir}/build"/>
-  <property name="result.jar.file" value="${lib.dir}/archive-ant-support-lib.jar"/>
-
-  <!-- Build classpath -->
-  <path id="classpath">
-    <fileset dir="${eclipse.home}/plugins" includes="**/*.jar"/>
-  </path>
-  <property name="build.classpath" refid="classpath"/>
-
-  <!-- Compiles source code -->
-  <target name="compile">
-    <mkdir dir="${build.dir}/classes"/>
-    <javac srcdir="${sources}"
-           destdir="${build.dir}/classes"
-           debug="on"
-           deprecation="on"
-           optimize="off"
-           includes="**">
-           <classpath refid="classpath"/>
-    </javac>
-  </target>
-
-  <!-- Makes jar -->
-  <target name="jar" depends="compile_all">
-    <jar jarfile="${result.jar.file}">
-      <fileset dir="${build.dir}/classes">
-        <include name="**/*.*"/>
-      </fileset>
-      <fileset dir="${templates.dir}">
-        <include name="templates/**/*.*"/>
-      </fileset>
-    </jar>
-  </target>
-
-  <target name="compile_main">
-    <antcall target="compile">
-	  <param name="sources" value="${src.dir}" />
-    </antcall>
-  </target>
-	
-  <target name="compile_tools">
-    <antcall target="compile">
-	  <param name="sources" value="${tools.src.dir}" />
-    </antcall>
-  </target>
-	
-  <target name="compile_archive">
-    <antcall target="compile">
-	  <param name="sources" value="${archive.src.dir}" />
-    </antcall>
-  </target>
-	
-  <target name="compile_core">
-    <antcall target="compile">
-	  <param name="sources" value="${core.src.dir}" />
-    </antcall>
-  </target>
-	
-  <target name="compile_all" depends="compile_core,compile_archive,compile_tools,compile_main">
-  </target>
-
-  <!-- Main -->
-  <target name="main" depends="clean,jar">
-  </target>
-
-  <!-- Cleans up generated stuff -->
-  <target name="clean">
-    <delete dir="${build.dir}"/>
-    <delete file="${result.jar.file}"/>
-  </target>
-
-</project>
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/ArchiveException.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/ArchiveException.class
deleted file mode 100644
index ddbda60..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/ArchiveException.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/Archives.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/Archives.class
deleted file mode 100644
index 0892300..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/Archives.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchive.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchive.class
deleted file mode 100644
index 7505f58..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchive.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveEntry.class
deleted file mode 100644
index 02a9f15..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveFactory.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveFactory.class
deleted file mode 100644
index a63945c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/archive/IArchiveFactory.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.class
deleted file mode 100644
index a7d35af..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/CheckAdminPrivilegesStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.class
deleted file mode 100644
index 9dbeddc..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/ExtendableInstallConfiguration.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IActionConstants.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IActionConstants.class
deleted file mode 100644
index 28e763b..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IActionConstants.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IConfigurationProvider.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IConfigurationProvider.class
deleted file mode 100644
index 22b95b5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IConfigurationProvider.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IErrorConstants.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IErrorConstants.class
deleted file mode 100644
index a92c981..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IErrorConstants.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IPlatform.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IPlatform.class
deleted file mode 100644
index ee98dd6..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/IPlatform.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallOptions.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallOptions.class
deleted file mode 100644
index f882164..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallOptions.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory$StepDefenition.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory$StepDefenition.class
deleted file mode 100644
index 1a0b90c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory$StepDefenition.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory.class
deleted file mode 100644
index 0ab32f9..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallStepFactory.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallType.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallType.class
deleted file mode 100644
index 9ee2057..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallType.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallerFactory.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallerFactory.class
deleted file mode 100644
index 7f1f2d8..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/InstallerFactory.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Platform.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Platform.class
deleted file mode 100644
index a08bd79..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Platform.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Variables.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Variables.class
deleted file mode 100644
index af2733a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/Variables.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.class
deleted file mode 100644
index 17b20d5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseInstallation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$1.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$1.class
deleted file mode 100644
index a51e560..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$1.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationDirComparator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationDirComparator.class
deleted file mode 100644
index 42ea058..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationDirComparator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationVersionComparator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationVersionComparator.class
deleted file mode 100644
index 7735c59..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator$EclipseInstallationVersionComparator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator.class
deleted file mode 100644
index fe4d964..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseLocator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseVersion.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseVersion.class
deleted file mode 100644
index 3b67791..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/eclipse/EclipseVersion.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Context.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Context.class
deleted file mode 100644
index f33435c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Context.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IInstallStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IInstallStep.class
deleted file mode 100644
index 966c7c5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IInstallStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IRollbackAction.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IRollbackAction.class
deleted file mode 100644
index a68f0d7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IRollbackAction.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISequence.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISequence.class
deleted file mode 100644
index f60da1c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISequence.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISingleton.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISingleton.class
deleted file mode 100644
index 3bc88ef..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/ISingleton.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IStepProcessor.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IStepProcessor.class
deleted file mode 100644
index 65ae757..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/IStepProcessor.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallOperation.class
deleted file mode 100644
index b4dcb10..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallStep.class
deleted file mode 100644
index 3aea2dd..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/InstallStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Installer.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Installer.class
deleted file mode 100644
index d3fa7ff..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/Installer.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SequentialOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SequentialOperation.class
deleted file mode 100644
index 8bcf4ff..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SequentialOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SingletonOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SingletonOperation.class
deleted file mode 100644
index 40d166c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/model/SingletonOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.class
deleted file mode 100644
index adc3fae..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanAllEclipseConfigurations.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.class
deleted file mode 100644
index 6896db4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanRegistryOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.class
deleted file mode 100644
index 6afcf41..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CleanupRegisteredProductsOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.class
deleted file mode 100644
index e011f32..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateEclipseUninstallerOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.class
deleted file mode 100644
index 7607f48..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/CreateUninstallerOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.class
deleted file mode 100644
index f453a39..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractDirectoryOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractFileOperation.class
deleted file mode 100644
index effd203..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractOperation.class
deleted file mode 100644
index a901459..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/ExtractOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.class
deleted file mode 100644
index 83ebe0f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/IWarningComparableStatus.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/LinkProductOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/LinkProductOperation.class
deleted file mode 100644
index b500113..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/LinkProductOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RegisterProductOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RegisterProductOperation.class
deleted file mode 100644
index 72186ee..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RegisterProductOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.class
deleted file mode 100644
index 7fdf347..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/RemoveAllEmbeddedInstallsOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UndoInstallOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UndoInstallOperation.class
deleted file mode 100644
index dd404d2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UndoInstallOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation$1.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation$1.class
deleted file mode 100644
index 0cc732a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation$1.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.class
deleted file mode 100644
index 23c57af..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallEclipseOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallOperation.class
deleted file mode 100644
index 89cddcc..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/UninstallOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.class
deleted file mode 100644
index 74ce993..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractDirectoryOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.class
deleted file mode 100644
index 2ccbda1..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/operations/Unpack200ExtractFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductInstallation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductInstallation.class
deleted file mode 100644
index 3703e70..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductInstallation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductLocator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductLocator.class
deleted file mode 100644
index 2b30129..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductLocator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductVersion.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductVersion.class
deleted file mode 100644
index 02a8bb6..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/product/IProductVersion.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChoiceStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChoiceStep.class
deleted file mode 100644
index 9eed2fe..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChoiceStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.class
deleted file mode 100644
index e8e74ed..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseEclipseStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseLocationStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseLocationStep.class
deleted file mode 100644
index 05ac55d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseLocationStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseProductStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseProductStep.class
deleted file mode 100644
index 0e8b873..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ChooseProductStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeOption.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeOption.class
deleted file mode 100644
index fe6fe63..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeOption.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeStep.class
deleted file mode 100644
index c0f5983..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/CustomizeStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/PromptUserStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/PromptUserStep.class
deleted file mode 100644
index f9aa98f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/PromptUserStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/RunOperationsStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/RunOperationsStep.class
deleted file mode 100644
index dd7a394..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/RunOperationsStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.class
deleted file mode 100644
index 590296e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ScrollablePromptUserStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.class
deleted file mode 100644
index 45eaf99..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/SelectInstallTypeStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ShowWarningsStep.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ShowWarningsStep.class
deleted file mode 100644
index 3cb3d08..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/core/steps/ShowWarningsStep.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.class
deleted file mode 100644
index 16c6cb9..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.class
deleted file mode 100644
index 57a8ed9..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/Utils.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/Utils.class
deleted file mode 100644
index a9959d5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/Utils.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive$XSEArchiveIterator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive$XSEArchiveIterator.class
deleted file mode 100644
index 7aa77dc..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive$XSEArchiveIterator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.class
deleted file mode 100644
index 4bcd5e0..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.class
deleted file mode 100644
index fdf9b1f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.class
deleted file mode 100644
index e200771..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.class
deleted file mode 100644
index 96a5dc4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$1.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$1.class
deleted file mode 100644
index 678d5f7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$1.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipArchiveEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipArchiveEntry.class
deleted file mode 100644
index cb7e2b3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipArchiveEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipEntriesIterator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipEntriesIterator.class
deleted file mode 100644
index cf4d17e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive$ZipEntriesIterator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.class
deleted file mode 100644
index a90aead..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchive.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.class
deleted file mode 100644
index 995e9d7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/archive/zip/ZipArchiveFactory.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/BackupManager.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/BackupManager.class
deleted file mode 100644
index ced0447..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/BackupManager.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.class
deleted file mode 100644
index a464243..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/CleanEclipseConfigurationAction.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager$EmbeddedInstall.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager$EmbeddedInstall.class
deleted file mode 100644
index 169b81b..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager$EmbeddedInstall.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.class
deleted file mode 100644
index 7172244..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/EmbeddedInstallStorager.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/IBackupManager.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/IBackupManager.class
deleted file mode 100644
index 5716f23..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/IBackupManager.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLog.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLog.class
deleted file mode 100644
index 09f6593..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLog.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLogEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLogEntry.class
deleted file mode 100644
index 181d9d2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallLogEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerActivator.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerActivator.class
deleted file mode 100644
index 4756ab0..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerActivator.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerApplication.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerApplication.class
deleted file mode 100644
index 5b0b88a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/InstallerApplication.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OS.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OS.class
deleted file mode 100644
index 6584125..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OS.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OperationProxyManager.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OperationProxyManager.class
deleted file mode 100644
index b527fe3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/OperationProxyManager.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveFileAction.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveFileAction.class
deleted file mode 100644
index a20bee2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveFileAction.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveLinkAction.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveLinkAction.class
deleted file mode 100644
index d9a15a2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RemoveLinkAction.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RestoreFileAction.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RestoreFileAction.class
deleted file mode 100644
index 7a6a3f3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/RestoreFileAction.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/Util.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/Util.class
deleted file mode 100644
index f8b56ca..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/Util.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$1.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$1.class
deleted file mode 100644
index e40fcfd..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$1.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$2.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$2.class
deleted file mode 100644
index a5f9692..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$2.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$BasicEclipseProductType.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$BasicEclipseProductType.class
deleted file mode 100644
index 9be4192..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$BasicEclipseProductType.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$EclipseSubDirProductType.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$EclipseSubDirProductType.class
deleted file mode 100644
index 4c0795c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType$EclipseSubDirProductType.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.class
deleted file mode 100644
index 82c8f8d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseProductType.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.class
deleted file mode 100644
index b25c45e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseUtils.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.class
deleted file mode 100644
index addc2e2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/eclipse/EclipseVersionRange.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.class
deleted file mode 100644
index 4f1b930..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/BackupFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.class
deleted file mode 100644
index e4a59ea..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CheckEclipseRunningOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.class
deleted file mode 100644
index cca9fa7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanDirectoryOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.class
deleted file mode 100644
index ced5237..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CleanEclipseConfigurationOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.class
deleted file mode 100644
index 9602991..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.class
deleted file mode 100644
index c59dd08..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CopyZipOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.class
deleted file mode 100644
index 8efff68..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateDirectoryOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.class
deleted file mode 100644
index b5e1d65..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.class
deleted file mode 100644
index 9eca20a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/CreateLinkOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.class
deleted file mode 100644
index 623959b..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/DeleteFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.class
deleted file mode 100644
index 69efaf4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/FinaliseBackupOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.class
deleted file mode 100644
index 11c9a01..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IBackupOptions.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.class
deleted file mode 100644
index 10475f3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/IRegisterProductOptions.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation$Feature.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation$Feature.class
deleted file mode 100644
index 8949232..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation$Feature.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.class
deleted file mode 100644
index 12bf57c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ModifyPlatformXMLOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.class
deleted file mode 100644
index 7eb64af..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/ProxyOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.class
deleted file mode 100644
index 11fdc0a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RemoveEmbeddedInstallOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.class
deleted file mode 100644
index 4c5db0d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/RollbackOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.class
deleted file mode 100644
index 8d69845..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/SaveLogFileOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/StubOperation.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/StubOperation.class
deleted file mode 100644
index 9158aea..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/core/operations/StubOperation.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.class
deleted file mode 100644
index b25d97b..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/installer/internal/headless/HeadlessInstaller.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask$FileSourceEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask$FileSourceEntry.class
deleted file mode 100644
index 98c7f3c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask$FileSourceEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask.class
deleted file mode 100644
index e34d8f7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/ArchiveTask.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/FilesetTask.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/FilesetTask.class
deleted file mode 100644
index 4449f1b..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/FilesetTask.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.class
deleted file mode 100644
index 44cfc9c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/ISourceEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/ISourceEntry.class
deleted file mode 100644
index f7b5a00..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/ISourceEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$1.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$1.class
deleted file mode 100644
index 480e5ab..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$1.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$SourceEntry.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$SourceEntry.class
deleted file mode 100644
index 37f01e5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition$SourceEntry.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.class
deleted file mode 100644
index 059e401..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder$PACKAGE_TYPE.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder$PACKAGE_TYPE.class
deleted file mode 100644
index cc5dd8c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder$PACKAGE_TYPE.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder.class
deleted file mode 100644
index 168f834..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSEBuilder.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSECompiler.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSECompiler.class
deleted file mode 100644
index 64e9896..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSECompiler.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSELinker.class b/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSELinker.class
deleted file mode 100644
index f12641e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/build/classes/org/eclipse/epp/sfx/builder/XSELinker.class
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/lib/archive-ant-support-lib.jar b/plugins/org.eclipse.epp.sfx.archive.ant/lib/archive-ant-support-lib.jar
deleted file mode 100644
index 6e176d5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/lib/archive-ant-support-lib.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/plugin.xml b/plugins/org.eclipse.epp.sfx.archive.ant/plugin.xml
deleted file mode 100644
index 6a315bd..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-  <extension
-         point="org.eclipse.ant.core.extraClasspathEntries">
-      <extraClasspathEntry
-            library="archiveAntSupport.jar">
-      </extraClasspathEntry>
-      <extraClasspathEntry
-            library="templates/">
-      </extraClasspathEntry>
-   </extension>
-	<!-- Tasks -->
-   <extension point="org.eclipse.ant.core.antTasks">
-   
-       <antTask
-            library="archiveAntSupport.jar"
-            name="archivetask"
-            class="org.eclipse.epp.sfx.archive.ant.ArchiveTask">
-      </antTask>
-       <antTask
-            library="archiveAntSupport.jar"
-            name="unpack"
-            class="org.eclipse.epp.sfx.archive.ant.UnpackEntries">
-      </antTask>
-       
-    </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/ArchiveTask.java b/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/ArchiveTask.java
deleted file mode 100644
index 04d9f3a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/ArchiveTask.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.epp.sfx.archive.ant;
-
-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.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.FileSet;
-import org.eclipse.epp.sfx.builder.ISourceEntry;
-import org.eclipse.epp.sfx.builder.XSEBuilder;
-
-public class ArchiveTask extends FilesetTask {
-
-    private List unpackEntries = new ArrayList();
-    private String archivefile;
-    private String command;
-    private String rootdir;
-    private String templates;
-    private boolean usePack200 = false;
-    private int packageType = XSEBuilder.PACKAGE_TYPE.SFX;
-
-	public void addUnpack(UnpackEntriesTask unpack) {
-		if (!unpackEntries.contains(unpack)) {
-			unpackEntries.add(unpack);
-		}
-	}
-	
-	public void setArchivefile(String archivefile) {
-		this.archivefile = archivefile;
-	}
-
-	public void setCommand(String command) {
-		this.command = command;
-	}
-
-	public void setRootdir(String rootdir) {
-		this.rootdir = rootdir;
-	}
-
-	public void setPack200(String pack200) {
-		usePack200 = "true".equalsIgnoreCase(pack200);
-	}
-
-	public void setPackagetype(String packagetype) {
-		if ("exe".equalsIgnoreCase(packagetype))
-			this.packageType = XSEBuilder.PACKAGE_TYPE.EXE;
-		else if ("sfx".equalsIgnoreCase(packagetype))
-			this.packageType = XSEBuilder.PACKAGE_TYPE.SFX;
-	}
-
-	protected File getTemplates() throws IOException {		
-		File templateSrc = new File(templates, "win32.x86/extractor.exe");
-		InputStream is = new FileInputStream(templateSrc);
-		
-		File templatesFile = File.createTempFile("extractor", ".exe");
-		OutputStream os = new FileOutputStream(templatesFile);
-		
-		
-		while (true) {
-			int b = is.read();
-			if (b == -1)
-				break;
-			os.write(b);
-		}
-		
-		os.close();
-		is.close();
-		return templatesFile;
-	}
-	
-	public void execute() {
-		if(getProject() == null) setProject(new Project());
-		File rootDir = rootdir != null ? new File(rootdir) : null;
-		File baseDir = (rootDir != null && rootDir.exists() && rootDir.isDirectory()) ? 
-				rootDir : getProject().getBaseDir();
-		
-		try {
-			String sourceDirectory = baseDir.getAbsolutePath();
-			String destinationPath = archivefile; //Needs absolute path???
-			String templatesPath = getTemplates().getAbsolutePath();
-			boolean useZip = false;
-
-			XSEBuilder.buildArchive(command, sourceDirectory, getSourceEntries(baseDir),
-					destinationPath, null, templatesPath, packageType, usePack200, useZip);
-		} catch (IOException e) {
-			handle(e);
-		}
-	}
-
-	protected ISourceEntry[] getSourceEntries(File baseDir) {
-		List result = new ArrayList();
-		Set unpackFiles = new HashSet();
-		for (Iterator it = unpackEntries.iterator(); it.hasNext(); ) {
-			UnpackEntriesTask unpackTask = (UnpackEntriesTask) it.next();
-			unpackFiles.addAll(unpackTask.getFiles());
-		}
-		List files = getFiles();
-		for (Iterator it = files.iterator(); it.hasNext(); ) {
-			File file = (File) it.next();
-			result.add(new FileSourceEntry(baseDir, file, unpackFiles.contains(file)));
-		}
-		return (ISourceEntry[]) result.toArray(new ISourceEntry[result.size()]);
-	}
-	
-	private static class FileSourceEntry implements ISourceEntry {
-
-		private File baseDir;
-		private File file;
-		private boolean required;
-		
-		public FileSourceEntry(File baseDir, File file, boolean required) {
-			this.baseDir = baseDir;
-			this.file = file;
-			this.required = required;
-		}
-
-		public String getFileName() {
-			String filePath = file.getAbsolutePath();
-			String baseDirPath = baseDir.getAbsolutePath();
-			if (filePath.startsWith(baseDirPath)) {
-				String s = filePath.substring(baseDirPath.length());
-				if (s.length()>0 && (s.charAt(0) == '\\' || s.charAt(0) == '/'))
-					s = s.substring(1);
-				return s;
-			}
-			return null;
-		}
-
-		public boolean isFile() {
-			return file.isFile();
-		}
-
-		public boolean isRequired() {
-			return required;
-		}
-		
-	}
-	
-	public void setTemplates(String templates) {
-		this.templates = templates;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/FilesetTask.java b/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/FilesetTask.java
deleted file mode 100644
index b9f966f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/FilesetTask.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.eclipse.epp.sfx.archive.ant;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.resources.FileResource;
-import org.apache.tools.ant.types.resources.Resources;
-
-public abstract class FilesetTask extends Task {
-
-	private int verbosity = Project.MSG_VERBOSE;
-    private boolean quiet = false;
-    private boolean failonerror = true;
-    
-    protected Project taskProject;
-    
-    private List filesets = new ArrayList();
-
-    public void setVerbose(boolean verbose) {
-        if (verbose) {
-            this.verbosity = Project.MSG_INFO;
-        } else {
-            this.verbosity = Project.MSG_VERBOSE;
-        }
-    }
-    
-    public void setQuiet(boolean quiet) {
-        this.quiet = quiet;
-        if (quiet) {
-            this.failonerror = false;
-        }
-    }
-
-     public void setFailOnError(boolean failonerror) {
-         this.failonerror = failonerror;
-     }
-	
-	public void addFileSet(FileSet fileset) {
-		if (!filesets.contains(fileset)) {
-			filesets.add(fileset);
-		}
-	}
-
-	protected List getFiles() {
-		if (getProject() == null) setProject(new Project());
-		Resources resources = new Resources();
-        resources.setProject(getProject());
-		for (Iterator it = filesets.iterator(); it.hasNext(); ) {
-			FileSet fileset = (FileSet) it.next();
-			if (fileset.getProject() == null) {
-                log("Archiving fileset with no project specified;"
-                    + " assuming executing project", Project.MSG_VERBOSE);
-                fileset = (FileSet) fileset.clone();
-                fileset.setProject(getProject());
-            }
-			resources.add(fileset);
-		}
-		
-		List result = new ArrayList();
-		if (resources.isFilesystemOnly()) {
-            for (Iterator iter = resources.iterator(); iter.hasNext();) {
-                FileResource r = (FileResource) iter.next();
-                if (!r.isExists()) {
-                    continue;
-                }
-                File file = r.getFile();
-                result.add(file);
-            }
-        } else {
-             handle(getTaskName() + " handles only filesystem resources");
-        }
-		
-		return result;
-	}
-
-	protected void handle(String msg) {
-        handle(new BuildException(msg));
-    }
-
-	protected void handle(Exception e) {
-        if (failonerror) {
-            throw (e instanceof BuildException)
-                ? (BuildException) e : new BuildException(e);
-        }
-        log(e, quiet ? Project.MSG_VERBOSE : verbosity);
-    }
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.java b/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.java
deleted file mode 100644
index e3e4e3a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/src/org/eclipse/epp/sfx/archive/ant/UnpackEntriesTask.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.epp.sfx.archive.ant;
-
-import java.util.List;
-
-public class UnpackEntriesTask extends FilesetTask {
-
-	public List getFiles() {
-		return super.getFiles();
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ant/templates/win32.x86/extractor.exe b/plugins/org.eclipse.epp.sfx.archive.ant/templates/win32.x86/extractor.exe
deleted file mode 100644
index 3fa9acb..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ant/templates/win32.x86/extractor.exe
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/.classpath b/plugins/org.eclipse.epp.sfx.archive.tests/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/.cvsignore b/plugins/org.eclipse.epp.sfx.archive.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/.project b/plugins/org.eclipse.epp.sfx.archive.tests/.project
deleted file mode 100644
index 551cdb4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.archive.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.sfx.archive.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 736a4b8..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Tests Plug-in
-Bundle-SymbolicName: org.eclipse.epp.sfx.archive.tests
-Bundle-Version: 0.5.0
-Require-Bundle: org.junit,
- org.eclipse.core.runtime,
- org.eclipse.epp.installer.core,
- org.eclipse.epp.sfx.archive
-Bundle-Activator: org.eclipse.epp.sfx.archive.tests.TestsActivator
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/build.properties b/plugins/org.eclipse.epp.sfx.archive.tests/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/EntryTest.java b/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/EntryTest.java
deleted file mode 100644
index 7d35c12..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/EntryTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.eclipse.epp.sfx.archive.tests;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchive;
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchiveEntry;
-import org.osgi.framework.Bundle;
-
-public class EntryTest extends TestCase {
-	
-	public void testEntries() throws Exception {
-		Bundle bundle = TestsActivator.plugin.getBundle();
-		URL url = FileLocator.toFileURL(bundle.getEntry("test-install.exe"));
-		File file = new File(url.getFile());
-		XSEArchive archive = new XSEArchive(file);
-		Iterator i = archive.entries();
-		int items;
-		assertTrue(archive.getFlags() == 0);
-		assertEquals("foo $#launcher# bar", archive.getExecutableArgs());
-		assertTrue(archive.getExecutablePath().equals("showcmdline.exe"));
-		XSEArchiveEntry dirEntry = (XSEArchiveEntry) archive.getEntry("emptyDir\\");
-		assertTrue(dirEntry != null);
-		assertTrue(dirEntry.getSize() == 0);
-		assertTrue(dirEntry.isDirectory());
-		assertFalse(dirEntry.isRequired());
-		
-		XSEArchiveEntry placeholderEntry = (XSEArchiveEntry) archive.getEntry("placeholder");
-		assertTrue(placeholderEntry != null);
-		assertTrue(placeholderEntry.getSize() == 11);
-		InputStream placeholderStream = archive.getInputStream(placeholderEntry);
-		byte[] data = new byte[11];
-		int dataRead = placeholderStream.read(data);
-		assertTrue(dataRead == 11);
-		assertTrue("placeholder".equals(new String(data)));
-		assertTrue(placeholderStream.read() == -1);
-		assertFalse(placeholderEntry.isDirectory());
-		assertFalse(placeholderEntry.isRequired());
-		
-		XSEArchiveEntry executable = (XSEArchiveEntry) archive.getEntry("showcmdline.exe");
-		assertTrue(executable != null);
-		assertTrue(executable.getSize() == 24576);
-		assertFalse(executable.isDirectory());
-		assertTrue(executable.isRequired());
-		assertTrue(i.hasNext());
-		
-		i.next();
-		i.next();
-		i.next(); //3 items
-		
-		assertFalse(i.hasNext());
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/TestsActivator.java b/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/TestsActivator.java
deleted file mode 100644
index 2362d00..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/src/org/eclipse/epp/sfx/archive/tests/TestsActivator.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.eclipse.epp.sfx.archive.tests;
-
-import org.eclipse.core.runtime.Plugin;
-
-public class TestsActivator extends Plugin {
-	
-	public static TestsActivator plugin;
-
-	public TestsActivator() {
-		plugin = this;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.tests/test-install.exe b/plugins/org.eclipse.epp.sfx.archive.tests/test-install.exe
deleted file mode 100644
index 0e566d1..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.tests/test-install.exe
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/.classpath b/plugins/org.eclipse.epp.sfx.archive.ui/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/.project b/plugins/org.eclipse.epp.sfx.archive.ui/.project
deleted file mode 100644
index 7d328a7..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.archive.ui</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/plugins/org.eclipse.epp.sfx.archive.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.sfx.archive.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 1b440d5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Ui Plug-in
-Bundle-SymbolicName: org.eclipse.epp.sfx.archive.ui;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.epp.sfx.archive.ui.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.forms,
- org.eclipse.ui.ide,
- org.eclipse.core.resources,
- org.eclipse.ui.editors,
- org.eclipse.jface.text,
- org.eclipse.epp.sfx.tools
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/build.properties b/plugins/org.eclipse.epp.sfx.archive.ui/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/icons/obj16/sfx_archive_obj.gif b/plugins/org.eclipse.epp.sfx.archive.ui/icons/obj16/sfx_archive_obj.gif
deleted file mode 100644
index cada814..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/icons/obj16/sfx_archive_obj.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/plugin.xml b/plugins/org.eclipse.epp.sfx.archive.ui/plugin.xml
deleted file mode 100644
index c93f90a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/plugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.editors">
-     <editor
-            default="true"
-            name="SFX Archive Configuration Editor"
-            icon="$nl$/icons/obj16/sfx_archive_obj.gif"
-            class="org.eclipse.epp.sfx.archive.ui.internal.SFXArchiveConfigurationEditor"
-            id="org.eclipse.epp.sfx.sfxArchiveConfigurationEditor">
-            <contentTypeBinding contentTypeId="org.eclipse.epp.sfx.archive.ui.sfxArchiveConfiguration"/>
-      </editor>
-    </extension>
-   <extension 
-   		 point="org.eclipse.core.runtime.contentTypes">
-   	  <content-type 
-   	  		id="sfxArchiveConfiguration" 
-   	  		name="SFX Archive Configuration File" 
-       		base-type="org.eclipse.core.runtime.xml"
-    		priority="high"				
-    		file-extensions="sfxArchive">
-    	<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
-    		<parameter name="element" value="sfxArchive"/>
-		</describer>
-	  </content-type>
-    </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            id="org.eclipse.epp.sfx.archive.ui"
-            name="EPP">
-      </category>
-      <wizard
-            category="org.eclipse.epp.sfx.archive.ui"
-            class="org.eclipse.epp.sfx.archive.ui.internal.wizards.NewSFXArchiveConfigurationWizard"
-            icon="icons/obj16/sfx_archive_obj.gif"
-            id="org.eclipse.epp.sfx.archive.ui.internal.wizards.NewSFXArchiveConfigurationWizard"
-            name="SFX Archive Configuration File">
-      </wizard>
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/Activator.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/Activator.java
deleted file mode 100644
index 6760b4a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/Activator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.epp.sfx.archive.ui";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/ArchiveMaker.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/ArchiveMaker.java
deleted file mode 100644
index 26b498a..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/ArchiveMaker.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Archive;
-import org.eclipse.epp.sfx.builder.XSEBuilder;
-import org.eclipse.osgi.baseadaptor.BaseData;
-import org.eclipse.osgi.framework.adaptor.BundleData;
-import org.eclipse.osgi.framework.internal.core.AbstractBundle;
-import org.osgi.framework.Bundle;
-import org.xml.sax.SAXException;
-
-public class ArchiveMaker {
-
-	private static ArchiveMaker INSTANCE = null;
-	
-	public static ArchiveMaker getInstance() {
-		if (INSTANCE == null)
-			INSTANCE = new ArchiveMaker();
-		return INSTANCE;
-	}
-
-	protected ArchiveMaker() {
-		super();
-	}
-
-	public void make(Archive archive, boolean exe, boolean pack200, boolean zip, IProgressMonitor monitor) {
-		Bundle bundle = Platform.getBundle("org.eclipse.epp.sfx.tools");
-		BundleData bundleData = ((AbstractBundle) bundle).getBundleData();
-		File file = ((BaseData) bundleData).getBundleFile().getBaseFile();
-		//TODO: Fix file extensions
-		IPath extractorPath = (new Path(file.getAbsolutePath())).append("templates");
-		List argsList = new ArrayList();
-		argsList.add(exe ? "exe" : "sfx");
-		argsList.add(archive.getModel().getPath().toOSString());
-		argsList.add(extractorPath.toOSString());
-		if (pack200)
-			argsList.add("--pack200");
-		if (zip)
-			argsList.add("--zip");
-		
-		try {
-			XSEBuilder.main((String[]) argsList.toArray(new String[argsList.size()]));
-		} catch (ParserConfigurationException e) {
-			throw new RuntimeException(e);
-		} catch (SAXException e) {
-			throw new RuntimeException(e);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-		
-	}
-	
-	
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/DestinationFormPart.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/DestinationFormPart.java
deleted file mode 100644
index 19e6386..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/DestinationFormPart.java
+++ /dev/null
@@ -1,229 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.epp.sfx.archive.ui.Activator;
-import org.eclipse.epp.sfx.archive.ui.ArchiveMaker;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Archive;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ISFXArchiveModelListener;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ModelChangedEvent;
-import org.eclipse.epp.sfx.archive.ui.internal.model.SFXArchiveModel;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.progress.IProgressService;
-
-public class DestinationFormPart extends SectionFormPart implements Listener, ISFXArchiveModelListener {
-
-    private Text containerNameField;
-    private Button containerBrowseButton;
-    private Button generateButton;
-    private Button sfxRadioButton;
-    private Button exeRadioButton;
-    private Button pack200Checkbox;
-    private Button zipCheckbox;
-    
-    private SFXArchiveConfigurationPage page;
-    
-    private boolean fChangingModel;
-    private boolean fChangingUI;
-	
-	public DestinationFormPart(SFXArchiveConfigurationPage page, Composite body) {
-		super(body, "Destination", page.getEditor().getToolkit());
-		this.page = page;
-
-        updateWidgetEnablements();
-	}
-
-	public Composite createClient(Composite body, FormToolkit toolkit) {
-		return createDestinationGroup(body, toolkit);
-	}
-	
-	protected Composite createDestinationGroup(Composite parent, FormToolkit toolkit) {
-        Composite containerGroup = toolkit.createComposite(parent);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 4;
-        containerGroup.setLayout(layout);
-        containerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        toolkit.createLabel(containerGroup, "Archive File:");
-
-        containerNameField = toolkit.createText(containerGroup, "", SWT.SINGLE | SWT.BORDER);
-        containerNameField.addListener(SWT.Modify, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 2;
-        containerNameField.setLayoutData(data);
-
-        containerBrowseButton = toolkit.createButton(containerGroup, IDEWorkbenchMessages.WizardImportPage_browse2, SWT.PUSH);
-        containerBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        containerBrowseButton.addListener(SWT.Selection, this);
-        Utils.setButtonLayoutData(containerBrowseButton);
-        
-        toolkit.createLabel(containerGroup, ""); //placeholder
-        sfxRadioButton = toolkit.createButton(containerGroup, "Archive only", SWT.RADIO);
-        sfxRadioButton.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				if (sfxRadioButton.getSelection())
-					exeRadioButton.setSelection(false);
-			}
-        	
-        });
-        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 3;
-        sfxRadioButton.setLayoutData(data);
-        
-        toolkit.createLabel(containerGroup, ""); //placeholder
-        exeRadioButton = toolkit.createButton(containerGroup, "Archive and link with Windows launcher", SWT.RADIO);
-        exeRadioButton.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				if (exeRadioButton.getSelection())
-					sfxRadioButton.setSelection(false);
-			}
-        	
-        });
-        exeRadioButton.setLayoutData(data);
-        exeRadioButton.setSelection(true);
-        
-        toolkit.createLabel(containerGroup, ""); //placeholder
-        pack200Checkbox = toolkit.createButton(containerGroup, "Use pack200 jar compression", SWT.CHECK);
-        pack200Checkbox.setLayoutData(data);
-        
-        toolkit.createLabel(containerGroup, ""); //placeholder
-        zipCheckbox = toolkit.createButton(containerGroup, "Use zip compression", SWT.CHECK);
-        zipCheckbox.setLayoutData(data);
-        zipCheckbox.setEnabled(false);
-        
-        toolkit.createLabel(containerGroup, ""); //placeholder
-        
-        generateButton = toolkit.createButton(containerGroup, "Generate Archive", SWT.PUSH);
-        generateButton.setImage(Activator.getDefault()
-        		.getImageDescriptor("/icons/obj16/sfx_archive_obj.gif").createImage());
-        generateButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_BEGINNING));
-        generateButton.addListener(SWT.Selection, this);
-        Utils.setButtonLayoutData(generateButton);
-        
-        return containerGroup;
-	}
-
-	public void handleEvent(Event event) {
-		if (fChangingUI)
-			return;
-		
-        if (event.widget == containerBrowseButton) {
-			handleContainerBrowseButtonPressed();
-		}
-        else if (event.widget == generateButton) {
-			handleGenerateButtonPressed();
-		}
-        else if (event.widget == containerNameField) {
-        	handleContainerNameFieldChanged();
-		}
-
-        updateWidgetEnablements();
-	}
-	
-	private void updateWidgetEnablements() {
-		
-	}
-
-	protected void handleContainerBrowseButtonPressed() {
-		FileDialog dialog = new FileDialog(page.getEditorSite().getShell(), SWT.SAVE);
-		String path = containerNameField.getText();
-		if (path.trim().length() == 0)
-			path = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
-		dialog.setFileName(path);
-		String res = dialog.open();
-		if (res != null) {
-			containerNameField.setText(res);
-		}
-    }
-
-	protected void handleGenerateButtonPressed() {
-		page.getEditor().doSave(null);
-		SFXArchiveModel model = page.getModel();
-		if (model != null) {
-			final Archive archive = model.getArchive();
-			final boolean exe = exeRadioButton.getSelection();
-			final boolean pack200 = pack200Checkbox.getSelection();
-			final boolean zip = zipCheckbox.getSelection();
-			if (archive != null) {
-				IProgressService progressService = Activator.getDefault().getWorkbench().getProgressService();
-				try {
-					progressService.busyCursorWhile(new IRunnableWithProgress() {
-
-						public void run(IProgressMonitor monitor)
-								throws InvocationTargetException, InterruptedException {
-							ArchiveMaker.getInstance().make(archive, exe, pack200, zip, monitor);
-						}
-						
-					});
-				} catch (InvocationTargetException e) {
-					throw new RuntimeException(e);
-				} catch (InterruptedException e) {
-					// Ignore
-				}
-				
-			}
-		}
-	}
-
-	private void handleContainerNameFieldChanged() {
-		SFXArchiveModel model = page.getModel();
-		if (model != null) {
-			Archive archive = model.getArchive();
-			if (archive != null) {
-				fChangingModel = true;
-				try {
-					archive.setDestinationFile(containerNameField.getText());
-				}
-				finally {
-					fChangingModel = false;
-				}
-			}
-		}
-	}
-
-	public void modelChanged(ModelChangedEvent event) {
-		if (fChangingModel)
-			return;
-		fChangingUI = true;
-		try {
-			if (event.type == ModelChangedEvent.TYPE_REFRESH) {
-				containerNameField.setText(Utils.avoidNull(page.getModel().getArchive().getDestinationFile()));
-			}
-			if (event.type == ModelChangedEvent.TYPE_CHANGE) {
-				if (event.object instanceof Archive) {
-					switch (event.property) {
-					case Archive.PROP_DESTINATION_FILE:
-						containerNameField.setText(Utils.avoidNull(((Archive) event.object).getDestinationFile()));
-						break;
-					}
-				}
-			}
-		}
-		finally {
-			fChangingUI = false;
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationDocumentProvider.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationDocumentProvider.java
deleted file mode 100644
index 4ade1c3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationDocumentProvider.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.epp.sfx.archive.ui.internal.model.SFXArchiveModel;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ISynchronizable;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.editors.text.StorageDocumentProvider;
-import org.eclipse.ui.editors.text.TextFileDocumentProvider;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-public class SFXArchiveConfigurationDocumentProvider extends TextFileDocumentProvider {
-
-	protected class SFXArchiveFileInfo extends FileInfo {
-		
-		public SFXArchiveModel fModel;
-		
-		public SFXArchiveFileInfo() {
-		}
-	}
-	
-	public SFXArchiveConfigurationDocumentProvider() {
-		IDocumentProvider provider= new TextFileDocumentProvider(new StorageDocumentProvider());
-		setParentDocumentProvider(provider);
-	}
-
-    public SFXArchiveModel getSFXArchiveModel(Object element) {
-	    FileInfo info= getFileInfo(element);
-	    if (info instanceof SFXArchiveFileInfo) {
-		    SFXArchiveFileInfo xmlInfo= (SFXArchiveFileInfo) info;
-		    return xmlInfo.fModel;
-	    }
-	    return null;
-    }
-
-    protected SFXArchiveModel createSFXArchiveModel(Object element, IDocument document) {
-    	if (element instanceof IFileEditorInput) {
-    		return new SFXArchiveModel(((IFileEditorInput) element).getFile().getLocation(), document);
-    	}
-    	else {
-    		return new SFXArchiveModel(null, document);
-    	}
-    }
-    
-    /*
-	 * @see org.eclipse.ui.editors.text.TextFileDocumentProvider#createFileInfo(java.lang.Object)
-	 */
-	protected FileInfo createFileInfo(Object element) throws CoreException {
-		FileInfo info= super.createFileInfo(element);
-		if (!(info instanceof SFXArchiveFileInfo)) {
-			return null;
-		}
-	
-		IDocument document= info.fTextFileBuffer.getDocument();
-		//Check if the annotation model has been set by the annotation model factory extension for Ant UI
-		//and is an annotation model that was specified by the extension (all are IProblemRequestors).
-		//If we do not have an annotation model or not a correct annotation model, defer to the annotation model
-		//created from this document provider. The document provider is only queried for an annotation model for workspace files.
-		//Therefore if the annotation model is still null we are dealing with an external file that is associated with
-		//the Ant editor from a user preference setting.
-		//In all cases the determined annotation model is set for the file info to be used in the editor. 
-		SFXArchiveFileInfo xmlInfo= (SFXArchiveFileInfo) info;
-		 
-		SFXArchiveModel model= createSFXArchiveModel(element, document);
-		model.install();
-		xmlInfo.fModel= model;
-		setUpSynchronization(xmlInfo);
-		
-		return xmlInfo;
-	}
-	
-    protected void disposeFileInfo(Object element, FileInfo info) {
-	    if (info instanceof SFXArchiveFileInfo) {
-		    SFXArchiveFileInfo xmlInfo= (SFXArchiveFileInfo) info;
-		    if (xmlInfo.fModel != null) {
-			    IDocument doc=  xmlInfo.fTextFileBuffer.getDocument();
-			    Object lock= null;
-			    if (doc instanceof ISynchronizable) {
-			    	lock= ((ISynchronizable) doc).getLockObject();
-			    } else {
-			    	lock= xmlInfo.fModel;
-			    }
-                if (lock == null) {
-                    xmlInfo.fModel.dispose();
-                    xmlInfo.fModel= null;
-                } else {
-                    synchronized (lock) {           
-                        xmlInfo.fModel.dispose();
-                        xmlInfo.fModel= null;
-                    }
-                }
-		    }
-	    }
-	    super.disposeFileInfo(element, info);	
-    }
-    
-	protected FileInfo createEmptyFileInfo() {
-		return new SFXArchiveFileInfo();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationEditor.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationEditor.java
deleted file mode 100644
index 70d0c10..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationEditor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-public class SFXArchiveConfigurationEditor extends FormEditor {
-
-	private class SourceTextEditor extends TextEditor {
-
-		public void setDocumentProvider(IDocumentProvider provider) {
-			super.setDocumentProvider(provider);
-		}
-		
-		protected void doSetInput(IEditorInput input) throws CoreException {
-			IEditorInput oldInput = getEditorInput();
-			super.doSetInput(input);
-			if (fConfigurationPage != null)
-				fConfigurationPage.inputChanged(oldInput, input);
-		}
-
-	}
-	
-    private static SFXArchiveConfigurationDocumentProvider DOCUMENT_PROVIDER = null;
-    
-    private SourceTextEditor fSourceEditor;
-    private SFXArchiveConfigurationPage fConfigurationPage;
-    
-	public SFXArchiveConfigurationDocumentProvider getEditorDocumentProvider() {
-        if (DOCUMENT_PROVIDER == null)
-        	DOCUMENT_PROVIDER = new SFXArchiveConfigurationDocumentProvider();
-        return DOCUMENT_PROVIDER;
-    }
-    
-	protected void addPages() {
-		try {
-			addPage(fConfigurationPage = new SFXArchiveConfigurationPage(this, 
-					"org.eclipse.epp.sfx.archiveConfigurationPage", 
-					"SFX Archive Configuration"));
-			int index = addPage(createSourceEditor(), getEditorInput());
-			setPageText(index, "Source");
-		} catch (PartInitException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	protected IEditorPart createSourceEditor() {
-		fSourceEditor = new SourceTextEditor();
-		fSourceEditor.setDocumentProvider(getEditorDocumentProvider());
-		return fSourceEditor;
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		fSourceEditor.doSave(monitor);
-	}
-
-	public void doSaveAs() {
-		fSourceEditor.doSaveAs();
-	}
-
-	public boolean isSaveAsAllowed() {
-		return fSourceEditor.isSaveAsAllowed();
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationPage.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationPage.java
deleted file mode 100644
index 1122b34..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SFXArchiveConfigurationPage.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import org.eclipse.epp.sfx.archive.ui.Activator;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Archive;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Entry;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ModelChangedEvent;
-import org.eclipse.epp.sfx.archive.ui.internal.model.SFXArchiveModel;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-public class SFXArchiveConfigurationPage extends FormPage {
-
-	private SFXArchiveModel fModel;
-	private SourceFormPart fSourceFormPart;
-	private UnpackFormPart fUnpackFormPart;
-	private DestinationFormPart fDestinationFormPart;
-	
-	public SFXArchiveConfigurationPage(SFXArchiveConfigurationEditor editor, String id, String title) {
-		super(editor, id, title);
-		
-		fModel = editor.getEditorDocumentProvider()
-			.getSFXArchiveModel(editor.getEditorInput());
-	}
-
-	protected void createFormContent(IManagedForm managedForm) {
-		GridLayout layout = new GridLayout();
-
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-
-		layout.marginTop = 12;
-		layout.marginBottom = 12;
-		layout.marginLeft = 6;
-		layout.marginRight = 6;
-
-		layout.horizontalSpacing = 20;
-		layout.verticalSpacing = 17;   	
-		
-		layout.makeColumnsEqualWidth = false;
-		layout.numColumns = 1;
-		
-		FormToolkit toolkit = getEditor().getToolkit();
-		
-		ScrolledForm form = managedForm.getForm();
-		form.setImage(Activator.getDefault()
-				.getImageDescriptor("/icons/obj16/sfx_archive_obj.gif").createImage());
-		form.setText("SFX Archive Configuration");  
-		toolkit.decorateFormHeading(form.getForm());
-		
-		Composite body = form.getBody();
-		body.setLayout(layout);
-		
-		fSourceFormPart = new SourceFormPart(this, body);
-		fUnpackFormPart = new UnpackFormPart(this, body);
-		fDestinationFormPart = new DestinationFormPart(this, body);
-		
-		managedForm.addPart(fSourceFormPart);
-		managedForm.addPart(fUnpackFormPart);
-		managedForm.addPart(fDestinationFormPart);
-		
-		addModelListeners();
-	}
-
-	public void inputChanged(IEditorInput oldInput, IEditorInput newInput) {
-		removeModelListeners();
-		
-		fModel = ((SFXArchiveConfigurationEditor) getEditor())
-			.getEditorDocumentProvider().getSFXArchiveModel(newInput);
-		
-		addModelListeners();
-	}
-	
-	private void addModelListeners() {
-		if (fModel != null) {
-			if (fSourceFormPart != null)
-				fModel.addModelListener(fSourceFormPart);
-			if (fUnpackFormPart != null)
-				fModel.addModelListener(fUnpackFormPart);
-			if (fDestinationFormPart != null)
-				fModel.addModelListener(fDestinationFormPart);
-		}
-		
-		notifyRefresh();
-	}
-
-	private void removeModelListeners() {
-		if (fModel != null) {
-			if (fSourceFormPart != null)
-				fModel.removeModelListener(fSourceFormPart);
-			if (fUnpackFormPart != null)
-				fModel.removeModelListener(fUnpackFormPart);
-			if (fDestinationFormPart != null)
-				fModel.removeModelListener(fDestinationFormPart);
-		}
-	}
-
-	public SFXArchiveModel getModel() {
-		return fModel;
-	}
-	
-	private void notifyRefresh() {
-		if (fModel != null) {
-			ModelChangedEvent event = new ModelChangedEvent(ModelChangedEvent.TYPE_REFRESH);
-			if (fSourceFormPart != null)
-				fSourceFormPart.modelChanged(event);
-			if (fUnpackFormPart != null)
-				fUnpackFormPart.modelChanged(event);
-			if (fDestinationFormPart != null)
-				fDestinationFormPart.modelChanged(event);
-		}
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return fSourceFormPart;
-	}
-	
-	public FileSystemElement getFileSystemElement(Archive archive, Entry entry) {
-		return fSourceFormPart.getFileSystemElement(archive, entry);
-	}
-}
-
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SectionFormPart.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SectionFormPart.java
deleted file mode 100644
index dafb394..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SectionFormPart.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public abstract class SectionFormPart extends AbstractFormPart {
-
-	public SectionFormPart(Composite body, String title, FormToolkit toolkit) {
-		TableWrapLayout layout = new TableWrapLayout();
-		
-		layout.topMargin = 2;
-		layout.bottomMargin = 2;
-		layout.leftMargin = 2;
-		layout.rightMargin = 2;
-		
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;   	
-
-		layout.makeColumnsEqualWidth = false;
-		layout.numColumns = 1; 
-
-		Section section = toolkit.createSection(body, ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
-		section.setText(title);
-		section.clientVerticalSpacing = 6;
-		section.setLayout(layout);
-		GridData sectionData = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(sectionData);
-		
-		Composite client = createClient(section, toolkit);
-
-        toolkit.paintBordersFor(client);
-        section.setClient(client);	
-	}
-	
-	public abstract Composite createClient(Composite body, FormToolkit toolkit);
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SourceFormPart.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SourceFormPart.java
deleted file mode 100644
index 341bafa..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/SourceFormPart.java
+++ /dev/null
@@ -1,563 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.epp.sfx.archive.ui.internal.model.Archive;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Entry;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ISFXArchiveModelListener;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ModelChangedEvent;
-import org.eclipse.epp.sfx.archive.ui.internal.model.SFXArchiveModel;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup;
-import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
-import org.eclipse.ui.internal.wizards.datatransfer.MinimizedFileSystemElement;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.model.WorkbenchViewerComparator;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-
-public class SourceFormPart extends SectionFormPart implements Listener, ISFXArchiveModelListener, ISelectionProvider {
-
-    protected ResourceTreeAndListGroup selectionGroup;
-    protected Combo sourceNameField;
-    protected Button sourceBrowseButton;
-    protected Button selectAllButton;
-    protected Button deselectAllButton;
-    private boolean entryChanged = false;
-    
-    private FileSystemElement currentRoot;
-    private Map fileSystemElementMap;
-    private ITreeContentProvider fileProvider;
-    private ITreeContentProvider folderProvider;
-    
-    private SFXArchiveConfigurationPage page;
-    
-    private boolean fChangingModel;
-    private boolean fChangingUI;
-	
-	public SourceFormPart(SFXArchiveConfigurationPage page, Composite body) {
-		super(body, "Source", page.getEditor().getToolkit());
-		this.page = page;
-		
-        updateWidgetEnablements();
-	}
-
-	public Composite createClient(Composite body, FormToolkit toolkit) {
-		Composite parent = toolkit.createComposite(body);
-		GridLayout layout = new GridLayout();
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;   	
-		layout.makeColumnsEqualWidth = false;
-		layout.numColumns = 1; 
-        parent.setLayout(layout);
-        createRootDirectoryGroup(parent, toolkit);
-        createFileSelectionGroup(parent, toolkit);
-        createButtonsGroup(parent, toolkit);
-		return parent;
-	}
-
-    protected void createRootDirectoryGroup(Composite parent, FormToolkit toolkit) {
-        Composite sourceContainerGroup = toolkit.createComposite(parent);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        sourceContainerGroup.setLayout(layout);
-        sourceContainerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        toolkit.createLabel(sourceContainerGroup, "Archive Root Directory:");
-
-        sourceNameField = new Combo(sourceContainerGroup, SWT.BORDER);
-        sourceNameField.addListener(SWT.Modify, this);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        sourceNameField.setLayoutData(data);
-        toolkit.adapt(sourceNameField);
-
-        sourceNameField.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                updateFromSourceField();
-            }
-        });
-
-        sourceNameField.addKeyListener(new KeyListener() {
-            public void keyPressed(KeyEvent e) {
-                entryChanged = true;
-            }
-
-            public void keyReleased(KeyEvent e) {
-            }
-        });
-
-        sourceNameField.addFocusListener(new FocusListener() {
-            public void focusGained(FocusEvent e) {
-            }
-
-            public void focusLost(FocusEvent e) {
-                if (entryChanged) {
-                    entryChanged = false;
-                    updateFromSourceField();
-                }
-
-            }
-        });
-        
-        sourceBrowseButton = toolkit.createButton(sourceContainerGroup, DataTransferMessages.DataTransfer_browse, SWT.PUSH);
-        sourceBrowseButton.addListener(SWT.Selection, this);
-        sourceBrowseButton.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        Utils.setButtonLayoutData(sourceBrowseButton);
-    }
-
-    protected void createFileSelectionGroup(Composite parent, FormToolkit toolkit) {
-    	currentRoot = new FileSystemElement("Dummy", null, true);//$NON-NLS-1$
-        selectionGroup = new ResourceTreeAndListGroup(parent, currentRoot,
-        		folderProvider = getFolderProvider(), new WorkbenchLabelProvider(),
-                fileProvider = getFileProvider(), new WorkbenchLabelProvider(), SWT.NONE,
-                DialogUtil.inRegularFontMode(parent));
-
-        ICheckStateListener listener = new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-            	handleCheckedListItemsChanged();
-            	
-                updateWidgetEnablements();
-            }
-        };
-        toolkit.adapt(selectionGroup.getListTable().getParent());//Adapt composite
-
-        WorkbenchViewerComparator comparator = new WorkbenchViewerComparator();
-        selectionGroup.setTreeComparator(comparator);
-        selectionGroup.setListComparator(comparator);
-        selectionGroup.addCheckStateListener(listener);
-    }
-
-	protected final void createButtonsGroup(Composite parent, FormToolkit toolkit) {
-        Composite buttonComposite = toolkit.createComposite(parent);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        layout.makeColumnsEqualWidth = true;
-        buttonComposite.setLayout(layout);
-        GridData buttonData = new GridData(GridData.VERTICAL_ALIGN_FILL
-                | GridData.HORIZONTAL_ALIGN_FILL);
-        buttonData.horizontalSpan = 2;
-        buttonComposite.setLayoutData(buttonData);
-
-        selectAllButton = Utils.createButton(buttonComposite,
-                IDialogConstants.SELECT_ALL_ID, "Select All", false, toolkit);
-
-        SelectionListener listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setAllSelections(true);
-                updateWidgetEnablements();
-            }
-        };
-        selectAllButton.addSelectionListener(listener);
-        Utils.setButtonLayoutData(selectAllButton);
-
-        deselectAllButton = Utils.createButton(buttonComposite,
-                IDialogConstants.DESELECT_ALL_ID, "Deselect All", false, toolkit);
-
-        listener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setAllSelections(false);
-                updateWidgetEnablements();
-            }
-        };
-        deselectAllButton.addSelectionListener(listener);
-        Utils.setButtonLayoutData(deselectAllButton);
-    }
-
-    private void updateFromSourceField() {
-
-        setSourceName(sourceNameField.getText());
-        //Update enablements when this is selected
-        updateWidgetEnablements();
-    }
-
-	private void updateWidgetEnablements() {
-		
-	}
-
-    protected ITreeContentProvider getFileProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    return element.getFiles(
-                            FileSystemStructureProvider.INSTANCE).getChildren(
-                            element);
-                }
-                return new Object[0];
-            }
-        };
-    }
-
-    protected MinimizedFileSystemElement getFileSystemTree() {
-
-        File sourceDirectory = getSourceDirectory();
-        if (sourceDirectory == null) {
-			return null;
-		}
-
-        return selectFiles(sourceDirectory,
-                FileSystemStructureProvider.INSTANCE);
-    }
-
-    protected File getSourceDirectory() {
-        return Utils.getSourceDirectory(this.sourceNameField.getText());
-    }
-
-    protected MinimizedFileSystemElement selectFiles(
-            final Object rootFileSystemObject,
-            final IImportStructureProvider structureProvider) {
-
-        final MinimizedFileSystemElement[] results = new MinimizedFileSystemElement[1];
-
-        BusyIndicator.showWhile(page.getEditorSite().getShell().getDisplay(), new Runnable() {
-            public void run() {
-                //Create the root element from the supplied file system object
-                results[0] = createRootElement(rootFileSystemObject,
-                        structureProvider);
-            }
-        });
-
-        return results[0];
-    }
-
-    protected MinimizedFileSystemElement createRootElement(
-            Object fileSystemObject, IImportStructureProvider provider) {
-        boolean isContainer = provider.isFolder(fileSystemObject);
-        String elementLabel = provider.getLabel(fileSystemObject);
-
-        // Use an empty label so that display of the element's full name
-        // doesn't include a confusing label
-        MinimizedFileSystemElement dummyParent = new MinimizedFileSystemElement(
-                "", null, true);//$NON-NLS-1$
-        dummyParent.setPopulated();
-        MinimizedFileSystemElement result = new MinimizedFileSystemElement(
-                elementLabel, dummyParent, isContainer);
-        result.setFileSystemObject(fileSystemObject);
-
-        //Get the files for the element so as to build the first level
-        result.getFiles(provider);
-
-        return dummyParent;
-    }
-    
-    /**
-     * Returns a content provider for <code>FileSystemElement</code>s that returns 
-     * only folders as children.
-     */
-    protected ITreeContentProvider getFolderProvider() {
-        return new WorkbenchContentProvider() {
-            public Object[] getChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    return element.getFolders(
-                            FileSystemStructureProvider.INSTANCE).getChildren(
-                            element);
-                }
-                return new Object[0];
-            }
-
-            public boolean hasChildren(Object o) {
-                if (o instanceof MinimizedFileSystemElement) {
-                    MinimizedFileSystemElement element = (MinimizedFileSystemElement) o;
-                    //TODO:
-//                    if (element.isPopulated()) {
-//						return getChildren(element).length > 0;
-//					}
-
-                    //If we have not populated then wait until asked
-                    return true;
-                }
-                return false;
-            }
-        };
-    }
-
-    protected void setAllSelections(boolean value) {
-        selectionGroup.setAllSelections(value);
-        
-        handleCheckedListItemsChanged();
-    }
-
-    protected void resetSelection() {
-        currentRoot = getFileSystemTree();
-        this.selectionGroup.setRoot(currentRoot);
-    }
-
-    protected void setSourceName(String path) {
-
-        if (path.length() > 0) {
-
-            String[] currentItems = this.sourceNameField.getItems();
-            int selectionIndex = -1;
-            for (int i = 0; i < currentItems.length; i++) {
-                if (currentItems[i].equals(path)) {
-					selectionIndex = i;
-				}
-            }
-            if (selectionIndex < 0) {
-                int oldLength = currentItems.length;
-                String[] newItems = new String[oldLength + 1];
-                System.arraycopy(currentItems, 0, newItems, 0, oldLength);
-                newItems[oldLength] = path;
-                this.sourceNameField.setItems(newItems);
-                selectionIndex = oldLength;
-            }
-            this.sourceNameField.select(selectionIndex);
-
-            resetSelection();
-        }
-    }
-
-	public void handleEvent(Event event) {
-		if (fChangingUI)
-			return;
-		
-        if (event.widget == sourceBrowseButton) {
-			handleSourceBrowseButtonPressed();
-		}
-        else if (event.widget == sourceNameField) {
-        	handleSourceNameFieldChanged();
-		}
-
-        updateWidgetEnablements();
-	}
-
-	protected void handleSourceBrowseButtonPressed() {
-        String currentSource = this.sourceNameField.getText();
-        DirectoryDialog dialog = new DirectoryDialog(
-                sourceNameField.getShell(), SWT.SAVE);
-        dialog.setText("Generate from directory");
-        dialog.setMessage("Select a directory to generate from.");
-        dialog.setFilterPath(Utils.getSourceDirectoryName(currentSource));
-
-        String selectedDirectory = dialog.open();
-        if (selectedDirectory != null) {
-            //Just quit if the directory is not valid
-            if ((Utils.getSourceDirectory(selectedDirectory) == null)
-                    || selectedDirectory.equals(currentSource)) {
-				return;
-			}
-            //If it is valid then proceed to populate
-            setSourceName(selectedDirectory);
-            selectionGroup.setFocus();
-        }
-    }
-
-    private void handleSourceNameFieldChanged() {
-		SFXArchiveModel model = page.getModel();
-		if (model != null) {
-			Archive archive = model.getArchive();
-			if (archive != null) {
-				fChangingModel = true;
-				try {
-					archive.setSourceRoot(sourceNameField.getText());
-				}
-				finally {
-					fChangingModel = false;
-				}
-			}
-		}
-	}
-
-    private void handleCheckedListItemsChanged() {
-    	SFXArchiveModel model = page.getModel();
-    	if (model != null) {
-    		Archive archive = model.getArchive();
-    		if (archive != null) {
-    	    	List checked = selectionGroup.getAllCheckedListItems();
-    	    	List newEntries = new ArrayList();
-    	    	
-    	    	for (Iterator it = checked.iterator(); it.hasNext(); ) {
-    	    		Object item = it.next();
-    	    		if (item instanceof FileSystemElement) {
-    	    			FileSystemElement element = (FileSystemElement) item;
-    	    			Object object = element.getFileSystemObject();
-    	    			if (object instanceof File) {
-    	    				File file = (File) object;
-            	    		Entry entry = new Entry(model);
-            	    		entry.setType(file.isDirectory() ? Entry.TYPE_DIR : Entry.TYPE_FILE);
-            	    		entry.setPath(Utils.makeRelative(file.getAbsolutePath(), archive.getSourceRoot()));
-            	    		entry.setUnpack(false);
-            	    		newEntries.add(entry);
-    	    			}
-    	    		}
-    	    	}
-
-    	    	fChangingModel = true;
-				try {
-					archive.setEntries(newEntries);
-				}
-				finally {
-					fChangingModel = false;
-				}
-    		}
-    	}
-	}
-
-	public void modelChanged(ModelChangedEvent event) {
-		if (fChangingModel)
-			return;
-		fChangingUI = true;
-		try {
-			if (event.type == ModelChangedEvent.TYPE_REFRESH) {
-				setSourceName(Utils.avoidNull(page.getModel().getArchive().getSourceRoot()));
-				refreshArchiveEntries(page.getModel().getArchive());
-			}
-			if (event.type == ModelChangedEvent.TYPE_CHANGE) {
-				if (event.object instanceof Archive) {
-					switch (event.property) {
-					case Archive.PROP_SOURCE_ROOT:
-						setSourceName(Utils.avoidNull(((Archive) event.object).getSourceRoot()));
-						break;
-					case Archive.PROP_ENTRIES:
-						refreshArchiveEntries((Archive) event.object);
-						break;
-					}
-				}
-			}
-		}
-		finally {
-			fChangingUI = false;
-		}
-	}
-
-	private void refreshArchiveEntries(final Archive archive) {
-		Runnable runnable = new Runnable() {
-            public void run() {
-        		List entries = archive.getEntries();
-        		Map selectionMap = new Hashtable();
-        		for (Iterator it=entries.iterator(); it.hasNext(); ) {
-        			Entry entry = (Entry) it.next();
-        			FileSystemElement element = getFileSystemElement(archive, entry);
-        			if (element != null) {
-        				List resourceList;
-                        Object parent = fileProvider.getParent(element);
-                        if (selectionMap.containsKey(parent)) {
-        					resourceList = (List) selectionMap.get(parent);
-        				}
-                        else {
-                        	resourceList = new ArrayList();
-                            selectionMap.put(parent, resourceList);
-                        }
-                        resourceList.add(element);
-        			}
-        		}
-                selectionGroup.updateSelections(selectionMap);
-            }
-		};
-		
-		BusyIndicator.showWhile(page.getSite().getShell().getDisplay(), runnable);
-		
-//		archive.getModel().notifyModelListeners(new ModelChangedEvent(
-//				ModelChangedEvent.TYPE_CHANGE, archive, Archive.PROP_ENTRIES_UNPACK));
-		
-	}
-
-	private void fillFileSystemElementMap(FileSystemElement root, 
-			Map elementMap, String relativeToPath) {
-		Object object = root.getFileSystemObject();
-		if (object instanceof File) {
-			File file = (File) object;
-    		String path = Utils.makeRelative(file.getAbsolutePath(), relativeToPath);
-    		elementMap.put(path, root);
-		}
-		
-		Object[] files = fileProvider.getChildren(root);
-		for (int i=0; i<files.length; i++) {
-			if (files[i] instanceof FileSystemElement)
-				fillFileSystemElementMap((FileSystemElement) files[i], 
-						elementMap, relativeToPath);
-		}
-		Object[] folders = folderProvider.getChildren(root);
-		for (int i=0; i<folders.length; i++) {
-			if (folders[i] instanceof FileSystemElement)
-				fillFileSystemElementMap((FileSystemElement) folders[i], 
-						elementMap, relativeToPath);
-		}
-	}
-
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public ISelection getSelection() {
-		List items = new ArrayList();
-        TableItem[] selection = selectionGroup.getListTable().getSelection(); 
-        for (int i=0; i<selection.length; i++) {
-        	Object data = selection[i].getData();
-        	if (data instanceof FileSystemElement) {
-        		items.add(data);
-        	}
-        }
-		return new StructuredSelection(items);
-	}
-
-	public void setSelection(ISelection selection) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public FileSystemElement getFileSystemElement(Archive archive, Entry entry) {
-		if (!isFileSystemElementMapValid(archive)) {
-			fileSystemElementMap = new HashMap();
-			fillFileSystemElementMap(currentRoot, fileSystemElementMap, archive.getSourceRoot());
-		}
-		return (FileSystemElement) fileSystemElementMap.get(entry.getPath());
-	}
-	
-	private boolean isFileSystemElementMapValid(Archive archive) {
-		if (fileSystemElementMap == null || archive == null)
-			return false;
-		Object object = currentRoot.getFileSystemObject();
-		if (object instanceof File) {
-			File file = (File) object;
-    		String path = Utils.makeRelative(file.getAbsolutePath(), archive.getSourceRoot());
-    		return currentRoot == fileSystemElementMap.get(path);
-		}
-		return false;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/UnpackFormPart.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/UnpackFormPart.java
deleted file mode 100644
index e1b4ece..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/UnpackFormPart.java
+++ /dev/null
@@ -1,326 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Archive;
-import org.eclipse.epp.sfx.archive.ui.internal.model.Entry;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ISFXArchiveModelListener;
-import org.eclipse.epp.sfx.archive.ui.internal.model.ModelChangedEvent;
-import org.eclipse.epp.sfx.archive.ui.internal.model.SFXArchiveModel;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.FileSystemElement;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class UnpackFormPart extends SectionFormPart implements Listener, ISFXArchiveModelListener {
-
-	public class ListContentProvider implements IStructuredContentProvider {
-		List fContents;	
-
-		public ListContentProvider() {
-		}
-		
-		public Object[] getElements(Object input) {
-			if (fContents != null && fContents == input)
-				return fContents.toArray();
-			return new Object[0];
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			if (newInput instanceof List) 
-				fContents= (List)newInput;
-			else
-				fContents= null;
-		}
-
-		public void dispose() {
-		}
-		
-		public boolean isDeleted(Object o) {
-			return fContents != null && !fContents.contains(o);
-		}
-	}
-	
-    private Button addButton;
-    private Button removeButton;
-    private TableViewer listViewer;
-    private Text commandLineField;
-    
-    private SFXArchiveConfigurationPage page;
-    
-    private boolean fChangingModel;
-    private boolean fChangingUI;
-    
-    private ListContentProvider listContentProvider;
-	
-	public UnpackFormPart(SFXArchiveConfigurationPage page, Composite body) {
-		super(body, "Unpack", page.getEditor().getToolkit());
-		this.page = page;
-
-        updateWidgetEnablements();
-	}
-
-	public Composite createClient(Composite body, FormToolkit toolkit) {
-		return createUnpackGroup(body, toolkit);
-	}
-	
-	protected Composite createUnpackGroup(Composite parent, FormToolkit toolkit) {
-        Composite containerGroup = toolkit.createComposite(parent);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 3;
-        containerGroup.setLayout(layout);
-        containerGroup.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-
-        addButton = toolkit.createButton(containerGroup, "Add to Unpacked", SWT.PUSH);
-        addButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-        addButton.addListener(SWT.Selection, this);
-        Utils.setButtonLayoutData(addButton);
-        
-        removeButton = toolkit.createButton(containerGroup, "Remove from Unpacked", SWT.PUSH);
-        removeButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-        removeButton.addListener(SWT.Selection, this);
-        Utils.setButtonLayoutData(removeButton);
-
-        Label placeholder = toolkit.createLabel(containerGroup, "");
-        placeholder.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-        
-        listViewer = new TableViewer(containerGroup, SWT.BORDER);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 3;
-        data.heightHint = 120;
-        listViewer.getTable().setLayoutData(data);
-        listViewer.setContentProvider(listContentProvider = new ListContentProvider());
-        listViewer.setLabelProvider(new WorkbenchLabelProvider() {
-
-			protected String decorateText(String input, Object element) {
-				String result = super.decorateText(input, element);
-				
-				if (element instanceof FileSystemElement) {
-					Object object = ((FileSystemElement) element).getFileSystemObject();
-					if (object instanceof File) {
-						IPath path = new Path(((File) object).getAbsolutePath());
-						result = path.removeLastSegments(1).addTrailingSeparator().toOSString() + result;
-					}
-				}
-				
-				return result;
-			}
-        	
-        });
-        toolkit.adapt(listViewer.getTable());
-        
-        toolkit.createLabel(containerGroup, "Command Line:");
-
-        commandLineField = toolkit.createText(containerGroup, "", SWT.SINGLE | SWT.BORDER);
-        commandLineField.addListener(SWT.Modify, this);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                | GridData.GRAB_HORIZONTAL);
-        data.horizontalSpan = 2;
-        commandLineField.setLayoutData(data);
-
-        return containerGroup;
-	}
-
-	public void handleEvent(Event event) {
-		if (fChangingUI)
-			return;
-		
-        if (event.widget == addButton) {
-			handleAddButtonPressed();
-		}
-        else if (event.widget == removeButton) {
-			handleRemoveButtonPressed();
-		}
-        else if (event.widget == commandLineField) {
-        	handleCommandLineFieldChanged();
-		}
-
-        updateWidgetEnablements();
-	}
-	
-	private void updateWidgetEnablements() {
-		
-	}
-
-    private void handleRemoveButtonPressed() {
-    	ISelection selection = listViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Archive archive = null;
-			SFXArchiveModel model = page.getModel();
-			if (model != null) {
-				archive = model.getArchive();
-			}
-			List list = ((IStructuredSelection) selection).toList();
-			List newInput = new ArrayList();
-			Object[] elements = listContentProvider.getElements(listViewer.getInput());
-			for (int i=0; i<elements.length; i++) {
-				if (elements[i] instanceof FileSystemElement &&
-					!list.contains(elements[i])) {
-					newInput.add(elements[i]);
-				}
-				else {
-					if (archive != null) {
-						Entry entry = findArchiveEntry(archive, (FileSystemElement) elements[i]);
-						if (entry != null) {
-							entry.setUnpack(false);
-						}
-					}
-				}
-			}
-			if (newInput.size() != elements.length) {
-				listViewer.setInput(newInput);
-				if (archive != null) {
-					fChangingModel = true;
-					try {
-						model.notifyModelListeners(new ModelChangedEvent(
-								ModelChangedEvent.TYPE_CHANGE, archive, Archive.PROP_ENTRIES_UNPACK));
-					}
-					finally {
-						fChangingModel = false;
-					}
-				}
-			}
-		}
-	}
-
-	private void handleAddButtonPressed() {
-    	ISelection selection = page.getSelectionProvider().getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Archive archive = null;
-			SFXArchiveModel model = page.getModel();
-			if (model != null) {
-				archive = model.getArchive();
-			}
-			List newInput = new ArrayList();
-			Object[] elements = listContentProvider.getElements(listViewer.getInput());
-			Set elementsSet = new HashSet();
-			for (int i=0; i<elements.length; i++) {
-				if (elements[i] instanceof FileSystemElement) {
-					newInput.add(elements[i]);
-					elementsSet.add(((FileSystemElement) elements[i]).getFileSystemObject());
-				}
-			}
-			for (Iterator it = ((IStructuredSelection) selection).iterator(); it.hasNext(); ) {
-				Object item = it.next();
-				if (item instanceof FileSystemElement &&
-					!elementsSet.contains(((FileSystemElement) item).getFileSystemObject())) {
-					newInput.add(item);
-					FileSystemElement element = (FileSystemElement) item;
-					if (archive != null) {
-						Entry entry = findArchiveEntry(archive, (FileSystemElement) element);
-						if (entry != null) {
-							entry.setUnpack(true);
-						}
-					}
-				}
-			}
-			if (newInput.size() != elements.length) {
-				listViewer.setInput(newInput);
-				if (archive != null) {
-					fChangingModel = true;
-					try {
-						model.notifyModelListeners(new ModelChangedEvent(
-								ModelChangedEvent.TYPE_CHANGE, archive, Archive.PROP_ENTRIES_UNPACK));
-					}
-					finally {
-						fChangingModel = false;
-					}
-				}
-			}
-		}
-	}
-
-	private Entry findArchiveEntry(Archive archive, FileSystemElement element) {
-		Object object = element.getFileSystemObject();
-		if (object instanceof File) {
-			IPath elementPath = new Path(((File) object).getAbsolutePath());
-			for (Iterator it=archive.getEntries().iterator(); it.hasNext(); ) {
-				Entry entry = (Entry) it.next();
-				IPath path = new Path(archive.getSourceRoot()).append(entry.getPath());
-				if (elementPath.equals(path))
-					return entry;
-			}
-		}
-		return null;
-	}
-
-	private void handleCommandLineFieldChanged() {
-		SFXArchiveModel model = page.getModel();
-		if (model != null) {
-			Archive archive = model.getArchive();
-			if (archive != null) {
-				fChangingModel = true;
-				try {
-					archive.setCommandLine(commandLineField.getText());
-				}
-				finally {
-					fChangingModel = false;
-				}
-			}
-		}
-	}
-
-	public void modelChanged(ModelChangedEvent event) {
-		if (fChangingModel)
-			return;
-		fChangingUI = true;
-		try {
-			if (event.type == ModelChangedEvent.TYPE_REFRESH) {
-				commandLineField.setText(Utils.avoidNull(page.getModel().getArchive().getCommandLine()));
-				refreshArchiveEntries(page.getModel().getArchive());
-			}
-			if (event.type == ModelChangedEvent.TYPE_CHANGE) {
-				if (event.object instanceof Archive) {
-					switch (event.property) {
-					case Archive.PROP_COMMAND_LINE:
-						commandLineField.setText(Utils.avoidNull(((Archive) event.object).getCommandLine()));
-						break;
-					case Archive.PROP_ENTRIES:
-					case Archive.PROP_ENTRIES_UNPACK:
-						refreshArchiveEntries((Archive) event.object);
-						break;
-					}
-				}
-			}
-		}
-		finally {
-			fChangingUI = false;
-		}
-	}
-
-	private void refreshArchiveEntries(Archive archive) {
-		List newInput = new ArrayList();
-		List entries = archive.getEntries();
-		for (Iterator it=entries.iterator(); it.hasNext(); ) {
-			Entry entry = (Entry) it.next();
-			if (entry.isUnpack()) {
-				FileSystemElement element = page.getFileSystemElement(archive, entry);
-				if (element != null)
-					newInput.add(element);
-			}
-		}
-		listViewer.setInput(newInput);
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/Utils.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/Utils.java
deleted file mode 100644
index bd0bc8c..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/Utils.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class Utils {
-
-	public static GridData setButtonLayoutData(Button button) {
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-        int widthHint = 64;
-        Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-        data.widthHint = Math.max(widthHint, minSize.x);
-        button.setLayoutData(data);
-        return data;
-    }
-
-	public static Button createButton(Composite parent, int id, String label,
-            boolean defaultButton, FormToolkit toolkit) {
-        // increment the number of columns in the button bar
-        ((GridLayout) parent.getLayout()).numColumns++;
-
-        Button button = toolkit.createButton(parent, label, SWT.PUSH);
-
-        GridData buttonData = new GridData(GridData.FILL_HORIZONTAL);
-        button.setLayoutData(buttonData);
-
-        button.setData(new Integer(id));
-
-        if (defaultButton) {
-            Shell shell = parent.getShell();
-            if (shell != null) {
-                shell.setDefaultButton(button);
-            }
-            button.setFocus();
-        }
-        return button;
-    }
-
-	public static File getSourceDirectory(String path) {
-        File sourceDirectory = new File(getSourceDirectoryName(path));
-        if (!sourceDirectory.exists() || !sourceDirectory.isDirectory()) {
-            return null;
-        }
-
-        return sourceDirectory;
-    }
-
-    public static String getSourceDirectoryName(String sourceName) {
-        IPath result = new Path(sourceName.trim());
-
-        if (result.getDevice() != null && result.segmentCount() == 0) {
-			result = result.addTrailingSeparator();
-		} else {
-			result = result.removeTrailingSeparator();
-		}
-
-        return result.toOSString();
-    }
-
-    public static String avoidNull(String s) {
-    	return s == null ? "" : s;
-    }
-
-    public static String makeRelative(String absolutePath, String relativeToPath) {
-		IPath path = new Path(absolutePath);
-		IPath relativeTo = new Path(relativeToPath);
-		String result = null;
-		if (path.isAbsolute()
-				&& (relativeTo.getDevice() == null && path.getDevice() == null
-						|| relativeTo.getDevice().equals(path.getDevice()))) {
-			int matchingCount = relativeTo.matchingFirstSegments(path);
-			result = ""; //$NON-NLS-1$
-			for (int i = matchingCount; i < relativeTo.segmentCount() - 1; i++) {
-				result += ".." + java.io.File.separator; //$NON-NLS-1$
-			}
-			for (int i = matchingCount; i < path.segmentCount(); i++) {
-				result += path.segment(i);
-				if (i < path.segmentCount() - 1)
-					result += java.io.File.separator;
-			}
-		}
-		return result;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Archive.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Archive.java
deleted file mode 100644
index 6c94d3f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Archive.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class Archive {
-
-	public static final int PROP_SOURCE_ROOT = 1;
-	public static final int PROP_COMMAND_LINE = 2;
-	public static final int PROP_DESTINATION_FILE = 3;
-	public static final int PROP_ENTRIES = 4;
-	public static final int PROP_ENTRIES_UNPACK = 5;
-
-	private SFXArchiveModel fModel;
-	
-	private String fSourceRoot;
-	private String fCommandLine;
-	private String fDestinationFile;
-	private List fEntries;
-		
-	public Archive(SFXArchiveModel model) {
-		fModel = model;
-		fEntries = new ArrayList();
-	}
-
-	public void parse(Element element) {
-		NodeList childs = element.getChildNodes();
-		for (int i=0; i<childs.getLength(); i++) {
-			Node child = childs.item(i);
-			if (child instanceof Element) {
-				String name = child.getNodeName();
-				if ("source".equals(name)) {
-					parseSource((Element) child);
-				}
-				else if ("destination".equals(name)) {
-					parseDestination((Element) child);
-				}
-			}
-		}
-	}
-
-	private void parseDestination(Element element) {
-		setDestinationFile(element.getAttribute("path"));
-		setCommandLine(element.getAttribute("cmd"));
-	}
-
-	private void parseSource(Element element) {
-		setSourceRoot(element.getAttribute("path"));
-		List newEntries = new ArrayList();
-		NodeList childs = element.getChildNodes();
-		for (int i=0; i<childs.getLength(); i++) {
-			Node child = childs.item(i);
-			if (child instanceof Element) {
-				String name = child.getNodeName();
-				if ("file".equals(name) || "dir".equals(name)) {
-					Entry entry = new Entry(fModel);
-					entry.parse((Element) child);
-					newEntries.add(entry);
-				}
-			}
-		}
-		setEntries(newEntries);
-	}
-
-	public String getSourceRoot() {
-		return fSourceRoot;
-	}
-
-	public void setSourceRoot(String sourceRoot) {
-		fSourceRoot = sourceRoot;
-		fModel.notifyModelListeners(new ModelChangedEvent(
-				ModelChangedEvent.TYPE_CHANGE, this, PROP_SOURCE_ROOT));
-	}
-
-	public String getCommandLine() {
-		return fCommandLine;
-	}
-
-	public void setCommandLine(String commandLine) {
-		fCommandLine = commandLine;
-		fModel.notifyModelListeners(new ModelChangedEvent(
-				ModelChangedEvent.TYPE_CHANGE, this, PROP_COMMAND_LINE));
-	}
-
-	public String getDestinationFile() {
-		return fDestinationFile;
-	}
-
-	public void setDestinationFile(String destinationFile) {
-		fDestinationFile = destinationFile;
-		fModel.notifyModelListeners(new ModelChangedEvent(
-				ModelChangedEvent.TYPE_CHANGE, this, PROP_DESTINATION_FILE));
-	}
-
-	public List getEntries() {
-		return fEntries;
-	}
-
-	public void setEntries(List entries) {
-		fEntries = entries;
-		fModel.notifyModelListeners(new ModelChangedEvent(
-				ModelChangedEvent.TYPE_CHANGE, this, PROP_ENTRIES));
-	}
-
-	public void write(StringBuffer buffer) {
-		buffer.append("<sfxArchive>\n");
-		boolean notEmptySourceRoot = (fSourceRoot != null && !"".equals(fSourceRoot));
-		boolean notEmptyDestinationFile = (fDestinationFile != null && !"".equals(fDestinationFile));
-		boolean notEmptyCommandLine = (fCommandLine != null && !"".equals(fCommandLine));
-		if (notEmptySourceRoot || !fEntries.isEmpty()) {
-			buffer.append("\t<source");
-			if (notEmptySourceRoot)
-				buffer.append(" path=\"" + fSourceRoot + "\"");
-			buffer.append(">\n");
-			for (Iterator it = fEntries.iterator(); it.hasNext(); ) {
-				((Entry) it.next()).write(buffer);
-			}
-			buffer.append("\t</source>\n");
-		}
-		if (notEmptyDestinationFile || notEmptyCommandLine) {
-			if (notEmptySourceRoot || !fEntries.isEmpty())
-				buffer.append("\n");
-			buffer.append("\t<destination");
-			if (notEmptyDestinationFile)
-				buffer.append(" path=\"" + fDestinationFile + "\"");
-			if (notEmptyCommandLine)
-				buffer.append(" cmd=\"" + fCommandLine + "\"");
-			buffer.append("/>\n");
-		}
-		buffer.append("</sfxArchive>\n");
-	}
-
-	public SFXArchiveModel getModel() {
-		return fModel;
-	}
-	
-	
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Entry.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Entry.java
deleted file mode 100644
index fa80293..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/Entry.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-import org.w3c.dom.Element;
-
-public class Entry {
-
-	public final static int TYPE_FILE = 1;
-	public final static int TYPE_DIR = 2;
-	
-	private SFXArchiveModel fModel;
-	
-	private int fType;
-	private String fPath;
-	private boolean fUnpack;
-	
-	public Entry(SFXArchiveModel model) {
-		fModel = model;
-	}
-
-	public void parse(Element element) {
-		String name = element.getNodeName();
-		if ("file".equals(name))
-			setType(TYPE_FILE);
-		else if ("file".equals(name))
-			setType(TYPE_DIR);
-		else
-			fType = -1;
-		setPath(element.getAttribute("path"));
-		setUnpack("true".equals(element.getAttribute("unpack")));
-	}
-
-	public int getType() {
-		return fType;
-	}
-
-	public void setType(int type) {
-		fType = type;
-	}
-
-	public String getPath() {
-		return fPath;
-	}
-
-	public void setPath(String path) {
-		fPath = path;
-	}
-
-	public boolean isUnpack() {
-		return fUnpack;
-	}
-
-	public void setUnpack(boolean unpack) {
-		fUnpack = unpack;
-	}
-
-	public void write(StringBuffer buffer) {
-		switch (fType) {
-		case TYPE_FILE:
-			buffer.append("\t\t<file");
-			break;
-		case TYPE_DIR:
-			buffer.append("\t\t<dir");
-			break;
-		default:
-			return;
-		}
-		if (fPath != null && !"".equals(fPath))
-			buffer.append(" path=\"" + fPath + "\"");
-		if (fUnpack)
-			buffer.append(" unpack=\"true\"");
-		buffer.append("/>\n");
-	}
-	
-	public SFXArchiveModel getModel() {
-		return fModel;
-	}
-	
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ISFXArchiveModelListener.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ISFXArchiveModelListener.java
deleted file mode 100644
index ffb16ce..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ISFXArchiveModelListener.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-public interface ISFXArchiveModelListener {
-
-	void modelChanged(ModelChangedEvent event);
-	
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ListenersList.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ListenersList.java
deleted file mode 100644
index 9332006..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ListenersList.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * This class is used to maintain a list of listeners, and
- * is used in the implementations of several classes within JFace
- * which allow you to register listeners of various kinds.
- * It is a fairly lightweight object, occupying minimal space when
- * no listeners are registered.
- * <p>
- * Note that the <code>add</code> method checks for and eliminates 
- * duplicates based on identity (not equality).  Likewise, the
- * <code>remove</code> method compares based on identity.
- * </p>
- * <p>
- * Use the <code>getListeners</code> method when notifying listeners.
- * Note that no garbage is created if no listeners are registered.
- * The recommended code sequence for notifying all registered listeners
- * of say, <code>FooListener.eventHappened</code>, is:
- * <pre>
- * Object[] listeners = myListenerList.getListeners();
- * for (int i = 0; i < listeners.length; ++i) {
- *    ((FooListener) listeners[i]).eventHappened(event);
- * }
- * </pre>
- * </p>
- */
-
-public class ListenersList {
-	/**
-	 * The initial capacity of the list. Always >= 1.
-	 */
-	private int capacity;
-
-	/**
-	 * The current number of listeners.
-	 * Maintains invariant: 0 <= size <= listeners.length.
-	 */
-	private int size;
-
-	/**
-	 * The list of listeners.  Initially <code>null</code> but initialized
-	 * to an array of size capacity the first time a listener is added.
-	 * Maintains invariant: listeners != null IFF size != 0
-	 */
-	private Object[] listeners = null;
-
-	/**
-	 * The empty array singleton instance, returned by getListeners()
-	 * when size == 0.
-	 */
-	private static final Object[] EmptyArray = new Object[0];
-/**
- * Creates a listener list with an initial capacity of 3.
- */
-public ListenersList() {
-	this(3);
-}
-/**
- * Creates a listener list with the given initial capacity.
- *
- * @param capacity the number of listeners which this list can initially accept 
- *    without growing its internal representation; must be at least 1
- */
-public ListenersList(int capacity) {
-	Assert.isTrue(capacity >= 1);
-	this.capacity = capacity;
-}
-/**
- * Adds the given listener to this list. Has no effect if an identical listener
- * is already registered.
- *
- * @param listener the listener
- */
-public void add(Object listener) {
-	Assert.isNotNull(listener);
-	if (size == 0) {
-		listeners = new Object[capacity];
-	} else {
-	    // check for duplicates using identity
-		for (int i = 0; i < size; ++i) {
-			if (listeners[i] == listener) {
-				return;
-			}
-		}
-		// grow array if necessary
-		if (size == listeners.length) {
-			System.arraycopy(listeners, 0, listeners = new Object[size * 2 + 1], 0, size);
-		}
-	}
-	listeners[size++] = listener;
-}
-/**
- * Returns an array containing all the registered listeners.
- * The resulting array is unaffected by subsequent adds or removes.
- * If there are no listeners registered, the result is an empty array
- * singleton instance (no garbage is created).
- * Use this method when notifying listeners, so that any modifications
- * to the listener list during the notification will have no effect on the
- * notification itself.
- *
- * @return the list of registered listeners
- */
-public Object[] getListeners() {
-	if (size == 0)
-		return EmptyArray;
-	Object[] result = new Object[size];
-	System.arraycopy(listeners, 0, result, 0, size);
-	return result;
-}
-/**
- * Returns whether this listener list is empty.
- *
- * @return <code>true</code> if there are no registered listeners, and
- *   <code>false</code> otherwise
- */
-public boolean isEmpty() {
-	return size == 0;
-}
-/**
- * Removes the given listener from this list. Has no effect if an identical
- * listener was not already registered.
- *
- * @param listener the listener
- */
-public void remove(Object listener) {
-	Assert.isNotNull(listener);
-	for (int i = 0; i < size; ++i) {
-		if (listeners[i] == listener) {
-			if (size == 1) {
-				listeners = null;
-				size = 0;
-			}
-			else {
-				System.arraycopy(listeners, i + 1, listeners, i, --size - i);
-				listeners[size] = null;
-			}
-			return;
-		}
-	}
-}
-/**
- * Returns the number of registered listeners.
- *
- * @return the number of registered listeners
- */
-public int size() {
-	return size;
-}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ModelChangedEvent.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ModelChangedEvent.java
deleted file mode 100644
index ef2529d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/ModelChangedEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-public class ModelChangedEvent {
-
-	public final static int TYPE_CHANGE = 1;
-	public final static int TYPE_REFRESH = 2;
-	
-	public int type;
-	public Object object;
-	public int property;
-
-	public ModelChangedEvent(int type) {
-		this(type, null, 0);
-	}
-	
-	public ModelChangedEvent(int type, Object object) {
-		this(type, object, 0);
-	}
-	
-	public ModelChangedEvent(int type, Object object, int property) {
-		this.type = type;
-		this.object = object;
-		this.property = property;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/SFXArchiveModel.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/SFXArchiveModel.java
deleted file mode 100644
index e14ac9e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/model/SFXArchiveModel.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.model;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringBufferInputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-public class SFXArchiveModel implements IDocumentListener {
-
-	private IDocument fDocument;
-	private Archive fArchive;
-	private ListenersList fListeners;
-	private IPath fPath;
-	
-	private boolean fChangingModel;
-	private boolean fChangingDocument;
-	
-	public SFXArchiveModel(IPath path, IDocument document) {
-		fDocument = document;
-		fListeners = new ListenersList();
-		fPath = path;
-	}
-
-	public void install() {
-		parseDocument();
-		
-		fDocument.addDocumentListener(this);
-	}
-
-	private void parseDocument() {
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-		factory.setNamespaceAware(false);
-		factory.setIgnoringComments(true);
-		factory.setExpandEntityReferences(true);
-		fChangingModel = true;
-		try {
-//			InputStream stream = new StringBufferInputStream(fDocument.get());
-			String content = fDocument.get();
-			DocumentBuilder builder = factory.newDocumentBuilder();
-			builder.setErrorHandler(new ErrorHandler() {
-
-				public void error(SAXParseException exception) throws SAXException {
-					// Ignore
-					exception.printStackTrace();
-				}
-
-				public void fatalError(SAXParseException exception) throws SAXException {
-					// Ignore
-					exception.printStackTrace();
-				}
-
-				public void warning(SAXParseException exception) throws SAXException {
-					// Ignore
-					exception.printStackTrace();
-				}
-				
-			});
-			Document dom = "".equals(content) ? builder.parse(fPath.toFile())
-					: builder.parse(new ByteArrayInputStream(content.getBytes()));
-			NodeList childs = dom.getChildNodes();
-			for (int i=0; i<childs.getLength(); i++) {
-				Node child = childs.item(i);
-				if (child instanceof Element) {
-					String name = child.getNodeName();
-					if ("sfxArchive".equals(name)) {
-						fArchive = new Archive(this);
-						fArchive.parse((Element) child);
-					}
-				}
-			}
-			
-			ModelChangedEvent event = new ModelChangedEvent(ModelChangedEvent.TYPE_REFRESH);
-			Object[] listeners = fListeners.getListeners();
-			for (int i=0; i<listeners.length; i++) {
-				((ISFXArchiveModelListener) listeners[i]).modelChanged(event);
-			}
-		} catch (SAXException e) {
-			// Ignore
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-		} finally {
-			fChangingModel = false;
-		}
-	}
-
-	public void dispose() {
-		fDocument.removeDocumentListener(this);
-	}
-
-	public void documentAboutToBeChanged(DocumentEvent event) {
-		// Ignore
-	}
-
-	public void documentChanged(DocumentEvent event) {
-		if (!fChangingDocument)
-			parseDocument();
-	}
-
-	public void addModelListener(ISFXArchiveModelListener listener) {
-		fListeners.add(listener);
-	}
-	
-	public void removeModelListener(ISFXArchiveModelListener listener) {
-		fListeners.remove(listener);
-	}
-	
-	public void notifyModelListeners(ModelChangedEvent event) {
-		if (fChangingModel)
-			return;
-		Object[] listeners = fListeners.getListeners();
-		for (int i=0; i<listeners.length; i++) {
-			((ISFXArchiveModelListener) listeners[i]).modelChanged(event);
-		}
-		writeDocument();
-	}
-
-	private void writeDocument() {
-		fChangingDocument = true;
-		try {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-			buffer.append("<?sfx version=\"1.0\"?>\n\n");
-			if (fArchive != null) {
-				fArchive.write(buffer);
-			}
-			fDocument.set(buffer.toString());
-		}
-		finally {
-			fChangingDocument = false;
-		}
-	}
-
-	public Archive getArchive() {
-		return fArchive;
-	}
-
-	public IPath getPath() {
-		return fPath;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizard.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizard.java
deleted file mode 100644
index 4518b0d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizard.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.operation.*;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import java.io.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * This is a sample new wizard. Its role is to create a new file 
- * resource in the provided container. If the container resource
- * (a folder or a project) is selected in the workspace 
- * when the wizard is opened, it will accept it as the target
- * container. The wizard creates one file with the extension
- * "sfxArchive". If a sample multi-page editor (also available
- * as a template) is registered for the same extension, it will
- * be able to open it.
- */
-
-public class NewSFXArchiveConfigurationWizard extends Wizard implements INewWizard {
-	private NewSFXArchiveConfigurationWizardPage page;
-	private ISelection selection;
-
-	/**
-	 * Constructor for New SFX Archive Configuration.
-	 */
-	public NewSFXArchiveConfigurationWizard() {
-		super();
-		setNeedsProgressMonitor(true);
-	}
-	
-	/**
-	 * Adding the page to the wizard.
-	 */
-
-	public void addPages() {
-		page = new NewSFXArchiveConfigurationWizardPage(selection);
-		addPage(page);
-	}
-
-	/**
-	 * This method is called when 'Finish' button is pressed in
-	 * the wizard. We will create an operation and run it
-	 * using wizard as execution context.
-	 */
-	public boolean performFinish() {
-		final String containerName = page.getContainerName();
-		final String fileName = page.getFileName();
-		IRunnableWithProgress op = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InvocationTargetException {
-				try {
-					doFinish(containerName, fileName, monitor);
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-		try {
-			getContainer().run(true, false, op);
-		} catch (InterruptedException e) {
-			return false;
-		} catch (InvocationTargetException e) {
-			Throwable realException = e.getTargetException();
-			MessageDialog.openError(getShell(), "Error", realException.getMessage());
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * The worker method. It will find the container, create the
-	 * file if missing or just replace its contents, and open
-	 * the editor on the newly created file.
-	 */
-
-	private void doFinish(
-		String containerName,
-		String fileName,
-		IProgressMonitor monitor)
-		throws CoreException {
-		// create a sample file
-		monitor.beginTask("Creating " + fileName, 2);
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IResource resource = root.findMember(new Path(containerName));
-		if (!resource.exists() || !(resource instanceof IContainer)) {
-			throwCoreException("Container \"" + containerName + "\" does not exist.");
-		}
-		IContainer container = (IContainer) resource;
-		final IFile file = container.getFile(new Path(fileName));
-		try {
-			InputStream stream = openContentStream();
-			if (file.exists()) {
-				file.setContents(stream, true, true, monitor);
-			} else {
-				file.create(stream, true, monitor);
-			}
-			stream.close();
-		} catch (IOException e) {
-		}
-		monitor.worked(1);
-		monitor.setTaskName("Opening file for editing...");
-		getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				IWorkbenchPage page =
-					PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				try {
-					IDE.openEditor(page, file, true);
-				} catch (PartInitException e) {
-				}
-			}
-		});
-		monitor.worked(1);
-	}
-	
-	/**
-	 * We will initialize file contents with a sample text.
-	 */
-
-	private InputStream openContentStream() {
-		String contents =
-		"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-		"<?sfx version=\"1.0\"?>\n\n" + 
-		"<sfxArchive>\n</sfxArchive>\n";
-		return new ByteArrayInputStream(contents.getBytes());
-	}
-
-	private void throwCoreException(String message) throws CoreException {
-		IStatus status =
-			new Status(IStatus.ERROR, "org.eclipse.epp.sfx.archive.ui", IStatus.OK, message, null);
-		throw new CoreException(status);
-	}
-
-	/**
-	 * We will accept the selection in the workbench to see if
-	 * we can initialize from it.
-	 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.selection = selection;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizardPage.java b/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizardPage.java
deleted file mode 100644
index b1e7ad3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive.ui/src/org/eclipse/epp/sfx/archive/ui/internal/wizards/NewSFXArchiveConfigurationWizardPage.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package org.eclipse.epp.sfx.archive.ui.internal.wizards;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-
-/**
- * The "New" wizard page allows setting the container for the new file as well
- * as the file name. The page will only accept file name without the extension
- * OR with the extension that matches the expected one (sfxArchive).
- */
-
-public class NewSFXArchiveConfigurationWizardPage extends WizardPage {
-	private Text containerText;
-
-	private Text fileText;
-
-	private ISelection selection;
-
-	/**
-	 * Constructor for SampleNewWizardPage.
-	 * 
-	 * @param pageName
-	 */
-	public NewSFXArchiveConfigurationWizardPage(ISelection selection) {
-		super("wizardPage");
-		setTitle("SFX Archive Configuration File");
-		setDescription("This wizard creates a new SFX Archive Configuration.");
-		this.selection = selection;
-	}
-
-	/**
-	 * @see IDialogPage#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		layout.numColumns = 3;
-		layout.verticalSpacing = 9;
-		Label label = new Label(container, SWT.NULL);
-		label.setText("&Container:");
-
-		containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		containerText.setLayoutData(gd);
-		containerText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				dialogChanged();
-			}
-		});
-
-		Button button = new Button(container, SWT.PUSH);
-		button.setText("Browse...");
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleBrowse();
-			}
-		});
-		label = new Label(container, SWT.NULL);
-		label.setText("&File name:");
-
-		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		fileText.setLayoutData(gd);
-		fileText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				dialogChanged();
-			}
-		});
-		initialize();
-		dialogChanged();
-		setControl(container);
-	}
-
-	/**
-	 * Tests if the current workbench selection is a suitable container to use.
-	 */
-
-	private void initialize() {
-		if (selection != null && selection.isEmpty() == false
-				&& selection instanceof IStructuredSelection) {
-			IStructuredSelection ssel = (IStructuredSelection) selection;
-			if (ssel.size() > 1)
-				return;
-			Object obj = ssel.getFirstElement();
-			if (obj instanceof IResource) {
-				IContainer container;
-				if (obj instanceof IContainer)
-					container = (IContainer) obj;
-				else
-					container = ((IResource) obj).getParent();
-				containerText.setText(container.getFullPath().toString());
-			}
-		}
-		fileText.setText("new_file.sfxArchive");
-	}
-
-	/**
-	 * Uses the standard container selection dialog to choose the new value for
-	 * the container field.
-	 */
-
-	private void handleBrowse() {
-		ContainerSelectionDialog dialog = new ContainerSelectionDialog(
-				getShell(), ResourcesPlugin.getWorkspace().getRoot(), false,
-				"Select new file container");
-		if (dialog.open() == ContainerSelectionDialog.OK) {
-			Object[] result = dialog.getResult();
-			if (result.length == 1) {
-				containerText.setText(((Path) result[0]).toString());
-			}
-		}
-	}
-
-	/**
-	 * Ensures that both text fields are set.
-	 */
-
-	private void dialogChanged() {
-		IResource container = ResourcesPlugin.getWorkspace().getRoot()
-				.findMember(new Path(getContainerName()));
-		String fileName = getFileName();
-
-		if (getContainerName().length() == 0) {
-			updateStatus("File container must be specified");
-			return;
-		}
-		if (container == null
-				|| (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
-			updateStatus("File container must exist");
-			return;
-		}
-		if (!container.isAccessible()) {
-			updateStatus("Project must be writable");
-			return;
-		}
-		if (fileName.length() == 0) {
-			updateStatus("File name must be specified");
-			return;
-		}
-		if (fileName.replace('\\', '/').indexOf('/', 1) > 0) {
-			updateStatus("File name must be valid");
-			return;
-		}
-		int dotLoc = fileName.lastIndexOf('.');
-		if (dotLoc != -1) {
-			String ext = fileName.substring(dotLoc + 1);
-			if (ext.equalsIgnoreCase("sfxArchive") == false) {
-				updateStatus("File extension must be \"sfxArchive\"");
-				return;
-			}
-		}
-		updateStatus(null);
-	}
-
-	private void updateStatus(String message) {
-		setErrorMessage(message);
-		setPageComplete(message == null);
-	}
-
-	public String getContainerName() {
-		return containerText.getText();
-	}
-
-	public String getFileName() {
-		return fileText.getText();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.sfx.archive/.classpath b/plugins/org.eclipse.epp.sfx.archive/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/.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/plugins/org.eclipse.epp.sfx.archive/.cvsignore b/plugins/org.eclipse.epp.sfx.archive/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.epp.sfx.archive/.project b/plugins/org.eclipse.epp.sfx.archive/.project
deleted file mode 100644
index bc7709d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.archive</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/plugins/org.eclipse.epp.sfx.archive/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.epp.sfx.archive/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b5296da..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Jun 21 17:42:19 NOVST 2007
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/plugins/org.eclipse.epp.sfx.archive/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.sfx.archive/META-INF/MANIFEST.MF
deleted file mode 100644
index 3386e0f..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.epp.sfx.archive;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %pluginProvider
-Require-Bundle: org.eclipse.epp.installer.archive,
- org.eclipse.core.runtime
-Bundle-ClassPath: archiveAntSFX.jar
-Export-Package: org.eclipse.epp.installer.internal.archive.sfx;x-friends:="org.eclipse.epp.sfx.archive.tests,org.eclipse.epp.sfx.tools"
diff --git a/plugins/org.eclipse.epp.sfx.archive/build.properties b/plugins/org.eclipse.epp.sfx.archive/build.properties
deleted file mode 100644
index 19dc912..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               archiveAntSFX.jar
-source.archiveAntSFX.jar = src/
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.sfx.archive/plugin.xml b/plugins/org.eclipse.epp.sfx.archive/plugin.xml
deleted file mode 100644
index 4b0935d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.epp.installer.archive.archive">
-      <archive
-            class="org.eclipse.epp.installer.internal.archive.sfx.XSEArchiveFactory">
-      </archive>
-   </extension>
-
-	<extension point="org.eclipse.ant.core.extraClasspathEntries">
-		<extraClasspathEntry library="archiveAntSFX.jar">
-		</extraClasspathEntry>
-   </extension>
-
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.java
deleted file mode 100644
index f5f35d5..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/BoundedInputStream.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.RandomAccessFile;
-
-
-/**
- * @author itsuart
- *
- */
-public class BoundedInputStream extends InputStream {
-
-	private RandomAccessFile file;
-	private long dataLeft;
-	/**
-	 * 
-	 */
-	public BoundedInputStream(RandomAccessFile source, long maxSize) {
-		file = source;
-		dataLeft = maxSize;
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#read()
-	 */
-	public int read() throws IOException {
-		if (dataLeft == 0)
-			return -1;
-		int result = file.read();
-		if ( result != - 1)
-			dataLeft--;
-		return result;
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#available()
-	 */
-	public int available() throws IOException {
-		return (int) dataLeft;
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#markSupported()
-	 */
-	public boolean markSupported() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#read(byte[], int, int)
-	 */
-	public int read(byte[] b, int off, int len) throws IOException {
-		if (dataLeft == 0)
-			return -1;
-		if (dataLeft >= len)
-		{
-			int dataRead = file.read(b, off, len);
-			if ( dataRead == -1 )
-			{
-				dataLeft = 0;
-				return -1;
-			}
-			dataLeft -= dataRead;
-			return dataRead;
-		}
-		else
-		{
-			//read only allowed num of bytes
-			int dataRead = file.read(b, off, (int) dataLeft);
-			if ( dataRead == -1 )
-			{
-				return -1;
-			}
-			dataLeft -= dataRead;
-			return dataRead;
-		}
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#read(byte[])
-	 */
-	public int read(byte[] b) throws IOException {
-		return read(b,0,b.length);
-	}
-	/* (non-Javadoc)
-	 * @see java.io.InputStream#skip(long)
-	 */
-	public long skip(long n) throws IOException {
-		if (dataLeft == 0)
-			return -1;
-		long bytesToSkip = dataLeft >= n ? n : dataLeft;
-		int skipped = file.skipBytes((int) bytesToSkip);
-		if (skipped == -1)
-			return -1;
-		else
-		{
-			dataLeft -= skipped;
-			return skipped;
-		}
-	}
-	
-	
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.java
deleted file mode 100644
index 8aa891e..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/FileInfo.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-/**
- * @author itsuart
- *
- */
-class FileInfo {
-	int size;
-	long offset;
-	long time;
-	
-	FileInfo(int size, long offset, long time)
-	{
-		this.size = size;
-		this.offset = offset;
-		this.time = time;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/Utils.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/Utils.java
deleted file mode 100644
index 105ec8d..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/Utils.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.RandomAccessFile;
-
-/**
- * @author itsuart
- *
- */
-public final class Utils {
-	private Utils(){};
-	
-	static final int BUFFER_SIZE = 4*1024;
-	
-	public static void copyContent(InputStream source, OutputStream dest, long count) throws IOException
-	{
-		long contentSize = count;
-		byte[] buffer = new byte[BUFFER_SIZE];
-		while ( contentSize != 0)
-		{
-			long bytesToRead = contentSize >= BUFFER_SIZE ? BUFFER_SIZE : contentSize;
-			source.read(buffer, 0, (int) bytesToRead);
-			dest.write(buffer, 0, (int) bytesToRead);
-			contentSize -= bytesToRead;
-		}
-		
-		dest.flush();
-	}
-	
-	public static void writeInt(OutputStream target, int value ) throws IOException
-	{
-		byte[] intBytes = new byte[4];
-		intBytes[0] = (byte)(value & 0xFF);
-		intBytes[1] = (byte)((value & 0xFF00)>>8);
-		intBytes[2] = (byte)((value & 0xFF0000)>>16);
-		intBytes[3] = (byte)((value & 0xFF000000)>>24);
-		target.write(intBytes);
-	}
-	
-	public static int readInt(InputStream input) throws IOException
-	{
-		byte[] intBytes = new byte[4];
-		input.read(intBytes);
-		int result = intBytes[0] + (intBytes[1] << 8) + (intBytes[2] << 16) + (intBytes[3] << 24);
-		return result;
-	}
-	
-	public static int readInt(RandomAccessFile input) throws IOException
-	{
-		byte[] intBytes = new byte[4];
-		input.readFully(intBytes);
-		int result = ((int)intBytes[0] & 0xFF) + ((((int)intBytes[1]) << 8)&0xFF00) + (((int)(intBytes[2]) << 16)&0xFF0000) + 
-		((((int)intBytes[3]) << 24)&0xFF000000);
-		return result;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.java
deleted file mode 100644
index 5dee673..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchive.java
+++ /dev/null
@@ -1,420 +0,0 @@
-
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.RandomAccessFile;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-
-
-/**
- * @author itsuart
- * Xored SelfExtracing Archive
- */
-public class XSEArchive implements IArchive {
-	
-	private static class XSEArchiveIterator implements Iterator{
-		
-		private Iterator iterator;
-		/**
-		 * 
-		 */
-		public XSEArchiveIterator(Iterator base) {
-			iterator = base;
-		}
-		/* (non-Javadoc)
-		 * @see java.util.Iterator#hasNext()
-		 */
-		public boolean hasNext() {
-			return iterator.hasNext();
-		}
-
-		/* (non-Javadoc)
-		 * @see java.util.Iterator#next()
-		 */
-		public Object next() {
-			return iterator.next();
-		}
-
-		/* (non-Javadoc)
-		 * @see java.util.Iterator#remove()
-		 */
-		public void remove() {
-			throw new RuntimeException("R/O Iterator");
-			
-		}
-		
-	}
-
-	private File archiveFile; 
-	public static final int MAX_SUPPORTED_FORMAT_VERSION = 1;
-	private int archiveflags = 0;
-	private Hashtable nameEntryMap = new Hashtable();
-	private Hashtable entryOffsetMap = new Hashtable();
-	private String autorunPath;
-	private String autorunArgs;
-	private ArrayList addedEntries = new ArrayList(); //array of XSEArchiveEntry
-	private OutputStream tempFilesContentsStream;
-	private File tempFilesContentsFile;
-	private ArrayList entries = new ArrayList();
-	
-	public XSEArchive()
-	{
-	}
-	
-	/**
-	 * @throws IOException 
-	 * 
-	 */
-	public XSEArchive(File archiveFile) throws IOException {
-		
-		this.archiveFile = archiveFile;
-		processArchive();
-	}
-	
-	private OutputStream  getTempContentStream() throws FileNotFoundException, IOException{
-		if ( tempFilesContentsStream == null)
-		{
-			tempFilesContentsFile = File.createTempFile("xse", ".tmp");
-			tempFilesContentsStream = new FileOutputStream(tempFilesContentsFile);
-			tempFilesContentsFile.deleteOnExit();
-		}
-		return tempFilesContentsStream;
-	}
-	
-	public void addContent(String name, InputStream content, long contentSize, boolean usePack200, boolean useZip) throws FileNotFoundException, IOException
-	{
-		addContent(name, content, contentSize, -1, usePack200, useZip);
-	}
-	
-	public void addContent(String name, InputStream content, long contentSize, long contentTime, boolean usePack200, boolean useZip) throws FileNotFoundException, IOException
-	{
-		File srcFile = null;
-		File dstFile = null;
-		if (usePack200 && name.endsWith(".jar")) {
-			System.out.print("pack200...");
-			//pack200
-//			IPath path = new Path(name);
-		    String lastName = name;
-		    int i = lastName.lastIndexOf("\\");
-		    if (i != -1) lastName = lastName.substring(i + 1);
-		    i = lastName.lastIndexOf("/");
-		    if (i != -1) lastName = lastName.substring(i + 1);
-		    
-		    srcFile = File.createTempFile(lastName, ".jar");
-		    FileOutputStream srcOut = new FileOutputStream(srcFile);
-		    Utils.copyContent(content, srcOut, contentSize);
-		    srcOut.flush();
-		    srcOut.close();
-		    
-		    dstFile = File.createTempFile(lastName, ".pack.gz");
-		    
-		    String pack200bin = System.getProperty("java.home");
-		    if (!pack200bin.endsWith("\\") && !pack200bin.endsWith("/")) pack200bin = pack200bin + "/";
-		    pack200bin = pack200bin + "bin/pack200";
-	        String[] commandLine = new String[] {
-	        		pack200bin,
-	        		dstFile.getAbsolutePath(), 
-					srcFile.getAbsolutePath() 
-				};
-			Process process = Runtime.getRuntime().exec(commandLine);
-			InputStream is = process.getInputStream();
-			InputStream es = process.getErrorStream();
-			try {
-				process.waitFor();
-			} catch (InterruptedException e) {
-				//Ignore
-			}
-			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
-			String line;
-			while ((line = reader.readLine()) != null) {
-				System.out.println(line);
-			}
-			reader = new BufferedReader(new InputStreamReader(es));
-			while ((line = reader.readLine()) != null) {
-				System.err.println(line);
-			}
-			
-			content = new FileInputStream(dstFile);
-			contentSize = dstFile.length();
-
-			name = name + ".pack.gz";
-		}
-		if ( contentSize != 0 && content != null)
-			Utils.copyContent(content, getTempContentStream(), contentSize);
-		//create entry for file and put it's content to tempFile
-		XSEArchiveEntry entry = new XSEArchiveEntry(name,contentTime,(int) contentSize);
-		nameEntryMap.put(name, entry);
-		addedEntries.add(entry);
-		if (srcFile != null) {
-			srcFile.delete();
-		}
-		if (dstFile != null) {
-			dstFile.delete();
-		}
-	}
-	
-	public void setExecutablePath(String executablePath)
-	{
-		autorunPath = executablePath;
-	}
-	
-	public String getExecutablePath()
-	{
-		return autorunPath;
-	}
-	
-	public void setExecutableArgs(String arguments)
-	{
-		autorunArgs  = arguments;
-	}
-	
-	public String getExecutableArgs()
-	{
-		return autorunArgs;
-	}
-	
-	public void setFileRequired(String name)
-	{
-		//find it's XSEArchiveEntry
-		XSEArchiveEntry entry = (XSEArchiveEntry) nameEntryMap.get(name);
-		if ( entry == null)
-			throw new IllegalArgumentException(name + " not contained in archive");
-		entry.markAsRequired();
-	}
-	
-	public void setFlags(int flags)
-	{
-		archiveflags = flags;
-	}
-	
-	public int getFlags()
-	{
-		return archiveflags;
-	}
-	
-	public void saveToFile(File outFile, boolean usePack200, boolean useZip) throws IOException{
-		tempFilesContentsStream.flush();
-		tempFilesContentsStream.close();
-		tempFilesContentsStream = null;
-		OutputStream archiveWriter = new FileOutputStream(outFile);
-		//write header
-		XSEArchiveHeader header = new XSEArchiveHeader(addedEntries.size());
-		header.write(archiveWriter);
-		int bytesWritten = header.getSize();
-		 //write execinfo
-		Utils.writeInt(archiveWriter,archiveflags); 
-		Utils.writeInt(archiveWriter,addedEntries.size());
-		Utils.writeInt(archiveWriter,addedEntries.size()+ 1);
-		bytesWritten += (4 + 4 + 4);
-		
-		//write FIT
-      
-		for ( int i = 0; i < addedEntries.size(); i++){
-			Utils.writeInt(archiveWriter,(int)((XSEArchiveEntry)addedEntries.get(i)).getSize());
-			Utils.writeInt(archiveWriter, (int)((XSEArchiveEntry)addedEntries.get(i)).getTime());
-		}
-		bytesWritten += ( 8 * addedEntries.size());
-		
-		//write req info
-
-		ArrayList reqIds = new ArrayList();
-		for ( int i = 0; i < addedEntries.size(); i++)
-			if ( ((XSEArchiveEntry)addedEntries.get(i)).isRequired() )
-				reqIds.add(new Integer(i));
-		
-		Utils.writeInt(archiveWriter,reqIds.size());
-		bytesWritten += 4;
-		
-		for ( int i = 0; i < reqIds.size(); i++){
-			Utils.writeInt(archiveWriter, ((Integer)reqIds.get(i)).intValue());
-		}
-		bytesWritten += ( 4 * reqIds.size() );
-		
-		//write string table
-		for ( int i = 0; i < addedEntries.size(); i++){
-			String string = ((XSEArchiveEntry)addedEntries.get(i)).getName();
-			int size = string.length();
-			Utils.writeInt(archiveWriter,size);
-			archiveWriter.write(string.getBytes());
-			bytesWritten += (4 + size);
-		}
-	
-		//add executable and arguments
-		Utils.writeInt(archiveWriter,autorunPath.length());
-		archiveWriter.write(autorunPath.getBytes());
-		bytesWritten += (4 + autorunPath.length());
-		
-		Utils.writeInt(archiveWriter,autorunArgs.length());
-		archiveWriter.write(autorunArgs.getBytes());
-		bytesWritten += (4 + autorunArgs.length());
-		
-		if (useZip) {
-			System.out.print("Compressing archive data...");
-			String entryName = outFile.getName();
-			File tempZipFile = File.createTempFile(entryName, ".zip");
-			tempZipFile.deleteOnExit();
-			ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempZipFile));
-			ZipEntry zipEntry = new ZipEntry(entryName);
-	        zos.putNextEntry(zipEntry);
-			FileInputStream content = new FileInputStream(tempFilesContentsFile);
-		    Utils.copyContent(content, zos, tempFilesContentsFile.length());
-		    content.close();
-		    zos.finish();
-		    zos.flush();
-		    zos.close();
-		    System.out.println("OK");
-
-			Utils.copyContent(new FileInputStream(tempZipFile), archiveWriter, tempZipFile.length());
-			bytesWritten += tempZipFile.length();
-		}
-		else {
-			//append files
-			Utils.copyContent(new FileInputStream(tempFilesContentsFile), archiveWriter, tempFilesContentsFile.length());
-			bytesWritten += tempFilesContentsFile.length();
-		}
-		//append footer
-		archiveWriter.flush();
-		
-		/*for unknown reason, outFile.length sometimes returns 0 
-		 *int packSize = (int) outFile.length();
-		*/
-		Utils.writeInt(archiveWriter, bytesWritten);
-		int crc32 = 0;
-		Utils.writeInt(archiveWriter,crc32);
-
-		archiveWriter.flush();
-		archiveWriter.close();
-		//clean up
-		tempFilesContentsFile = null;
-	}
-	/**
-	 * @throws IOException 
-	 * 
-	 */
-	private void processArchive() throws IOException {
-		
-		RandomAccessFile raf = new RandomAccessFile(archiveFile,"r");
-		if ( archiveFile.isDirectory())
-			throw new IllegalArgumentException("XSEArchive container can be only file");
-		
-		//go to Footer
-		raf.seek(raf.length() - 8);
-		int packSize = Utils.readInt(raf);
-		
-		//go to header
-		raf.seek(raf.length() - 8 - packSize);
-		
-		XSEArchiveHeader header = XSEArchiveHeader.fromFile(raf);
-		if ( header == null ||  
-				! header.getSignature().equals(XSEArchiveHeader.SIGNATURE) || 
-				header.getVersion() > MAX_SUPPORTED_FORMAT_VERSION )
-				throw new RuntimeException("Invalid header");
-		
-		
-		raf.skipBytes(12); //skip execution info
-		FileInfo[] tempFIs = new FileInfo[header.getFilesCount()];
-		int offset = 0;
-		for ( int i = 0; i < header.getFilesCount(); i++)
-		{
-			int fileSize = Utils.readInt(raf);
-			int fileTime = Utils.readInt(raf);
-			FileInfo currentFi = new FileInfo(fileSize, offset, fileTime);
-			tempFIs[i] = currentFi;
-			offset += fileSize;
-		}
-		
-		int reqEntriesSize = Utils.readInt(raf);
-		ArrayList reqList = new ArrayList(reqEntriesSize);
-		for ( int i = 0; i < reqEntriesSize; i++)
-			reqList.add(new Integer(Utils.readInt(raf)));
-		
-		//now read the string table
-		String[] stringTable = new String[ header.getFilesCount()];
-		for ( int i = 0; i < header.getFilesCount(); i++)
-		{
-			int strSize = Utils.readInt(raf);
-			byte[] stringBytes = new byte[strSize];
-			raf.readFully(stringBytes);
-			String str = new String(stringBytes);
-			stringTable[i] = str;
-		}
-		//read executable and args
-		int exeStrSize = Utils.readInt(raf);
-		//raf.readInt();
-		byte[] stringBytes = new byte[exeStrSize];
-		raf.readFully(stringBytes);
-		autorunPath = new String(stringBytes);
-		int argsStrSize = Utils.readInt(raf);
-		stringBytes = new byte[argsStrSize];
-		raf.readFully(stringBytes);
-		autorunArgs = new String(stringBytes);
-		
-		//finally we at begining of file section, update all file infos, and fill collections
-		int fileDatasBeginOffset = (int) raf.getFilePointer();
-		for ( int i = 0; i < tempFIs.length; i++)
-		{
-			long entryOffset = tempFIs[i].offset + fileDatasBeginOffset;
-			String entryName = stringTable[i];
-			XSEArchiveEntry entry = new XSEArchiveEntry(entryName, tempFIs[i].time, tempFIs[i].size, reqList.contains(new Integer(i))); 
-			nameEntryMap.put(entryName, entry);
-			entryOffsetMap.put(entry, new Long(entryOffset));
-			entries.add(entry);
-		}
-		raf.close();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.epp.installer.archive.Archive#getInputStream(org.eclipse.epp.installer.archive.ArchiveEntry)
-	 */
-	public InputStream getInputStream(IArchiveEntry entry) throws IOException {
-		if (entry instanceof XSEArchiveEntry) {
-			XSEArchiveEntry new_name = (XSEArchiveEntry) entry;
-			//navigate to file start
-			
-			//create stream
-			RandomAccessFile raf = new RandomAccessFile(archiveFile,"r");
-			Long offset = (Long) entryOffsetMap.get(entry);
-			if ( offset == null)
-				throw new IllegalArgumentException(entry.getName() + " are not exists in this archive");
-			raf.skipBytes((int)offset.longValue());
-			return new BoundedInputStream(raf,entry.getSize());
-		}
-		else
-			throw new IllegalArgumentException(entry.getName());
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.epp.installer.archive.Archive#getName()
-	 */
-	public String getName() {
-		return archiveFile.getName();
-	}
-	
-	public Iterator entries() {
-		return new XSEArchiveIterator(entries.iterator());
-	}
-
-	public IArchiveEntry getEntry(String name) {
-		return (IArchiveEntry) nameEntryMap.get(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchive#close()
-	 */
-	public void close() throws IOException {
-		
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.java
deleted file mode 100644
index 0e60fda..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveEntry.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.File;
-
-import org.eclipse.epp.installer.archive.IArchiveEntry;
-
-/**
- * @author itsuart
- *
- */
-public class XSEArchiveEntry implements IArchiveEntry {
-	
-	private boolean required;
-	
-	private String name;
-	private long time;
-	private int size;
-	/**
-	 * @param name
-	 * @param time
-	 * @param size
-	 */
-	public XSEArchiveEntry(String name, long time, int size) {
-		this.name = name;
-		this.time = time;
-		this.size = size;
-		this.required = false;
-	}
-	
-	public XSEArchiveEntry(String name, long time, int size, boolean required) {
-		this(name, time, size);
-		this.required = required;
-	}
-	
-	public boolean isRequired()
-	{
-		return required;
-	}
-	
-	public void markAsRequired(){
-		required = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveEntry#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveEntry#getSize()
-	 */
-	public long getSize() {
-		return size;
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveEntry#getTime()
-	 */
-	public long getTime() {
-		return time;
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveEntry#isDirectory()
-	 */
-	public boolean isDirectory() {
-		return name.endsWith(File.separator);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return name.hashCode() ^ size;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object arg0) {
-		// TODO Auto-generated method stub
-		if ( this == arg0)
-			return true;
-		else
-			if (arg0 instanceof XSEArchiveEntry) {
-				XSEArchiveEntry new_name = (XSEArchiveEntry) arg0;
-				return (new_name.name.equals(name) && new_name.size == size);
-			}
-			else
-				return false;
-		
-	}
-	
-	
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.java
deleted file mode 100644
index d97a139..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveFactory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.epp.installer.archive.IArchive;
-import org.eclipse.epp.installer.archive.IArchiveFactory;
-
-
-/**
- * @author itsuart
- *
- */
-public class XSEArchiveFactory implements IArchiveFactory, IExecutableExtension {
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveFactory#createArchive(java.io.File)
-	 */
-	public IArchive createArchive(File file) throws IOException {
-		return new XSEArchive(file);
-	}
-
-	/* (non-Javadoc)
-	 * @see com.instantiations.installer.archive.IArchiveFactory#isArchive(java.io.File)
-	 */
-	public boolean isArchive(File file) {
-		if ( file.isFile() && file.canRead()){
-			/*
-			 * Check for SFX Footer and Header
-			 */
-			RandomAccessFile raf = null;
-			try {
-				raf = new RandomAccessFile(file,"r");
-				//go to Footer
-				raf.seek(raf.length() - 8);
-				int packSize = Utils.readInt(raf);
-				if ( packSize <= XSEArchiveHeader.SIGNATURE.length()){
-					raf.close();
-					return false;
-				}
-					
-				//go to header
-				raf.seek(raf.length() - 8 - packSize);
-				
-				XSEArchiveHeader header = XSEArchiveHeader.fromFile(raf);
-				if ( header == null ||  
-					! header.getSignature().equals(XSEArchiveHeader.SIGNATURE) || 
-					 (header.getVersion() > XSEArchive.MAX_SUPPORTED_FORMAT_VERSION) ){
-					//version check removed for purpose
-					raf.close();
-					return false;
-				}
-				//ok, at first glance archive is valid
-				raf.close();
-				return true;
-			} catch (FileNotFoundException e1) {
-				return false;
-			} catch (IOException e) {
-				try {
-					if ( raf != null)
-						raf.close();
-				} catch (IOException e1) {
-				}
-				return false;
-			}
-			
-			
-		}else // not a file, or we can't read from it
-			return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-	 */
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-		// TODO Auto-generated method stub
-		
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.java b/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.java
deleted file mode 100644
index c325ad3..0000000
--- a/plugins/org.eclipse.epp.sfx.archive/src/org/eclipse/epp/installer/internal/archive/sfx/XSEArchiveHeader.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.installer.internal.archive.sfx;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.RandomAccessFile;
-
-
-/**
- * @author itsuart
- *
- */
-final class XSEArchiveHeader {
-	
-	static final String SIGNATURE = "org.eclipse.epp.sfx";
-	private String _signature = SIGNATURE;
-	private int _version;
-	private int _filesCount;
-	
-	
-	private XSEArchiveHeader(){}
-	/**
-	 * 
-	 */
-	XSEArchiveHeader(int filesCount) {
-		_version = 1;
-		_filesCount = filesCount;
-	}
-	
-	static XSEArchiveHeader fromStream(InputStream stream) throws IOException
-	{
-		XSEArchiveHeader header = new XSEArchiveHeader();
-		byte[] buffer = new byte[19];
-		if ( 19 != stream.read(buffer))
-			return null;
-		String signature = new String(buffer);
-		int version = stream.read();
-		int filesCount = Utils.readInt(stream);
-		header._signature = signature;
-		header._version = version;
-		header._filesCount = filesCount;
-		
-		return header;
-	}
-	
-	static XSEArchiveHeader fromFile(RandomAccessFile file) throws IOException
-	{
-		XSEArchiveHeader header = new XSEArchiveHeader();
-		byte[] buffer = new byte[19];
-		file.readFully(buffer);
-		String signature = new String(buffer);
-		int version = file.read();
-		int filesCount = Utils.readInt(file);
-		header._signature = signature;
-		header._version = version;
-		header._filesCount = filesCount;
-		
-		return header;
-	}
-	
-	void write(OutputStream stream) throws IOException
-	{
-		stream.write(_signature.getBytes());
-		stream.write(_version);
-		Utils.writeInt(stream, _filesCount);
-	}
-	
-	String getSignature()
-	{
-		return _signature;
-	}
-	
-	int getVersion()
-	{
-		return _version;
-	}
-	
-	int getFilesCount()
-	{
-		return _filesCount;
-	}
-	
-	int getSize(){
-		return 19 + 1 + 4; //sinature, version, files count
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/.cvsignore b/plugins/org.eclipse.epp.sfx.native/.cvsignore
deleted file mode 100644
index 964e481..0000000
--- a/plugins/org.eclipse.epp.sfx.native/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.epp.sfx.ncb
-org.eclipse.epp.sfx.suo
-debug
diff --git a/plugins/org.eclipse.epp.sfx.native/.project b/plugins/org.eclipse.epp.sfx.native/.project
deleted file mode 100644
index f6a6ef2..0000000
--- a/plugins/org.eclipse.epp.sfx.native/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.native</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/.cvsignore b/plugins/org.eclipse.epp.sfx.native/extractor/.cvsignore
deleted file mode 100644
index 5b1a5be..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-Release
-admin.manifest
-manifest.xml
-Debug
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/File.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/File.cpp
deleted file mode 100644
index aa4c1ca..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/File.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "File.h"
-#include <stdio.h>
-
-#ifdef WINDOWS
-File::File(STRING filePath, bool read)
-#else
-File::File(STRING filePath, const char* mode)
-#endif
-{
-	_closed = false;
-	STRING fileFolder = Path::GetFileFolder(filePath);
-#ifdef WINDOWS
-	
-	SHCreateDirectoryExA (0, fileFolder, 0);
-	//must return ERROR_SUCCESS
-#else
-	STRING str = (STRING)System::SafeAllocMemory(strlen(fileFolder) + 20);
-	strcpy(str,"mkdir -p ");
-	strcat(str, fileFolder);
-	system(str);
-	System::SafeFreeMemory(str);
-#endif
-
-	System::SafeFreeMemory(fileFolder);
-#ifdef WINDOWS
-	if (read)
-		_file = CreateFileA(filePath, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); 
-	else
-		_file = CreateFileA(filePath, GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
-#else
-	_file = fopen(filePath, mode);
-#endif
-	
-}
-
-File::~File(void)
-{
-	if ( ! _closed)
-	#ifdef WINDOWS
-		CloseHandle(_file);
-	#else
-		fclose(_file);
-	#endif
-		
-}
-
-File* File::Open(STRING filePath)
-{
-	if ( 0 == filePath)
-		return 0;
-	bool _closed = false;
-	//STRING fileFolder = Path::GetFileFolder(filePath);
-	File* file = (File*) System::SafeAllocMemory(sizeof(File));
-#ifdef WINDOWS
-	//File* file = new File(filePath, false);
-	//SHCreateDirectoryExA (0, fileFolder, 0);
-	file->_closed = false;
-	file->_file = CreateFileA(filePath, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
-#else
-	file->_closed = false;
-	file->_file = fopen(filePath, "rb");
-#endif
-	if ( 0 >= file->_file)
-		return 0;
-
-	return file;
-}
-
-bool File::Seek(File* file,long position, int origin)
-{
-	if ( 0 >= _file || _closed )
-		return false;
-#ifdef WINDOWS
-	return INVALID_SET_FILE_POINTER != SetFilePointer(file->_file, position, 0, origin);
-#else
-	int seek = (origin == SEEK__BEGIN ? SEEK_SET : (origin == SEEK__CURRENT ? SEEK_CUR : SEEK_END));
-	int result = fseek(_file, position, seek);
-	return ! result;
-#endif
-}
-
-bool File::Write(File* file,BYTE* buffer, UINT bytesToWrite)
-{
-	if ( 0 >= _file || _closed )
-		return false;
-#ifdef WINDOWS
-	DWORD dwWritten = 0;
-	WriteFile(file->_file, buffer, bytesToWrite,&dwWritten, 0);
-	return dwWritten == bytesToWrite;
-#else
-	 return bytesToWrite == fwrite(buffer, 1, bytesToWrite, _file);
-#endif
-}
-bool File::Close(File* file)
-{
-	if ( true == file->_closed )
-		return false;
-#ifdef WINDOWS
-	bool result = CloseHandle(file->_file);
-	file->_file = 0;
-	file->_closed = true;
-	return result;
-#else
-	if ( EOF != fclose(_file) )
-	{
-		_closed = true;
-		_file = 0;
-		return true;
-	}
-	else
-		return false;
-#endif
-}
-UINT File::Read(File* file, BYTE* buffer, UINT bytesToRead)
-{
-	if ( 0 == bytesToRead )
-		return 0;
-	if ( 0 == buffer )
-		return bytesToRead + 1;
-	if ( 0 >= file->_file ||  file->_closed )
-		return bytesToRead + 2;
-#ifdef WINDOWS
-	DWORD dwRead = 0;
-	ReadFile(file->_file,buffer, bytesToRead, &dwRead, 0);
-	return dwRead;
-#else
-	return (UINT)fread(buffer, 1, bytesToRead, _file);
-#endif
-}
-
-File* File::Create(STRING filePath)
-{
-	if ( 0 == filePath)
-		return 0;
-	bool _closed = false;
-	STRING fileFolder = Path::GetFileFolder(filePath);
-	File* file = (File*) System::SafeAllocMemory(sizeof(File));
-	file->_closed = false;
-	File::CreateDirectory(fileFolder);
-#ifdef WINDOWS
-	file->_file = CreateFileA(filePath, GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
-#else
-	file->_file = fopen(filePath, "wb");
-#endif
-	if ( 0 >= file->_file)
-	{
-		file->_closed = true;
-		return 0;
-	}
-
-	return file;
-}
-
-
-// return current position in file
-UINT File::GetCurentPos(File* file)
-{
-	if ( 0 >= _file || _closed )
-		return (UINT)-1;
-#ifdef WINDOWS
-	return SetFilePointer(file->_file, 0, 0,FILE_CURRENT);
-#else
-	return ftell(_file);
-#endif
-}
-
-UINT File::ReadUINT(File* file)
-{
-	if ( 0 == _file || _closed )
-		return (UINT)-1;
-	BYTE buffer[4];
-	Read(file,buffer,4);
-	return MAKE_UINT(buffer[0],buffer[1],buffer[2],buffer[3]);
-}
-
-bool File::Skip(File* file,long bytesToSkip)
-{
-	return Seek(file,bytesToSkip,SEEK__CURRENT);
-}
-
-bool File::CreateDirectory(STRING name)
-{
-#ifdef WINDOWS
-	int result = SHCreateDirectoryExA (0, name, 0);
-	//ignore already exitant folders
-	return  ( result == ERROR_SUCCESS || result == ERROR_ALREADY_EXISTS || result == ERROR_FILE_EXISTS);
-#else
-	STRING str = (STRING)System::SafeAllocMemory(strlen(name) + 20);
-	strcpy(str,"mkdir -p ");
-	strcat(str, name);
-	system(str);
-	System::SafeFreeMemory(str);
-	return true;
-#endif
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/File.h b/plugins/org.eclipse.epp.sfx.native/extractor/File.h
deleted file mode 100644
index f3afc7a..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/File.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _FILE_H
-#define _FILE_H
-
-#include "globals.h"
-#include <stdio.h>
-
-#define SEEK__BEGIN 0
-#define SEEK__CURRENT 1
-#define SEEK__END 2
-
-class File
-{
-public:
-
-	
-	bool _closed;
-#ifdef WINDOWS
-	HANDLE _file;
-	File(STRING filePath, bool read);
-#else
-	FILE* _file;
-	File(STRING filePath, const char* mode);
-#endif
-	
-public:
-	~File(void);
-	bool Seek(File* file,long position, int origin);
-	bool Write(File* file,BYTE* buffer, UINT bytesToWrite);
-	bool Close(File* file);
-	UINT Read(File* file,BYTE* buffer, UINT bytesToRead); 
-	static File* Create(STRING filePath);
-	static File* Open(STRING filePath);
-
-public:
-	// return current position in file
-	UINT GetCurentPos(File* file);
-public:
-	UINT ReadUINT(File* file);
-public:
-	bool Skip(File* file,long bytesToSkip);
-public:
-	static bool CreateDirectory(STRING name);
-};
-
-#endif
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.cpp
deleted file mode 100644
index 1f87b74..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "System.h"
-#include "Formatter.h"
-Formatter::Formatter(File* file)
-{
-	_file = file;
-}
-
-Formatter::~Formatter(void)
-{
-}
-
-SFXFooter* Formatter::ParseFooter()
-{
-	//navigate and read SFX Footer
-	if ( false == _file->Seek(_file, - sizeof(SFXFooter), SEEK__END ))
-		return 0;
-	SFXFooter* footer = (SFXFooter*)System::SafeAllocMemory(sizeof(SFXFooter));
-	
-	UINT packageSize = _file->ReadUINT(_file);
-	UINT crc32 = _file->ReadUINT(_file);
-
-	footer->PackageSize = packageSize;
-	footer->CRC32 = crc32;
-	
-	return footer;
-}
-
-SFXHeader* Formatter::ParseHeader(void)
-{
-	SFXHeader* header = (SFXHeader*)System::SafeAllocMemory(sizeof(SFXHeader));
-
-	_file->Read(_file,header->Signature,19);
-	BYTE version = 0;
-	_file->Read(_file,&version,1);
-	header->Version = version;
-	header->numberOfFiles = _file->ReadUINT(_file);
-	return header;
-}
-
-ExecutionInfo* Formatter::ParseExecutionInfo(void)
-{
-	ExecutionInfo* result = (ExecutionInfo*)System::SafeAllocMemory(sizeof(ExecutionInfo));
-	result->Flags = _file->ReadUINT(_file);
-	result->ExecutableStringId = _file->ReadUINT(_file);
-	result->ArgsStringId = _file->ReadUINT(_file);
-
-	return result;
-}
-
-FileInformation* Formatter::ParseFileInformationTable(UINT entriesCount)
-{
-	FileInformation* result = (FileInformation*)System::SafeAllocMemory(entriesCount * sizeof(FileInformation));
-
-	for ( int i = 0; i < entriesCount; i ++)
-	{
-		UINT fileSize = _file->ReadUINT(_file);
-		UINT fileName = _file->ReadUINT(_file);
-		UINT* currStructPointer = (UINT*)(result + i);
-		*currStructPointer = fileSize;
-		*(currStructPointer + 1) = fileName;
-	}
-
-	return result;
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.h b/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.h
deleted file mode 100644
index 1dfdd8e..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/Formatter.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-#include "sfxformat.h"
-#include "File.h"
-class Formatter
-{
-	
-public:
-	File* _file;
-	Formatter(File* file);
-public:
-	~Formatter(void);
-public:
-	SFXFooter* ParseFooter(void);
-public:
-	SFXHeader* ParseHeader(void);
-public:
-	ExecutionInfo* ParseExecutionInfo(void);
-public:
-	FileInformation* ParseFileInformationTable(UINT entriesCount);
-};
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/OS.h b/plugins/org.eclipse.epp.sfx.native/extractor/OS.h
deleted file mode 100644
index f45f65e..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/OS.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef OS_H
-#define OS_H
-
-#define MAKE_UINT(a,b,c,d) (UINT)(a | (UINT)b <<8 | (UINT)c <<16 | (UINT)d<<24)
-
-#ifdef WINDOWS
-#include "windows.h"
-#include "windef.h"
-#include "shlobj.h"
-#else
-//*NIX systems
-#define UINT unsigned int
-#define BYTE unsigned char
-
-#endif
-
-#endif
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/Path.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/Path.cpp
deleted file mode 100644
index 835b1cd..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/Path.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "Path.h"
-#include "String.h"
-
-void Replace(STRING str, char oldValue, char newValue)
-{
-	int len = String::StrLen(str);
-	for ( int i = 0; i < len; i++)
-		if ( oldValue ==  *(i + str) ) *(i + str) = newValue;
-}
-
-STRING Path::Combine(STRING path1, STRING path2)
-{
-	//check that path1 ends with PATH_SEPARATOR
-
-	//if not -  append it
-	
-	UINT path1Length = String::StrLen(path1);
-	UINT path2Length = String::StrLen(path2);
-	bool appendPathSeparator = ( *PATH_SEPARATOR != *(path1 + path1Length - 1));
-	
-	STRING result = (STRING)System::SafeAllocMemory(path1Length + path2Length + 2);
-	if ( 0 == result )
-		return 0;
-	String::StrCpy(result, path1);
-	if ( appendPathSeparator )
-	{
-		String::StrCat(result,PATH_SEPARATOR);
-	}
-	STRING tmpPath2 = String::StrDup(path2);
-	//replace other system's path separators with current
-#ifdef WINDOWS
-	Replace(tmpPath2,*PATH_SEPARATOR_NIX_A, *PATH_SEPARATOR);
-#else
-	Replace(tmpPath2, *PATH_SEPARATOR_WIN_A, *PATH_SEPARATOR);
-#endif
-	String::StrCat(result, tmpPath2);
-	System::SafeFreeMemory(tmpPath2);
-	return result;
-}
-
-
-STRING Path::GetFileFolder(STRING filePath)
-{
-	UINT len = String::StrLen(filePath);
-	while( len-- > 1)
-		if ( *PATH_SEPARATOR == *(filePath + len - 1) )
-			break;
-	if ( 0 != len )
-	{
-		STRING result = (STRING)System::SafeAllocMemory(len + 1);
-		String::StrNCpy(result, filePath, len);
-		return result;
-	}
-	else
-		return 0;
-}
-
-bool Path::IsDirectory(STRING path)
-{
-	if ( 0 == path)
-		return 0;
-	UINT len = String::StrLen(path);
-	return  (*PATH_SEPARATOR == *(path + len - 1) );
-		
-}
-
-STRING Path::GetFileDirectory(STRING filePath){
-	if ( 0 == filePath )
-		return 0;
-	if ( IsDirectory(filePath) )
-		return String::StrDup(filePath);
-	else {
-		UINT lastDelimiterIndx = String::LastIndexOf(PATH_SEPARATOR, filePath);
-		if ( lastDelimiterIndx == -1)
-			return 0;
-		STRING directory = (STRING)System::SafeAllocMemory(lastDelimiterIndx + 2 ); //+1 for ending 0, +1 for path_separator
-		String::StrNCpy(directory,filePath, lastDelimiterIndx + 1);
-		return directory;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/Path.h b/plugins/org.eclipse.epp.sfx.native/extractor/Path.h
deleted file mode 100644
index df573b7..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/Path.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-#include "globals.h"
-#include "OS.h"
-
-#define PATH_SEPARATOR_WIN_A "\\"
-#define PATH_SEPARETOR_WIN_W "\\\0"
-#define PATH_SEPARATOR_NIX_A "/"
-#define PATH_SEPARATOR_NIX_W "/\0"
-
-#ifdef WINDOWS
-//whoops. unicode problem
-#define PATH_SEPARATOR PATH_SEPARATOR_WIN_A
-#else
-#define PATH_SEPARATOR PATH_SEPARATOR_NIX_A
-#endif
-
-class Path
-{
-private:
-//	Path(void) = 0;
-//	~Path(void) = 0;
-public:
-	static STRING Combine(STRING path1, STRING path2);
-public:
-	static STRING GetFileFolder(STRING filePath);
-public:
-	static bool IsDirectory(STRING path);
-	static STRING GetFileDirectory(STRING filePath);
-};
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/String.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/String.cpp
deleted file mode 100644
index ec00209..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/String.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-#include "String.h"
-
-//not optimized at all (
-STRING String::ReplaceAll(STRING originalString, STRING subStringToReplace, STRING newValue)
-{
-	STRING entry = StrStr(originalString, subStringToReplace);
-	if ( 0 == entry )
-		//simply return copy of original
-		return StrDup(originalString);
-	
-	//we have first entry 
-	UINT leftSize = (UINT)entry - (UINT)originalString;
-	UINT originalLength = StrLen(originalString);
-	UINT subLength = StrLen(subStringToReplace);
-	UINT newValueSize = StrLen(newValue);
-	UINT rightSize = originalLength - leftSize - subLength;
-	UINT resultSize = leftSize + rightSize + newValueSize;
-	
-	STRING result = (STRING) System::SafeAllocMemory(resultSize + 1); //+1 for null character
-	System::MemCpy((BYTE*)result,(BYTE*)originalString,leftSize);
-	System::MemCpy((BYTE*)(result + leftSize), (BYTE*)newValue, newValueSize);
-	System::MemCpy((BYTE*)(result + leftSize + newValueSize),(BYTE*) (entry + subLength), rightSize);
-	
-	ReplaceAll(result, subStringToReplace, newValue);
-	return result;
-}
-
-void String::StrCpy(STRING dest, STRING source)
-{
-#ifdef WINDOWS
-	lstrcpyA(dest, source);
-#else
-	strcpy(dest, source);
-#endif
-}
-
-
-UINT String::StrLen(STRING string)
-{
-#ifdef WINDOWS
-	return lstrlenA(string);
-#else
-	return strlen(string);
-#endif
-}
-
-void String::StrCat(STRING dest, STRING src)
-{
-#ifdef WINDOWS
-	lstrcatA(dest,src);
-#else
-	strcat(dest,src);
-#endif
-}
-
-void String::Sprintf1(STRING buffer, STRING format, int arg1)
-{
-
-#ifdef WINDOWS
-	wsprintfA(buffer, format, arg1);
-#else
-	sprintf(buffer,format,arg1);
-#endif
-}
-
-void String::Sprintf2(STRING buffer, STRING format, int arg1, int arg2)
-{
-#ifdef WINDOWS
-	wsprintfA(buffer, format, arg1, arg2);
-#else
-	sprintf(buffer,format,arg1,arg2);
-#endif
-}
-
-
-void String::StrNCpy(STRING dest, STRING source, UINT count)
-{
-#ifdef WINDOWS
-	lstrcpynA( dest, source, count);
-#else
-	strncpy(dest, source, count);
-#endif
-}
-
-STRING String::StrDup(STRING str)
-{
-	STRING result = (STRING)System::SafeAllocMemory(StrLen(str) + 1);
-	StrCpy(result, str);
-	return result;
-}
-
-STRING String::StrStr(STRING str1, STRING str2)
-{
-	UINT len1 = StrLen(str1);
-	UINT len2 = StrLen(str2);
-	if ( len1 < len2 )
-		return 0;
-	if ( len1 == len2 &&  0 == System::MemCmp((BYTE*)str1,(BYTE*)str2,len1) )
-		return str1;
-	UINT delta = len1 - len2;
-	for ( UINT i = 0; i <= delta; i++)
-		if ( 0 == System::MemCmp( (BYTE*)(str1 + i), (BYTE*)str2, len2) )
-			return (str1 + i);
-	
-	return 0;
-}
-
-bool String::EndsWith(STRING string, STRING suffix)
-{
-	if ( 0 == string || 0 == suffix)
-		return false;
-	UINT stringLen = String::StrLen(string);
-	UINT suffixLen = String::StrLen(suffix);
-	if ( suffixLen > stringLen)
-		return false;
-	STRING suffixStart = string + (stringLen - suffixLen);
-	return  1 + System::MemCmp((BYTE*)suffixStart, (BYTE*)suffix, suffixLen + 1);
-}
-UINT String::LastIndexOf(STRING stringToSearch, STRING originalString)
-{
-	if ( stringToSearch == 0 || originalString == 0)
-		return 0;
-	UINT originalLength = StrLen(originalString);
-	UINT stringLen = StrLen(stringToSearch);
-	if ( originalLength < stringLen)
-		return - 1;
-	UINT startPos = originalLength - stringLen;
-	while ( startPos >= 0){
-		if ( System::MemCmp((BYTE*)(startPos + originalString), (BYTE*)stringToSearch, stringLen) )
-			return startPos;
-		startPos--;
-	}
-	return - 1; //nothing found
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/String.h b/plugins/org.eclipse.epp.sfx.native/extractor/String.h
deleted file mode 100644
index d75a7d2..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/String.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#pragma once
-
-//#include "System.h"
-//#include "OS.h"
-#include "globals.h"
-
-class String
-{
-private:
-	String(void);
-	~String(void);
-public:
-	static STRING ReplaceAll(STRING originalString, STRING subStringToReplace, STRING newValue);
-public:
-	static void StrCpy(STRING dest, STRING source);
-public:
-	static UINT StrLen(STRING string);
-public:
-	static void StrCat(STRING dest, STRING src);
-public:
-	static void Sprintf1(STRING buffer, STRING format, int arg1);
-	static void Sprintf2(STRING buffer, STRING format, int arg1, int arg2);
-public:
-	static void StrNCpy(STRING dest, STRING source, UINT count);
-public:
-	static STRING StrDup(STRING str);
-public:
-	static STRING StrStr(STRING str1, STRING str2);
-public:
-	static bool EndsWith(STRING string, STRING suffix);
-	static UINT LastIndexOf(STRING stringToSearch, STRING originalString);
-};
-
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/System.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/System.cpp
deleted file mode 100644
index b047c58..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/System.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-#include "System.h"
-//
-#include <stdio.h>
-//#include <process.h>
-#include <errno.h>
-#include <memory.h>
-#include "String.h"
-#ifndef WINDOWS
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#endif
-
-void* System::SafeAllocMemory(UINT size)
-{
-	if ( 0 == size )
-		return 0;
-#ifdef WINDOWS
-	void* result = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
-	return result;
-#else
-	void* result = malloc(size);
-	if ( 0 == result)
-		return 0;
-	memset(result, 0, size);
-	return result;
-#endif
-	
-}
-
-bool System::SafeFreeMemory(void* memory)
-{
-	if (0 == memory)
-		return false;
-#ifdef WINDOWS
-	return HeapFree(GetProcessHeap(),0, memory);
-#else
-	free( memory);
-	return true;
-#endif
-
-	
-}
-void System::ShowErrorMessage(STRING message)
-{
-#ifdef WINDOWS
-	MessageBoxA(0, message, "Extracting error", MB_OK | MB_ICONERROR);
-#else
-	printf("%s\n",message);
-	//fflush(stderr);
-#endif
-
-}
-
-bool System::ExecuteAndWait(STRING executablePath, STRING args)
-{
-#ifdef WINDOWS
-	STARTUPINFOA    si;
-    PROCESS_INFORMATION  pi;
-	GetStartupInfoA(&si);
-	STRING fullCommand = (STRING)System::SafeAllocMemory(String::StrLen(executablePath) + String::StrLen(args) + 20);
-	String::Sprintf2(fullCommand,"%s %s", (int)executablePath, (int)args);
-	if ( 0 != CreateProcessA(0,fullCommand,0,0,false,0,0,0,&si,&pi) )
-	{
-		System::SafeFreeMemory(fullCommand);
-		//wait it for exit
-		WaitForSingleObject(pi.hProcess, 0xFFFFFFFF); //wait infinite. may be we should change it later
-		//clean up
-		CloseHandle(pi.hProcess);
-		CloseHandle(pi.hThread);
-		return true;
-	}
-	else
-	{
-		System::SafeFreeMemory(fullCommand);
-		DWORD lastErr = GetLastError();
-		return false;
-	}
-
-#else
-	//make it executable
-	STRING command = (STRING)System::SafeAllocMemory(strlen(executablePath) + 20);
-	strcpy(command, "chmod +x ");
-	strcat(command, executablePath);
-	system(command);
-	System::SafeFreeMemory(command);
-	pid_t child = fork();
-	if ( -1 == child)
-		return false;
-	if ( 0 == child )
-	{
-		//we are in child process
-		execl(executablePath, args, NULL);
-		return false; //never ever weill return
-	}
-	else
-	{
-		waitpid(child, NULL, 0);
-		return true;
-	}
-	return true; 
-#endif
-	
-	
-}
-
-STRING System::GetTemporaryFolder()
-{
-#ifdef WINDOWS
-	STRING tempFolder = (STRING)System::SafeAllocMemory(MAX_PATH + 1);
-	if ( 0 == tempFolder) return 0;
-	
-	DWORD result = GetTempPathA(MAX_PATH, tempFolder);
-	if ( 0 == result ) 
-	{
-		SafeFreeMemory(tempFolder);
-		return 0; //WARNING: no check made for buffer's enough capcity
-	}
-	return tempFolder;
-#else 
-	return "/tmp/"; // for all NIX systems
-#endif
-}
-int System::MemCmp(BYTE* m1, BYTE* m2, int len)
-{
-	for ( int i = 0; i < len; i++)
-		if ( *(m1 + i) != *(m2 + i) )
-			return -1;
-	return 0;
-}
-
-void System::MemCpy(BYTE* m1, BYTE* m2, int count)
-{
-	while ( --count >= 0)
-		*(m1 + count) = *(m2 + count);
-}
-
-
-#ifdef WINDOWS
-static HANDLE consoleStdOut = 0;
-#endif
-void System::WriteLog(STRING value)
-{
-#ifdef WINDOWS
-	DWORD dwWritten = 0;
-	WriteConsoleA(consoleStdOut, value, String::StrLen(value),&dwWritten,0);
-#else
-	printf(value);
-#endif
-}
-
-bool System::AllocateConsole(STRING title)
-{
-#ifdef WINDOWS
-	bool result = AllocConsole();
-	if (true == result)
-	{
-		result = SetConsoleTitleA(title);
-		if ( true == result)
-			consoleStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
-	}
-	return result;
-#else
-	return true;
-#endif
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/System.h b/plugins/org.eclipse.epp.sfx.native/extractor/System.h
deleted file mode 100644
index 7299c6d..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/System.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-#include "globals.h"
-class System
-{
-private:
-	System(void);
-	~System(void);
-public:
-	static void* SafeAllocMemory(UINT size);
-	static bool SafeFreeMemory(void* memory);
-	static void ShowErrorMessage(STRING message);
-	static bool ExecuteAndWait(STRING executablePath, STRING args);
-	//Path existance NOT GUARANTIED
-	static STRING GetTemporaryFolder();
-public:
-	static int MemCmp(BYTE* m1, BYTE* m2, int len);
-public:
-	static void MemCpy(BYTE* m1, BYTE* m2, int count);
-public:
-	static void WriteLog(STRING value);
-public:
-	static bool AllocateConsole(STRING title);
-};
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/extractor.rc b/plugins/org.eclipse.epp.sfx.native/extractor/extractor.rc
deleted file mode 100644
index 943e7a7..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/extractor.rc
+++ /dev/null
@@ -1,72 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Russian resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
-#ifdef _WIN32
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-#pragma code_page(1251)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_ICON1               ICON                    "D:\\1.ico"
-#endif    // Russian resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/globals.h b/plugins/org.eclipse.epp.sfx.native/extractor/globals.h
deleted file mode 100644
index db44aff..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/globals.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//#ifndef GLOBALS_H
-//#define GLOBALS_H
-
-#include "Path.h"
-#include "System.h"
-#include "File.h"
-#include "OS.h"
-#include <stdlib.h>
-#include <memory.h>
-#include <string.h>
-
-#define STRING char*
-//#define BYTE unsigned char
-//#define UINT unsigned int
-//#endif
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/main.cpp b/plugins/org.eclipse.epp.sfx.native/extractor/main.cpp
deleted file mode 100644
index f276b43..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/main.cpp
+++ /dev/null
@@ -1,576 +0,0 @@
-#include "globals.h"
-#include "sfxformat.h"
-#include "Formatter.h"
-#include "String.h"
-#include "assert.h"
-#include <stdlib.h>
-#include <memory.h>
-#include <string.h>
-#include <errno.h>
-#ifndef WINDOWS
-#include <unistd.h>
-#endif
-
-#define MAX_SUPPORTED_VERSION 1
-#define BUFFER_SIZE 4*1024 /*4 kb buffer*/
-
-static bool in_debug_mode = false;
-
-#ifdef WINDOWS
-#define LOG(x) if (in_debug_mode) System::WriteLog(x)
-#else
-#define LOG(x) if (in_debug_mode) printf(x)
-#endif
-
-STRING GetExtractorFileName()
-{
-#ifdef WINDOWS
-	
-	STRING file_name = (STRING) System::SafeAllocMemory((MAX_PATH + 1) * sizeof(char));
-	if ( 0 == file_name)
-	{
-		return 0;
-	}
-	GetModuleFileNameA(GetModuleHandleW(NULL),file_name,MAX_PATH);
-	return file_name;
-#endif
-}
-
-bool IsHeaderValid( SFXHeader* header)
-{
-	if ( 0 != System::MemCmp((BYTE*)SIGNATURE,header->Signature, 19))
-	{
-		return false;
-	}
-	else if ( MAX_SUPPORTED_VERSION < header->Version)
-	{
-		return false;
-	}
-	else
-		return true;
-}
-
-STRING CreateTempFolder()
-{
-	UINT someUniqValue = 0; 
-#ifdef WINDOWS
-	someUniqValue = GetTickCount();
-#else
-	someUniqValue = rand();
-#endif
-	STRING result = (STRING)System::SafeAllocMemory(20);
-	if ( 0 == result )
-		return 0;
-	String::Sprintf2(result,"sfx%u.tmp%s", someUniqValue, (int)PATH_SEPARATOR);
-	return result;
-}
-
-static BYTE BUFFER[BUFFER_SIZE];
-
-bool CopyFileData(File* source, File* dest, UINT copyAmount)
-{
-	UINT fileSize = copyAmount;
-	while ( fileSize != 0 )
-	{
-		UINT dataSize = 0;
-		dataSize = fileSize < BUFFER_SIZE ? fileSize : BUFFER_SIZE;
-		if ( dataSize != source->Read(source,BUFFER,dataSize) )
-			return false;
-
-		if ( false == dest->Write(dest,BUFFER,dataSize))
-			return false;
-		fileSize -= dataSize;
-	}
-
-	return true;
-}
-
-STRING GetStringById(UINT id, UINT* stringOffsetTable, File* tableHolder)
-{
-	//get absolute offset of desired string
-	UINT absoluteStringOffset = *(stringOffsetTable + id);
-	//move file pointer to it
-	if ( false == tableHolder->Seek(tableHolder,absoluteStringOffset,SEEK__BEGIN))
-		return 0;
-
-	UINT fileNameSize = tableHolder->ReadUINT(tableHolder);
-	//get file path
-	STRING fileName = (STRING)System::SafeAllocMemory(fileNameSize + 1);
-	if ( 0 == fileName)
-		return 0;
-	if (fileNameSize != tableHolder->Read(tableHolder,(BYTE*)fileName, fileNameSize))
-		return 0;
-
-	return fileName;
-}
-
-static UINT filesDataStartOffset = 0;
-static FileInformation* fileInfoTable = 0;
-
-bool ExtractFile(UINT fileID, FileInformation* fileInfoTable, UINT* stringsOffsetsTable, File* dataHolder, STRING targetFolder )
-{
-	UINT fileSize = (fileInfoTable + fileID)->Size;
-	UINT fileNameId = /*(fileInfoTable + fileID)->NameStringId*/ fileID;
-	UINT currentFileDataOffset = filesDataStartOffset;
-	if ( false == dataHolder->Seek(dataHolder, filesDataStartOffset, SEEK__BEGIN) )
-		return false;
-	for ( UINT index = 0; index < fileID; index++)
-	{
-		currentFileDataOffset+= (fileInfoTable + index)->Size;
-	}
-	
-	STRING fileName = GetStringById(fileNameId, stringsOffsetsTable, dataHolder);
-	if ( 0 == fileName )
-		return false;
-
-	STRING fileFullPath = Path::Combine(targetFolder, fileName);
-	if ( 0 == fileFullPath)
-		return false;
-	LOG("extracting '");LOG(fileName);LOG("'...");
-	if ( Path::IsDirectory(fileFullPath) )
-		File::CreateDirectory(fileFullPath);
-	else
-	{
-		//we must be sure, that directory for file exists
-		//if not - create it
-		STRING fileDirectory = Path::GetFileFolder(fileFullPath);
-		if ( fileDirectory == 0){
-			LOG("ERROR:failed to find file '");LOG(fileFullPath);LOG("' directory!\n");
-			return false;
-		}
-		File::CreateDirectory(fileDirectory);
-		System::SafeFreeMemory(fileDirectory);
-		File* targetFile = File::Create(fileFullPath);
-		if ( 0 == targetFile)
-			return false;
-		
-		//move file pointer back to file data
-		if ( false == dataHolder->Seek(dataHolder,currentFileDataOffset, SEEK__BEGIN))
-			return false;
-		
-		if ( false == CopyFileData(dataHolder, targetFile, fileSize))
-			return false;
-
-		targetFile->Close(targetFile);
-		System::SafeFreeMemory(targetFile);
-	}
-
-	System::SafeFreeMemory(fileName);
-	System::SafeFreeMemory(fileFullPath);
-	LOG("OK\n");
-	return true;
-}
-
-bool RemoveFolder ( STRING folderName)
-{
-#ifdef WINDOWS
-	STRING folder = (STRING) System::SafeAllocMemory(String::StrLen(folderName) + 30);//20 actually
-	String::StrCpy(folder,"cmd /C rmdir /S /Q ");
-	String::StrCat(folder,folderName);
-	WinExec(folder, SW_HIDE);
-	
-	System::SafeFreeMemory(folder);
-	return true;
-#else
-	
-	STRING folder = (STRING) System::SafeAllocMemory(strlen(folderName) + 30);//20 actually
-	strcpy(folder,"rm -rf ");
-	strcat(folder,folderName);
-	system(folder);
-	System::SafeFreeMemory(folder);
-	return true;
-#endif
-
-}
-
-int install(STRING extractorFullName){
-
-
-	if ( 0 == extractorFullName)
-	{
-		System::ShowErrorMessage("Failed to get extractor name");
-		return -1;
-	}
-	//open self
-	LOG("launcher file name ='");LOG(extractorFullName);LOG("'\n");
-	File* self = File::Open(extractorFullName);
-	if ( 0 == self )
-	{
-		System::ShowErrorMessage("Failed to open extractor");
-		return -1;
-	}
-
-	Formatter* formatter = (Formatter*)System::SafeAllocMemory(sizeof(Formatter));
-	formatter->_file = self;
-	
-	SFXFooter* footer = formatter->ParseFooter();
-	if ( 0 == footer )
-	{
-		self->Close(self);
-		System::ShowErrorMessage("Failed to navigate to SFX Footer");
-		return -1;
-	}
-	
-	if (in_debug_mode ){
-		STRING footer_buffer = (STRING)System::SafeAllocMemory(40); //39 should be enough
-		String::Sprintf2(footer_buffer,"PackageSize=%u CRC=%u\n", footer->PackageSize, footer->CRC32);
-		LOG("SFX Footer record parsed:");LOG(footer_buffer);
-	}
-	
-	//navigate to header
-	if ( false == self->Seek(self,-8 - footer->PackageSize, SEEK__END) ){
-		self->Close(self);
-		LOG("ERROR: Failed to navigate to Header Record!");
-		return -1;
-	}
-	SFXHeader* header = formatter->ParseHeader();
-
-	if ( 0 == header ){
-		self->Close(self);
-		//delete footer;
-		System::ShowErrorMessage("Failed to parse SFX Header");
-		LOG("Failed to parse SFX Header\n");
-		return -1;
-	}
-	LOG("SFX Header record parsing...");
-	//check header
-	if ( ! IsHeaderValid(header) )
-	{
-		self->Close(self);
-		/*delete footer;
-		delete header;*/
-		System::ShowErrorMessage("SFX Header invalid");
-		LOG("FAILED! Header is invalid.\n");
-		return -1;
-	}
-	LOG("OK\n");
-	
-	LOG("Execution Info parsing...");
-	ExecutionInfo* executionInfo = formatter->ParseExecutionInfo();
-
-	if ( 0 == executionInfo)
-	{
-		self->Close(self);
-		/*delete footer;
-		delete header;*/
-		System::ShowErrorMessage("Failed to parse ExecutionInfo");
-		return -1;
-	}
-	LOG("OK\n");
-	
-	LOG("File Information Table parsing...");
-	fileInfoTable = formatter->ParseFileInformationTable(header->numberOfFiles);
-
-	if ( 0 == fileInfoTable)
-	{
-		self->Close(self);
-		/*delete footer;
-		delete header;
-		delete executionInfo;*/
-		System::ShowErrorMessage("Failed to parse File Information Table");
-		return -1;
-	}
-	LOG("OK\n");
-
-	LOG("Required Files Table parsing...");
-	UINT requiredIdsCount = self->ReadUINT(self); //if zero - all content of archive need to be extracted
-	UINT* requiredIdsTable = 0;
-	if ( 0 != requiredIdsCount)
-	{
-		//read ids then
-		UINT tableSize = requiredIdsCount * 4;
-		requiredIdsTable = (UINT*)System::SafeAllocMemory(tableSize);
-		if ( 0 == requiredIdsTable  || tableSize != self->Read(self,(BYTE*)requiredIdsTable,tableSize) )
-		{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			System::ShowErrorMessage("Failed to parse Reqired Files Table");
-			return -1;
-		}
-	}
-	LOG("OK\n");
-	
-	LOG("Allocating memory for Strings Table...");
-	UINT	stringTableOffset = self->GetCurentPos(self);
-	UINT	stringTableEntriesCount = header->numberOfFiles + 2;
-	UINT*	stringTableOffsetsTable = (UINT*)System::SafeAllocMemory( 4 * (stringTableEntriesCount));
-	
-	if ( 0 == stringTableOffsetsTable)
-	{
-		self->Close(self);
-		/*delete footer;
-		delete header;
-		delete executionInfo;*/
-		if ( 0 != requiredIdsCount)
-			System::SafeFreeMemory( requiredIdsTable);
-		System::ShowErrorMessage("Failed to allocate memory for Strings Table");
-		return -1;
-	}
-	LOG("OK\n");
-	
-	LOG("Parsing Strings Table...");
-	UINT skippedBytes = 0;
-	//skip string table and build table of strings offsets. it's entries count = numberOfFiles + 2; 1 - for runnable id and 1 for args
-	for ( UINT entryIndex = 0; entryIndex < stringTableEntriesCount; entryIndex++)
-	{
-		*(stringTableOffsetsTable + entryIndex) = stringTableOffset + skippedBytes;
-		skippedBytes += 4;
-		UINT stringSize = self->ReadUINT(self);
-		//skip string
-		if ( false == self->Skip(self,stringSize))
-		{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to parse Strings Table");
-			return -1;
-		}
-		skippedBytes += stringSize; 
-	}
-	LOG("OK\n");
-
-	filesDataStartOffset = self->GetCurentPos(self);
-	
-	LOG("Getting system temporary folder...");
-	//now, prepare for extraction
-	STRING temporaryFolder = System::GetTemporaryFolder();
-	if ( 0 == temporaryFolder )
-	{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to get system temporary folder");
-			return -1;
-	}
-	LOG("OK\n");
-
-	LOG("Forming temporary folder...");
-	//form extraction folder
-	STRING tempFolder = CreateTempFolder();
-	if (0 == tempFolder)
-	{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to form extraction temporary folder");
-			return -1;
-	}
-	LOG("OK\n");
-
-	LOG("Creating extraction folder...");
-	STRING extractionFolder = Path::Combine( temporaryFolder, tempFolder);
-	if (0 == extractionFolder)
-	{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to combine extraction folder");
-			return -1;
-	}
-	LOG("OK\n");
-	//System::SafeFreeMemory(temporaryFolder);
-	System::SafeFreeMemory(tempFolder);
-
-	LOG("Extracting required files\n");
-	//do we need to extract all files?
-	if ( 0 == requiredIdsCount )
-	{//extract all
-		for ( UINT fileID = 0; fileID < header->numberOfFiles; fileID++)
-				if (false == ExtractFile(fileID, fileInfoTable, stringTableOffsetsTable, self, extractionFolder))
-				{
-					self->Close(self);
-					/*delete footer;
-					delete header;
-					delete executionInfo;*/
-					if ( 0 != requiredIdsCount)
-						System::SafeFreeMemory( requiredIdsTable);
-					System::SafeFreeMemory(stringTableOffsetsTable);
-					System::ShowErrorMessage("Failed to extract file(s). Ensure that your temporary folder is accessable and have enough free size.");
-					RemoveFolder(extractionFolder);
-					return -1;
-				}
-	}
-	else
-		for ( UINT reqId = 0; reqId < requiredIdsCount; reqId++ )
-		{
-			UINT requiredFileId = *(requiredIdsTable + reqId);
-			if (false == ExtractFile(requiredFileId, fileInfoTable, stringTableOffsetsTable, self, extractionFolder))
-				{
-					self->Close(self);
-					/*delete footer;
-					delete header;
-					delete executionInfo;*/
-					if ( 0 != requiredIdsCount)
-						System::SafeFreeMemory( requiredIdsTable);
-					System::SafeFreeMemory(stringTableOffsetsTable);
-					System::ShowErrorMessage("Failed to extract file(s). Ensure that your temporary folder is accessable and have enough free size.");
-					RemoveFolder(extractionFolder);
-					return -1;
-				}
-		}
-	LOG("Extraction succseeded\n");	
-
-	LOG("Reading autorun arguments..."); 
-	//get argument string
-		STRING tmpArguments = GetStringById(executionInfo->ArgsStringId, stringTableOffsetsTable, self);
-		if ( 0 == tmpArguments)
-		{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to retreive arguments for executable.");
-			RemoveFolder(extractionFolder);
-			return -1;
-		}
-		LOG("OK\n"); 
-		LOG("Reading autorun path..."); 
-	//prepare it
-		STRING arguments = String::ReplaceAll(tmpArguments,ARCHIVE_PATH_PLACE_HOLDER, extractorFullName);
-		STRING origExecString = GetStringById(executionInfo->ExecutableStringId, stringTableOffsetsTable, self);
-		STRING tmpExecutionString = Path::Combine(extractionFolder, origExecString); //here we leak some memory
-		STRING executionString = (STRING)System::SafeAllocMemory(String::StrLen(tmpExecutionString) + 7);
-
-		if ( 0 == executionString)
-		{
-			self->Close(self);
-			/*delete footer;
-			delete header;
-			delete executionInfo;*/
-			if ( 0 != requiredIdsCount)
-				System::SafeFreeMemory( requiredIdsTable);
-			System::SafeFreeMemory(stringTableOffsetsTable);
-			System::ShowErrorMessage("Failed to allocate enough memory to form execution string.");
-			RemoveFolder(extractionFolder);
-			return -1;
-		}
-		LOG("OK\n"); 
-	UINT flags = executionInfo->Flags;
-	if ( (flags & FLAG_JAVA_APP ) == 1)
-	//analyze flags - is executable Java class?
-		{
-			//yes: start JVM then
-			
-			if ( flags & FLAG_JAVA_WINDOWED_APP )
-			{
-
-				String::StrCpy(executionString,"javax");
-			//	strcat(executionString, origExecString);
-			}
-			else 
-			{
-				String::StrCpy(executionString,"java");
-			//	strcat(executionString, origExecString);
-			}
-			//args here a bit altered
-			STRING tmp = (STRING)System::SafeAllocMemory(String::StrLen(arguments) + String::StrLen(origExecString) + 20);
-			String::StrCpy(tmp, origExecString);
-			String::StrCat(tmp," ");
-			String::StrCat(tmp, arguments);
-			System::SafeFreeMemory(arguments);
-			arguments = tmp;
-		}
-	else
-		//no, native executable
-	{
-		System::SafeFreeMemory(executionString);
-		executionString = tmpExecutionString;
-	}
-	#ifdef WINDOWS
-	bool result = SetCurrentDirectoryA(extractionFolder);
-	#else
-	chdir(extractionFolder);
-	#endif
-	LOG("Executing autorun: '");LOG(executionString);LOG("'...");
-	//execute what needed and wait for it
-	if ( false == System::ExecuteAndWait(executionString, arguments))
-	{
-		System::ShowErrorMessage("Failed to start executable.");
-		RemoveFolder(extractionFolder);
-		return -1;
-	}
-	LOG("OK\n");
-	//executable finished - do clean up
-	//simply remove recursively extraction directory
-	LOG("Removing temporary folder...");
-#ifdef WINDOWS
-	SetCurrentDirectoryA(temporaryFolder);
-#else
-	chdir(temporaryFolder);
-#endif
-	RemoveFolder(extractionFolder);
-	LOG("FINISHED\n");
-	LOG("All went OK\n");
-	//whoo... we done
-	return 0;
-
-
-}
-
-#ifdef WINDOWS
-int main()
-#else
-int main(int argc, char** argv)
-#endif
-{
-
-	//__asm int 3;
-	//get extractor file name
-#ifdef WINDOWS
-	STRING extractorFullName = GetExtractorFileName();
-	STRING commandLine = GetCommandLineA();
-	//are we in debug mode?
-	in_debug_mode = String::EndsWith(commandLine,"-debug");
-#else
-	STRING extractorFullName = argv[0];
-	if ( argc > 1)
-		in_debug_mode = String::EndsWith(argv[1],"-debug");
-#endif
-	
-	if ( in_debug_mode )
-	{
-#ifdef WINDOWS
-		if ( false == System::AllocateConsole("org.eclipse.epp.sfx native launcher debug console"))
-		{
-			System::ShowErrorMessage("Failed to allocate debug console");
-			return -1;
-		}
-#else
-		printf("[DEBUG]org.eclipse.epp.sfx native launcher started\n");
-#endif
-	}
-	int retCode = install(extractorFullName);
-	
-	if ( in_debug_mode ){
-		LOG("In debug mode, press any key to close this window");
-		#ifdef WINDOWS
-			char buffer;
-			DWORD dwDummy;
-			ReadConsoleA(GetStdHandle(STD_INPUT_HANDLE),&buffer, 1, &dwDummy, NULL );
-		#else
-			int dummy;
-			scnaf("%i", &dummy);
-		#endif
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/resource.h b/plugins/org.eclipse.epp.sfx.native/extractor/resource.h
deleted file mode 100644
index c91d894..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/resource.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by extractor.rc
-//
-#define IDI_ICON2                       113
-#define IDI_ICON3                       114
-#define IDI_ICON4                       115
-#define IDI_ICON5                       116
-#define IDI_ICON6                       117
-#define IDI_ICON7                       118
-#define IDI_ICON1                       121
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        122
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1001
-#define _APS_NEXT_SYMED_VALUE           101
-#endif
-#endif
diff --git a/plugins/org.eclipse.epp.sfx.native/extractor/sfxformat.h b/plugins/org.eclipse.epp.sfx.native/extractor/sfxformat.h
deleted file mode 100644
index c828519..0000000
--- a/plugins/org.eclipse.epp.sfx.native/extractor/sfxformat.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef SFXFORMAT_H
-#define SFXFORMAT_H
-#include "OS.h"
-
-#define ARCHIVE_PATH_PLACE_HOLDER "$#launcher#"
-#define FLAG_JAVA_APP 0x01
-#define FLAG_JAVA_WINDOWED_APP 0x02
-
-struct SFXFooter
-{
-	UINT PackageSize;
-	UINT CRC32;
-};
-
-struct SFXHeader
-{
-	BYTE Signature[19];
-	BYTE Version;
-	UINT numberOfFiles;
-};
-
-struct ExecutionInfo
-{
-	UINT Flags;
-	UINT ExecutableStringId;
-	UINT ArgsStringId;
-};
-
-struct FileInformation
-{
-	UINT Size;
-	UINT NameStringId; 
-};
-
-static const char SIGNATURE[] = "org.eclipse.epp.sfx";
-
-#endif
diff --git a/plugins/org.eclipse.epp.sfx.tools/.classpath b/plugins/org.eclipse.epp.sfx.tools/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/.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/plugins/org.eclipse.epp.sfx.tools/.project b/plugins/org.eclipse.epp.sfx.tools/.project
deleted file mode 100644
index a7a6e86..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.epp.sfx.tools</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.epp.sfx.tools/META-INF/MANIFEST.MF b/plugins/org.eclipse.epp.sfx.tools/META-INF/MANIFEST.MF
deleted file mode 100644
index 3231e4b..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.epp.sfx.tools;singleton:=true
-Bundle-Version: 0.5.0
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.epp.sfx.archive,
- org.eclipse.epp.installer.archive,
- org.eclipse.ant.core
-Bundle-ClassPath: toolsAntSupport.jar
-Export-Package: org.eclipse.epp.sfx.builder
diff --git a/plugins/org.eclipse.epp.sfx.tools/build.properties b/plugins/org.eclipse.epp.sfx.tools/build.properties
deleted file mode 100644
index 773ef4f..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = META-INF/,\
-               templates/,\
-               plugin.xml,\
-               toolsAntSupport.jar
-source.toolsAntSupport.jar = src/
\ No newline at end of file
diff --git a/plugins/org.eclipse.epp.sfx.tools/plugin.xml b/plugins/org.eclipse.epp.sfx.tools/plugin.xml
deleted file mode 100644
index 5c88fdb..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-  <extension
-         point="org.eclipse.ant.core.extraClasspathEntries">
-      <extraClasspathEntry
-            library="toolsAntSupport.jar">
-      </extraClasspathEntry>
-      <extraClasspathEntry
-            library="templates/">
-      </extraClasspathEntry>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/ISourceEntry.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/ISourceEntry.java
deleted file mode 100644
index 28969d8..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/ISourceEntry.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.epp.sfx.builder;
-
-import java.io.File;
-
-public interface ISourceEntry {
-
-	String getFileName();
-	boolean isRequired();
-	boolean isFile();
-	
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.java
deleted file mode 100644
index c9e69cb..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveDefinition.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.sfx.builder;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author itsuart
- *
- */
-class XSEArchiveDefinition {
-
-	static class SourceEntry implements ISourceEntry {
-		String relativeFileName;
-		boolean isRequired;
-		boolean isFile;
-		
-		SourceEntry(String relativeName, boolean required, boolean isFile){
-			relativeFileName = relativeName;
-			isRequired = required;
-			this.isFile = isFile;
-		}
-		
-		public String getFileName() {
-			return relativeFileName;
-		}
-		
-		public boolean isFile() {
-			return isFile;
-		}
-		
-		public boolean isRequired() {
-			return isRequired;
-		}
-	}
-	
-	private String command;
-	
-	private String destinationPath;
-	
-	private String sourceDirectory;
-	
-	private SourceEntry[] sourceEntries;
-	
-	private boolean valid = false;
-	
-	private XSEArchiveDefinition(Document defDoc) {
-		internalParse(defDoc);
-	}
-
-	static XSEArchiveDefinition fromFile(File defFile) throws ParserConfigurationException, SAXException, IOException{
-		// Get a JAXP parser factory object
-        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-        dbf.setValidating(false);
-        DocumentBuilder defDocParser = dbf.newDocumentBuilder();
-        // Tell the parser how to handle errors.  Note that in the JAXP API,
-        // DOM parsers rely on the SAX API for error handling
-        defDocParser.setErrorHandler(new ErrorHandler() {
-                public void warning(SAXParseException e) {
-                    System.err.println("WARNING: " + e.getMessage());
-                }
-                public void error(SAXParseException e) {
-                    System.err.println("ERROR: " + e.getMessage());
-                }
-                public void fatalError(SAXParseException e)
-                    throws SAXException {
-                    System.err.println("FATAL: " + e.getMessage());
-                    throw e;   // re-throw the error
-                }
-            });
-        Document defDoc = defDocParser.parse(defFile);
-        XSEArchiveDefinition result = new XSEArchiveDefinition(defDoc);
-        return  result.valid ? result : null;
-	}
-	/**
-	 * @param defDoc
-	 */
-	private void internalParse(Document defDoc) {
-		NodeList sfxNodes = defDoc.getChildNodes();
-		
-		if ( sfxNodes.getLength() < 2)
-			return;
-		if (! validateSfxElement(sfxNodes.item(0))){
-			System.out.println("ERROR: invalid version");
-			return;
-		}
-		NodeList archiveEntries =  defDoc.getElementsByTagName("sfxArchive");
-		if ( ! processArchiveDefinition((Element) archiveEntries.item(0)) ){
-			return;
-		}
-	        valid = true;
-		}
-	
-	/**
-	 * @param sfxElement
-	 * @return
-	 */
-	private boolean validateSfxElement(Node sfxElement) {
-		if ( sfxElement.getNodeName().equals("sfx"))
-			return "version=\"1.0\"".equals(sfxElement.getNodeValue());
-		return false;
-	}
-
-	private boolean processArchiveDefinition(Element rootDefinitionNode) {
-		/*
-		 * There is expected only exactly 2 entries: source and destination
-		 */
-		NodeList sourceChilds = rootDefinitionNode.getElementsByTagName("source");
-		if (sourceChilds == null || sourceChilds.getLength() != 1){
-			System.out.println("ERROR: invalid or no 'source' section in definition file");
-			return false;
-		}
-		NodeList destinationList = rootDefinitionNode.getElementsByTagName("destination");
-		if (destinationList == null || destinationList.getLength() != 1){
-			System.out.println("ERROR: invalid or no 'destination' section in definition file");
-			return false;
-		}
-		
-		return (processSourcesSection((Element) sourceChilds.item(0)) && processDestinationSection((Element)destinationList.item(0)));
-	
-	}
-
-	/**
-	 * @param item
-	 * @return
-	 */
-	private boolean processDestinationSection(Element item) {
-		String targetPath = item.getAttribute("path");
-			if ( "".equals(targetPath)){
-				System.out.println("ERROR: no 'path' for 'destination'");
-				return false;
-		}
-		String cmd = item.getAttribute("cmd");
-		if ( "".equals(cmd)){
-			System.out.println("ERROR: no 'cmd' for 'destination'");
-			return false;
-		}
-		this.destinationPath = targetPath;
-		this.command = cmd;
-		return true;
-	}
-
-	/**
-	 * @param sourcesRootNode
-	 */
-	private boolean processSourcesSection(Element sourcesRootNode) {
-		String dirPath = sourcesRootNode.getAttribute("path");
-		if ( "".equals(dirPath)){
-			System.out.println("ERROR:no 'path' in sources section");
-			return false;
-		}
-		sourceDirectory = dirPath;
-		
-		//accumulator for all source entries
-		ArrayList sources = new ArrayList();
-		
-		//process files
-		NodeList filesList = sourcesRootNode.getElementsByTagName("file");
-		if ( filesList == null || filesList.getLength() == 0){
-			System.out.println("ERROR: no files in archive");
-			return false;
-		}
-		for ( int i = 0; i < filesList.getLength(); i++){
-			Element fileElement = (Element) filesList.item(i);
-			String filePath = fileElement.getAttribute("path");
-			if ( "".equals(filePath)){
-				System.out.println("ERROR: found 'file' entry without path");
-				return false;
-			}
-			String unpack = fileElement.getAttribute("unpack");
-			boolean required = ("".equals(unpack) ? false : unpack.equals("true"));
-			ISourceEntry entry = new SourceEntry( filePath, required, ! filePath.endsWith(File.separator));
-			sources.add(entry);
-		}
-		
-		//process folders
-		NodeList foldersList = sourcesRootNode.getElementsByTagName("dir");
-		if ( foldersList != null){
-			for ( int i = 0; i < foldersList.getLength(); i++){
-				Element folderElement = (Element) foldersList.item(i);
-				String folderPath = folderElement.getAttribute("path");
-				if ( "".equals(folderPath)){
-					System.out.println("ERROR: found 'dir' entry without path");
-					return false;
-				}
-				String unpack = folderElement.getAttribute("unpack");
-				boolean required = ("".equals(unpack) ? false : unpack.equals("true"));
-				ISourceEntry entry = new SourceEntry( folderPath, required, false);
-				sources.add(entry);
-			}
-		}
-		sourceEntries = new SourceEntry[sources.size()];
-		sources.toArray(sourceEntries);
-		return true;
-		
-	}
-	
-	SourceEntry[] getSources(){
-		return sourceEntries;
-	}
-	
-	String getSourceDirectory(){
-		return sourceDirectory;
-	}
-	
-	String getDestinationPath(){
-		return destinationPath;
-	}
-	
-	String getCommand(){
-		return command;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveViewer.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveViewer.java
deleted file mode 100644
index fab325e..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEArchiveViewer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.sfx.builder;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchive;
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchiveEntry;
-
-/**
- * @author Ilya Seleznev
- *
- */
-public class XSEArchiveViewer {
-	
-	private final static int ARGS_NUM_MIN = 1;
-	private final static int ARGS_NUM_MAX = 1;
-	
-	private static void printBanner() {
-		System.out
-				.println("XSEArchive Viewer for Eclipse Packaging Project version 0.9");
-		System.out.println("http://www.eclipse.org/epp/\n");
-	}
-	
-	private static void printHelp() {
-		System.out.print("Usage:");
-		System.out.println("java org.eclipse.epp.sfx.builder.XSEArchiveViewer archive");
-		System.out.println("Where:");
-		
-		System.out.println("archive \t path to archive file or sfx module");
-	}
-	
-	public static void main(String[] args) {
-		printBanner();
-		if (args.length > ARGS_NUM_MAX || args.length < ARGS_NUM_MIN)
-			printHelp();
-		else{
-			String archivePath = args[0];
-			File archiveFile = new File(archivePath);
-			XSEArchive archive = null;
-			try {
-				 archive = new XSEArchive(archiveFile);
-			} catch (IOException e) {
-				System.out.println("ERROR: Failed to open archive file '" + archivePath + "'");
-				return;
-			}
-			
-			System.out.println("Autorun executable = " + archive.getExecutablePath());
-			System.out.println("Autorun arguments = " + archive.getExecutableArgs());
-			System.out.println("Contents of archive:");
-			System.out.println("Type\tIsRequired\tSize(bytes)\tName");
-			System.out.println("----\t----------\t-----------\t----");
-			int filesCount = 0;
-			int foldersCount = 0;
-			for (Iterator entriesIterator = archive.entries(); entriesIterator.hasNext();){
-				XSEArchiveEntry currentEntry = (XSEArchiveEntry) entriesIterator.next();
-				if (currentEntry.isDirectory())
-					foldersCount++;
-				else
-					filesCount++;
-				System.out.println( (currentEntry.isDirectory() ? "Folder" : "File") 
-					+ "\t" + currentEntry.isRequired()
-					+ "\t\t" + currentEntry.getSize()
-					+ "\t\t" + currentEntry.getName());
-			}
-			System.out.println("\nTotal: " + foldersCount + " folder(s), " + filesCount + " file(s)");
-			
-			
-		}
-
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEBuilder.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEBuilder.java
deleted file mode 100644
index 9f23d29..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSEBuilder.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.sfx.builder;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchive;
-import org.eclipse.epp.sfx.builder.XSEArchiveDefinition.SourceEntry;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import sun.misc.Launcher;
-
-/**
- * @author itsuart
- *
- */
-public class XSEBuilder {
-	private final static int ARGS_NUM_MIN = 3;
-	
-	private final static int ARGS_NUM_MAX = 4;
-	
-	public static class PACKAGE_TYPE{
-		public final static int SFX = 0;
-		public final static int EXE = 1;
-	}
-	
-	
-	private static void printBanner() {
-		System.out
-				.println("XSEBuilder for Eclipse Packaging Project version 0.9");
-		System.out.println("http://www.eclipse.org/epp/\n");
-	}
-	
-	private static void printHelp() {
-		System.out.print("Usage:");
-		System.out.println("java org.eclipse.epp.sfx.builder.XSEBuilder packageType definitionFile launchersDirectory [outfile]");
-		System.out.println("Where:");
-		
-		System.out.println("packageType \t \"sfx\" produce archive only");
-		System.out.println("               \t \"exe\" produce archive and link with Windows launcher");
-		System.out.println("definitionFile \t path to archive definition file");
-		System.out.println("launchersDirectory \t path to directory, where native launchers are located");
-		System.out.println("[outfile] \t optional: path to output file");
-	}
-	
-	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
-		printBanner();
-		if (args.length > ARGS_NUM_MAX || args.length < ARGS_NUM_MIN)
-			printHelp();
-		else{
-			int packageType = parsePackageType(args[0]);
-			if ( packageType == -1){
-				System.out.println("ERROR:Invalid build type argument:'" + args[0] + "'");
-				return;
-			}
-			
-			String defFilePath = args[1];
-			String templatesDirectoryPath = args[2];
-			File templatesDirectory = new File(templatesDirectoryPath);
-			if ( templatesDirectory.isFile() ){
-				System.out.println("ERROR: '" + templatesDirectoryPath + "' is not a directory.");
-				return;
-			}
-			if ( ! templatesDirectoryPath.endsWith(File.separator)){
-				templatesDirectoryPath += File.separator;
-			}
-			String outFileNamePath = null;
-			if ( args.length == 4 && !("--pack200".equals(args[3]) || "--zip".equals(args[3])))
-				outFileNamePath = args[3];
-			
-			//check that definition file exists
-			File defFile = new File(defFilePath);
-			if ( ! (defFile.isFile() && defFile.canRead()) ){
-				System.out.println("ERROR:Can't read file '" + defFilePath + "'");
-				return;
-			}
-			
-			boolean useZip = false;
-			for (int i=3; i<args.length; i++) {
-				if ("--zip".equals(args[i]))
-					useZip = true;
-			}
-			boolean usePack200 = false;
-			for (int i=3; i<args.length; i++) {
-				if ("--pack200".equals(args[i]))
-					usePack200 = true;
-			}
-			
-	        XSEArchiveDefinition archiveDefinition = XSEArchiveDefinition.fromFile(defFile);
-	        if ( archiveDefinition == null)
-	        	return;
-	        
-	        buildArchive(archiveDefinition.getCommand(), archiveDefinition
-					.getSourceDirectory(), archiveDefinition.getSources(),
-					archiveDefinition.getDestinationPath(), outFileNamePath,
-					templatesDirectoryPath + "win32.x86\\extractor.exe", packageType, usePack200, useZip);
-		}
-	}
-		
-	public static void buildArchive(String fullCommand, String sourceDirectory, ISourceEntry[] sourceEntries, String destinationPath, String outFileNamePath, String templatesPath, int packageType, boolean usePack200, boolean useZip) {
-        XSEArchive archive = new XSEArchive();
-        archive.setFlags(0);//native
-//        String fullCommand = archiveDefinition.getCommand();
-        String autorunPath = null;
-        String execArgs = "";
-        //find first index of ' ' not in quotes. it's length of autorunPath string.
-        //unquote it if needed
-        if ( fullCommand.startsWith("\"")){
-        	int pathEndIndex = fullCommand.indexOf("\" ", 1);
-        	if (pathEndIndex == -1){
-        		System.out.println("ERROR: invalid path for command");
-        		return;
-        	}
-        	//get the string
-        	autorunPath = fullCommand.substring(1, pathEndIndex);
-        	if ( pathEndIndex != fullCommand.length() - 2){
-        		execArgs = fullCommand.substring(pathEndIndex +2).trim();
-        	}
-        }else{
-        	int pathEndIndex = fullCommand.indexOf(" ");
-        	if ( pathEndIndex == -1)
-        		autorunPath = fullCommand;
-        	else{
-        		autorunPath = fullCommand.substring(0,pathEndIndex);
-        		execArgs = fullCommand.substring(pathEndIndex + 1).trim();
-        	}
-        		
-        }
-//    	String sourcesDir = (archiveDefinition.getSourceDirectory().endsWith(File.separator) 
-//				? archiveDefinition.getSourceDirectory() 
-//				: archiveDefinition.getSourceDirectory() + File.separator);
-    	String sourcesDir = (sourceDirectory.endsWith(File.separator) 
-				? sourceDirectory 
-				: sourceDirectory + File.separator);
-    	
-        archive.setExecutablePath(autorunPath);
-		archive.setExecutableArgs(execArgs);
-		
-		ISourceEntry[] sources = null;
-//		if (archiveDefinition.getSources() == null){
-//			sources = new SourceEntry[]{new SourceEntry(autorunPath,true,true)};
-//		}
-//		else{
-//			sources = new SourceEntry[1 + archiveDefinition.getSources().length];
-//			sources[0] = new SourceEntry(autorunPath,true,true);
-//			System.arraycopy(archiveDefinition.getSources(), 0, sources, 1, archiveDefinition.getSources().length);
-//		}
-		if (sourceEntries == null){
-			sources = new ISourceEntry[]{new SourceEntry(autorunPath,true,true)};
-		}
-		else{
-			sources = new ISourceEntry[1 + sourceEntries.length];
-			sources[0] = new SourceEntry(autorunPath,true,true);
-			System.arraycopy(sourceEntries, 0, sources, 1, sourceEntries.length);
-		}
-			
-		
-		HashSet directoriesList = new HashSet(); //list of relative directories
-		
-		/*
-		 * Adding files and directories. XSEArchive itself doesn't distinguish files and
-		 * directories, but native launcher does. The launcher decide whenever entry is file or directory
-		 * by checking last symbol of its path: if ends with ANY path separator symbol (that is "/" or "\") -
-		 * entry treated as directory, otherwise - as file.
-		 * So, we must assure that ALL directory entries in def file are passed to XSEArchive with
-		 * correct ending symbol.
-		 */
-	
-		try {
-			for (int i = 0; i < sources.length; i++) {
-				ISourceEntry currEntry = sources[i];
-				System.out.print("adding " + currEntry.getFileName() + "...");
-				String relativeName = currEntry.getFileName().startsWith(File.separator) 
-				? currEntry.getFileName().substring(1) : currEntry.getFileName();
-				
-				File file = new File(sourcesDir + relativeName);
-				
-				//correct name if needed
-				if ( file.isDirectory() && ! relativeName.endsWith(File.separator)){
-					relativeName += File.separator;
-				}
-				FileInputStream fis = file.isDirectory() ? null
-						: new FileInputStream(file);
-				if ( archive.getEntry(relativeName) != null){
-					//duplicate entry!
-					System.out.println("SKIPPED(duplicate)");
-				} else {
-					archive.addContent(relativeName, fis,
-							file.isDirectory() ? 0 : file.length(), file
-									.lastModified(), !currEntry.isRequired() && usePack200, useZip);
-				
-						//get it's parents
-					ArrayList fileFolders = getFileParentFolders(file);
-					
-					for ( int j = 0; j < fileFolders.size(); j++){
-						String currDir = (String) fileFolders.get(j);
-						if (currDir.equals(sourcesDir))
-							break;
-						String relativeDir = currDir.substring(sourcesDir.length());
-						if ( ! directoriesList.contains(relativeDir)){
-							directoriesList.add(relativeDir);
-							archive.addContent(relativeDir, null, 0, !currEntry.isRequired() && usePack200, useZip);
-						}
-					}
-					
-					if ( currEntry.isRequired()){
-						archive.setFileRequired(relativeName);
-					}
-					System.out.println("OK");
-				}
-			}
-		} catch (FileNotFoundException e) {
-			System.out.println("ERROR:" + e.getMessage());
-			return;
-		} catch (IOException e) {
-			System.out.println("ERROR:" + e.getMessage());
-			return;
-		}
-		
-		// save
-		try {
-//			File outFile = (outFileNamePath == null) 
-//								? new File(archiveDefinition.getDestinationPath()) 
-//								: new File(outFileNamePath); 
-//			archive.saveToFile(outFile, usePack200, useZip);
-//			if (packageType == PACKAGE_TYPE.EXE){
-//				//also link files
-//				XSELinker.main(new String[]
-//				                          {"file", templatesDirectoryPath + "win32.x86\\extractor.exe",
-//						archiveDefinition.getDestinationPath(), 
-//						outFileNamePath == null ? archiveDefinition.getDestinationPath() + ".exe" : outFileNamePath});
-//				//now, remove archive file
-//				if ( ! outFile.delete() ){
-//					System.out.println("WARNING: failed to remove archive file");
-//				}
-//			}else{
-//				// congrat user
-//				System.out.println(archiveDefinition.getDestinationPath() + " created successfully");
-//			}
-			File outFile = (outFileNamePath == null) ? new File(
-					destinationPath) : new File(
-					outFileNamePath);
-			archive.saveToFile(outFile, usePack200, useZip);
-			if (packageType == PACKAGE_TYPE.EXE) {
-				// also link files
-				XSELinker.main(new String[] {
-						"file",
-						templatesPath,
-						destinationPath,
-						outFileNamePath == null ? destinationPath + ".exe" : outFileNamePath });
-				// now, remove archive file
-				if (!outFile.delete()) {
-					System.out
-							.println("WARNING: failed to remove archive file");
-				}
-			} else {
-				// congrat user
-				System.out.println(destinationPath + " created successfully");
-			}
-		} catch (IOException e) {
-			System.out.println("ERROR:" + e.getMessage());
-			return;
-		}
-	}
-	/**
-	 * @param file
-	 * @return
-	 */
-	private static ArrayList getFileParentFolders(File file) {
-		ArrayList result = new ArrayList();
-		File parent = file.getParentFile();
-		while ( parent != null){
-			String path = parent.getAbsolutePath();
-			result.add(path.endsWith(File.separator) ? path : path + File.separator);
-			parent = parent.getParentFile();
-		}
-		return result;
-	}
-
-	/**
-	 * @param string
-	 * @return
-	 */
-	private static int parsePackageType(String string) {
-		if ( string.equalsIgnoreCase("sfx"))
-			return PACKAGE_TYPE.SFX;
-		else if (string.equalsIgnoreCase("exe"))
-			return PACKAGE_TYPE.EXE;
-		else
-			return -1;
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSECompiler.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSECompiler.java
deleted file mode 100644
index 8b23588..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSECompiler.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.sfx.builder;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.eclipse.epp.installer.internal.archive.sfx.XSEArchive;
-
-/**
- * @author itsuart
- * 
- */
-public class XSECompiler {
-	private final static int ARGS_NUM_MIN = 5;
-	private final static int ARGS_NUM_MAX = Integer.MAX_VALUE;
-
-	// ------------ COMPILER FLAGS
-	private final static String _FLAG_NATIVE = "native";
-	private final static String _FLAG_JAVA_CONSOLE = "jconsole";
-	private final static String _FLAG_JAVA_WINDOWED = "jwindow";
-
-	// ------------ END COMPILER FLAGS
-
-	/**
-	 * 
-	 */
-	private static void printBanner() {
-		System.out
-				.println("XSECompiler for Eclipse Packaging Project version 0.9");
-		System.out.println("http://www.eclipse.org/epp/\n");
-	}
-
-	private static void printHelp() {
-		System.out.print("Usage:");
-		System.out
-				.println("java org.eclipse.epp.sfx.builder.XSECompiler filesDirectory executableType executablePath executableArgs outFile [reqFile1Path reqFile2Path ... reqFileNPath]");
-		System.out.println("Where:");
-		System.out
-				.println("filesDirectory \t directory which files and sub directories will be packed");
-		System.out
-				.println("executableType \t \"native\" if executable is native application");
-		System.out
-				.println("               \t \"jconsole\" if executable is java console app");
-		System.out
-				.println("               \t \"jwindow\" if executable is java windowed app");
-		System.out.println("executablePath \t path to autorun application");
-		System.out.println("executableArgs \t arguments for autorun");
-		System.out.println("outFile        \t path to output file");
-		System.out
-				.println("reqFileNPath   \t path to file, which must be initially extracted");
-		System.out
-				.println("               \t NOTE: do not pass any required files pathes to signal extractor to extract all archive content");
-	}
-
-	public static void main(String[] args) {
-		printBanner();
-		if (args.length > ARGS_NUM_MAX || args.length < ARGS_NUM_MIN)
-			printHelp();
-		else {
-			String dirName = stripQuotes(args[0]);
-			File sourceDirectory = new File(dirName);
-			if (sourceDirectory.isDirectory() == false) {
-				System.out
-						.println("ERROR: first argument must be directory of files");
-				return;
-			}
-			String executableType = args[1];
-
-			int flags = parseFlags(executableType);
-			if (flags == -1) {
-				System.out
-						.println("ERROR: invalid flag, can be only 'native', 'jconsole' or 'jwindow'");
-			}
-			String execString = stripQuotes(args[2]);
-			if (execString.startsWith(dirName) == false) {
-				System.out
-						.println("ERROR: autorun executable must be in source directory");
-				return;
-			}
-			String execArgs = stripQuotes(args[3]);
-
-			String outPath = stripQuotes(args[4]);
-			File outFile = new File(outPath);
-			if (outFile.exists()) {
-				// delete then it
-				if (!outFile.delete()) {
-					System.out
-							.println("ERROR: failed to delete previous file '"
-									+ outPath + "'");
-					return;
-				}
-			}
-			String[] reqFiles = null;
-
-			if (args.length > ARGS_NUM_MIN) {
-				reqFiles = new String[args.length - ARGS_NUM_MIN];
-				for (int i = ARGS_NUM_MIN; i < args.length; i++) {
-					String filePath = stripQuotes(args[i]);
-					if (filePath.startsWith(dirName))
-						reqFiles[i - ARGS_NUM_MIN] = makeRelative(filePath,
-								dirName);
-					else {
-						System.out.println("ERROR: file '" + filePath
-								+ "' not in source directory");
-						return;
-					}
-				}
-			}
-
-			File rootDirectory = new File(dirName);
-			if (!rootDirectory.isDirectory()) {
-				System.out.println("ERROR: '" + dirName
-						+ "' is not a directory");
-				return;
-			}
-
-			if (rootDirectory.list().length == 0) {
-				System.out.println("ERROR: files directory is empty");
-				return;
-			}
-
-			// recursively get files from directory
-			ArrayList allFilesNames = new ArrayList();
-			processDirectory(dirName, allFilesNames);
-
-			// do compile
-			XSEArchive archive = new XSEArchive();
-			archive.setFlags(flags);
-			archive.setExecutablePath(makeRelative(execString, dirName));
-			archive.setExecutableArgs(execArgs);
-			try {
-				for (int i = 0; i < allFilesNames.size(); i++) {
-					String fileName = (String) allFilesNames.get(i);
-					String relativeName = makeRelative(fileName, dirName);
-
-					System.out.print("adding " + relativeName + "...");
-
-					File file = new File(fileName);
-					FileInputStream fis = file.isDirectory() ? null
-							: new FileInputStream(file);
-					archive.addContent(relativeName, fis,
-							file.isDirectory() ? 0 : file.length(), file
-									.lastModified(), false, false);
-					System.out.println("OK");
-				}
-			} catch (FileNotFoundException e) {
-				System.out.println("ERROR:" + e.getMessage());
-				return;
-			} catch (IOException e) {
-				System.out.println("ERROR:" + e.getMessage());
-				return;
-			}
-			// add required info
-			if (reqFiles != null)
-				for (int i = 0; i < reqFiles.length; i++)
-					archive.setFileRequired(reqFiles[i]);
-			// save
-			try {
-				archive.saveToFile(outFile, false, false);
-			} catch (IOException e) {
-				System.out.println("ERROR:" + e.getMessage());
-				return;
-			}
-			// congrat user
-			System.out.println(outPath + " created successfully");
-		}
-
-	}
-
-	private static String makeRelative(String fileName, String root) {
-		return fileName.substring(root.endsWith(File.separator) ? root.length()
-				: root.length() + 1);
-	}
-
-	/**
-	 * @param executableType
-	 * @return
-	 */
-	private static int parseFlags(String executableType) {
-
-		if (executableType.equalsIgnoreCase(_FLAG_NATIVE))
-			return 0;
-		else if (executableType.equalsIgnoreCase(_FLAG_JAVA_CONSOLE))
-			return 1;
-		else if (executableType.equalsIgnoreCase(_FLAG_JAVA_WINDOWED))
-			return 3;
-		else
-			return -1;
-	}
-
-	private static String stripQuotes(String string) {
-		if (string.length() > 1 && string.startsWith("\"")
-				&& string.endsWith("\""))
-			return string.substring(1, string.length() - 2);
-		else
-			return string;
-	}
-
-	private static void processDirectory(String dirName, ArrayList allFilesNames) {
-		File directory = new File(dirName);
-		File[] childs = directory.listFiles();
-		for (int i = 0; i < childs.length; i++) {
-			File currentFile = childs[i];
-			if (currentFile.isFile())
-				allFilesNames.add(currentFile.getAbsolutePath());
-			else {
-				String directoryName = currentFile.getAbsolutePath();
-				if (!directoryName.endsWith(File.separator))
-					directoryName = directoryName + File.separator;
-				allFilesNames.add(directoryName);
-				processDirectory(currentFile.getAbsolutePath(), allFilesNames);
-			}
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSELinker.java b/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSELinker.java
deleted file mode 100644
index f17aac1..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/src/org/eclipse/epp/sfx/builder/XSELinker.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * 
- */
-package org.eclipse.epp.sfx.builder;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.eclipse.epp.installer.internal.archive.sfx.Utils;
-
-/**
- * @author itsuart
- * 
- */
-public class XSELinker {
-
-	private final static int ARGS_NUM_MIN = 4;
-	private final static int ARGS_NUM_MAX = 4;
-
-	// ------------ LINKER FLAGS
-	private final static String FILE_COMMAND = "file";
-
-	/* private final static String PACKAGE_COMMAND = "package"; FOR FUTURE USE */
-	// ------------ END LINKER FLAGS
-	/**
-	 * 
-	 */
-	private static void printBanner() {
-		System.out
-				.println("XSELinker for Eclipse Packaging Project version 0.9");
-		System.out.println("http://www.eclipse.org/epp/\n");
-	}
-
-	private static void printHelp() {
-		System.out.print("Usage:");
-		System.out
-				.println("java org.eclipse.epp.sfx.builder.XSELinker command laucherPath archivePath resultPath");
-		System.out.println("Where:");
-		System.out.println("command \t reserved. must be \"file\"");
-		System.out.println("laucherPath\t path to native launcher");
-		System.out.println("archivePath\t path to XSE archive");
-		System.out.println("resultPath\t path to resulting file");
-	}
-
-	public static void main(String[] args) {
-		printBanner();
-		if (args.length > ARGS_NUM_MAX || args.length < ARGS_NUM_MIN)
-			printHelp();
-		else {
-			String command = args[0];
-			String launcher = args[1];
-			String archive = args[2];
-			String resultFile = args[3];
-
-			if (command.equalsIgnoreCase(FILE_COMMAND)) {
-				if (linkFiles(launcher, archive, resultFile))
-					// congrat user
-					System.out.println(resultFile + " created successfully");
-			} else {
-				System.out.println("ERROR:unrecognized command '" + command
-						+ "'");
-				return;
-			}
-
-		}
-	}
-
-	/**
-	 * @param launcherFileName
-	 * @param archiveFileName
-	 * @throws IOException
-	 */
-	private static boolean linkFiles(String launcherFileName,
-			String archiveFileName, String outFileName) {
-		File launcherFile = new File(launcherFileName);
-		File archFile = new File(archiveFileName);
-		File outFile = new File(outFileName);
-
-		if (!launcherFile.canRead()) {
-			System.out.println("ERROR: can't open launcher ("
-					+ launcherFileName + ")");
-			return false;
-		}
-
-		if (!archFile.canRead()) {
-			System.out.println("ERROR: can't open archive (" + archiveFileName
-					+ ")");
-			return false;
-		}
-
-		if (outFile.exists()) {
-			// delete then it
-			if (!outFile.delete()) {
-				System.out.println("ERROR: failed to delete previous file '"
-						+ outFileName + "'");
-				return false;
-			}
-		} else {
-			// create new
-			try {
-				if (!outFile.createNewFile()) {
-					System.out.println("ERROR: Failed to create target file '"
-							+ outFileName + "'");
-					return false;
-				}
-			} catch (IOException e) {
-				System.out.println("ERROR: Failed to create target file '"
-						+ outFileName + "'");
-				return false;
-			}
-		}
-
-		// now do linking
-		try {
-			FileInputStream launcherStream = new FileInputStream(launcherFile);
-			FileInputStream archiveStream = new FileInputStream(archFile);
-			OutputStream outStream = new BufferedOutputStream(
-					new FileOutputStream(outFile));
-
-			/*
-			 * NEED TO READ ABOUT VERIONINFO STRUCTURE. SIMPLE PATCHING DOESN'T
-			 * WORK :( //DIRTY HACK START //find that "O r i g i n a l" shit
-			 * byte[] originalName = new
-			 * byte[]{'e',0,'x',0,'t',0,'r',0,'a',0,'c',0,'t',0,'o',0,'r',0,'.',0,'e',0,'x',0,'e',0};
-			 * byte[] newName = getNewName(outFileName); //byte[] originalData =
-			 * new byte[originalName.length]; byte[] launcherData = new
-			 * byte[(int) launcherFile.length()];
-			 * launcherStream.read(launcherData); for ( int i = 0; i <
-			 * launcherFile.length() - originalName.length; i++) { byte[]
-			 * originalData = Arrays.copyOfRange(launcherData, i, i +
-			 * originalName.length ); if (Arrays.equals(originalData,
-			 * originalName)) { outStream.write(newName);
-			 * outStream.write(launcherData, i + originalName.length, (int)
-			 * (launcherFile.length() - originalName.length - i - 1)); break; }
-			 * else outStream.write(launcherData[i]); }
-			 * 
-			 * //DIRTY HACK END
-			 * 
-			 */
-			Utils.copyContent(launcherStream, outStream, launcherFile.length());
-			Utils.copyContent(archiveStream, outStream, archFile.length());
-
-			// and here we will write crc32 of whole bundle.
-			// in nearest future
-
-			if (launcherStream != null)
-				launcherStream.close();
-			if (archiveStream != null)
-				archiveStream.close();
-			if (outStream != null)
-				outStream.close();
-
-		} catch (FileNotFoundException e) {
-			System.out.println("ERROR: " + e.getMessage());
-			return false;
-		} catch (IOException e) {
-			System.out.println("ERROR: " + e.getMessage());
-			e.printStackTrace();
-			return false;
-		}
-
-		return true;
-	}
-}
diff --git a/plugins/org.eclipse.epp.sfx.tools/templates/win32.x86/extractor.exe b/plugins/org.eclipse.epp.sfx.tools/templates/win32.x86/extractor.exe
deleted file mode 100644
index f337037..0000000
--- a/plugins/org.eclipse.epp.sfx.tools/templates/win32.x86/extractor.exe
+++ /dev/null
Binary files differ