Remove obsolete sigil project

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1694187 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/LICENSE b/sigil/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/sigil/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/sigil/bldcommon/build.properties b/sigil/bldcommon/build.properties
deleted file mode 100644
index f3b92eb..0000000
--- a/sigil/bldcommon/build.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-# common properties
-# easier to set here than in xml file
-
-buildRelease    = 0.9.0
-buildQualifier  = SNAPSHOT
-buildVersion    = ${buildRelease}.${buildQualifier}
-
-update.site=http://ci.codecauldron.org/hudson/job/sigil-apache-daily/lastSuccessfulBuild/artifact/sigil/site/
-
-# set common.dir when used without ant (e.g. IvyDE)
-common.dir	= ${ivy.settings.dir}
-
-ivy.jar		= ${common.dir}/sigil/ivy-2.0.0-rc1.jar
-sigil-ivy-plugin.jar = ${common.dir}/sigil/sigil-ivy-plugin.jar
-
-build.dir	= ${basedir}/build
-build_xml	= build.xml
-classes.dir	= ${build.dir}/main-classes
-deps.dir	= ${build.dir}/deps
-composite.dir	= ${basedir}/xml
-src.dir		= ${basedir}/src
-ivy.file	= ${basedir}/ivy.xml
-
-_build.dir	= ${build.dir}
-build.lib.dir	= ${_build.dir}/lib
-build.etc.dir	= ${_build.dir}/etc
-
-top-build.dir	= ${common.dir}/../build
-site.dir	= ${common.dir}/../site
-dist.dir	= ${top-build.dir}/dist
-install.dir	= ${top-build.dir}/install
-repository.dir	= ${top-build.dir}/repository
-cache.dir	= ${common.dir}/../cache
-# note: clean-local task assumes repository.pattern starts with ${ivy.module}
-repository.pattern = [module]/[revision]/[type]s/[artifact].[ext]
-
-ivy.install.version=2.0.0
-bnd.install.version=0.0.401
-equinox.install.version=3.4.0.v20080421-2006
-equinox.release=ganymede
-
-resolve.log	= download-only
-
-# end
-
diff --git a/sigil/bldcommon/common.xml b/sigil/bldcommon/common.xml
deleted file mode 100644
index e7424e1..0000000
--- a/sigil/bldcommon/common.xml
+++ /dev/null
@@ -1,363 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="bldcommon" 
-         xmlns:ivy="antlib:org.apache.ivy.ant"
-         xmlns:groovy="antlib:org.codehaus.groovy">
-    
-    <dirname property="common.dir" file="${ant.file.bldcommon}"/>
-    <property file="${common.dir}/build.properties"/>
-
-    <!-- =====================================================
-         stuff intended to be over-ridden is prefixed with my.
-         =====================================================-->
-
-    <fileset id="my.projects" dir="${basedir}">
-      <include name="**/${build_xml}"/>
-    </fileset>
-
-    <path id="my.classpath">
-        <fileset dir="${basedir}" includes="lib/*.jar"/>
-    </path>
-
-    <path id="javac.classpath">
-	<path refid="my.classpath"/>
-        <fileset dir="${deps.dir}" />
-    </path>
-
-    <path id="sigil.classpath">
-        <path refid="javac.classpath" />
-        <path location="${classes.dir}" />
-    </path>
-
-    <!-- ================================= 
-          target: load-ivy
-         ================================= -->
-    <target name="load-ivy" depends="init-sigil">
-	<echo message="Loading Ivy ... ${common.dir}/ivysettings.xml"/>
-	<ivy:settings file="${common.dir}/ivysettings.xml" />
-    </target>
-
-    <target name="load-groovy">
-        <ivy:cachepath 
-             organisation="org.codehaus.groovy" 
-             module="groovy-all" 
-             revision="1.6.4" 
-             inline="true" 
-             pathid="groovy.classpath" 
-             transitive="false" 
-             log="quiet"/>
-
-        <taskdef resource="org/codehaus/groovy/antlib.xml"
-             uri="antlib:org.codehaus.groovy" classpathref="groovy.classpath"/>
-    </target>
-
-    <!-- ================================= 
-          target: build (default target)
-         ================================= -->
-    <target name="build" depends="publish-local" />
-
-    <target name="ident">
-      <echo message="${ant.project.name}"/>
-    </target>
-
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="common-init"
-    	description="--> resolve and retrieve dependencies with ivy">
-	<mkdir dir="${deps.dir}"/>
-    	<ivy:resolve file="${ivy.file}" log="${resolve.log}"/>
-    	<ivy:retrieve pattern="${deps.dir}/[artifact].[ext]"
-		symlink="true" sync="true"/>
-    	<!-- sync=true removes empty deps dir, so re-create it -->
-	<mkdir dir="${deps.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: publish-local
-         ================================= -->
-
-    <target name="publish-check" unless="bundle.modified">
-      <ivy:info file="${ivy.file}"/>
-      <condition property="bundle.modified">
-	<not>
-	  <available file="${repository.dir}/local/${ivy.module}" type="dir"/>
-	</not>
-      </condition>
-    </target>
-
-    <target name="publish-local" depends="bundle, publish-check" if="bundle.modified"
-    	description="--> publish project in the local repository">
-
-	<tstamp>
-	    <format property="now" pattern="yyyyMMddHHmmss"/>
-	</tstamp>
-        <property name="local-version" value="${now}"/>
-
-	<antcall target="clean-local"/>
-    	<ivy:publish artifactspattern="${build.lib.dir}/[artifact].[ext]" 
-		       resolver="local"
-		       pubrevision="${local-version}" 
-		       pubdate="${now}"
-		       forcedeliver="true"
-		       status="integration"/>
-        <echo message="project ${ant.project.name} published locally with version ${local-version}" />
-    </target>
-
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve"
-    	description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve"
-    	description="--> compile the project">
-        <!-- uncomment the following to debug classpath -->
-        <!--pathconvert property="cp" refid="javac.classpath"/>
-        <echo>Classpath - ${cp}</echo-->
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}"
-		destdir="${classes.dir}"
-		classpathref="javac.classpath"
-		target="1.5"
-		debug="true" />
-    </target>
-    
-    <!-- ================================= 
-          target: bundle
-         ================================= -->
-    <target name="bundle" depends="compile"
-    	description="--> build OSGi bundle(s) for this project">
-	<mkdir dir="${build.lib.dir}"/>
-        <sigil.bundle
-                classpathref="sigil.classpath"
-		destpattern="${build.lib.dir}/[name].[ext]"
-		force="${bundle.force}"
-		property="bundle.modified" />
-    </target>
-
-    <available file="bin" type="dir"
-               property="bin.dir.present"/>
-    <available file="etc" type="dir"
-               property="etc.dir.present"/>
-
-    <target name="install-bin" if="bin.dir.present">
-	<mkdir dir="${install.dir}/bin"/>
-	<copy todir="${install.dir}/bin">
-	  <fileset dir="bin" />
-	</copy>
-	<chmod dir="${install.dir}/bin" perm="755" excludes="*.bat"/>
-    </target>
-
-    <target name="install-etc" if="etc.dir.present">
-	<mkdir dir="${install.dir}/etc"/>
-	<copy todir="${install.dir}/etc">
-	  <fileset dir="etc" />
-	</copy>
-    </target>
-
-    <target name="libs-available">
-      <available file="${build.lib.dir}" type="dir"
-               property="build.lib.dir.present"/>
-    </target>
-
-    <target name="install-lib"
-	 depends="publish-local, libs-available"
-	      if="build.lib.dir.present">
-	<copy todir="${install.dir}/lib">
-	  <fileset dir="${build.lib.dir}" />
-	  <mapper type="glob" from="*.jar" to="*-${buildVersion}.jar"/>
-	</copy>
-    </target>
-
-    <!-- ================================= 
-	  target: clean-local              
-	 ================================= -->
-    <target name="clean-local" depends="boot"
-    	description="--> cleans the local repository for the current module">
-       <ivy:info file="${ivy.file}"/>
-       <delete dir="${repository.dir}/local/${ivy.module}"/>
-    </target>
-
-    <!-- ================================= 
-	  target: clean-deps              
-	 ================================= -->
-    <target name="clean-deps"
-    	description="--> clean the project dependencies directory">
-	<delete includeemptydirs="true" dir="${deps.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean-build              
-         ================================= -->
-    <target name="clean-build"
-    	description="--> clean the project built files">
-        <delete includeemptydirs="true" dir="${build.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" depends="ident, clean-build, clean-deps"
-    	description="--> clean the project" />
-
-
-    <!-- ================================= 
-          target: boot
-         ================================= -->
-    <target name="boot" depends="load-ivy,load-groovy">
-    </target>
-
-    <!-- ================================= 
-          target: common-init
-         ================================= -->
-    <target name="common-init" depends="ident,boot,init">
-    </target>
-
-    <!-- ================================= 
-          target: init
-         ================================= -->
-    <target name="init">
-    </target>
-
-    <!-- ================================= 
-          target: buildlist
-         ================================= -->
-    <target name="buildlist" depends="common-init">
-      <ivy:buildlist reference="ordered-list"
-		  onMissingDescriptor="skip">
-	<fileset refid="my.projects"/>
-      </ivy:buildlist>
-    </target>
-
-    <!-- ================================= 
-          target: build-list
-         ================================= -->
-    <target name="build-list" depends="buildlist" 
-	  description="--> build all projects in the right order">
-      <property name="target" value="build"/>
-      <subant target="${target}" buildpathref="ordered-list">
-	<propertyset>
-	  <propertyref name="ivy.loaded" />
-	</propertyset>
-      </subant>
-    </target>
-
-    <!-- ================================= 
-          target: report-list
-         ================================= -->
-    <target name="report-list"
-	  description="--> report all projects">
-      <antcall target="build-list">
-        <param name="target" value="report"/>
-      </antcall>
-    </target>
-
-    <!-- ================================= 
-          target: install-list
-         ================================= -->
-    <target name="install-list"
-	  description="--> install all projects">
-      <antcall target="build-list">
-        <param name="target" value="install"/>
-      </antcall>
-    </target>
-
-    <!-- ================================= 
-          target: ident-list
-         ================================= -->
-    <target name="ident-list"
-	  description="--> identify projects">
-      <antcall target="build-list">
-        <param name="target" value="ident"/>
-      </antcall>
-    </target>
-
-    <!-- ================================= 
-          target: clean-list
-         ================================= -->
-    <target name="clean-list"
-	  description="--> clean all projects">
-      <antcall target="build-list">
-        <param name="target" value="clean"/>
-      </antcall>
-    </target>
-
-    <!-- ================================= 
-          target: clean-all
-         ================================= -->
-    <target name="clean-all" depends="clean-list, clean" 
-    description="--> clean repository, cache, and all projects">
-      <delete dir="${repository.dir}"/>
-      <delete dir="${cache.dir}"/>
-      <delete dir="${install.dir}"/>
-      <delete dir="${dist.dir}"/>
-    </target>
-
-  <property name="sigil.home" value="${cache.dir}/ant" />
-  <property name="sigil.jar.dir" value="${sigil.home}/lib" />
-  <property name="ivy.jar.file" value="${sigil.jar.dir}/ivy.jar" />
-  <property name="sigil.jar.file" value="${sigil.jar.dir}/sigil-ivy-plugin.jar" />
-
-
-  <target name="download-deps" unless="offline">
-    <property name="deps.loaded" value="true"/>
-    <mkdir dir="${sigil.jar.dir}"/>
-    <!-- ivy -->
-    <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
-         dest="${ivy.jar.file}" usetimestamp="true" verbose="true"/>
-    <!-- sigil -->
-    <get src="http://people.apache.org/~dsavage/sigil/sigil-ivy-plugin.jar"
-         dest="${sigil.jar.file}" usetimestamp="true" verbose="true"/>
-  </target>
-
-  <target name="check-sigil">
-    <condition property="sigil.loaded">
-      <typefound name="sigil.bundle" />
-    </condition>
-  </target>
-
-  <target name="init-sigil" depends="check-sigil" unless="sigil.loaded">
-    <antcall target="download-deps" />
-    <!-- try to load ivy here from ivy home, in case the user has not already dropped
-         it into ant's lib dir (note that the latter copy will always take precedence).
-         We will not fail as long as local lib dir exists (it may be empty) and
-         ivy is in at least one of ant's lib dir or the local lib dir. -->
-    <path id="sigil.lib.path">
-      <fileset dir="${sigil.jar.dir}" includes="*.jar"/>
-    </path>
-
-    <taskdef resource="org/apache/ivy/ant/antlib.xml"
-             uri="antlib:org.apache.ivy.ant" classpathref="sigil.lib.path"/>
-
-    <taskdef name="sigil.bundle"
-             classname="org.apache.felix.sigil.ant.BundleTask" classpathref="sigil.lib.path"/>
-
-    <taskdef name="sigil.bundle.info"
-             classname="org.apache.felix.sigil.ant.BundleInfoTask" classpathref="sigil.lib.path"/>
-
-  </target>
-	
-</project>
diff --git a/sigil/bldcommon/ivysettings.xml b/sigil/bldcommon/ivysettings.xml
deleted file mode 100644
index 12d0b95..0000000
--- a/sigil/bldcommon/ivysettings.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-  <properties file="${ivy.settings.dir}/build.properties" override="false"/>
-  <caches defaultCacheDir="${cache.dir}/all" />
-
-  <settings defaultResolver="default" circularDependencyStrategy="error" />
-
-  <!--
-  <classpath file="${sigil-ivy-plugin.jar}" />
-  Ant tasks "subant" and "ant" cause IvySettings to be re-loaded, 
-  which then re-loads SigilParser in a new URLClassLoader,
-  which causes ProjectRepository to be re-initialised. Outch!
-  Loading sigil-ivy-plugin.jar in load-ivy task, uses the same ClassLoader
-  and thus avoids re-initialising ProjectRepositiory.
-  Search for Derek Baum in the October 2008 ant-dev archives for my attempt
-  at getting the Ivy communiuty to fix this.
-  http://mail-archives.apache.org/mod_mbox/ant-dev/200810.mbox/browser
-  -->
-  <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-  <typedef name="sigil" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-  <parsers>
-    <sigil-parser config="${ivy.settings.dir}/sigil-defaults.properties"
-    		quiet="true"/>
-  </parsers>
-
-  <resolvers>
-    <sigil name="sigil"
-	   config="${ivy.settings.dir}/sigil-defaults.properties"
-	   extractBCP="true"
-           cache="sigil"/>
-
-    <chain name="default" returnFirst="true">
-      <filesystem name="local">
-        <ivy pattern="${repository.dir}/local/${repository.pattern}" />
-        <artifact pattern="${repository.dir}/local/${repository.pattern}" />
-      </filesystem>
-
-      <filesystem name="shared">
-        <ivy pattern="${repository.dir}/shared/${repository.pattern}" />
-        <artifact pattern="${repository.dir}/shared/${repository.pattern}" />
-      </filesystem>
-    </chain>
-
-    <url name="eclipse">
-      <artifact pattern="http://download.eclipse.org/releases/ganymede/plugins/[module]_[revision].[ext]" />
-      <artifact pattern="http://download.eclipse.org/releases/ganymede/[module].[artifact]_[revision].[ext]" />
-    </url>
-
-    <url name="apache" m2compatible="true">
-      <artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[artifact]/[revision]/[artifact]-[revision].[ext]"/>
-      <artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
-    </url>
-
-    <url name="aQute" m2compatible="true">
-      <artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
-    </url>
-  </resolvers>
-
-  <caches>
-    <cache name="sigil" basedir="${cache.dir}/sigil" />
-  </caches>
-
-  <modules>
-    <module organisation="sigil" resolver="sigil"/>
-    <module organisation="org.eclipse" resolver="eclipse"/>
-    <module organisation="org.apache" name="felix\.sigil.*" matcher="regexp" resolver="default"/>
-    <module organisation="org.apache" resolver="apache"/>
-    <module organisation="biz.aQute" resolver="aQute"/>
-    <module organisation="org.codehaus.groovy" resolver="apache" />
-  </modules>
-</ivysettings>
diff --git a/sigil/bldcommon/prepare/build.xml b/sigil/bldcommon/prepare/build.xml
deleted file mode 100644
index cc68ee9..0000000
--- a/sigil/bldcommon/prepare/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="prepare" default="resolve">
-      <import file="../common.xml"/>
-</project>
diff --git a/sigil/bldcommon/prepare/ivy.xml b/sigil/bldcommon/prepare/ivy.xml
deleted file mode 100644
index 5021a81..0000000
--- a/sigil/bldcommon/prepare/ivy.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info organisation="org.apache"
-        module="felix.sigil.bldcommon.prepare"
-        status="integration"/>
-
-    <dependencies>
-        <!-- bundles -->
-        <dependency org="org.eclipse" name="org.eclipse.core.commands" rev="3.4.0.I20080509-2000" />
-        <dependency org="org.eclipse" name="org.eclipse.core.contenttype" rev="3.3.0.v20080604-1400" />
-        <dependency org="org.eclipse" name="org.eclipse.core.expressions" rev="3.4.1.r342_v20081203-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.core.jobs" rev="3.4.1.R34x_v20081128" />
-        <dependency org="org.eclipse" name="org.eclipse.core.resources" rev="3.4.2.R34x_v20090126" />
-        <dependency org="org.eclipse" name="org.eclipse.debug.core" rev="3.4.1.v20090106_r342" />
-        <dependency org="org.eclipse" name="org.eclipse.debug.ui" rev="3.4.2.v20090110_r342" />
-        <dependency org="org.eclipse" name="org.eclipse.equinox.common" rev="3.4.0.v20080421-2006" />
-        <dependency org="org.eclipse" name="org.eclipse.jdt.core" rev="3.4.4.v_894_R34x" />
-        <dependency org="org.eclipse" name="org.eclipse.jdt.debug.ui" rev="3.3.1.v20080730_r341" />
-        <dependency org="org.eclipse" name="org.eclipse.jdt.launching" rev="3.4.1.v20080729_r341" />
-        <dependency org="org.eclipse" name="org.eclipse.jdt.ui" rev="3.4.2.r342_v20090107-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.jface.text" rev="3.4.2.r342_v20081119-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.jface" rev="3.4.2.M20090107-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.ltk.core.refactoring" rev="3.4.2.r342_v20081028-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.ltk.ui.refactoring" rev="3.4.1.r341_v20080716-0800" />
-        <dependency org="org.eclipse" name="org.eclipse.swt.carbon.macosx" rev="3.4.1.v3452b" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.cheatsheets" rev="3.3.101.v20080702_34x" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.console" rev="3.3.1.v20090128_r342" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.editors" rev="3.4.0.v20080603-2000" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.forms" rev="3.3.103.v20081027_34x" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.ide" rev="3.4.2.M20090127-1700" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.workbench" rev="3.4.2.M20090127-1700" />
-        <!-- zest -->
-        <dependency org="org.eclipse" name="org.eclipse.draw2d" rev="3.4.2.v20090114-1330" />
-        <dependency org="org.eclipse" name="org.eclipse.zest.core" rev="1.0.0.v20080115" />
-        <dependency org="org.eclipse" name="org.eclipse.zest.layouts" rev="1.0.0.v20080226" />
-	<!-- fragments -->
-        <dependency org="org.eclipse" name="org.eclipse.core.runtime" rev="3.4.0.v20080512" />
-        <dependency org="org.eclipse" name="org.eclipse.equinox.preferences" rev="3.2.201.R34x_v20080709" />
-        <dependency org="org.eclipse" name="org.eclipse.equinox.registry" rev="3.4.0.v20080516-0950" />
-        <dependency org="org.eclipse" name="org.eclipse.swt" rev="3.4.2.v3452b" />
-        <dependency org="org.eclipse" name="org.eclipse.text" rev="3.4.0.v20080605-1800" />
-        <dependency org="org.eclipse" name="org.eclipse.ui.workbench.texteditor" rev="3.4.1.r341_v20080827-1100" />
-
-        <dependency org="org.apache" name="bcel" rev="5.2">
-          <artifact name="bcel" type="jar" />
-        </dependency>
-
-        <dependency org="biz.aQute" name="bndlib" rev="1.15.0">
-          <artifact name="bndlib" type="jar" />
-        </dependency>
-
-        <dependency org="org.apache" name="felix" rev="1.4.0">
-          <artifact name="org.osgi.core" type="jar" />
-          <artifact name="org.osgi.compendium" type="jar" />
-        </dependency>
-    </dependencies>
-</ivy-module>
diff --git a/sigil/bldcommon/sigil-defaults.properties b/sigil/bldcommon/sigil-defaults.properties
deleted file mode 100644
index fa6093d..0000000
--- a/sigil/bldcommon/sigil-defaults.properties
+++ /dev/null
@@ -1,146 +0,0 @@
-# sigil-defaults.properties
-
-# repository config
--repositories:  system, project, bld-common, felix, spring, bld-ant
-
-system;provider:        system
-
-project;provider:       project
-project;pattern:        \
-        ${..}/common/**/[sigilproject] \
-        ${..}/eclipse/**/[sigilproject] \
-
-bld-ant;provider:       filesystem
-bld-ant;recurse:        true
-bld-ant;dir:            ${cache.dir:-${..}/cache}/ant/lib
-
-bld-common;provider:    filesystem
-bld-common;recurse:     true
-bld-common;dir:         ${cache.dir:-${..}/cache}/all
-
-felix;provider: obr
-felix;url:              http://felix.apache.org/obr/releases.xml 
-felix;index:            ${..}/build/felix.obr
-felix;cache:            ${..}/build/obr-cache
-felix;offline		${offline:-false}
-
-spring;provider:        obr
-spring;url:             http://sigil.codecauldron.org/spring-external.obr
-spring;index:           ${..}/build/spring-external.obr
-spring;cache:           ${..}/build/obr-cache
-spring;offline		${offline:-false}
-
-# Default version of all Sigil projects
-version: 0.9.0.${buildQualifier:-SNAPSHOT}
-
-# Default bundle headers
-header;update-site: ${update.site:-${.}/site}
-header;Bundle-Category: development
-header;Bundle-ContactAddress: http://felix.apache.org
-header;Bundle-Vendor: The Apache Software Foundation
-
-# Default package version ranges
-# if no version specified, BND uses resolved version, dropping minor number
-
-package;org.apache.felix.sigil.*:				0.9.0.${buildQualifier:-SNAPSHOT}
-
-package;aQute.lib.osgi:						0.0.0
-
-# junit
-package;junit.framework:					4.4.0
-	
-# apache commons	
-package;org.apache.commons.lang:				2.4.0
-package;org.apache.commons.lang.text:				2.4.0
-package;org.apache.commons.cli:					1.2.0
-
-# apache ant
-package;org.apache.tools.ant:					1.7.0
-
-package;org.apache.ivy*:					[2.0.0,2.0.0]
-package;org.apache.tools.ant*:					1.7.1
-
-# ganymede
-# package;org.eclipse.core.resources:				3.4.1
-# package;org.eclipse.core.runtime.content:			1.5.4
-# package;org.eclipse.ui:					3.4.1
-# package;org.eclipse.core.runtime.jobs:			3.4.0
-# package;org.eclipse.debug.core:				3.4.0
-# package;org.eclipse.debug.ui:					3.4.2
-# package;org.eclipse.jdt.core:					3.4.2
-# package;org.eclipse.jface.dialogs:				3.4.1
-# package;org.eclipse.jface.preference:				3.4.1
-# package;org.eclipse.jface.resource:				3.4.1
-# package;org.eclipse.jface.util:					3.4.1
-# package;org.eclipse.jface.window:				3.4.1
-# package;org.eclipse.ui.console:					3.3.1
-# package;org.eclipse.ui.dialogs:					3.4.1
-# package;org.eclipse.ui.plugin:					3.4.1
-# package;org.eclipse.core.commands:				3.4.0
-# package;org.eclipse.core.commands.common:			3.4.0
-# package;org.eclipse.core.internal.preferences:			3.2.201
-# package;org.eclipse.draw2d:					3.4.2
-# org.eclipse.jdt
-# package;org.eclipse.jdt.core.compiler:				3.4.2
-# package;org.eclipse.jdt.core.dom:				3.4.2
-# package;org.eclipse.jdt.core.dom.rewrite:			3.4.2
-# package;org.eclipse.jdt.internal.corext.dom:			3.4.2
-# package;org.eclipse.jdt.internal.corext.util:			3.4.2
-# package;org.eclipse.jdt.internal.ui:				3.4.2
-# package;org.eclipse.jdt.internal.ui.propertiesfileeditor:	3.4.2
-# package;org.eclipse.jdt.ui:					3.4.2
-# package;org.eclipse.jdt.ui.text:				3.4.2
-# package;org.eclipse.jdt.ui.text.java:				3.4.2
-# package;org.eclipse.jdt.ui.wizards:				3.4.2
-
-# org.eclipse.jface
-# package;org.eclipse.jface.action:				3.4.1
-# package;org.eclipse.jface.fieldassist:				3.4.1
-# package;org.eclipse.jface.layout:				3.4.1
-# package;org.eclipse.jface.operation:				3.4.1
-# package;org.eclipse.jface.text:					3.4.2
-# package;org.eclipse.jface.text.contentassist:			3.4.2
-# package;org.eclipse.jface.viewers:				3.4.1
-# package;org.eclipse.jface.wizard:				3.4.1
-
-# org.eclipse.ltk
-# package;org.eclipse.ltk.core.refactoring:			3.4.2
-
-# org.eclipse.pde
-# package;org.eclipse.pde.internal.ui.editor:			3.4.0
-# package;org.eclipse.pde.internal.ui.parts:			3.4.0
-
-# org.eclipse.ui
-# package;org.eclipse.ui.actions:					3.4.1
-# package;org.eclipse.ui.cheatsheets:				3.3.101
-# package;org.eclipse.ui.editors.text:				3.4.0
-# package;org.eclipse.ui.forms:					3.3.103
-# package;org.eclipse.ui.forms.editor:				3.3.103
-# package;org.eclipse.ui.forms.events:				3.3.103
-# package;org.eclipse.ui.forms.widgets:				3.3.103
-# package;org.eclipse.ui.handlers:				3.4.1
-# package;org.eclipse.ui.ide:					3.4.2
-# package;org.eclipse.ui.part:					3.4.1
-# package;org.eclipse.ui.progress:				3.4.1
-# package;org.eclipse.ui.texteditor:				3.4.0
-# package;org.eclipse.ui.wizards.newresource:			3.4.2
-
-# org.eclipse.zest
-# package;org.eclipse.zest.core.viewers:				1.0.0
-# package;org.eclipse.zest.core.widgets:				1.0.0
-# package;org.eclipse.zest.layouts:				1.0.0
-# package;org.eclipse.zest.layouts.algorithms:			1.0.0
-
-# galileo
-package;org.eclipse.*:				0.0.0
-
-
-# OSGi framework
-package;org.osgi.framework:					1.4.0
-package;org.osgi.framework.launch:				1.0.0
-package;org.osgi.service.prefs:					1.1.0
-package;org.osgi.service.packageadmin				1.2.0
-package;org.osgi.util.tracker:					1.3.3
-
-# Gogo
-package;org.osgi.service.command:				0.2.0
diff --git a/sigil/bldcommon/updatesite.groovy b/sigil/bldcommon/updatesite.groovy
deleted file mode 100644
index fe0840c..0000000
--- a/sigil/bldcommon/updatesite.groovy
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import java.util.jar.JarFile
-
-def processFeature(file,writer) {
-  def jar = new JarFile(file)
-
-  if (jar.getEntry( "feature.xml" ) != null) {
-    def path = 'features/' + file.getName()
-    def attrs = jar.getManifest().getMainAttributes()
-
-    def id = attrs.getValue('Bundle-SymbolicName')
-    def version = attrs.getValue('Bundle-Version')
-
-    writer.println( '  <feature url="' + path + '" id="' + id + '" version="' + version + '">' )
-    writer.println( '    <category name="Sigil"/>')
-    writer.println( '  </feature>' )
-  }
-
-  jar.close()
-}
-
-def findJars(dir,closure) {
-  dir.eachFileRecurse() { f ->
-    if (f ==~ /.*jar$/) closure( f )
-  }
-}
-
-
-def generateUpdateSite(dir,site) {
-  def writer = new PrintWriter( site )
-  writer.println('<site>')
-
-  findJars( dir, { f -> processFeature( f, writer ) } )
-
-  writer.println('  <category-def name="Sigil" label="Sigil-Core"> ')
-  writer.println('    <description>')
-  writer.println('      Sigil is an SDK for developing OSGi applications')
-  writer.println('    </description>')
-  writer.println('  </category-def>')
-  writer.println('</site>')
-
-  writer.close()
-}
-
-args.each{ ant.echo(message:it) }
-
-def dir = new File( args[0] )
-def site = new File( args[1] )
-
-generateUpdateSite(dir, site)
diff --git a/sigil/build.xml b/sigil/build.xml
deleted file mode 100644
index 3361dd3..0000000
--- a/sigil/build.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="sigil" default="dist" 
-  xmlns:ivy="antlib:org.apache.ivy.ant"
-  xmlns:groovy="antlib:org.codehaus.groovy">
-
-  <import file="bldcommon/common.xml"/>
-
-  <fileset id="my.projects" dir="${basedir}">
-    <exclude name="ivy/resolver/test/**/${build_xml}"/>
-    <exclude name="ivy/resolver/example/**/${build_xml}"/>
-    <exclude name="bldcommon/**/${build_xml}" />
-    <include name="**/${build_xml}"/>
-  </fileset>
-
-  <target name="init">
-    <subant buildpath="bldcommon/prepare" target="resolve" />
-  </target>
-
-  <target name="dist" depends="build, site" />
-
-  <target name="clean" depends="clean-list, clean-site, clean-tmp" />
-
-  <target name="build" depends="init, build-list" />
-
-  <target name="report" depends="report-list" />
-
-  <target name="site" depends="bldcommon.init">
-    <!-- eclipse features -->
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.core.feature" revision="latest.integration" inline="true" pattern="${site.dir}/features/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.obr.feature" revision="latest.integration" inline="true" pattern="${site.dir}/features/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-
-    <!-- eclipse plugins -->
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.junit" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.obr" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.osgi" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.runtime" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.help" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.obr" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.runtime" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.search" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.ui" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.utils" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
-    <ivy:retrieve organisation="sigil" module="com.springsource.org.apache.commons.lang" revision="2.4.0" inline="true" pattern="${site.dir}/plugins/[artifact]_[revision].[ext]" transitive="false"/>
-
-    <!-- ivy -->
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.ivy.resolver" revision="latest.integration" inline="true" pattern="${site.dir}/ivy/[artifact].[ext]" transitive="false"/>
-
-    <!-- gogo -->
-    <ivy:retrieve organisation="org.apache" module="felix.sigil.gogo.junit" revision="latest.integration" inline="true" pattern="${site.dir}/gogo/[artifact].[ext]" transitive="false"/>
-
-    <groovy:groovy src="bldcommon/updatesite.groovy">
-      <arg value="${site.dir}/features"/>
-      <arg value="${site.dir}/site.xml" />
-    </groovy:groovy>
-  </target>
-
-  <target name="clean-site">
-    <delete dir="${site.dir}" />
-  </target>
-
-  <target name="clean-tmp">
-    <echo>${cache.dir}</echo>
-    <delete includeemptydirs="true">
-     <fileset dir="${cache.dir}" includes="all/org.apache-felix.sigil*"/>
-     <fileset dir="${cache.dir}" includes="all/org.apache/felix.sigil*/**"/>
-     <fileset dir="${cache.dir}" includes="all/resolved-org.apache-felix.sigil*"/>
-    </delete>
-    <delete includeemptydirs="true">
-     <dirset dir="${cache.dir}">
-       <include name="all/org.apache/felix.sigil*"/>
-     </dirset>
-    </delete>
-  </target>
-</project>
diff --git a/sigil/common/build.xml b/sigil/common/build.xml
deleted file mode 100644
index ca46688..0000000
--- a/sigil/common/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common" default="build-list">
-  <import file="../bldcommon/common.xml"/>
-</project>
diff --git a/sigil/common/core.tests/.classpath b/sigil/common/core.tests/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/core.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/core.tests/.project b/sigil/common/core.tests/.project
deleted file mode 100644
index 60d4d6d..0000000
--- a/sigil/common/core.tests/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.core.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/core.tests/.settings/org.eclipse.jdt.core.prefs b/sigil/common/core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index cf9d68d..0000000
--- a/sigil/common/core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:06:48 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/core.tests/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/core.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index cf4e646..0000000
--- a/sigil/common/core.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:06:48 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/core.tests/build.xml b/sigil/common/core.tests/build.xml
deleted file mode 100644
index c340ddb..0000000
--- a/sigil/common/core.tests/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="core.tests" default="build">
-      <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/core.tests/ivy.xml b/sigil/common/core.tests/ivy.xml
deleted file mode 100644
index 1b2b493..0000000
--- a/sigil/common/core.tests/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.common.core.tests"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.core.tests" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/core.tests/sigil.properties b/sigil/common/core.tests/sigil.properties
deleted file mode 100644
index 52d143a..0000000
--- a/sigil/common/core.tests/sigil.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.core.tests, \
-
--sourcedirs: \
-	src, \
-
--fragment: \
-	org.apache.felix.sigil.common.core, \
-
--imports: \
-	junit.framework, \
-	org.apache.felix.sigil.common.osgi, \
-	org.osgi.framework, \
-
-# end
diff --git a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/BundleModelElementTest.java b/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/BundleModelElementTest.java
deleted file mode 100644
index 6aac51c..0000000
--- a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/BundleModelElementTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core;
-
-import java.util.Arrays;
-
-import org.apache.felix.sigil.common.core.internal.model.osgi.BundleModelElement;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageImport;
-import org.apache.felix.sigil.common.core.internal.model.osgi.RequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-import junit.framework.TestCase;
-
-public class BundleModelElementTest extends TestCase
-{
-
-    public BundleModelElementTest(String name)
-    {
-        super(name);
-    }
-
-    public void testAddRequires()
-    {
-        BundleModelElement element = new BundleModelElement();
-        checkRequires(element);
-    }
-
-    public void testAddImports()
-    {
-        BundleModelElement element = new BundleModelElement();
-        checkImports(element);
-    }
-
-    public void testAddImportsAndRequires()
-    {
-        BundleModelElement element = new BundleModelElement();
-        checkImports(element);
-        checkRequires(element);
-
-        element = new BundleModelElement();
-        checkRequires(element);
-        checkImports(element);
-    }
-
-    private void checkImports(BundleModelElement element)
-    {
-        PackageImport foo = new PackageImport();
-        foo.setPackageName("foo");
-        foo.setVersions(VersionRange.parseVersionRange("1.0.0"));
-        PackageImport bar = new PackageImport();
-        bar.setPackageName("bar");
-        bar.setVersions(VersionRange.parseVersionRange("[2.2.2, 3.3.3]"));
-        PackageImport baz = new PackageImport();
-        baz.setPackageName("baz");
-        baz.setVersions(VersionRange.parseVersionRange("[3.0.0, 4.0.0)"));
-
-        element.addChild(foo.clone());
-        element.addChild(bar.clone());
-        element.addChild(baz.clone());
-
-        assertTrue(Arrays.asList(element.children()).contains(foo));
-        assertTrue(Arrays.asList(element.children()).contains(bar));
-        assertTrue(Arrays.asList(element.children()).contains(baz));
-    }
-
-    private void checkRequires(BundleModelElement element)
-    {
-        RequiredBundle foo = new RequiredBundle();
-        foo.setSymbolicName("foo");
-        foo.setVersions(VersionRange.parseVersionRange("1.0.0"));
-        RequiredBundle bar = new RequiredBundle();
-        bar.setSymbolicName("bar");
-        bar.setVersions(VersionRange.parseVersionRange("[2.2.2, 3.3.3]"));
-        RequiredBundle baz = new RequiredBundle();
-        baz.setSymbolicName("baz");
-        baz.setVersions(VersionRange.parseVersionRange("[3.0.0, 4.0.0)"));
-
-        element.addChild(foo.clone());
-        element.addChild(bar.clone());
-        element.addChild(baz.clone());
-
-        assertTrue(Arrays.asList(element.children()).contains(foo));
-        assertTrue(Arrays.asList(element.children()).contains(bar));
-        assertTrue(Arrays.asList(element.children()).contains(baz));
-    }
-}
diff --git a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/ConfigTest.java b/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/ConfigTest.java
deleted file mode 100644
index 4b196b3..0000000
--- a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/ConfigTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Collection;
-
-import junit.framework.TestCase;
-
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageImport;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public class ConfigTest extends TestCase
-{
-
-    static final URI base = URI.create("test/ConfigTest/sigil.properties");
-
-    static
-    {
-        System.setProperty("bar.version", "2.0.0");
-    }
-
-    public ConfigTest(String name)
-    {
-        super(name);
-    }
-
-    public void testSimple() throws IOException
-    {
-        IBldProject project = BldFactory.getProject(base.resolve("test1.properties"));
-
-        ISigilBundle bundle = project.getDefaultBundle();
-        IBundleModelElement info = bundle.getBundleInfo();
-
-        PackageImport foo = new PackageImport();
-        foo.setPackageName("foo");
-        foo.setVersions(VersionRange.parseVersionRange("1.0.0"));
-        PackageImport bar = new PackageImport();
-        bar.setPackageName("bar");
-        bar.setVersions(VersionRange.parseVersionRange("[2.2.2, 3.3.3]"));
-        PackageImport baz = new PackageImport();
-        baz.setPackageName("baz");
-        baz.setVersions(VersionRange.parseVersionRange("[3.0.0, 4.0.0)"));
-
-        Collection<IPackageImport> imports = info.getImports();
-
-        assertTrue(foo.toString(), imports.contains(foo));
-        assertTrue(bar.toString(), imports.contains(bar));
-        assertTrue(baz.toString(), imports.contains(baz));
-        //IBundleModelElement requirements = project.getRequirements();
-    }
-
-    public void testInherited() throws IOException
-    {
-        IBldProject project = BldFactory.getProject(base.resolve("inheritance/foo/sigil.properties"));
-
-        ISigilBundle bundle = project.getDefaultBundle();
-        IBundleModelElement info = bundle.getBundleInfo();
-
-        Collection<IPackageImport> imports = info.getImports();
-        assertEquals(1, imports.size());
-        IPackageImport i = imports.iterator().next();
-        assertEquals("org.bar", i.getPackageName());
-        assertEquals(VersionRange.parseVersionRange("2.0.0"), i.getVersions());
-
-        //        project = BldFactory.getProject( base.resolve( "inheritance/foo/sigil.properties" ), true );
-        //
-        //        bundle = project.getDefaultBundle();
-        //        info = bundle.getBundleInfo();
-        //
-        //        imports = info.getImports();
-        //        assertEquals( 1, imports.size() );
-        //        i = imports.iterator().next();
-        //        assertEquals( "org.bar", i.getPackageName() );
-        //        assertEquals( VersionRange.parseVersionRange("2.0.0"), i.getVersions() );
-    }
-
-    public void testDefinition() throws IOException
-    {
-        IRepositoryConfig project = BldFactory.getConfig(base.resolve("repository/foo/sigil.properties"));
-
-        URI def = project.getRepositoryDefinition("foo");
-        assertNotNull(def);
-        assertTrue(def.toString().endsWith("repository/sigil-defaults.properties"));
-        
-        def = project.getRepositoryDefinition("baz");
-        assertNotNull(def);
-        assertTrue(def.toString().endsWith("repository/foo/sigil.properties"));
-    }
-
-}
diff --git a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExportTest.java b/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExportTest.java
deleted file mode 100644
index df8a908..0000000
--- a/sigil/common/core.tests/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExportTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.core.internal.model.osgi;
-
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageExport;
-import org.osgi.framework.Version;
-
-import junit.framework.TestCase;
-
-public class PackageExportTest extends TestCase
-{
-    public PackageExportTest(String name)
-    {
-        super(name);
-    }
-
-    public void testEquals()
-    {
-        PackageExport p1 = new PackageExport();
-        p1.setPackageName("foo");
-        p1.setVersion(Version.parseVersion("1.0.0"));
-
-        PackageExport p2 = new PackageExport();
-        p2.setPackageName("foo");
-        p2.setVersion(Version.parseVersion("1.0.0"));
-
-        assertTrue(p1.equals(p2));
-        assertTrue(p2.equals(p1));
-
-        PackageExport p3 = new PackageExport();
-        p3.setPackageName("foo");
-
-        assertFalse(p1.equals(p3));
-        assertFalse(p3.equals(p1));
-
-        PackageExport p4 = new PackageExport();
-        p4.setVersion(Version.parseVersion("1.0.0"));
-
-        assertFalse(p1.equals(p4));
-        assertFalse(p4.equals(p1));
-
-        PackageExport p5 = new PackageExport();
-        assertFalse(p1.equals(p5));
-        assertFalse(p5.equals(p1));
-
-    }
-}
diff --git a/sigil/common/core.tests/test/ConfigTest/inheritance/foo/sigil.properties b/sigil/common/core.tests/test/ConfigTest/inheritance/foo/sigil.properties
deleted file mode 100644
index b840da7..0000000
--- a/sigil/common/core.tests/test/ConfigTest/inheritance/foo/sigil.properties
+++ /dev/null
@@ -1,2 +0,0 @@
--bundles: org.foo
--imports: org.bar
\ No newline at end of file
diff --git a/sigil/common/core.tests/test/ConfigTest/inheritance/sigil-defaults.properties b/sigil/common/core.tests/test/ConfigTest/inheritance/sigil-defaults.properties
deleted file mode 100644
index 1a0d156..0000000
--- a/sigil/common/core.tests/test/ConfigTest/inheritance/sigil-defaults.properties
+++ /dev/null
@@ -1 +0,0 @@
-package;org.bar*:	${bar.version:-1.0.0}
\ No newline at end of file
diff --git a/sigil/common/core.tests/test/ConfigTest/repository/foo/sigil.properties b/sigil/common/core.tests/test/ConfigTest/repository/foo/sigil.properties
deleted file mode 100644
index 08cd12c..0000000
--- a/sigil/common/core.tests/test/ConfigTest/repository/foo/sigil.properties
+++ /dev/null
@@ -1,6 +0,0 @@
--bundles: org.foo
--imports: org.bar
-
--repositoryPath: foo, bar, baz
-
-baz;provider: system
\ No newline at end of file
diff --git a/sigil/common/core.tests/test/ConfigTest/repository/sigil-defaults.properties b/sigil/common/core.tests/test/ConfigTest/repository/sigil-defaults.properties
deleted file mode 100644
index 612bebe..0000000
--- a/sigil/common/core.tests/test/ConfigTest/repository/sigil-defaults.properties
+++ /dev/null
@@ -1,4 +0,0 @@
--repositories: foo, bar, baz
-
-foo;provider: system
-bar;provider: system
\ No newline at end of file
diff --git a/sigil/common/core.tests/test/ConfigTest/test1.properties b/sigil/common/core.tests/test/ConfigTest/test1.properties
deleted file mode 100644
index 043837f..0000000
--- a/sigil/common/core.tests/test/ConfigTest/test1.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# test1
-
--bundles: default
-
--imports: \
-  foo;version=1.0, \
-  bar;version="[2.2.2,3.3.3]", \
-  baz;version="[3.0.0,4.0.0)", \
-
diff --git a/sigil/common/core/.classpath b/sigil/common/core/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/core/.project b/sigil/common/core/.project
deleted file mode 100644
index b7701c6..0000000
--- a/sigil/common/core/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/core/.settings/org.eclipse.jdt.core.prefs b/sigil/common/core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index afe2658..0000000
--- a/sigil/common/core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:06:31 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/core/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9ab01e0..0000000
--- a/sigil/common/core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:06:31 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/core/DEPENDENCIES b/sigil/common/core/DEPENDENCIES
deleted file mode 100644
index dc158c9..0000000
--- a/sigil/common/core/DEPENDENCIES
+++ /dev/null
@@ -1,28 +0,0 @@
-Apache Felix Sigil Common Core
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-This product includes software developed by Peter Kriens
-(http://www.aqute.biz/Code/Bnd)
-Copyright 2006-2009 aQute, All rights reserved
-Licensed under the Apache License 2.0.
-
-II. Used Third-Party Software
-
-This product uses software developed by Peter Kriens
-(http://www.aqute.biz/Code/Bnd)
-Copyright 2006-2009 aQute, All rights reserved
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/common/core/NOTICE b/sigil/common/core/NOTICE
deleted file mode 100644
index caf3ce7..0000000
--- a/sigil/common/core/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Common Core
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/common/core/build.xml b/sigil/common/core/build.xml
deleted file mode 100644
index ab67875..0000000
--- a/sigil/common/core/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common.core" default="build">
-      <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/core/ivy.xml b/sigil/common/core/ivy.xml
deleted file mode 100644
index 6e78d8b..0000000
--- a/sigil/common/core/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.common.core"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.core" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/core/profiles/jvm-packages.properties b/sigil/common/core/profiles/jvm-packages.properties
deleted file mode 100644
index 6fdbb8f..0000000
--- a/sigil/common/core/profiles/jvm-packages.properties
+++ /dev/null
@@ -1,450 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#
-# Java platform package export properties.
-#
-jre-1.3= \
- javax.accessibility; \
- javax.naming; \
- javax.naming.directory; \
- javax.naming.event; \
- javax.naming.ldap; \
- javax.naming.spi; \
- javax.rmi; \
- javax.rmi.CORBA; \
- javax.sound.midi; \
- javax.sound.midi.spi; \
- javax.sound.sampled; \
- javax.sound.sampled.spi; \
- javax.swing; \
- javax.swing.border; \
- javax.swing.colorchooser; \
- javax.swing.event; \
- javax.swing.filechooser; \
- javax.swing.plaf; \
- javax.swing.plaf.basic; \
- javax.swing.plaf.metal; \
- javax.swing.plaf.multi; \
- javax.swing.table; \
- javax.swing.text; \
- javax.swing.text.html; \
- javax.swing.text.html.parser; \
- javax.swing.text.rtf; \
- javax.swing.tree; \
- javax.swing.undo; \
- javax.transaction; \
- org.omg.CORBA; \
- org.omg.CORBA_2_3; \
- org.omg.CORBA_2_3.portable; \
- org.omg.CORBA.DynAnyPackage; \
- org.omg.CORBA.ORBPackage; \
- org.omg.CORBA.portable; \
- org.omg.CORBA.TypeCodePackage; \
- org.omg.CosNaming; \
- org.omg.CosNaming.NamingContextPackage; \
- org.omg.SendingContext; \
- org.omg.stub.java.rmi; \
- version="0.0.0.1_003_J2SE"
-
-jre-1.4= \
- javax.accessibility; \
- javax.crypto; \
- javax.crypto.interfaces; \
- javax.crypto.spec; \
- javax.imageio; \
- javax.imageio.event; \
- javax.imageio.metadata; \
- javax.imageio.plugins.jpeg; \
- javax.imageio.spi; \
- javax.imageio.stream; \
- javax.naming; \
- javax.naming.directory; \
- javax.naming.event; \
- javax.naming.ldap; \
- javax.naming.spi; \
- javax.net; \
- javax.net.ssl; \
- javax.print; \
- javax.print.attribute; \
- javax.print.attribute.standard; \
- javax.print.event; \
- javax.rmi; \
- javax.rmi.CORBA; \
- javax.security.auth; \
- javax.security.auth.callback; \
- javax.security.auth.kerberos; \
- javax.security.auth.login; \
- javax.security.auth.spi; \
- javax.security.auth.x500; \
- javax.security.cert; \
- javax.sound.midi; \
- javax.sound.midi.spi; \
- javax.sound.sampled; \
- javax.sound.sampled.spi; \
- javax.sql; \
- javax.swing; \
- javax.swing.border; \
- javax.swing.colorchooser; \
- javax.swing.event; \
- javax.swing.filechooser; \
- javax.swing.plaf; \
- javax.swing.plaf.basic; \
- javax.swing.plaf.metal; \
- javax.swing.plaf.multi; \
- javax.swing.table; \
- javax.swing.text; \
- javax.swing.text.html; \
- javax.swing.text.html.parser; \
- javax.swing.text.rtf; \
- javax.swing.tree; \
- javax.swing.undo; \
- javax.transaction; \
- javax.transaction.xa; \
- javax.xml.parsers; \
- javax.xml.transform; \
- javax.xml.transform.dom; \
- javax.xml.transform.sax; \
- javax.xml.transform.stream; \
- org.ietf.jgss; \
- org.omg.CORBA; \
- org.omg.CORBA_2_3; \
- org.omg.CORBA_2_3.portable; \
- org.omg.CORBA.DynAnyPackage; \
- org.omg.CORBA.ORBPackage; \
- org.omg.CORBA.portable; \
- org.omg.CORBA.TypeCodePackage; \
- org.omg.CosNaming; \
- org.omg.CosNaming.NamingContextExtPackage; \
- org.omg.CosNaming.NamingContextPackage; \
- org.omg.Dynamic; \
- org.omg.DynamicAny; \
- org.omg.DynamicAny.DynAnyFactoryPackage; \
- org.omg.DynamicAny.DynAnyPackage; \
- org.omg.IOP; \
- org.omg.IOP.CodecFactoryPackage; \
- org.omg.IOP.CodecPackage; \
- org.omg.Messaging; \
- org.omg.PortableInterceptor; \
- org.omg.PortableInterceptor.ORBInitInfoPackage; \
- org.omg.PortableServer; \
- org.omg.PortableServer.CurrentPackage; \
- org.omg.PortableServer.POAManagerPackage; \
- org.omg.PortableServer.POAPackage; \
- org.omg.PortableServer.portable; \
- org.omg.PortableServer.ServantLocatorPackage; \
- org.omg.SendingContext; \
- org.omg.stub.java.rmi; \
- org.w3c.dom; \
- org.w3c.dom.css; \
- org.w3c.dom.events; \
- org.w3c.dom.html; \
- org.w3c.dom.stylesheets; \
- org.w3c.dom.traversal; \
- org.w3c.dom.views; \
- org.xml.sax; \
- org.xml.sax.ext; \
- org.xml.sax.helpers; \
- version="0.0.0.1_004_J2SE"
-
-jre-1.5=\
- javax.accessibility; \
- javax.activity; \
- javax.crypto; \
- javax.crypto.interfaces; \
- javax.crypto.spec; \
- javax.imageio; \
- javax.imageio.event; \
- javax.imageio.metadata; \
- javax.imageio.plugins.bmp; \
- javax.imageio.plugins.jpeg; \
- javax.imageio.spi; \
- javax.imageio.stream; \
- javax.management; \
- javax.management.loading; \
- javax.management.modelmbean; \
- javax.management.monitor; \
- javax.management.openmbean; \
- javax.management.relation; \
- javax.management.remote; \
- javax.management.remote.rmi; \
- javax.management.timer; \
- javax.naming; \
- javax.naming.directory; \
- javax.naming.event; \
- javax.naming.ldap; \
- javax.naming.spi; \
- javax.net; \
- javax.net.ssl; \
- javax.print; \
- javax.print.attribute; \
- javax.print.attribute.standard; \
- javax.print.event; \
- javax.rmi; \
- javax.rmi.CORBA; \
- javax.rmi.ssl; \
- javax.security.auth; \
- javax.security.auth.callback; \
- javax.security.auth.kerberos; \
- javax.security.auth.login; \
- javax.security.auth.spi; \
- javax.security.auth.x500; \
- javax.security.cert; \
- javax.security.sasl; \
- javax.sound.midi; \
- javax.sound.midi.spi; \
- javax.sound.sampled; \
- javax.sound.sampled.spi; \
- javax.sql; \
- javax.sql.rowset; \
- javax.sql.rowset.serial; \
- javax.sql.rowset.spi; \
- javax.swing; \
- javax.swing.border; \
- javax.swing.colorchooser; \
- javax.swing.event; \
- javax.swing.filechooser; \
- javax.swing.plaf; \
- javax.swing.plaf.basic; \
- javax.swing.plaf.metal; \
- javax.swing.plaf.multi; \
- javax.swing.plaf.synth; \
- javax.swing.table; \
- javax.swing.text; \
- javax.swing.text.html; \
- javax.swing.text.html.parser; \
- javax.swing.text.rtf; \
- javax.swing.tree; \
- javax.swing.undo; \
- javax.transaction; \
- javax.transaction.xa; \
- javax.xml; \
- javax.xml.datatype; \
- javax.xml.namespace; \
- javax.xml.parsers; \
- javax.xml.transform; \
- javax.xml.transform.dom; \
- javax.xml.transform.sax; \
- javax.xml.transform.stream; \
- javax.xml.validation; \
- javax.xml.xpath; \
- org.ietf.jgss; \
- org.omg.CORBA; \
- org.omg.CORBA_2_3; \
- org.omg.CORBA_2_3.portable; \
- org.omg.CORBA.DynAnyPackage; \
- org.omg.CORBA.ORBPackage; \
- org.omg.CORBA.portable; \
- org.omg.CORBA.TypeCodePackage; \
- org.omg.CosNaming; \
- org.omg.CosNaming.NamingContextExtPackage; \
- org.omg.CosNaming.NamingContextPackage; \
- org.omg.Dynamic; \
- org.omg.DynamicAny; \
- org.omg.DynamicAny.DynAnyFactoryPackage; \
- org.omg.DynamicAny.DynAnyPackage; \
- org.omg.IOP; \
- org.omg.IOP.CodecFactoryPackage; \
- org.omg.IOP.CodecPackage; \
- org.omg.Messaging; \
- org.omg.PortableInterceptor; \
- org.omg.PortableInterceptor.ORBInitInfoPackage; \
- org.omg.PortableServer; \
- org.omg.PortableServer.CurrentPackage; \
- org.omg.PortableServer.POAManagerPackage; \
- org.omg.PortableServer.POAPackage; \
- org.omg.PortableServer.portable; \
- org.omg.PortableServer.ServantLocatorPackage; \
- org.omg.SendingContext; \
- org.omg.stub.java.rmi; \
- org.omg.stub.javax.management.remote.rmi; \
- org.w3c.dom; \
- org.w3c.dom.bootstrap; \
- org.w3c.dom.css; \
- org.w3c.dom.events; \
- org.w3c.dom.html; \
- org.w3c.dom.ls; \
- org.w3c.dom.ranges; \
- org.w3c.dom.stylesheets; \
- org.w3c.dom.traversal; \
- org.w3c.dom.views; \
- org.xml.sax; \
- org.xml.sax.ext; \
- org.xml.sax.helpers; \
- version="0.0.0.1_005_J2SE"
-
-jre-1.6=\
- javax.accessibility; \
- javax.activation; \
- javax.activity; \
- javax.annotation; \
- javax.annotation.processing; \
- javax.crypto; \
- javax.crypto.interfaces; \
- javax.crypto.spec; \
- javax.imageio; \
- javax.imageio.event; \
- javax.imageio.metadata; \
- javax.imageio.plugins.bmp; \
- javax.imageio.plugins.jpeg; \
- javax.imageio.spi; \
- javax.imageio.stream; \
- javax.jws; \
- javax.jws.soap; \
- javax.lang.model; \
- javax.lang.model.element; \
- javax.lang.model.type; \
- javax.lang.model.util; \
- javax.management; \
- javax.management.loading; \
- javax.management.modelmbean; \
- javax.management.monitor; \
- javax.management.openmbean; \
- javax.management.relation; \
- javax.management.remote; \
- javax.management.remote.rmi; \
- javax.management.timer; \
- javax.naming; \
- javax.naming.directory; \
- javax.naming.event; \
- javax.naming.ldap; \
- javax.naming.spi; \
- javax.net; \
- javax.net.ssl; \
- javax.print; \
- javax.print.attribute; \
- javax.print.attribute.standard; \
- javax.print.event; \
- javax.rmi; \
- javax.rmi.CORBA; \
- javax.rmi.ssl; \
- javax.script; \
- javax.security.auth; \
- javax.security.auth.callback; \
- javax.security.auth.kerberos; \
- javax.security.auth.login; \
- javax.security.auth.spi; \
- javax.security.auth.x500; \
- javax.security.cert; \
- javax.security.sasl; \
- javax.sound.midi; \
- javax.sound.midi.spi; \
- javax.sound.sampled; \
- javax.sound.sampled.spi; \
- javax.sql; \
- javax.sql.rowset; \
- javax.sql.rowset.serial; \
- javax.sql.rowset.spi; \
- javax.swing; \
- javax.swing.border; \
- javax.swing.colorchooser; \
- javax.swing.event; \
- javax.swing.filechooser; \
- javax.swing.plaf; \
- javax.swing.plaf.basic; \
- javax.swing.plaf.metal; \
- javax.swing.plaf.multi; \
- javax.swing.plaf.synth; \
- javax.swing.table; \
- javax.swing.text; \
- javax.swing.text.html; \
- javax.swing.text.html.parser; \
- javax.swing.text.rtf; \
- javax.swing.tree; \
- javax.swing.undo; \
- javax.tools; \
- javax.transaction; \
- javax.transaction.xa; \
- javax.xml; \
- javax.xml.bind; \
- javax.xml.bind.annotation; \
- javax.xml.bind.annotation.adapters; \
- javax.xml.bind.attachment; \
- javax.xml.bind.helpers; \
- javax.xml.bind.util; \
- javax.xml.crypto; \
- javax.xml.crypto.dom; \
- javax.xml.crypto.dsig; \
- javax.xml.crypto.dsig.dom; \
- javax.xml.crypto.dsig.keyinfo; \
- javax.xml.crypto.dsig.spec; \
- javax.xml.datatype; \
- javax.xml.namespace; \
- javax.xml.parsers; \
- javax.xml.soap; \
- javax.xml.stream; \
- javax.xml.stream.events; \
- javax.xml.stream.util; \
- javax.xml.transform; \
- javax.xml.transform.dom; \
- javax.xml.transform.sax; \
- javax.xml.transform.stax; \
- javax.xml.transform.stream; \
- javax.xml.validation; \
- javax.xml.ws; \
- javax.xml.ws.handler; \
- javax.xml.ws.handler.soap; \
- javax.xml.ws.http; \
- javax.xml.ws.soap; \
- javax.xml.ws.spi; \
- javax.xml.ws.wsaddressing; \
- javax.xml.xpath; \
- org.ietf.jgss; \
- org.omg.CORBA; \
- org.omg.CORBA_2_3; \
- org.omg.CORBA_2_3.portable; \
- org.omg.CORBA.DynAnyPackage; \
- org.omg.CORBA.ORBPackage; \
- org.omg.CORBA.portable; \
- org.omg.CORBA.TypeCodePackage; \
- org.omg.CosNaming; \
- org.omg.CosNaming.NamingContextExtPackage; \
- org.omg.CosNaming.NamingContextPackage; \
- org.omg.Dynamic; \
- org.omg.DynamicAny; \
- org.omg.DynamicAny.DynAnyFactoryPackage; \
- org.omg.DynamicAny.DynAnyPackage; \
- org.omg.IOP; \
- org.omg.IOP.CodecFactoryPackage; \
- org.omg.IOP.CodecPackage; \
- org.omg.Messaging; \
- org.omg.PortableInterceptor; \
- org.omg.PortableInterceptor.ORBInitInfoPackage; \
- org.omg.PortableServer; \
- org.omg.PortableServer.CurrentPackage; \
- org.omg.PortableServer.POAManagerPackage; \
- org.omg.PortableServer.POAPackage; \
- org.omg.PortableServer.portable; \
- org.omg.PortableServer.ServantLocatorPackage; \
- org.omg.SendingContext; \
- org.omg.stub.java.rmi; \
- org.omg.stub.javax.management.remote.rmi; \
- org.w3c.dom; \
- org.w3c.dom.bootstrap; \
- org.w3c.dom.css; \
- org.w3c.dom.events; \
- org.w3c.dom.html; \
- org.w3c.dom.ls; \
- org.w3c.dom.ranges; \
- org.w3c.dom.stylesheets; \
- org.w3c.dom.traversal; \
- org.w3c.dom.views; \
- org.w3c.dom.xpath; \
- org.xml.sax; \
- org.xml.sax.ext; \
- org.xml.sax.helpers; \
- version="0.0.0.1_006_JavaSE"
diff --git a/sigil/common/core/sigil.properties b/sigil/common/core/sigil.properties
deleted file mode 100644
index fce4269..0000000
--- a/sigil/common/core/sigil.properties
+++ /dev/null
@@ -1,57 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.common.core.BldCore
-
--bundles: \
-	org.apache.felix.sigil.common.core, \
-
--contents: \
-	aQute.bnd*, \
-	aQute.lib*, \
-	aQute.libg*, \
-	aQute.service.scripting*, \
-	org.apache.felix.sigil.common.bnd*, \
-	org.apache.felix.sigil.common.config*, \
-	org.apache.felix.sigil.common.core*, \
-	org.apache.felix.sigil.common.model*, \
-	org.apache.felix.sigil.common.repository*, \
-	org.apache.felix.sigil.common.util*, \
-	org.apache.felix.sigil.common.progress*, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	profiles/jvm-packages.properties, \
-
--exports: \
-	org.apache.felix.sigil.common.bnd, \
-	org.apache.felix.sigil.common.config, \
-	org.apache.felix.sigil.common.core, \
-	org.apache.felix.sigil.common.core.licence, \
-	org.apache.felix.sigil.common.core.repository, \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.progress, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.common.util, \
-
--imports: \
-	aQute.lib.osgi;resolve=compile, \
-	org.apache.felix.sigil.common.bnd, \
-	org.apache.felix.sigil.common.config, \
-	org.apache.felix.sigil.common.core, \
-	org.apache.felix.sigil.common.core.licence, \
-	org.apache.felix.sigil.common.core.repository, \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.common.util, \
-	org.osgi.framework, \
-
-header;Bundle-ActivationPolicy: lazy
-
-# end
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/bnd/BundleBuilder.java b/sigil/common/core/src/org/apache/felix/sigil/common/bnd/BundleBuilder.java
deleted file mode 100644
index 0e7cd93..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/bnd/BundleBuilder.java
+++ /dev/null
@@ -1,758 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.bnd;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.jar.Attributes;
-
-import org.apache.felix.sigil.common.config.BldAttr;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.Resource;
-import org.apache.felix.sigil.common.config.IBldProject.IBldBundle;
-import org.apache.felix.sigil.common.core.repository.SystemRepositoryProvider;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.osgi.framework.Version;
-
-import aQute.lib.osgi.Builder;
-import aQute.lib.osgi.Constants;
-import aQute.lib.osgi.Jar;
-import aQute.lib.osgi.Processor;
-
-public class BundleBuilder
-{
-    private IBldProject project;
-    private File[] classpath;
-    private String destPattern;
-    private Properties env;
-    private List<String> errors = new ArrayList<String>();
-    private List<String> warnings = new ArrayList<String>();
-
-    private Set<String> unused = new HashSet<String>();
-    private String lastBundle = null;
-
-    private boolean addMissingImports;
-    private boolean omitUnusedImports;
-    private Set<String> systemPkgs;
-
-    public interface Log
-    {
-        void warn(String msg);
-
-        void verbose(String msg);
-    }
-
-    /**
-     * creates a BundleBuilder.
-     * 
-     * @param classpath
-     * @param destPattern
-     *            ivy-like pattern: PATH/[name]-[revision].[ext].
-     *            [id] is replaced with the bundle id.
-     *            [name] is replaced with the Bundle-SymbolicName
-     *            [revision] is replaced with the Bundle-Version
-     *            [ext] is replaced with "jar".
-     * @param hashtable
-     */
-    public BundleBuilder(IBldProject project, File[] classpath, String destPattern, Properties env)
-    {
-        this.project = project;
-        this.classpath = classpath;
-        this.destPattern = destPattern;
-        this.env = env;
-
-        Properties options = project.getOptions();
-
-        addMissingImports = options.containsKey(BldAttr.OPTION_ADD_IMPORTS)
-            && Boolean.parseBoolean(options.getProperty(BldAttr.OPTION_ADD_IMPORTS));
-        omitUnusedImports = options.containsKey(BldAttr.OPTION_OMIT_IMPORTS)
-            && Boolean.parseBoolean(options.getProperty(BldAttr.OPTION_OMIT_IMPORTS));
-
-        for (IBldBundle b : project.getBundles())
-        {
-            lastBundle = b.getId();
-            for (IPackageImport import1 : b.getImports())
-            {
-                if (import1.getOSGiImport().equals(IPackageImport.OSGiImport.AUTO))
-                {
-                    unused.add(import1.getPackageName());
-                }
-            }
-        }
-
-        try
-        {
-            systemPkgs = new TreeSet<String>();
-            String pkgs = SystemRepositoryProvider.readSystemPackages(null);
-            for (String pkg : pkgs.split(",\\s*"))
-            {
-                systemPkgs.add(pkg);
-            }
-        }
-        catch (IOException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    public List<String> errors()
-    {
-        return errors;
-    }
-
-    public List<String> warnings()
-    {
-        return warnings;
-    }
-
-    @SuppressWarnings("unchecked")
-    private void convertErrors(String prefix, List messages)
-    {
-        // TODO: make error mapping more generic
-        final String jarEmpty = "The JAR is empty";
-
-        for (Object omsg : messages)
-        {
-            if (jarEmpty.equals(omsg))
-                warnings.add(prefix + omsg);
-            else
-                errors.add(prefix + omsg);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private void convertWarnings(String prefix, List messages)
-    {
-        for (Object omsg : messages)
-        {
-            warnings.add(prefix + omsg);
-        }
-    }
-
-    public boolean createBundle(IBldBundle bundle, boolean force, Log log)
-        throws Exception
-    {
-        int bracket = destPattern.indexOf('[');
-        if (bracket < 0)
-        {
-            throw new Exception("destPattern MUST contain [id] or [name].");
-        }
-
-        String dest = destPattern.replaceFirst("\\[id\\]", bundle.getId());
-        dest = dest.replaceFirst("\\[name\\]", bundle.getSymbolicName());
-        dest = dest.replaceFirst("\\[revision\\]", bundle.getVersion());
-        dest = dest.replaceFirst("\\[ext\\]", "jar");
-
-        bracket = dest.indexOf('[');
-        if (bracket >= 0)
-        {
-            String token = dest.substring(bracket);
-            throw new Exception("destPattern: expected [id],  [name] or [revision]: "
-                + token);
-        }
-
-        errors.clear();
-        warnings.clear();
-
-        Properties spec = getBndSpec(bundle, dest);
-
-        if (log != null)
-        {
-            log.verbose("System packages:");
-            for (String pkg : systemPkgs) {
-                log.verbose(pkg);
-            }
-            log.verbose("Generated " + bundle.getSymbolicName());
-            log.verbose("-----------------------------");
-            for (Map.Entry<Object, Object> e : spec.entrySet())
-            {
-                log.verbose(e.getKey() + "=" + e.getValue());
-                log.verbose("-----------------------------");
-            }
-            log.verbose("BND classpath: " + Arrays.asList(classpath));
-        }
-
-        Builder builder = new Builder();
-        builder.setPedantic(true);
-        builder.setProperties(spec);
-        builder.mergeProperties(env, false);
-
-        builder.setClasspath(classpath);
-        // builder.setSourcepath(sourcepath);
-
-        Jar jar = builder.build();
-
-        convertErrors("BND: ", builder.getErrors());
-        convertWarnings("BND: ", builder.getWarnings());
-
-        Attributes main = jar.getManifest().getMainAttributes();
-        String expHeader = main.getValue(Constants.EXPORT_PACKAGE);
-        log.verbose("BND exports: " + expHeader);
-
-        augmentImports(builder, jar, bundle);
-
-        if (log != null)
-        {
-            for (String warn : warnings)
-            {
-                log.warn(warn);
-            }
-        }
-
-        if (!errors.isEmpty())
-        {
-            throw new Exception(errors.toString());
-        }
-
-        boolean modified = false;
-        File output = new File(dest);
-
-        if (!output.exists() || force || (output.lastModified() <= jar.lastModified())
-            || (output.lastModified() <= project.getLastModified()))
-        {
-            modified = true;
-            // jar.write(dest) catches and ignores IOException
-            OutputStream out = new FileOutputStream(dest);
-            jar.write(out);
-            out.close();
-            jar.close();
-        }
-
-        builder.close();
-
-        return modified;
-    }
-
-    private void augmentImports(Builder builder, Jar jar, IBldBundle bundle)
-        throws IOException
-    {
-        Attributes main = jar.getManifest().getMainAttributes();
-        String impHeader = main.getValue(Constants.IMPORT_PACKAGE);
-        Map<String, Map<String, String>> bndImports = Processor.parseHeader(impHeader,
-            builder);
-
-        if (bndImports.isEmpty())
-            return;
-
-        ArrayList<String> self = new ArrayList<String>();
-        ArrayList<String> missing = new ArrayList<String>();
-        ArrayList<String> modified = new ArrayList<String>();
-        ArrayList<String> unversioned = new ArrayList<String>();
-
-        String expHeader = main.getValue(Constants.EXPORT_PACKAGE);
-        Set<String> bndExports = Processor.parseHeader(expHeader, builder).keySet();
-
-        HashMap<String, IPackageImport> imports = new HashMap<String, IPackageImport>();
-        for (IPackageImport pi : getImports(bundle))
-        {
-            switch (pi.getOSGiImport())
-            {
-                case NEVER:
-                    break;
-                case ALWAYS:
-                    String pkg = pi.getPackageName();
-                    if (!bndImports.containsKey(pkg))
-                    {
-                        // Bnd doesn't think this import is needed - but we know
-                        // better
-                        HashMap<String, String> attrs = new HashMap<String, String>();
-                        attrs.put(BldAttr.VERSION_ATTRIBUTE, pi.getVersions().toString());
-                        bndImports.put(pkg, attrs);
-                        modified.add(pkg + ";resolve=runtime");
-                    }
-                    // fall thru */
-                case AUTO:
-                    imports.put(pi.getPackageName(), pi);
-                    break;
-            }
-        }
-
-        boolean importDot = false;
-
-        for (String pkg : bndImports.keySet())
-        {
-            unused.remove(pkg);
-            Map<String, String> attrs = bndImports.get(pkg);
-            String currentVersion = (String) attrs.get(BldAttr.VERSION_ATTRIBUTE);
-            IPackageImport pi = imports.get(pkg);
-
-            if (pi != null)
-            {
-                VersionRange range = pi.getVersions();
-                String version = range.toString();
-
-                if (!version.equals(currentVersion)
-                    && !range.equals(VersionRange.ANY_VERSION))
-                {
-                    attrs.put(BldAttr.VERSION_ATTRIBUTE, version);
-                    if (pi.isOptional())
-                        attrs.put(BldAttr.RESOLUTION_ATTRIBUTE,
-                            BldAttr.RESOLUTION_OPTIONAL);
-                    modified.add(pkg + ";version=" + version
-                        + (pi.isOptional() ? ";optional" : ""));
-                }
-                else if ((currentVersion == null) && !systemPkgs.contains(pkg))
-                {
-                    unversioned.add(pkg);
-                }
-            }
-            else
-            {
-                // bnd added the import ...
-                if (currentVersion == null)
-                {
-                    String defaultVersion = project.getDefaultPackageVersion(pkg);
-                    if (defaultVersion != null)
-                    {
-                        attrs.put(BldAttr.VERSION_ATTRIBUTE, defaultVersion);
-                        currentVersion = defaultVersion;
-                    }
-                }
-
-                String imp = pkg
-                    + (currentVersion == null ? "" : ";version=" + currentVersion);
-                if (bndExports.contains(pkg))
-                {
-                    self.add(imp);
-                }
-                else
-                {
-                    if (pkg.equals("."))
-                    {
-                        warnings.add("Bnd wants to import '.' (ignored)");
-                        importDot = true;
-                    }
-                    else
-                    {
-                        missing.add(imp);
-                    }
-                }
-            }
-        }
-
-        if (!modified.isEmpty() || importDot)
-        {
-            if (importDot)
-                bndImports.remove(".");
-            // warnings.add("INFO: sigil modified imports: " + modified);
-            main.putValue(Constants.IMPORT_PACKAGE, Processor.printClauses(bndImports,
-                "resolution:"));
-        }
-
-        if (!self.isEmpty())
-        {
-            // warnings.add("INFO: added self imports: " + self);
-        }
-
-        if (!missing.isEmpty())
-        {
-            warnings.add("missing imports (added): " + missing);
-        }
-
-        if (!unversioned.isEmpty())
-        {
-            warnings.add("unversioned imports: " + unversioned);
-        }
-
-        if (bundle.getId().equals(lastBundle))
-        {
-            if (!unused.isEmpty())
-            {
-                warnings.add("unused imports (omitted): " + unused);
-            }
-        }
-    }
-
-    public Properties getBndSpec(IBldBundle bundle, String dest) throws IOException
-    {
-        Properties spec = new Properties();
-
-        String junkHeaders = Constants.INCLUDE_RESOURCE; // shows local build
-        // paths; can be
-        // verbose
-        junkHeaders += "," + Constants.PRIVATE_PACKAGE; // less useful, as we
-        // use it for exported
-        // content too.
-
-        spec.setProperty(Constants.REMOVEHEADERS, junkHeaders);
-        spec.setProperty(Constants.NOEXTRAHEADERS, "true"); // Created-By,
-        // Bnd-LastModified
-        // and Tool
-        spec.setProperty(Constants.CREATED_BY, "sigil.felix.apache.org");
-
-        Properties headers = bundle.getHeaders();
-        // XXX: catch attempts to set headers that conflict with Bnd
-        // instructions we generate?
-        spec.putAll(headers);
-
-        String sn = bundle.isSingleton() ? bundle.getSymbolicName() + ";singleton:=true"
-            : bundle.getSymbolicName();
-
-        spec.setProperty(Constants.BUNDLE_SYMBOLICNAME, sn);
-        spec.setProperty("version", bundle.getVersion());
-        spec.setProperty(Constants.BUNDLE_VERSION, "${version}");
-
-        String activator = bundle.getActivator();
-        if (activator != null)
-            spec.setProperty(Constants.BUNDLE_ACTIVATOR, activator);
-
-        addRequirements(bundle, spec);
-
-        List<String> exports = addExports(bundle, spec);
-
-        addResources(bundle, spec);
-
-        ArrayList<String> contents = new ArrayList<String>();
-        contents.addAll(bundle.getContents());
-
-        if (contents.isEmpty())
-        {
-            if (!project.getSourcePkgs().isEmpty())
-            {
-                contents.addAll(project.getSourcePkgs());
-            }
-            else
-            {
-                contents.addAll(exports);
-            }
-        }
-
-        addLibs(bundle, dest, spec);
-
-        addContents(contents, spec);
-
-        IRequiredBundle fh = bundle.getFragmentHost();
-        if (fh != null)
-        {
-            StringBuilder sb = new StringBuilder();
-            sb.append(fh.getSymbolicName());
-            addVersions(fh.getVersions(), sb);
-            spec.setProperty(Constants.FRAGMENT_HOST, sb.toString());
-        }
-
-        return spec;
-    }
-
-    private void addContents(List<String> contents, Properties spec)
-    {
-        // add contents
-        StringBuilder sb = new StringBuilder();
-        for (String pkg : contents)
-        {
-            if (sb.length() > 0)
-                sb.append(",");
-            sb.append(pkg);
-        }
-
-        if (sb.length() > 0)
-            spec.setProperty(Constants.PRIVATE_PACKAGE, sb.toString());
-    }
-
-    private void appendProperty(String key, String value, Properties p)
-    {
-        String list = p.getProperty(key);
-
-        if (list == null)
-        {
-            list = value;
-        }
-        else
-        {
-            list = list + "," + value;
-        }
-
-        p.setProperty(key, list);
-    }
-
-    private void addLibs(IBldBundle bundle, String dest, Properties spec)
-        throws IOException
-    {
-        // final String cleanVersion =
-        // Builder.cleanupVersion(bundle.getVersion());
-
-        Map<String, Map<String, String>> libs = bundle.getLibs();
-
-        for (String jarpath : libs.keySet())
-        {
-            Map<String, String> attr = libs.get(jarpath);
-            String kind = attr.get(BldAttr.KIND_ATTRIBUTE);
-
-            // first find the lib ..
-            String path = attr.get(BldAttr.PATH_ATTRIBUTE);
-            if (path == null)
-                path = jarpath;
-
-            File fsPath = bundle.resolve(path);
-
-            if (!fsPath.exists())
-            {
-                // try destDir
-                File destDir = new File(dest).getParentFile();
-                File file = new File(destDir, fsPath.getName());
-
-                if (!file.exists())
-                {
-                    // try searching classpath
-                    file = findInClasspathDir(fsPath.getName());
-                }
-
-                if (file != null && file.exists())
-                    fsPath = file;
-            }
-
-            if (!fsPath.exists())
-            {
-                // XXX: find external bundle using name and version range?
-                // For now just let BND fail when it can't find resource.
-            }
-
-            appendProperty(Constants.INCLUDE_RESOURCE, jarpath + "=" + fsPath, spec);
-
-            if ("classpath".equals(kind))
-            {
-                String bcp = spec.getProperty(Constants.BUNDLE_CLASSPATH);
-                if (bcp == null || bcp.length() == 0)
-                    spec.setProperty(Constants.BUNDLE_CLASSPATH, ".");
-                appendProperty(Constants.BUNDLE_CLASSPATH, jarpath, spec);
-            }
-        }
-    }
-
-    private void addResources(IBldBundle bundle, Properties spec)
-    {
-        List<Resource> resources = bundle.getResources();
-        StringBuilder sb = new StringBuilder();
-
-        for (Resource bPath : resources)
-        {
-            if (sb.length() > 0)
-                sb.append(",");
-
-            sb.append(bPath.toBNDInstruction(classpath));
-        }
-
-        if (sb.length() > 0)
-            spec.setProperty(Constants.INCLUDE_RESOURCE, sb.toString());
-    }
-
-    private List<IPackageImport> getImports(IBldBundle bundle)
-    {
-        List<IPackageImport> imports = bundle.getImports();
-        Set<String> pkgs = new HashSet<String>();
-
-        for (IPackageImport pi : imports)
-        {
-            pkgs.add(pi.getPackageName());
-        }
-
-        return imports;
-    }
-
-    private void addRequirements(IBldBundle bundle, Properties spec)
-    {
-        StringBuilder sb = new StringBuilder();
-
-        // option;addMissingImports=true
-        // Lets Bnd calculate imports (i.e. specify *),
-        // which are then examined by augmentImports();
-
-        // option;omitUnusedImports=true (implies addMissingImports=true)
-        // When project contains multiple bundles which don't all use all
-        // imports,
-        // avoids warnings like:
-        // "Importing packages that are never referred to by any class on the Bundle-ClassPath"
-
-        if (omitUnusedImports && !addMissingImports)
-        {
-            warnings.add("omitUnusedImports ignored as addMissingImports=false.");
-            omitUnusedImports = false;
-        }
-
-        sb.setLength(0);
-
-        // allow existing header;Package-Import to specify ignored packages
-        sb.append(spec.getProperty(Constants.IMPORT_PACKAGE, ""));
-
-        buildImports(sb, getImports(bundle));
-
-        if (sb.length() > 0)
-        {
-            spec.setProperty(Constants.IMPORT_PACKAGE, sb.toString());
-        }
-
-        sb.setLength(0);
-
-        buildRequires(sb, bundle.getRequires());
-
-        if (sb.length() > 0)
-        {
-            spec.setProperty(Constants.REQUIRE_BUNDLE, sb.toString());
-        }
-    }
-
-    /**
-     * @param sb
-     * @param list 
-     */
-    private void buildRequires(StringBuilder sb, List<IRequiredBundle> requires)
-    {
-        for (IRequiredBundle rb : requires)
-        {
-            if (sb.length() > 0)
-                sb.append(",");
-            sb.append(rb.getSymbolicName());
-            addVersions(rb.getVersions(), sb);
-        }
-    }
-
-    /**
-     * @param sb
-     */
-    private void buildImports(StringBuilder sb, List<IPackageImport> imports)
-    {
-        for (IPackageImport pi : imports)
-        {
-            switch (pi.getOSGiImport())
-            {
-                case AUTO:
-                    if (omitUnusedImports)
-                        continue; // added by Import-Package: * and fixed by
-                    // augmentImports()
-                    break;
-                case NEVER:
-                    if (pi.isDependency())
-                        continue; // resolve=compile
-                    break;
-                case ALWAYS:
-                    // Bnd will probably whinge that this import is not used.
-                    // we omit it here and replace it in augmentImports,
-                    // but only if addMissingImports is true;
-                    // otherwise, if the import is used, Bnd will fail.
-                    if (addMissingImports)
-                        continue;
-                    break;
-            }
-
-            if (sb.length() > 0)
-                sb.append(",");
-
-            if (pi.getOSGiImport().equals(IPackageImport.OSGiImport.NEVER))
-            {
-                sb.append("!");
-                sb.append(pi.getPackageName());
-            }
-            else
-            {
-                sb.append(pi.getPackageName());
-                addVersions(pi.getVersions(), sb);
-
-                if (pi.isOptional())
-                {
-                    sb.append(";resolution:=optional");
-                }
-            }
-        }
-
-        if (sb.length() > 0)
-            sb.append(",");
-
-        if (addMissingImports)
-        {
-            sb.append("*");
-        }
-        else
-        {
-            sb.append("!*");
-        }
-    }
-
-    private List<String> addExports(IBldBundle bundle, Properties spec)
-    {
-        List<IPackageExport> exports = bundle.getExports();
-        ArrayList<String> list = new ArrayList<String>();
-        StringBuilder sb = new StringBuilder();
-
-        for (IPackageExport export : exports)
-        {
-            if (sb.length() > 0)
-                sb.append(",");
-            sb.append(export.getPackageName());
-            if (!export.getVersion().equals(Version.emptyVersion))
-            {
-                sb.append(";version=\"");
-                sb.append(export.getVersion());
-                sb.append("\"");
-            }
-            list.add(export.getPackageName());
-        }
-
-        if (sb.length() > 0)
-        {
-            // EXPORT_CONTENTS just sets the Export-Package manifest header;
-            // it doesn't add contents like EXPORT_PACKAGE does.
-            spec.setProperty(Constants.EXPORT_CONTENTS, sb.toString());
-        }
-
-        return list;
-    }
-
-    private void addVersions(VersionRange range, StringBuilder sb)
-    {
-        if (!range.equals(VersionRange.ANY_VERSION))
-        {
-            sb.append(";version=\"");
-            sb.append(range);
-            sb.append("\"");
-        }
-    }
-
-    private File findInClasspathDir(String file)
-    {
-        for (File cp : classpath)
-        {
-            if (cp.isDirectory())
-            {
-                File path = new File(cp, file);
-                if (path.exists())
-                {
-                    return path;
-                }
-            }
-        }
-
-        return null;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldAttr.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldAttr.java
deleted file mode 100644
index 930fd72..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldAttr.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-public class BldAttr
-{
-    // Sigil attributes
-
-    public static final String KIND_ATTRIBUTE = "kind";
-
-    public static final String RESOLVE_ATTRIBUTE = "resolve";
-    public static final String RESOLVE_AUTO = "auto";
-    public static final String RESOLVE_COMPILE = "compile";
-    public static final String RESOLVE_RUNTIME = "runtime";
-    public static final String RESOLVE_IGNORE = "ignore";
-
-    public static final String PATH_ATTRIBUTE = "path";
-
-    // Sigil options
-
-    public static final String OPTION_ADD_IMPORTS = "addMissingImports";
-    public static final String OPTION_OMIT_IMPORTS = "omitUnusedImports";
-
-    // OSGi attributes
-
-    public static final String RESOLUTION_ATTRIBUTE = "resolution";
-    public static final String RESOLUTION_OPTIONAL = "optional";
-
-    public static final String VERSION_ATTRIBUTE = "version";
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConfig.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConfig.java
deleted file mode 100644
index c3d72f9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConfig.java
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
-
-import org.apache.felix.sigil.common.util.QuoteUtil;
-
-public class BldConfig implements Cloneable
-{
-    // control properties
-    public static final String C_BUNDLES = "-bundles";
-    public static final String C_REPOSITORIES = "-repositories";
-    public static final String C_REPOSITORY_PATH = "-repositorypath";
-
-    // string properties
-    public static final String S_ACTIVATOR = "-activator";
-    public static final String S_DEFAULTS = "-defaults";
-    public static final String S_SINGLETON = "-singleton";
-    public static final String S_ID = "id";
-    public static final String S_SYM_NAME = "name";
-    public static final String S_VERSION = "version";
-    public static final String[] STRING_KEYS = { S_ACTIVATOR, S_DEFAULTS, S_ID,
-            S_SYM_NAME, S_VERSION, S_SINGLETON };
-
-    // list properties
-    public static final String L_CONTENTS = "-contents";
-    public static final String L_SRC_CONTENTS = "-sourcedirs";
-    public static final String L_RESOURCES = "-resources";
-    public static final String[] LIST_KEYS = { L_CONTENTS, L_SRC_CONTENTS, L_RESOURCES };
-
-    // map properties
-    public static final String M_EXPORTS = "-exports";
-    public static final String M_IMPORTS = "-imports";
-    public static final String M_REQUIRES = "-requires";
-    public static final String M_FRAGMENT = "-fragment";
-    public static final String M_LIBS = "-libs";
-    public static final String[] MAP_KEYS = { M_EXPORTS, M_IMPORTS, M_REQUIRES,
-            M_FRAGMENT, M_LIBS };
-
-    // property properties
-    public static final String P_HEADER = "header";
-    public static final String P_OPTION = "option";
-    public static final String P_PACKAGE_VERSION = "package";
-    public static final String P_BUNDLE_VERSION = "bundle";
-    public static final String[] PROP_KEYS = { P_HEADER, P_OPTION, P_PACKAGE_VERSION,
-            P_BUNDLE_VERSION };
-
-    // private constants
-    private static final String LIST_REGEX = ",\\s*";
-    private static final String MAPATTR_REGEX = ";\\s*";
-    private static final String MAPATTR_SEP = ";";
-    private static final String SUBKEY_SEP = ";";
-    
-    // configuration is stored in typed maps
-    private Map<String, String> string = new TreeMap<String, String>();
-    private Map<String, List<String>> list = new TreeMap<String, List<String>>();
-    private Map<String, Map<String, Map<String, String>>> map = new TreeMap<String, Map<String, Map<String, String>>>();
-    private Map<String, BldConfig> config = new TreeMap<String, BldConfig>();
-    private Map<String, Properties> property = new TreeMap<String, Properties>();
-
-    // default config - not modified or saved
-    private BldConfig dflt;
-
-    private Properties unknown = new Properties();
-    private String comment = "";
-    private final URI location;
-
-    public BldConfig()
-    {
-        this.location = null;
-    }
-    
-    public BldConfig(URI loc)
-    {
-        this.location = loc;
-    }
-
-    public BldConfig(Properties p) throws IOException
-    {
-        this.location = null;
-        merge(p);
-    }
-
-    public void setDefault(BldConfig dflt)
-    {
-        this.dflt = dflt;
-    }
-
-    public void setComment(String comment)
-    {
-        this.comment = comment;
-    }
-
-    public Properties getUnknown()
-    {
-        return unknown;
-    }
-
-    /**
-     * @param name
-     * @return
-     */
-    public URI getDefinition(String id, String key)
-    {
-        URI def = null;
-        if (dflt != null)
-            def = dflt.getDefinition(id, key);
-
-        if ( def == null ) {
-            if (property.containsKey(key)) {
-                def = location;
-            }
-            else if (id != null && config.containsKey(id))
-            {
-                Properties p2 = config.get(id).getProps(null, key);
-                if (p2 != null)
-                    def = location;
-            }
-        }
-
-        return def;
-    }
-
-    public String getString(String id, String key)
-    {
-        if (id != null && config.containsKey(id))
-        {
-            String value = config.get(id).getString(null, key);
-            if (value != null)
-                return value;
-        }
-        return string.containsKey(key) ? string.get(key)
-            : (dflt != null ? dflt.getString(id, key) : null);
-    }
-
-    public List<String> getList(String id, String key)
-    {
-        if (id != null && config.containsKey(id))
-        {
-            List<String> value = config.get(id).getList(null, key);
-            if (value != null)
-                return value;
-        }
-        return list.containsKey(key) ? list.get(key) : (dflt != null ? dflt.getList(id,
-            key) : Collections.<String> emptyList());
-    }
-
-    public Map<String, Map<String, String>> getMap(String id, String key)
-    {
-        if (id != null && config.containsKey(id))
-        {
-            Map<String, Map<String, String>> value = config.get(id).getMap(null, key);
-            if (value != null)
-                return value;
-        }
-        return map.containsKey(key) ? map.get(key) : (dflt != null ? dflt.getMap(id, key)
-            : Collections.<String, Map<String, String>> emptyMap());
-    }
-
-    public void setString(String id, String key, String value)
-    {
-        if (!value.equals(getString(id, key)))
-        {
-            if (id != null)
-            {
-                if (!config.containsKey(id))
-                    config.put(id, new BldConfig());
-                config.get(id).setString(null, key, value);
-            }
-            else
-            {
-                String dval = (dflt != null ? dflt.getString(null, key) : null);
-                if (value.equals("") && (dval == null || dval.equals("")))
-                {
-                    string.remove(key);
-                }
-                else
-                {
-                    string.put(key, value);
-                }
-            }
-        }
-    }
-
-    public void setList(String id, String key, List<String> value)
-    {
-        if (!value.equals(getList(id, key)))
-        {
-            if (id != null)
-            {
-                if (!config.containsKey(id))
-                    config.put(id, new BldConfig());
-                config.get(id).setList(null, key, value);
-            }
-            else if (value.isEmpty()
-                && (dflt == null || dflt.getList(null, key).isEmpty()))
-            {
-                list.remove(key);
-            }
-            else
-            {
-                list.put(key, value);
-            }
-        }
-    }
-
-    public void setMap(String id, String key, Map<String, Map<String, String>> value)
-    {
-        if (!value.equals(getMap(id, key)))
-        {
-            if (id != null)
-            {
-                if (!config.containsKey(id))
-                    config.put(id, new BldConfig());
-                config.get(id).setMap(null, key, value);
-            }
-            else if (value.isEmpty()
-                && (dflt == null || dflt.getMap(null, key).isEmpty()))
-            {
-                map.remove(key);
-            }
-            else
-            {
-                map.put(key, value);
-            }
-        }
-    }
-
-    public Properties getProps(String id, String key)
-    {
-        // merge main and sub properties
-        Properties props = new Properties();
-
-        if (dflt != null)
-            props.putAll(dflt.getProps(id, key));
-
-        if (property.containsKey(key))
-            props.putAll(property.get(key));
-
-        if (id != null && config.containsKey(id))
-        {
-            Properties p2 = config.get(id).getProps(null, key);
-            if (p2 != null)
-                props.putAll(p2);
-        }
-
-        return props;
-    }
-
-    // only sets one property at a time
-    public void setProp(String id, String key, String k2, String v2)
-    {
-        if (v2 == null)
-            return;
-        Properties props = getProps(id, key);
-        if (!v2.equals(props.getProperty(key)))
-        {
-            if (id != null)
-            {
-                if (!config.containsKey(id))
-                    config.put(id, new BldConfig());
-                config.get(id).setProp(null, key, k2, v2);
-            }
-            else
-            {
-                if (property.containsKey(key))
-                {
-                    property.get(key).put(k2, v2);
-                }
-                else
-                {
-                    Properties value = new Properties();
-                    value.put(k2, v2);
-                    property.put(key, value);
-                }
-            }
-        }
-    }
-
-    /**
-     * write config in Property file format.
-     * This allows us to make it prettier than Properties.store().
-     */
-    public void write(final PrintWriter out)
-    {
-        out.println(comment);
-
-        // Note: don't add date stamp, or file will differ each time it's saved.
-        out.println("# sigil project file, saved by plugin.\n");
-
-        dump("", new Properties()
-        {
-            private static final long serialVersionUID = 1L; //appease eclipse
-
-            @Override
-            public Object put(Object key, Object value)
-            {
-                if (value instanceof String)
-                {
-                    out.println(key + ": " + value);
-                    out.println("");
-                }
-                else if (value instanceof List<?>)
-                {
-                    out.println(key + ": \\");
-                    for (Object k : (List<?>) value)
-                    {
-                        out.println("\t" + k + ", \\");
-                    }
-                    out.println("");
-                }
-                else if (value instanceof Map<?,?>)
-                {
-                    out.println(key + ": \\");
-                    StringBuilder b = new StringBuilder();
-                    for (Map.Entry<?, ?> e : ((Map<?, ?>) value).entrySet())
-                    {
-                        b.append("\t");
-                        b.append(e.getKey());
-                        Map<?, ?> v = (Map<?, ?>) e.getValue();
-                        if (!v.isEmpty())
-                        {
-                            for (Map.Entry<?, ?> e2 : v.entrySet())
-                            {
-                                b.append(MAPATTR_SEP);
-                                b.append(e2.getKey());
-                                b.append("=");
-                                String v2 = e2.getValue().toString();
-                                if (v2.contains(","))
-                                {
-                                    b.append("\"");
-                                    b.append(v2);
-                                    b.append("\"");
-                                }
-                                else
-                                {
-                                    b.append(v2);
-                                }
-                            }
-                        }
-                        b.append(", \\\n");
-                    }
-                    out.println(b.toString());
-                }
-                return null;
-            }
-        });
-        out.println("# end");
-    }
-
-    /**
-     * dump config in pseudo Properties format.
-     * Note: some values are not Strings (they're List<String>).
-     */
-    private void dump(String prefix, Properties p)
-    {
-        for (String key : string.keySet())
-        {
-            p.put(prefix + key, string.get(key));
-        }
-
-        for (String key : list.keySet())
-        {
-            List<String> list2 = list.get(key);
-            p.put(prefix + key, list2);
-        }
-
-        for (String key : map.keySet())
-        {
-            Map<String, Map<String, String>> map2 = map.get(key);
-            p.put(prefix + key, map2);
-        }
-
-        for (String key : property.keySet())
-        {
-            Properties props = property.get(key);
-            for (Object k2 : props.keySet())
-            {
-                p.put(prefix + key + SUBKEY_SEP + k2, props.get(k2));
-            }
-        }
-
-        for (String key : config.keySet())
-        {
-            BldConfig config2 = config.get(key);
-            config2.dump(key + SUBKEY_SEP + prefix, p);
-        }
-
-        for (Object key : unknown.keySet())
-        {
-            String value = unknown.getProperty((String) key);
-            if (value.length() > 0)
-                p.put(prefix + key, value);
-        }
-    }
-
-    /**
-     * merges properties into current configuration.
-     * @param p
-     * @throws IOException 
-     */
-    public void merge(Properties p) throws IOException
-    {
-        if (p.isEmpty())
-            return;
-
-        final List<String> strings = Arrays.asList(STRING_KEYS);
-        final List<String> lists = Arrays.asList(LIST_KEYS);
-        final List<String> maps = Arrays.asList(MAP_KEYS);
-
-        List<String> bundleKeys = new ArrayList<String>();
-        List<String> repoKeys = new ArrayList<String>();
-
-        String bundles = p.getProperty(C_BUNDLES);
-        if (bundles != null)
-        {
-            bundleKeys.addAll(Arrays.asList(bundles.split(LIST_REGEX)));
-            list.put(C_BUNDLES, bundleKeys);
-        }
-
-        String repos = p.getProperty(C_REPOSITORIES);
-        if (repos != null && !list.containsKey(C_REPOSITORIES))
-        {
-            for (String s : repos.split(LIST_REGEX))
-            {
-                repoKeys.add(s.trim());
-            }
-            list.put(C_REPOSITORIES, repoKeys);
-        }
-
-        List<String> subKeys = new ArrayList<String>();
-        subKeys.addAll(Arrays.asList(PROP_KEYS));
-        subKeys.addAll(bundleKeys);
-        subKeys.addAll(repoKeys);
-
-        Map<String, Properties> sub = new TreeMap<String, Properties>();
-
-        for (Object k : p.keySet())
-        {
-            String key = (String) k;
-            if (key.equals(C_BUNDLES) || key.equals(C_REPOSITORIES))
-                continue;
-
-            String[] keys = key.split(SUBKEY_SEP, 2);
-            String value = p.getProperty(key);
-
-            if (keys.length > 1)
-            {
-                Properties p2 = sub.get(keys[0]);
-                if (p2 == null)
-                {
-                    p2 = new Properties();
-                    sub.put(keys[0], p2);
-                    if (!subKeys.contains(keys[0]))
-                    {
-                        // unknown.setProperty(keys[0] + SUBKEY_SEP, "");
-                    }
-                }
-                p2.setProperty(keys[1], value);
-            }
-            else if (strings.contains(key))
-            {
-                if (!string.containsKey(key))
-                    string.put(key, value);
-            }
-            else if (lists.contains(key))
-            {
-                if (!list.containsKey(key))
-                {
-                    ArrayList<String> list2 = new ArrayList<String>();
-                    for (String s : value.split(LIST_REGEX))
-                    {
-                        if (s.trim().length() > 0)
-                        {
-                            list2.add(s.trim());
-                        }
-                    }
-                    if (!list2.isEmpty())
-                    {
-                        list.put(key, list2);
-                    }
-                }
-            }
-            else if (maps.contains(key))
-            {
-                if (!map.containsKey(key))
-                {
-                    Map<String, Map<String, String>> map2 = new TreeMap<String, Map<String, String>>();
-
-                    for (String subValue : QuoteUtil.split(value))
-                    {
-                        if (subValue.trim().length() > 0)
-                        {
-                            String[] split = subValue.split(MAPATTR_REGEX);
-                            Map<String, String> map3 = new TreeMap<String, String>();
-                            for (int i = 1; i < split.length; ++i)
-                            {
-                                String[] keyVal = split[i].split(":?=", 2);
-                                if (keyVal.length != 2)
-                                {
-                                    throw new IOException("attribute missing '=':"
-                                        + subValue);
-                                }
-                                map3.put(keyVal[0], keyVal[1]);
-                            }
-                            map2.put(split[0], map3);
-                        }
-                    }
-
-                    map.put(key, map2);
-                }
-            }
-            else
-            {
-                unknown.setProperty(key, value);
-            }
-        }
-
-        for (String subKey : sub.keySet())
-        {
-            Properties props = sub.get(subKey);
-            if (!props.isEmpty())
-            {
-                if (bundleKeys.contains(subKey))
-                {
-                    BldConfig config2 = new BldConfig(props);
-                    Properties unkProps = config2.getUnknown();
-
-                    if (config2.map.containsKey(M_IMPORTS))
-                        unkProps.setProperty(M_IMPORTS, "");
-
-                    if (config2.map.containsKey(M_REQUIRES))
-                        unkProps.setProperty(M_REQUIRES, "");
-
-                    for (Object unk : unkProps.keySet())
-                    {
-                        unknown.setProperty(subKey + SUBKEY_SEP + unk, "");
-                    }
-                    config.put(subKey, config2);
-                }
-                else
-                {
-                    Properties p2 = property.get(subKey);
-                    if (p2 == null)
-                    {
-                        property.put(subKey, props);
-                    }
-                    else
-                    {
-                        for (Object k : props.keySet())
-                        {
-                            if (!p2.containsKey(k))
-                            {
-                                p2.put(k, props.get(k));
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    @Override
-    public String toString()
-    {
-        return "STRING: " + string + " LIST:" + list + " MAP: " + map + " PROPERTY: "
-            + property + " CONFIG:" + config + "\nDFLT{ " + dflt + "}";
-    }
-    
-    public BldConfig clone() {
-        try
-        {
-            BldConfig bc = (BldConfig) super.clone();
-            bc.string = new TreeMap<String, String>(bc.string);
-            bc.list = cloneMap(bc.list);
-            bc.map = cloneMap(bc.map);
-            bc.config = new TreeMap<String, BldConfig>(bc.config);
-            bc.property = new TreeMap<String, Properties>(bc.property);
-
-            // default config - not modified or saved
-            // bc.dflt = bc.dflt.clone();
-
-            bc.unknown = cloneProps(bc.unknown);
-            
-            return bc;
-        }
-        catch (CloneNotSupportedException e)
-        {
-            throw new IllegalStateException(e);
-        }
-    }
-    
-    @SuppressWarnings("unchecked")
-    private static <K, V> Map<K, V> cloneMap(Map<K,V> map) {
-        Map clone = new TreeMap();
-        for (Map.Entry<?,?> e : map.entrySet()) {
-            if ( e.getValue() == null ) {
-                clone.put(e.getKey(), null);
-            }
-            else if ( e.getValue() instanceof List<?> ) {
-                clone.put(e.getKey(), new ArrayList((List<?>) e.getValue()));
-            }
-            else if (e.getValue() instanceof Map<?,?>) {
-                clone.put(e.getKey(), cloneMap((Map<?,?>)e.getValue()));
-            }
-            else if (e.getValue() instanceof String) {
-                clone.put(e.getKey(), e.getValue());
-            }
-            else if (e.getValue() instanceof BldConfig) {
-                BldConfig c = (BldConfig) e.getValue();
-                clone.put(e.getKey(), c.clone());
-            }
-            else if (e.getValue() instanceof Properties) {
-                Properties p = (Properties) e.getValue();
-                clone.put(e.getKey(), cloneProps(p));
-            }
-            else {
-                throw new IllegalStateException("Unexpected value: " + e.getValue());
-            }
-        }
-        return clone;
-    }
-    
-    private static Properties cloneProps(Properties p) {
-        Properties props = new Properties();
-        for (Map.Entry<?,?> pe : props.entrySet()) {
-            props.put(pe.getKey(), pe.getValue());
-        }
-        return props;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConverter.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConverter.java
deleted file mode 100644
index 5e647e8..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldConverter.java
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.common.config.IBldProject.IBldBundle;
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.core.internal.model.eclipse.SigilBundle;
-import org.apache.felix.sigil.common.core.internal.model.osgi.BundleModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-
-import aQute.lib.osgi.Constants;
-
-public class BldConverter
-{
-    private static final String classpathFormat = "<classpathentry kind=\"%s\" path=\"%s\"/>";
-    private BldConfig config;
-    private Properties packageDefaults;
-    private TreeSet<String> packageWildDefaults;
-
-    public BldConverter(BldConfig config)
-    {
-        this.config = config;
-    }
-
-    /**
-     * converts to an ISigilBundle.
-     * @param id
-     * @param bundle
-     * @return
-     */
-    public ISigilBundle getBundle(String id, IBldBundle bundle)
-    {
-
-        ISigilBundle sigilBundle = new SigilBundle();
-        IBundleModelElement info = new BundleModelElement();
-        sigilBundle.setBundleInfo(info);
-
-        // exports
-        // FIXME: UI doesn't understand export wildcard packages
-        for (IPackageExport export : bundle.getExports())
-        {
-            IPackageExport clone = (IPackageExport) export.clone();
-            clone.setParent(null);
-            info.addExport(clone);
-        }
-
-        // imports
-        for (IPackageImport import1 : bundle.getImports())
-        {
-            IPackageImport clone = (IPackageImport) import1.clone();
-            clone.setParent(null);
-            info.addImport(clone);
-        }
-
-        // requires
-        for (IRequiredBundle require : bundle.getRequires())
-        {
-            IRequiredBundle clone = (IRequiredBundle) require.clone();
-            clone.setParent(null);
-            info.addRequiredBundle(clone);
-        }
-
-        // fragment
-        IRequiredBundle fragment = bundle.getFragmentHost();
-        if (fragment != null)
-        {
-            info.setFragmentHost(fragment);
-        }
-
-        // contents
-        for (String pkg : bundle.getContents())
-        {
-            sigilBundle.addPackage(pkg);
-        }
-
-        // sources
-        for (String source : config.getList(null, BldConfig.L_SRC_CONTENTS))
-        {
-            sigilBundle.addClasspathEntry(String.format(classpathFormat, "src", source));
-        }
-
-        // libs
-        Map<String, Map<String, String>> libs = bundle.getLibs();
-
-        for (String path : libs.keySet())
-        {
-            Map<String, String> attr = libs.get(path);
-            String kind = attr.get(BldAttr.KIND_ATTRIBUTE);
-
-            if ("classpath".equals(kind))
-            {
-                sigilBundle.addClasspathEntry(String.format(classpathFormat, "lib", path));
-            }
-            else
-            {
-                BldCore.error("Can't convert -libs kind=" + kind);
-            }
-        }
-
-        // resources
-        // FIXME: UI doesn't support -resources: path1=path2
-        List<Resource> resources = bundle.getResources();
-        for (Resource resource : resources)
-        {
-            sigilBundle.addSourcePath(resource);
-        }
-
-        ////////////////////
-        // simple headers
-
-        info.setSymbolicName(bundle.getSymbolicName());
-
-        info.setVersion(VersionTable.getVersion(bundle.getVersion()));
-
-        String activator = bundle.getActivator();
-        if (activator != null)
-            info.setActivator(activator);
-
-        Properties headers = config.getProps(id, BldConfig.P_HEADER);
-        String header;
-
-        header = headers.getProperty("CATEGORY");
-        if (header != null)
-            info.setCategory(header);
-
-        header = headers.getProperty(Constants.BUNDLE_CONTACTADDRESS);
-        if (header != null)
-            info.setContactAddress(header);
-
-        header = headers.getProperty(Constants.BUNDLE_COPYRIGHT);
-        if (header != null)
-            info.setCopyright(header);
-
-        header = headers.getProperty(Constants.BUNDLE_DESCRIPTION);
-        if (header != null)
-            info.setDescription(header);
-
-        header = headers.getProperty(Constants.BUNDLE_VENDOR);
-        if (header != null)
-            info.setVendor(header);
-
-        header = headers.getProperty(Constants.BUNDLE_NAME);
-        if (header != null)
-            info.setName(header);
-
-        header = headers.getProperty(Constants.BUNDLE_DOCURL);
-        if (header != null)
-            info.setDocURI(URI.create(header));
-
-        header = headers.getProperty(Constants.BUNDLE_LICENSE);
-        if (header != null)
-            info.setDocURI(URI.create(header));
-
-        return sigilBundle;
-    }
-
-    private VersionRange defaultVersion(VersionRange current, String defaultRange)
-    {
-        if (current.equals(VersionRange.ANY_VERSION)
-            || current.equals(VersionRange.parseVersionRange(defaultRange)))
-        {
-            return null;
-        }
-        return current;
-    }
-
-    // FIXME - copied from BldProject
-    private String getDefaultPackageVersion(String name)
-    {
-        if (packageDefaults == null)
-        {
-            packageDefaults = config.getProps(null, BldConfig.P_PACKAGE_VERSION);
-            packageWildDefaults = new TreeSet<String>();
-
-            for (Object key : packageDefaults.keySet())
-            {
-                String pkg = (String) key;
-                if (pkg.endsWith("*"))
-                {
-                    packageWildDefaults.add(pkg.substring(0, pkg.length() - 1));
-                }
-            }
-        }
-
-        String version = packageDefaults.getProperty(name);
-
-        if (version == null)
-        {
-            for (String pkg : packageWildDefaults)
-            {
-                if (name.startsWith(pkg))
-                {
-                    version = packageDefaults.getProperty(pkg + "*");
-                    // break; -- don't break, as we want the longest match
-                }
-            }
-        }
-
-        return version;
-    }
-
-    /**
-     * converts from an ISigilBundle.
-     * 
-     * @param id
-     * @param bundle
-     */
-    public void setBundle(String id, ISigilBundle bundle)
-    {
-        IBundleModelElement info = bundle.getBundleInfo();
-        String bundleVersion = config.getString(id, BldConfig.S_VERSION);
-        Map<String, Map<String, String>> exports = new TreeMap<String, Map<String, String>>();
-
-        setSimpleHeaders(id, info);
-        setExports(id, bundleVersion, info, exports);
-
-        // -imports and -requires are global to all bundles
-        setImports(null, bundleVersion, info, exports);
-        setRequires(null, bundleVersion, info);
-
-        setFragments(id, info);
-        setContents(id, info, bundle);
-        setLibraries(id, info, bundle);
-        setResources(id, info, bundle);
-
-        if (info.getSourceLocation() != null)
-        {
-            BldCore.error("SourceLocation conversion not yet implemented.");
-        }
-
-        if (!info.getLibraryImports().isEmpty())
-        {
-            BldCore.error("LibraryImports conversion not yet implemented.");
-        }
-    }
-
-    /**
-     * @param id
-     * @param info
-     */
-    private void setSimpleHeaders(String id, IBundleModelElement info)
-    {
-        List<String> ids = config.getList(null, BldConfig.C_BUNDLES);
-        String idBsn = id != null ? id : ids.get(0);
-        String oldBsn = config.getString(id, BldConfig.S_SYM_NAME);
-        String bsn = info.getSymbolicName();
-        if (bsn == null) throw new IllegalArgumentException("Missing bundle symbolic name");
-        
-        if (!bsn.equals(idBsn) || oldBsn != null)
-            config.setString(id, BldConfig.S_SYM_NAME, bsn);
-
-        String version = info.getVersion().toString();
-        if (version != null)
-            config.setString(id, BldConfig.S_VERSION, version);
-
-        String activator = info.getActivator();
-        if (activator != null)
-            config.setString(id, BldConfig.S_ACTIVATOR, activator);
-
-        Properties headers = config.getProps(null, BldConfig.P_HEADER);
-
-        setHeader(headers, id, "CATEGORY", info.getCategory());
-        setHeader(headers, id, Constants.BUNDLE_CONTACTADDRESS, info.getContactAddress());
-        setHeader(headers, id, Constants.BUNDLE_COPYRIGHT, info.getCopyright());
-        setHeader(headers, id, Constants.BUNDLE_DESCRIPTION, info.getDescription());
-        setHeader(headers, id, Constants.BUNDLE_VENDOR, info.getVendor());
-        setHeader(headers, id, Constants.BUNDLE_NAME, info.getName());
-
-        if (info.getDocURI() != null)
-            config.setProp(id, BldConfig.P_HEADER, Constants.BUNDLE_DOCURL,
-                info.getDocURI().toString());
-
-        if (info.getLicenseURI() != null)
-            config.setProp(id, BldConfig.P_HEADER, Constants.BUNDLE_LICENSE,
-                info.getLicenseURI().toString());
-    }
-
-    /**
-     * @param id
-     * @param info
-     * @param bundle 
-     */
-    private void setResources(String id, IBundleModelElement info, ISigilBundle bundle)
-    {
-        // resources
-        ArrayList<String> resources = new ArrayList<String>();
-        for (Resource ipath : bundle.getSourcePaths())
-        {
-            resources.add(ipath.toString());
-        }
-
-        if (!resources.isEmpty() || !config.getList(id, BldConfig.L_RESOURCES).isEmpty())
-        {
-            Collections.sort(resources);
-            config.setList(id, BldConfig.L_RESOURCES, resources);
-        }
-    }
-
-    /**
-     * @param id 
-     * @param info
-     * @param bundle 
-     */
-    private void setLibraries(String id, IBundleModelElement info, ISigilBundle bundle)
-    {
-        // libs
-        Map<String, Map<String, String>> libs = new TreeMap<String, Map<String, String>>();
-        List<String> sources = new ArrayList<String>();
-
-        // classpathEntries map to -libs or -sources
-        for (String entry : bundle.getClasspathEntrys())
-        {
-            // <classpathentry kind="lib" path="lib/dependee.jar"/>
-            // <classpathentry kind="src" path="src"/>
-            final String regex = ".* kind=\"([^\"]+)\" path=\"([^\"]+)\".*";
-            Pattern pattern = Pattern.compile(regex);
-            Matcher matcher = pattern.matcher(entry);
-            if (matcher.matches())
-            {
-                String kind = matcher.group(1);
-                String path = matcher.group(2);
-                if (kind.equals("lib"))
-                {
-                    Map<String, String> map2 = new TreeMap<String, String>();
-                    map2.put(BldAttr.KIND_ATTRIBUTE, "classpath");
-                    libs.put(path, map2);
-                }
-                else if (kind.equals("src"))
-                {
-                    sources.add(path);
-                }
-                else
-                {
-                    BldCore.error("unknown classpathentry kind=" + kind);
-                }
-            }
-            else
-            {
-                BldCore.error("can't match classpathEntry in: " + entry);
-            }
-        }
-
-        if (!libs.isEmpty() || !config.getMap(id, BldConfig.M_LIBS).isEmpty())
-        {
-            config.setMap(id, BldConfig.M_LIBS, libs);
-        }
-
-        // -sourcedirs is global to all bundles
-        if (!sources.isEmpty()
-            || !config.getList(null, BldConfig.L_SRC_CONTENTS).isEmpty())
-        {
-            config.setList(null, BldConfig.L_SRC_CONTENTS, sources);
-        }
-
-    }
-
-    /**
-     * @param id 
-     * @param info
-     * @param bundle 
-     */
-    private void setContents(String id, IBundleModelElement info, ISigilBundle bundle)
-    {
-        // contents
-        List<String> contents = new ArrayList<String>();
-        for (String pkg : bundle.getPackages())
-        {
-            contents.add(pkg);
-        }
-        if (!contents.isEmpty() || !config.getList(id, BldConfig.L_CONTENTS).isEmpty())
-        {
-            config.setList(id, BldConfig.L_CONTENTS, contents);
-        }
-    }
-
-    /**
-     * @param id
-     * @param info
-     */
-    private void setFragments(String id, IBundleModelElement info)
-    {
-        Properties defaultBundles = config.getProps(null, BldConfig.P_BUNDLE_VERSION);
-        Map<String, Map<String, String>> fragments = new TreeMap<String, Map<String, String>>();
-        IRequiredBundle fragment = info.getFragmentHost();
-        if (fragment != null)
-        {
-            Map<String, String> map2 = new TreeMap<String, String>();
-            String name = fragment.getSymbolicName();
-            VersionRange versions = defaultVersion(fragment.getVersions(),
-                defaultBundles.getProperty(name));
-            if (versions != null)
-                map2.put(BldAttr.VERSION_ATTRIBUTE, versions.toString());
-            fragments.put(name, map2);
-        }
-        if (!fragments.isEmpty() || !config.getMap(id, BldConfig.M_FRAGMENT).isEmpty())
-        {
-            config.setMap(id, BldConfig.M_FRAGMENT, fragments);
-        }
-    }
-
-    /**
-     * @param id
-     * @param bundleVersion
-     * @param info
-     */
-    private void setRequires(String id, String bundleVersion, IBundleModelElement info)
-    {
-        // requires
-        Properties defaultBundles = config.getProps(null, BldConfig.P_BUNDLE_VERSION);
-        Map<String, Map<String, String>> requires = new TreeMap<String, Map<String, String>>();
-
-        for (IRequiredBundle require : info.getRequiredBundles())
-        {
-            Map<String, String> map2 = new TreeMap<String, String>();
-            String name = require.getSymbolicName();
-            VersionRange versions = defaultVersion(require.getVersions(),
-                defaultBundles.getProperty(name));
-            if (versions != null)
-                map2.put(BldAttr.VERSION_ATTRIBUTE, versions.toString());
-            requires.put(name, map2);
-        }
-        if (!requires.isEmpty() || !config.getMap(id, BldConfig.M_REQUIRES).isEmpty())
-        {
-            config.setMap(id, BldConfig.M_REQUIRES, requires);
-        }
-    }
-
-    /**
-     * @param bundleVersion 
-     * @param info
-     * @param exports 
-     */
-    private void setImports(String id, String bundleVersion, IBundleModelElement info,
-        Map<String, Map<String, String>> exports)
-    {
-        // imports
-        Map<String, Map<String, String>> imports = new TreeMap<String, Map<String, String>>();
-
-        // FIXME: default version logic is wrong here
-        //    if the version to be saved is the same as the default version,
-        //    then we should _remove_ the version from the value being saved,
-        //    since config.getMap() does not apply default versions.
-        for (IPackageImport import1 : info.getImports())
-        {
-            Map<String, String> map2 = new TreeMap<String, String>();
-            String name = import1.getPackageName();
-            VersionRange versions = defaultVersion(import1.getVersions(),
-                getDefaultPackageVersion(name));
-
-            boolean isDependency = import1.isDependency();
-            Map<String, String> selfImport = exports.get(name);
-
-            if (selfImport != null)
-            {
-                // avoid saving self-import attributes, e.g.
-                // org.cauldron.newton.example.fractal.engine;resolve=auto;version=1.0.0
-                isDependency = true;
-
-                if (versions != null)
-                {
-                    String exportVersion = selfImport.get(BldAttr.VERSION_ATTRIBUTE);
-                    if (exportVersion == null)
-                        exportVersion = bundleVersion;
-
-                    if (exportVersion.equals(versions.toString()))
-                    {
-                        versions = null;
-                    }
-                }
-            }
-
-            if (versions != null)
-            {
-                map2.put(BldAttr.VERSION_ATTRIBUTE, versions.toString());
-            }
-
-            if (import1.isOptional())
-            {
-                map2.put(BldAttr.RESOLUTION_ATTRIBUTE, BldAttr.RESOLUTION_OPTIONAL);
-            }
-
-            String resolve = BldProject.getResolve(import1, isDependency);
-            if (resolve != null)
-                map2.put(BldAttr.RESOLVE_ATTRIBUTE, resolve);
-
-            imports.put(name, map2);
-        }
-        if (!imports.isEmpty() || !config.getMap(id, BldConfig.M_IMPORTS).isEmpty())
-        {
-            config.setMap(id, BldConfig.M_IMPORTS, imports);
-        }
-    }
-
-    /**
-     * @param id 
-     * @param info 
-     * @param bundleVersion 
-     * @param exports 
-     * 
-     */
-    private void setExports(String id, String bundleVersion, IBundleModelElement info,
-        Map<String, Map<String, String>> exports)
-    {
-        for (IPackageExport export : info.getExports())
-        {
-            Map<String, String> map2 = new TreeMap<String, String>();
-            String version = export.getVersion().toString();
-            if (!version.equals(bundleVersion))
-                map2.put(BldAttr.VERSION_ATTRIBUTE, version);
-            exports.put(export.getPackageName(), map2);
-        }
-
-        if (!exports.isEmpty() || !config.getMap(id, BldConfig.M_EXPORTS).isEmpty())
-        {
-            config.setMap(id, BldConfig.M_EXPORTS, exports);
-        }
-    }
-
-    private void setHeader(Properties headers, String id, String key, String value)
-    {
-        if (value == null)
-            value = "";
-        if (!value.equals(headers.getProperty(key, "")))
-            config.setProp(id, BldConfig.P_HEADER, key, value);
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldFactory.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldFactory.java
deleted file mode 100644
index 3a9bff8..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldFactory.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-public class BldFactory
-{
-    private static Map<URI, BldProject> projects = new HashMap<URI, BldProject>();
-
-    public static IBldProject getProject(URI uri) throws IOException
-    {
-        return load(uri, false, null);
-    }
-
-    public static IBldProject getProject(URI uri, Properties overrides)
-        throws IOException
-    {
-        return load(uri, false, overrides);
-    }
-
-    public static IBldProject getProject(URI uri, boolean ignoreCache) throws IOException
-    {
-        return load(uri, ignoreCache, null);
-    }
-
-    public static IRepositoryConfig getConfig(URI uri) throws IOException
-    {
-        return load(uri, false, null);
-    }
-
-    /**
-     * creates a new project file, initialised with defaults.
-     * @param uri where the file will be saved - used to resolve relative paths.
-     * @param defaults relative path to defaults file - default ../sigil.properties.
-     * @return
-     * @throws IOException
-     */
-    public static IBldProject newProject(URI uri, String defaults) throws IOException
-    {
-        BldProject project = new BldProject(uri, null);
-        Properties p = new Properties();
-        if (defaults != null)
-            p.setProperty(BldConfig.S_DEFAULTS, defaults);
-        project.loadDefaults(p);
-        return project;
-    }
-
-    private synchronized static BldProject load(URI uri, boolean ignoreCache,
-        Properties overrides) throws IOException
-    {
-        BldProject p = null;
-        if (!ignoreCache)
-        {
-            p = projects.get(uri);
-        }
-
-        if (p == null)
-        {
-            p = new BldProject(uri, overrides);
-            p.load();
-            projects.put(uri, p);
-
-            if (Boolean.getBoolean("org.apache.felix.sigil.config.test"))
-            {
-                File path = new File(uri.getPath() + ".tmp");
-                System.out.println("XXX: config.test writing: " + path);
-                p.saveAs(path);
-            }
-        }
-        return p;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProject.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProject.java
deleted file mode 100644
index 43b4c40..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProject.java
+++ /dev/null
@@ -1,1059 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeSet;
-
-import org.apache.felix.sigil.common.config.internal.InlineResource;
-import org.apache.felix.sigil.common.config.internal.PreprocessedResource;
-import org.apache.felix.sigil.common.config.internal.StandardResource;
-import org.apache.felix.sigil.common.core.internal.model.osgi.BundleModelElement;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageExport;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageImport;
-import org.apache.felix.sigil.common.core.internal.model.osgi.RequiredBundle;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport.OSGiImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-
-public class BldProject implements IBldProject, IRepositoryConfig, Cloneable
-{
-    private static final String OVERRIDE_PREFIX = "sigil.";
-    private static final int MAX_HEADER = 10240;
-    // cache to avoid loading the same default config for each project
-    private static Map<URI, BldConfig> defaultsCache = new HashMap<URI, BldConfig>();
-    private static Properties sysOverrides;
-
-    private Properties bldOverrides;
-    private List<String> sourcePkgs;
-    private BldConfig config;
-    private BldConverter convert;
-    private BundleModelElement requirements;
-    private final File baseDir;
-    private URI loc;
-    private Properties packageDefaults;
-    private TreeSet<String> packageWildDefaults;
-    private long lastModified;
-
-    /* package */BldProject(URI relLoc, Properties overrides)
-    {
-        loc = new File(".").toURI().resolve(relLoc).normalize();
-        config = new BldConfig(loc);
-        convert = new BldConverter(config);
-        File f = new File(loc);
-        lastModified = f.lastModified();
-        baseDir = f.getParentFile();
-        bldOverrides = overrides;
-    }
-
-    /* package */void load() throws IOException
-    {
-        // allow System property overrides, e.g.
-        // ANT_OPTS='-Dsigil.option\;addMissingImports=false' ant
-        config.merge(getOverrides());
-
-        InputStream in = null;
-        try
-        {
-            in = loc.toURL().openStream();
-            BufferedInputStream bis = new BufferedInputStream(in);
-            bis.mark(MAX_HEADER);
-            readHeader(bis);
-            bis.reset();
-
-            Properties p = new Properties();
-            p.load(bis);
-            config.merge(p);
-
-            Properties unknown = config.getUnknown();
-            if (!unknown.isEmpty())
-                System.err.println("WARN: unknown keys " + unknown.keySet() + " in "
-                    + loc);
-
-            loadDefaults(p);
-            requirements = parseRequirements();
-        }
-        finally
-        {
-            if (in != null)
-            {
-                in.close();
-            }
-        }
-
-        //System.err.println("XXX loc=" + loc + ", BldConfig: " + config);
-    }
-
-    /* package */void loadDefaults(Properties p) throws IOException
-    {
-        BldConfig c = loadDefaults(p, baseDir, null);
-        config.setDefault(c);
-
-        Properties options = config.getProps(null, BldConfig.P_OPTION);
-
-        if (!options.containsKey(BldAttr.OPTION_ADD_IMPORTS))
-            c.setProp(null, BldConfig.P_OPTION, BldAttr.OPTION_ADD_IMPORTS, "true");
-
-        // default omitUnusedImports option depends on number of bundles...
-        // we set it here to avoid it being written by save(),
-        // but as this may alter cached defaults, once set we have to reset it
-        // for each project.
-
-        boolean omitSet = options.containsKey("__omit_set__");
-        boolean multiple = getBundleIds().size() > 1;
-
-        if (multiple || omitSet)
-        {
-            if (!options.containsKey(BldAttr.OPTION_OMIT_IMPORTS) || omitSet)
-            {
-                c.setProp(null, BldConfig.P_OPTION, BldAttr.OPTION_OMIT_IMPORTS, multiple
-                    + "");
-                c.setProp(null, BldConfig.P_OPTION, "__omit_set__", "true");
-            }
-        }
-    }
-
-    private synchronized BldConfig loadDefaults(Properties props, File base,
-        BldConfig dflt) throws IOException
-    {
-        boolean cached = false;
-        String defaults = props.getProperty(BldConfig.S_DEFAULTS);
-
-        if (defaults != null)
-        {
-            defaults = BldUtil.expand(defaults, new BldProperties(base, bldOverrides));
-        }
-        else
-        {
-            defaults = "-" + IBldProject.PROJECT_DEFAULTS;
-        }
-
-        if (base != null && defaults.length() > 0)
-        {
-            boolean ignore = defaults.startsWith("-");
-
-            if (ignore)
-                defaults = defaults.substring(1);
-
-            try
-            {
-                File file = new File(defaults);
-                if (!file.isAbsolute())
-                {
-                    file = new File(base, defaults);
-                }
-                file = file.getCanonicalFile();
-
-                URI uri = file.toURI();
-                BldProperties bp = new BldProperties(file.getParentFile(), bldOverrides);
-
-                if (dflt == null)
-                {
-                    dflt = defaultsCache.get(uri);
-                    if (dflt != null)
-                        return dflt;
-
-                    dflt = new BldConfig(uri);
-                    defaultsCache.put(uri, dflt);
-                    cached = true;
-                }
-
-                Properties p = new Properties();
-                InputStream stream = uri.toURL().openStream();
-                p.load(stream);
-                stream.close();
-
-                // expand variables in defaults
-                for (Object k : p.keySet())
-                {
-                    String key = (String) k;
-                    String value = p.getProperty(key);
-                    p.setProperty(key, BldUtil.expand(value, bp));
-                }
-
-                dflt.merge(p);
-
-                ignore = false;
-                loadDefaults(p, file.getParentFile(), dflt);
-            }
-            catch (IOException e)
-            {
-                if (!ignore)
-                    throw e;
-            }
-        }
-
-        if (dflt == null)
-            return new BldConfig();
-
-        if (cached)
-        {
-            Properties unknown = dflt.getUnknown();
-            if (!unknown.isEmpty())
-                System.err.println("WARN: unknown keys " + unknown.keySet()
-                    + " in defaults for " + loc);
-        }
-
-        return dflt;
-    }
-
-    private static Properties getOverrides()
-    {
-        if (sysOverrides == null)
-        {
-            sysOverrides = new Properties();
-            Properties sysProps = System.getProperties();
-
-            for (Object okey : sysProps.keySet())
-            {
-                String key = (String) okey;
-                if (key.startsWith(OVERRIDE_PREFIX))
-                {
-                    sysOverrides.setProperty(key.substring(OVERRIDE_PREFIX.length()),
-                        sysProps.getProperty(key));
-                }
-            }
-        }
-
-        return sysOverrides;
-    }
-
-    private void readHeader(InputStream in) throws IOException
-    {
-        BufferedReader r = new BufferedReader(new InputStreamReader(in));
-        StringBuffer header = new StringBuffer();
-        String line;
-        while ((line = r.readLine()) != null)
-        {
-            if (line.startsWith("#"))
-            {
-                header.append(line);
-                header.append("\n");
-            }
-            else
-            {
-                config.setComment(header.toString());
-                break;
-            }
-        }
-    }
-
-    public File resolve(String path)
-    {
-        File file = new File(path);
-        if (!file.isAbsolute())
-        {
-            // can't use loc.resolve(value), as value may not be valid URI.
-            file = new File(baseDir, path);
-        }
-        return file;
-    }
-
-    public Resource newResource(String location)
-    {
-        String[] paths = location.split("=", 2);
-        String bPath = paths[0];
-        String fsPath = (paths.length > 1 ? paths[1] : null);
-        if (bPath.startsWith("@"))
-        {
-            bPath = bPath.substring(1);
-            return new InlineResource(BldProject.this, bPath);
-        }
-        else if (bPath.startsWith("{"))
-        {
-            bPath = bPath.substring(1, bPath.length() - 1);
-            return new PreprocessedResource(BldProject.this, bPath, fsPath);
-        }
-        else
-        {
-            return new StandardResource(BldProject.this, bPath, fsPath);
-        }
-    }
-
-    public String getVersion()
-    {
-        String version = config.getString(null, BldConfig.S_VERSION);
-        return version == null ? "0" : version;
-    }
-
-    public IBundleModelElement getDependencies()
-    {
-        IBundleModelElement dependencies = new BundleModelElement();
-
-        for (IModelElement element : getRequirements().children())
-        {
-            if (element instanceof IPackageImport)
-            {
-                IPackageImport import1 = (IPackageImport) element;
-                if (!import1.isDependency())
-                    continue;
-
-                IPackageImport pi = (IPackageImport) (element.clone());
-                pi.setParent(null);
-                dependencies.addImport(pi);
-            }
-            else
-            {
-                IRequiredBundle rb = (IRequiredBundle) (element.clone());
-                rb.setParent(null);
-                dependencies.addRequiredBundle(rb);
-            }
-        }
-
-        return dependencies;
-    }
-
-    private IBundleModelElement getRequirements()
-    {
-        return requirements;
-    }
-
-    /*
-     * private boolean globMatch(String pkg, Set<String> set) { // exact match
-     * if (set.contains(pkg)) return true;
-     * 
-     * // org.foo.bar matches org.foo. for (String glob : set) { if
-     * (glob.matches(pkg)) { return true; } }
-     * 
-     * return false; }
-     */
-
-    /**
-     * set internal OSGiImport and isDependency flags, based on external
-     * resolve= attribute.
-     */
-    // OSGiImport:    AUTO    ALWAYS     NEVER
-    // dependency:    default -          compile
-    // !dependency:   auto    runtime    ignore
-
-    private void setResolve(IPackageImport pi, String resolve) throws IOException
-    {
-        if (pi.isOptional())
-            pi.setDependency(false);
-
-        if (BldAttr.RESOLVE_COMPILE.equals(resolve))
-        {
-            if (pi.isOptional())
-                pi.setDependency(true);
-            else
-                pi.setOSGiImport(OSGiImport.NEVER);
-        }
-        else if (BldAttr.RESOLVE_RUNTIME.equals(resolve))
-        {
-            pi.setDependency(false);
-            pi.setOSGiImport(OSGiImport.ALWAYS);
-        }
-        else if (BldAttr.RESOLVE_AUTO.equals(resolve))
-        {
-            pi.setDependency(false);
-        }
-        else if (BldAttr.RESOLVE_IGNORE.equals(resolve))
-        {
-            pi.setDependency(false);
-            pi.setOSGiImport(OSGiImport.NEVER);
-        }
-        else if (resolve != null)
-        {
-            throw new IOException("Bad attribute value: " + BldAttr.RESOLVE_ATTRIBUTE
-                + "=" + resolve);
-        }
-    }
-
-    /**
-     * get external resolve= attribute from internal PackageImport flags. This
-     * is called from BldConverter.setBundle().
-     */
-    public static String getResolve(IPackageImport pi, boolean isDependency)
-    {
-        OSGiImport osgiImport = pi.getOSGiImport();
-        String resolve = null;
-
-        if (isDependency)
-        {
-            if (osgiImport.equals(OSGiImport.NEVER) || pi.isOptional())
-                resolve = BldAttr.RESOLVE_COMPILE;
-        }
-        else
-        {
-            switch (osgiImport)
-            {
-                case ALWAYS:
-                    resolve = BldAttr.RESOLVE_RUNTIME;
-                    break;
-                case AUTO:
-                    resolve = BldAttr.RESOLVE_AUTO;
-                    break;
-                case NEVER:
-                    resolve = BldAttr.RESOLVE_IGNORE;
-                    break;
-            }
-        }
-        return resolve;
-    }
-
-    public String getDefaultPackageVersion(String name)
-    {
-        if (packageDefaults == null)
-        {
-            packageDefaults = config.getProps(null, BldConfig.P_PACKAGE_VERSION);
-            packageWildDefaults = new TreeSet<String>();
-
-            for (Object key : packageDefaults.keySet())
-            {
-                String pkg = (String) key;
-                if (pkg.endsWith("*"))
-                {
-                    packageWildDefaults.add(pkg.substring(0, pkg.length() - 1));
-                }
-            }
-        }
-
-        String version = packageDefaults.getProperty(name);
-
-        if (version == null)
-        {
-            for (String pkg : packageWildDefaults)
-            {
-                if (name.startsWith(pkg))
-                {
-                    version = packageDefaults.getProperty(pkg + "*");
-                    // break; -- don't break, as we want the longest match
-                }
-            }
-        }
-
-        return version;
-    }
-
-    private synchronized BundleModelElement parseRequirements() throws IOException
-    {
-        BundleModelElement reqs = new BundleModelElement();
-
-        List<String> sourceContents = getSourcePkgs();
-        HashSet<String> exports = new HashSet<String>();
-
-        parseExports(reqs, exports);
-
-        parseImports(reqs, sourceContents, exports);
-
-        parseRequires(reqs);
-
-        return reqs;
-    }
-
-    /**
-     * @param reqs
-     * @param exports
-     */
-    private void parseExports(BundleModelElement reqs, HashSet<String> exports)
-    {
-        for (IBldBundle bundle : getBundles())
-        {
-            for (IPackageExport export : bundle.getExports())
-            {
-                exports.add(export.getPackageName());
-            }
-        }
-    }
-
-    /**
-     * @param reqs
-     * @throws IOException 
-     */
-    private void parseRequires(BundleModelElement reqs) throws IOException
-    {
-        Map<String, Map<String, String>> requires = config.getMap(null,
-            BldConfig.M_REQUIRES);
-        Properties bundleDefaults = config.getProps(null, BldConfig.P_BUNDLE_VERSION);
-
-        if (requires != null)
-        {
-            for (String name : requires.keySet())
-            {
-                Map<String, String> attr = requires.get(name);
-                String versions = attr.containsKey(BldAttr.VERSION_ATTRIBUTE) ? attr.get(BldAttr.VERSION_ATTRIBUTE)
-                    : bundleDefaults.getProperty(name);
-                String resolution = attr.get(BldAttr.RESOLUTION_ATTRIBUTE);
-
-                RequiredBundle rb = new RequiredBundle();
-                rb.setSymbolicName(name);
-                rb.setVersions(VersionRange.parseVersionRange(versions));
-
-                if (BldAttr.RESOLUTION_OPTIONAL.equals(resolution))
-                {
-                    rb.setOptional(true);
-                }
-                else if (resolution != null)
-                {
-                    throw new IOException("Bad attribute value: "
-                        + BldAttr.RESOLUTION_ATTRIBUTE + "=" + resolution);
-                }
-
-                reqs.addRequiredBundle(rb);
-            }
-        }
-
-        for (IBldBundle bundle : getBundles())
-        {
-            IRequiredBundle fh = bundle.getFragmentHost();
-            if (fh != null)
-                reqs.addRequiredBundle(fh);
-        }
-    }
-
-    /**
-     * @param reqs 
-     * @param exports 
-     * @param sourceContents 
-     * @throws IOException 
-     * 
-     */
-    private void parseImports(BundleModelElement reqs, List<String> sourceContents,
-        HashSet<String> exports) throws IOException
-    {
-        Map<String, Map<String, String>> imports = config.getMap(null,
-            BldConfig.M_IMPORTS);
-
-        for (String name : imports.keySet())
-        {
-            Map<String, String> attr = imports.get(name);
-
-            String resolve = attr.get(BldAttr.RESOLVE_ATTRIBUTE);
-            String resolution = attr.get(BldAttr.RESOLUTION_ATTRIBUTE);
-            String versions = attr.containsKey(BldAttr.VERSION_ATTRIBUTE) ? attr.get(BldAttr.VERSION_ATTRIBUTE)
-                : getDefaultPackageVersion(name);
-
-            PackageImport pi = new PackageImport();
-            pi.setPackageName(name);
-
-            // avoid dependency on self-exports
-            // XXX: BldConverter.setBundle contains similar logic
-            if (exports.contains(name)
-                && (sourceContents.contains(name) || sourceContents.isEmpty()))
-            {
-                pi.setDependency(false);
-                if (versions == null)
-                    versions = getVersion();
-            }
-
-            if (!checkVersionRange(versions))
-            {
-                throw new IOException("Failed to parse version range for " + resolve
-                    + " missing \"'s around version range?");
-            }
-
-            pi.setVersions(VersionRange.parseVersionRange(versions));
-
-            if (BldAttr.RESOLUTION_OPTIONAL.equals(resolution))
-            {
-                pi.setOptional(true);
-            }
-            else if (resolution != null)
-            {
-                throw new IOException("Bad attribute value: "
-                    + BldAttr.RESOLUTION_ATTRIBUTE + "=" + resolution);
-            }
-
-            setResolve(pi, resolve);
-
-            reqs.addImport(pi);
-        }
-    }
-
-    private boolean checkVersionRange(String versions)
-    {
-        if (versions == null || versions.length() == 0)
-        {
-            return true;
-        }
-        else
-        {
-            switch (versions.charAt(0))
-            {
-                case '(':
-                case '[':
-                    switch (versions.charAt(versions.length() - 1))
-                    {
-                        case ')':
-                        case ']':
-                            return true;
-                        default:
-                            return false;
-                    }
-                default:
-                    return true;
-            }
-        }
-    }
-
-    public List<String> getBundleIds()
-    {
-        List<String> ids = config.getList(null, BldConfig.C_BUNDLES);
-        if (ids == null)
-            return Collections.emptyList();
-        return ids;
-    }
-
-    public List<IBldBundle> getBundles()
-    {
-        ArrayList<IBldBundle> list = new ArrayList<IBldBundle>();
-
-        for (String id : getBundleIds())
-        {
-            list.add(new BldBundle(id));
-        }
-
-        return list;
-    }
-
-    public List<String> getRepositoryPath() 
-    {
-        List<String> ids = config.getList(null, BldConfig.C_REPOSITORY_PATH);
-        
-        if (ids.isEmpty())
-            return Collections.singletonList(IRepositoryConfig.WILD_CARD);
-        
-        return ids;
-    }
-    
-    public Properties getRepositoryConfig(String name)
-    {
-        BldProperties bp = new BldProperties(baseDir, bldOverrides);
-
-        Properties repo = config.getProps(null, name);
-
-        if ( repo.isEmpty() ) {
-            // XXX getProps returns and empty props vs null if not found?
-            return null;
-        }
-        
-        for (Object k : repo.keySet())
-        {
-            String key = (String) k;
-            String value = repo.getProperty(key);
-            repo.setProperty(key, BldUtil.expand(value, bp));
-        }
-        
-        return repo;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getAllRepositories()
-     */
-    public List<String> getAllRepositories()
-    {
-        return config.getList(null, BldConfig.C_REPOSITORIES);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getRepositoryDefinition(java.lang.String)
-     */
-    public URI getRepositoryDefinition(String name)
-    {
-        return config.getDefinition(null, name);
-    }    
-
-    public Properties getOptions()
-    {
-        return config.getProps(null, BldConfig.P_OPTION);
-    }
-
-    public Properties getDefaultPackageVersions()
-    {
-        return config.getProps(null, BldConfig.P_PACKAGE_VERSION);
-    }
-
-    public ISigilBundle getDefaultBundle()
-    {
-        List<String> bundles = getBundleIds();
-        if (bundles.isEmpty())
-            return null;
-
-        String id = bundles.get(0);
-        return getSigilBundle(id);
-    }
-
-    public ISigilBundle getSigilBundle(String id)
-    {
-        BldBundle bundle = new BldBundle(id);
-        return convert.getBundle(id, bundle);
-    }
-
-    public void setDefaultBundle(ISigilBundle bundle)
-    {
-        setSigilBundle(null, bundle);
-    }
-
-    public void setSigilBundle(String id, ISigilBundle bundle)
-    {
-        List<String> ids = getBundleIds();
-
-        if (ids.isEmpty())
-        {
-            ArrayList<String> list = new ArrayList<String>();
-            list.add(id == null ? bundle.getBundleInfo().getSymbolicName() : id);
-            config.setList(null, BldConfig.C_BUNDLES, list);
-        }
-        else if (id == null)
-        {
-            id = ids.get(0);
-        }
-        else if (!ids.contains(id))
-        {
-            List<String> list = config.getList(null, BldConfig.C_BUNDLES);
-            list.add(id);
-            config.setList(null, BldConfig.C_BUNDLES, list);
-        }
-
-        if (ids.size() == 1)
-            id = null; // don't prefix default bundle with id
-
-        convert.setBundle(id, bundle);
-    }
-
-    public void save() throws IOException
-    {
-        saveAs(new File(loc));
-    }
-
-    public void saveAs(File path) throws IOException
-    {
-        File part = new File(path.getPath() + ".part");
-        saveTo(new FileOutputStream((part)));
-
-        path.delete();
-        if (!part.renameTo(path))
-            throw new IOException("failed to rename " + part + " to " + path);
-    }
-
-    public void saveTo(OutputStream out)
-    {
-        PrintWriter writer = new PrintWriter(new OutputStreamWriter(out));
-        config.write(writer);
-        writer.close();
-    }
-
-    public List<String> getSourceDirs()
-    {
-        List<String> list = config.getList(null, BldConfig.L_SRC_CONTENTS);
-        return list != null ? list : Collections.<String> emptyList();
-    }
-
-    public List<String> getSourcePkgs()
-    {
-        if (sourcePkgs == null)
-        {
-            sourcePkgs = new ArrayList<String>();
-            for (String src : getSourceDirs())
-            {
-                File dir = resolve(src);
-                if (!dir.isDirectory())
-                {
-                    System.err.println("WARN: sourcedir does not exist: " + dir);
-                    continue;
-                    // throw new RuntimeException("sourcedir: " + dir +
-                    // " : is not a directory.");
-                }
-                findSrcPkgs(dir, null, sourcePkgs);
-            }
-        }
-
-        return sourcePkgs;
-    }
-
-    private void findSrcPkgs(File dir, String pkg, List<String> result)
-    {
-        ArrayList<File> dirs = new ArrayList<File>();
-        boolean found = false;
-
-        for (String name : dir.list())
-        {
-            if (name.endsWith(".java"))
-            {
-                found = true;
-            }
-            else if (!name.equals(".svn"))
-            {
-                File d = new File(dir, name);
-                if (d.isDirectory())
-                    dirs.add(d);
-            }
-        }
-
-        if (pkg == null)
-        {
-            pkg = "";
-        }
-        else if (pkg.equals(""))
-        {
-            pkg = dir.getName();
-        }
-        else
-        {
-            pkg = pkg + "." + dir.getName();
-        }
-
-        if (found)
-            result.add(pkg);
-
-        for (File d : dirs)
-            findSrcPkgs(d, pkg, result);
-    }
-    
-    public BldProject clone() {
-        BldProject p;
-        try
-        {
-            p = (BldProject) super.clone();
-            p.config = p.config.clone();
-            p.convert = new BldConverter(p.config);
-            p.requirements = p.requirements == null ? null : p.requirements.clone();
-        }
-        catch (CloneNotSupportedException e)
-        {
-            throw new IllegalStateException(e);
-        }
-        return p;
-    }
-
-    /**
-     * BldBundle
-     * 
-     */
-    class BldBundle implements IBldBundle
-    {
-        private String id;
-
-        public BldBundle(String id)
-        {
-            this.id = id;
-        }
-
-        public File resolve(String path)
-        {
-            return BldProject.this.resolve(path);
-        }
-
-        private String getString(String key)
-        {
-            return config.getString(id, key);
-        }
-
-        private boolean getBoolean(String key)
-        {
-            return Boolean.parseBoolean(getString(key));
-        }
-
-        private List<String> getList(String key)
-        {
-            List<String> list = config.getList(id, key);
-            return list != null ? list : Collections.<String> emptyList();
-        }
-
-        private Map<String, Map<String, String>> getMap(String key)
-        {
-            Map<String, Map<String, String>> map = config.getMap(id, key);
-            return map != null ? map
-                : Collections.<String, Map<String, String>> emptyMap();
-        }
-
-        public String getActivator()
-        {
-            return getString(BldConfig.S_ACTIVATOR);
-        }
-
-        public String getId()
-        {
-            String name = getString("id");
-            return name != null ? name : id;
-        }
-
-        public String getVersion()
-        {
-            String ver = getString(BldConfig.S_VERSION);
-            if (ver == null)
-            {
-                ver = BldProject.this.getVersion();
-            }
-            return ver;
-        }
-
-        public String getSymbolicName()
-        {
-            String name = getString(BldConfig.S_SYM_NAME);
-            return name != null ? name : getId();
-        }
-
-        public boolean isSingleton()
-        {
-            return getBoolean(BldConfig.S_SINGLETON);
-        }
-
-        public List<IPackageExport> getExports()
-        {
-            ArrayList<IPackageExport> list = new ArrayList<IPackageExport>();
-            Map<String, Map<String, String>> exports = getMap(BldConfig.M_EXPORTS);
-
-            if (exports != null)
-            {
-                for (String name : exports.keySet())
-                {
-                    Map<String, String> attrs = exports.get(name);
-                    PackageExport pkgExport = new PackageExport();
-                    pkgExport.setPackageName(name);
-
-                    String version = attrs.get(BldAttr.VERSION_ATTRIBUTE);
-                    // only default export version from local packages
-                    if (version == null
-                        && (getSourcePkgs().isEmpty() || getSourcePkgs().contains(name)))
-                    {
-                        version = getVersion();
-                    }
-
-                    if (version != null)
-                        pkgExport.setVersion(VersionTable.getVersion(version));
-
-                    list.add(pkgExport);
-                }
-            }
-
-            return list;
-        }
-
-        public List<IPackageImport> getImports()
-        {
-            ArrayList<IPackageImport> list = new ArrayList<IPackageImport>();
-
-            for (IPackageImport import1 : getRequirements().childrenOfType(
-                IPackageImport.class))
-            {
-                list.add(import1);
-            }
-
-            return list;
-        }
-
-        public List<IRequiredBundle> getRequires()
-        {
-            ArrayList<IRequiredBundle> list = new ArrayList<IRequiredBundle>();
-            list.addAll(Arrays.asList(getRequirements().childrenOfType(
-                IRequiredBundle.class)));
-
-            for (IBldBundle bundle : getBundles())
-            {
-                IRequiredBundle fh = bundle.getFragmentHost();
-                if (fh != null)
-                    list.remove(fh);
-            }
-
-            return list;
-        }
-
-        public IRequiredBundle getFragmentHost()
-        {
-            IRequiredBundle fragment = null;
-            Map<String, Map<String, String>> fragments = getMap(BldConfig.M_FRAGMENT);
-            if (fragments != null)
-            {
-                for (String name : fragments.keySet())
-                {
-                    Map<String, String> attr = fragments.get(name);
-                    String versions = attr.isEmpty() ? null
-                        : attr.get(BldAttr.VERSION_ATTRIBUTE);
-                    fragment = new RequiredBundle();
-                    fragment.setSymbolicName(name);
-                    fragment.setVersions(VersionRange.parseVersionRange(versions));
-                    break;
-                }
-            }
-
-            return fragment;
-        }
-
-        public Map<String, Map<String, String>> getLibs()
-        {
-            Map<String, Map<String, String>> libs = getMap(BldConfig.M_LIBS);
-            return (libs != null) ? libs
-                : Collections.<String, Map<String, String>> emptyMap();
-        }
-
-        public List<String> getContents()
-        {
-            return getList(BldConfig.L_CONTENTS);
-        }
-
-        public List<Resource> getResources()
-        {
-            List<String> resources = getList(BldConfig.L_RESOURCES);
-            if (resources == null)
-            {
-                return Collections.emptyList();
-            }
-
-            List<Resource> ret = new ArrayList<Resource>(resources.size());
-            for (String resource : resources)
-            {
-                ret.add(newResource(resource));
-            }
-            return ret;
-        }
-
-        public Properties getHeaders()
-        {
-            Properties headers = config.getProps(id, BldConfig.P_HEADER);
-            return headers;
-        }
-
-    }
-
-    public long getLastModified()
-    {
-        return lastModified;
-    }
-    
-    @Override
-    public String toString() {
-        return config.toString();
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProperties.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProperties.java
deleted file mode 100644
index a923f31..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldProperties.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
-
-public class BldProperties extends Properties
-{
-    private static final long serialVersionUID = 1L;
-    private static final BldProperties global = new BldProperties(null, null);
-    private static final Properties sysEnv;
-
-    static
-    {
-        Properties env = new Properties();
-        env.putAll(System.getenv());
-        sysEnv = new Properties(env);
-        sysEnv.putAll(System.getProperties());
-        // Note: these are System properties, NOT Ant properties.
-    }
-
-    private final Properties mySysEnv;
-
-    BldProperties(File baseDir, Properties overrides)
-    {
-        mySysEnv = new Properties(sysEnv);
-
-        if (overrides != null)
-        {
-            mySysEnv.putAll(overrides);
-        }
-
-        try
-        {
-            if (baseDir != null)
-            {
-                mySysEnv.setProperty(".", baseDir.getCanonicalPath());
-                mySysEnv.setProperty("..", baseDir.getParentFile().getCanonicalPath());
-            }
-        }
-        catch (IOException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    public String getProperty(String key, String defaultValue)
-    {
-        return mySysEnv.getProperty(key, defaultValue);
-    }
-
-    public String getProperty(String key)
-    {
-        return mySysEnv.getProperty(key);
-    }
-
-    public static Properties global()
-    {
-        return global;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldUtil.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/BldUtil.java
deleted file mode 100644
index f51c386..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/BldUtil.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class BldUtil
-{
-    /**
-     * expands property references embedded in strings. Each occurrence of ${name} is replaced with the value of
-     * p.getProperty("name"); If the property is not set, then the original reference, is returned as follows "?<name>".
-     * 
-     * Strings to be expanded should not contain $ or }, except to indicate expansions.
-     * 
-     * Value is expanded recursively and so can contain further ${name} references. Also supports shell-expansions
-     * ${name:-value}, ${name:=value} and ${name:+value}.
-     * 
-     * <pre>
-     *      ${parameter}
-     *      The value of parameter is substituted.
-     *      ${parameter:-word}
-     *      Use  Default  Values.  If parameter is null, the expansion of word
-     *      is substituted.  Otherwise, the value of  parameter is substituted.
-     *      ${parameter:=word}
-     *      Assign  Default  Values.   If  parameter is null, the expansion of
-     *      word is assigned to parameter.  The value of parameter  is  then
-     *      substituted.
-     *      ${parameter:+word}
-     *      Use Alternate Value.  If parameter is null, nothing  is
-     *      substituted, otherwise the expansion of word is substituted.
-     *      ${parameter:?word}
-     *      Raise Error.  If parameter is null, a RuntimeException is thown,
-     *      with word as the message.
-     * </pre>
-     */
-    public static String expand(String s, Properties p)
-    {
-        // regex to match property references e.g. ${name}
-        // TODO this is very simplistic, so strings to be expanded should not
-        // contain $ or }, except where substitution is expected.
-        // Update: propRef regex now allows substitutions to contain $,
-        // e.g. where a Windows ${user.name} is $Admin or similar.
-        final Pattern propRef = Pattern.compile("\\$\\{(((\\$[^\\{\\}])|[^\\$\\}])+\\$?)\\}");
-        final Pattern backslash = Pattern.compile("\\\\");
-        final Pattern dollar = Pattern.compile("\\$");
-
-        if (s == null)
-        {
-            return null;
-        }
-
-        if (s.indexOf("${") == -1)
-        { // shortcut if no expansions
-            return s;
-        }
-
-        for (int i = 0; i < 20; i++)
-        { // avoids self-referencing expansions
-            // System.out.println("XXX expand[" + i + "] = [" + s + "]");
-            Matcher matcher = propRef.matcher(s);
-
-            if (!matcher.find())
-            {
-                // replace unmatched items
-                s = s.replaceAll("\\Q??[\\E", "\\${");
-                s = s.replaceAll("\\Q??]\\E", "}");
-                // debug("expanded: " + s);
-                if (s.indexOf("${") != -1)
-                {
-                    throw new RuntimeException("Can't expand: " + s);
-                }
-                return s;
-            }
-
-            String key = matcher.group(1);
-            String[] keydef = key.split(":[=+-?@]", 2);
-            String replace;
-
-            if (keydef.length != 2)
-            {
-                replace = key.length() == 0 ? null : p.getProperty(key);
-            }
-            else
-            {
-                replace = keydef[0].length() == 0 ? null : p.getProperty(keydef[0]);
-
-                if (replace != null
-                    && (replace.length() == 0 || replace.indexOf("${") != -1))
-                {
-                    // don't want unexpanded replacement, as it may stop ${...:-default}
-                    replace = null;
-                }
-
-                if (key.indexOf(":+") != -1)
-                {
-                    replace = ((replace == null) ? "" : keydef[1]);
-                }
-                else if (replace == null)
-                {
-                    replace = keydef[1];
-
-                    if (key.indexOf(":?") != -1)
-                    {
-                        String msg = "${" + keydef[0] + ":?" + keydef[1]
-                            + "} property not set";
-                        throw new RuntimeException(msg);
-                    }
-
-                    if (key.indexOf(":=") != -1)
-                    {
-                        p.setProperty(keydef[0], keydef[1]);
-                    }
-                }
-            }
-
-            if (replace == null)
-            {
-                // TODO: this is a hack to avoid looping on unmatched references
-                // should really leave unchanged and process rest of string.
-                // We use "]" as delimiter to avoid non-matched "}"
-                // terminating potential _propRef match
-                replace = "??[" + key + "??]";
-            }
-
-            // Excerpt from replaceAll() javadoc:
-            //
-            // Note that backslashes (\) and dollar signs ($) in the replacement
-            // string may cause the results to be different than if it were
-            // being
-            // treated as a literal replacement string. Dollar signs may be
-            // treated
-            // as references to captured subsequences, and backslashes are used
-            // to
-            // escape literal characters in the replacement string.
-            // escape any \ or $ in replacement string
-            replace = backslash.matcher(replace).replaceAll("\\\\\\\\");
-            replace = dollar.matcher(replace).replaceAll("\\\\\\$");
-
-            s = s.replaceAll("\\Q${" + key + "}\\E", replace);
-        }
-
-        throw new RuntimeException("expand: loop expanding: " + s);
-    }
-
-    public static String expand(String s)
-    {
-        return expand(s, BldProperties.global());
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/IBldProject.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/IBldProject.java
deleted file mode 100644
index d7838c1..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/IBldProject.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-
-public interface IBldProject
-{
-
-    static final String PROJECT_FILE = "sigil.properties";
-    static final String PROJECT_DEFAULTS = "../sigil-defaults.properties";
-
-    void save() throws IOException;
-
-    void saveAs(File path) throws IOException;
-
-    void saveTo(OutputStream out) throws IOException;
-
-    /**
-     * gets default package version ranges.
-     */
-    Properties getDefaultPackageVersions();
-
-    /**
-     * gets default package version range for named package.
-     * Also handles wildcards in defaults.
-     */
-    String getDefaultPackageVersion(String name);
-
-    /**
-     * get project options.
-     */
-    Properties getOptions();
-
-    /**
-     * get project version.
-     */
-    String getVersion();
-
-    /**
-     * gets dependencies (Package-Import and Require-Bundle) needed to compile.
-     */
-    IBundleModelElement getDependencies();
-
-    /**
-     * gets project source directories.
-     * This is a convenient way to specify bundle contents
-     * when the project doesn't contains multiple bundles.
-     */
-    List<String> getSourceDirs();
-
-    /**
-     * gets the list of packages represented by getSourceDirs().
-     * @throws IOException 
-     */
-    List<String> getSourcePkgs();
-
-    /**
-     * gets bundle ids.
-     */
-    List<String> getBundleIds();
-
-    /**
-     * gets bundles.
-     */
-    List<IBldBundle> getBundles();
-
-    /**
-     * convert specified bundle to SigilBundle.
-     */
-    ISigilBundle getSigilBundle(String id);
-
-    /**
-     * convert SigilBundle to specified bundle.
-     */
-    void setSigilBundle(String id, ISigilBundle sb);
-
-    /**
-     * converts default bundle to SigilBundle.
-     */
-    ISigilBundle getDefaultBundle();
-
-    /**
-     * converts SigilBundle to default bundle.
-     */
-    void setDefaultBundle(ISigilBundle sb);
-
-    /**
-     * resolves a relative path against the project file location.
-     */
-    File resolve(String path);
-
-    /**
-     * Creates a new resource for this bundle
-     * @param location
-     * @return
-     */
-    Resource newResource(String location);
-
-    /**
-     * gets the last modification date of the project file.
-     */
-    long getLastModified();
-    
-    IBldProject clone();
-
-    interface IBldBundle
-    {
-        /**
-         * gets bundle activator
-         */
-        String getActivator();
-
-        /**
-         * gets bundle id within project.
-         */
-        String getId();
-
-        /**
-         * gets bundle version.
-         */
-        String getVersion();
-
-        /**
-         * gets the Bundle-SymbolicName.
-         */
-        String getSymbolicName();
-
-        /**
-         * gets bundles export-packages.
-         */
-        List<IPackageExport> getExports();
-
-        /**
-         * gets project import-packages. 
-         */
-        List<IPackageImport> getImports();
-
-        /**
-         * gets project require-bundles. 
-         */
-        List<IRequiredBundle> getRequires();
-
-        /**
-         * get bundle fragment-host. 
-         */
-        IRequiredBundle getFragmentHost();
-
-        /**
-         * gets bundle libs. 
-         */
-        Map<String, Map<String, String>> getLibs();
-
-        /**
-         * gets the bundle contents
-         * @return list of package patterns.
-         */
-        List<String> getContents();
-
-        /**
-         * gets the additional resources.
-         * @return map with key as path in bundle, value as path in file system.
-         * Paths are resolved relative to location of project file and also from classpath.
-         */
-        List<Resource> getResources();
-
-        /**
-         * gets additional bundle headers.
-         */
-        Properties getHeaders();
-
-        /**
-         * resolves a relative path against the project file location.
-         */
-        File resolve(String path);
-
-        /**
-         * @return
-         */
-        boolean isSingleton();
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/IRepositoryConfig.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/IRepositoryConfig.java
deleted file mode 100644
index 79a8de7..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/IRepositoryConfig.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Properties;
-
-public interface IRepositoryConfig
-{
-    static final String REPOSITORY_PROVIDER = "provider";
-    static final String WILD_CARD = "*";
-    
-    URI getRepositoryDefinition(String name);
-    
-    /**
-     * Return the ordered list of repositories to search
-     * for dependencies.
-     * 
-     * @return
-     */
-    List<String> getRepositoryPath();
-
-    /**
-     * get properties with which to instantiate repositories.
-     * The key REPOSITORY_PROVIDER will be set to the fully qualified class name of the IRepositoryProvider.
-     * @return
-     */
-    Properties getRepositoryConfig(String name);
-
-    /**
-     * @return
-     */
-    List<String> getAllRepositories();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/Resource.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/Resource.java
deleted file mode 100644
index 19183a6..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/Resource.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config;
-
-import java.io.File;
-
-/**
- * @author dave
- *
- */
-public interface Resource
-{
-    String toBNDInstruction(File[] classpath);
-
-    /**
-     * @return
-     */
-    String getLocalFile();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/AbstractResource.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/AbstractResource.java
deleted file mode 100644
index 40d9dba..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/AbstractResource.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config.internal;
-
-import java.io.File;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.Resource;
-
-/**
- * @author dave
- *
- */
-public abstract class AbstractResource implements Resource
-{
-    protected final String bPath;
-    protected final IBldProject project;
-
-    protected AbstractResource(IBldProject project, String bPath)
-    {
-        if (bPath == null)
-            throw new NullPointerException();
-
-        if (project == null)
-            throw new NullPointerException();
-
-        this.bPath = bPath;
-        this.project = project;
-    }
-
-    protected String findFileSystemPath(String fsPath, File[] classpath)
-    {
-        File resolved = project.resolve(fsPath);
-
-        // fsPath may contain Bnd variable, making path appear to not exist
-
-        if (!resolved.exists())
-        {
-            // Bnd already looks for classpath jars
-            File found = findInClasspathDir(fsPath, classpath);
-            if (found != null)
-            {
-                fsPath = found.getPath();
-            }
-            else
-            {
-                fsPath = resolved.getAbsolutePath();
-            }
-        }
-        else
-        {
-            fsPath = resolved.getAbsolutePath();
-        }
-
-        return fsPath;
-    }
-
-    private File findInClasspathDir(String file, File[] classpath)
-    {
-        for (File cp : classpath)
-        {
-            if (cp.isDirectory())
-            {
-                File path = new File(cp, file);
-                if (path.exists())
-                {
-                    return path;
-                }
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/InlineResource.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/InlineResource.java
deleted file mode 100644
index 7d23bf5..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/InlineResource.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config.internal;
-
-import java.io.File;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-
-/**
- * @author dave
- *
- */
-public class InlineResource extends AbstractResource
-{
-
-    /**
-     * @param bPath
-     */
-    public InlineResource(IBldProject project, String bPath)
-    {
-        super(project, bPath);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#getLocalFile()
-     */
-    public String getLocalFile()
-    {
-        return bPath;
-    }
-
-    public String toString()
-    {
-        return '@' + bPath;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#toBNDInstruction(java.io.File[])
-     */
-    public String toBNDInstruction(File[] classpath)
-    {
-        StringBuilder sb = new StringBuilder();
-        sb.append('@');
-
-        File f = project.resolve(bPath);
-
-        if (f.exists())
-        {
-            sb.append(f);
-        }
-        else
-            sb.append(bPath);
-
-        return sb.toString();
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/PreprocessedResource.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/PreprocessedResource.java
deleted file mode 100644
index c4672a5..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/PreprocessedResource.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config.internal;
-
-import java.io.File;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-
-/**
- * @author dave
- *
- */
-public class PreprocessedResource extends AbstractResource
-{
-    private final String fsPath;
-
-    public PreprocessedResource(IBldProject project, String bPath, String fsPath)
-    {
-        super(project, bPath);
-        this.fsPath = fsPath;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#getLocalFile()
-     */
-    public String getLocalFile()
-    {
-        return fsPath == null ? bPath : fsPath;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder();
-        sb.append('{');
-        sb.append(bPath);
-        if (fsPath != null)
-        {
-            sb.append('=');
-            sb.append(fsPath);
-        }
-        sb.append('}');
-        return sb.toString();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#toBNDInstruction(java.io.File[])
-     */
-    public String toBNDInstruction(File[] classpath)
-    {
-        StringBuilder sb = new StringBuilder();
-        String fsp = fsPath;
-        if (fsp == null)
-            fsp = bPath;
-
-        fsp = findFileSystemPath(fsp, classpath);
-
-        sb.append('{');
-        sb.append(bPath);
-        sb.append('=');
-        sb.append(fsp);
-        sb.append('}');
-
-        return sb.toString();
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/StandardResource.java b/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/StandardResource.java
deleted file mode 100644
index 39c6130..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/config/internal/StandardResource.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.config.internal;
-
-import java.io.File;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-
-/**
- * @author dave
- *
- */
-public class StandardResource extends AbstractResource
-{
-    private final String fsPath;
-
-    /**
-     * @param bldProject 
-     * @param bPath2
-     * @param fsPath2
-     */
-    public StandardResource(IBldProject project, String bPath, String fsPath)
-    {
-        super(project, bPath);
-        this.fsPath = fsPath;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#getLocalFile()
-     */
-    public String getLocalFile()
-    {
-        return fsPath == null ? bPath : fsPath;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder();
-        sb.append(bPath);
-        if (fsPath != null)
-        {
-            sb.append('=');
-            sb.append(fsPath);
-        }
-        return sb.toString();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.core.Resource#toBNDInstruction(java.io.File[])
-     */
-    public String toBNDInstruction(File[] classpath)
-    {
-        StringBuilder sb = new StringBuilder();
-        String fsp = fsPath;
-        if (fsp == null)
-            fsp = bPath;
-
-        fsp = findFileSystemPath(fsp, classpath);
-
-        sb.append(bPath);
-        sb.append('=');
-        sb.append(fsp);
-
-        return sb.toString();
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/BldCore.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/BldCore.java
deleted file mode 100644
index d8d6013..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/BldCore.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.felix.sigil.common.core.internal.license.LicenseManager;
-import org.apache.felix.sigil.common.core.internal.model.eclipse.Library;
-import org.apache.felix.sigil.common.core.internal.model.eclipse.LibraryImport;
-import org.apache.felix.sigil.common.core.internal.model.eclipse.SigilBundle;
-import org.apache.felix.sigil.common.core.internal.model.osgi.BundleModelElement;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageExport;
-import org.apache.felix.sigil.common.core.internal.model.osgi.PackageImport;
-import org.apache.felix.sigil.common.core.internal.model.osgi.RequiredBundle;
-import org.apache.felix.sigil.common.core.licence.ILicenseManager;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class BldCore implements BundleActivator
-{
-    private static LicenseManager licenceManager = new LicenseManager();
-
-    private static final Logger log = Logger.getLogger(BldCore.class.getName());
-
-    public static void error(String string, Throwable e)
-    {
-        // TODO 
-        log.log(Level.WARNING, string, e);
-    }
-
-    public static void error(String string)
-    {
-        log.log(Level.WARNING, string);
-    }
-
-    public static ILicenseManager getLicenseManager()
-    {
-        return licenceManager;
-    }
-
-    public void start(BundleContext context) throws Exception
-    {
-        init();
-    }
-
-    public static void init() throws Exception
-    {
-        ModelElementFactory.getInstance().register(ISigilBundle.class, SigilBundle.class,
-            "bundle", "sigil", null);
-        ModelElementFactory.getInstance().register(ILibrary.class, Library.class,
-            "library", "sigil", null);
-        ModelElementFactory.getInstance().register(ILibraryImport.class,
-            LibraryImport.class, "library-import", "sigil", null);
-
-        // osgi elements
-        ModelElementFactory.getInstance().register(IBundleModelElement.class,
-            BundleModelElement.class, "bundle", null, null);
-        ModelElementFactory.getInstance().register(IPackageExport.class,
-            PackageExport.class, "package.export", null, null);
-        ModelElementFactory.getInstance().register(IPackageImport.class,
-            PackageImport.class, "package.import", null, null);
-        ModelElementFactory.getInstance().register(IRequiredBundle.class,
-            RequiredBundle.class, "required.bundle", null, null);
-    }
-
-    public void stop(BundleContext context) throws Exception
-    {
-        // TODO Auto-generated method stub
-
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicenseManager.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicenseManager.java
deleted file mode 100644
index 0d6b444..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicenseManager.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.license;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.common.core.licence.ILicenseManager;
-import org.apache.felix.sigil.common.core.licence.ILicensePolicy;
-
-public class LicenseManager implements ILicenseManager
-{
-
-    private HashMap<String, Pattern> licenses = new HashMap<String, Pattern>();
-    private HashMap<String, LicensePolicy> policies = new HashMap<String, LicensePolicy>();
-    private LicensePolicy defaultPolicy = new LicensePolicy(this);
-
-    public void addLicense(String name, Pattern pattern)
-    {
-        licenses.put(name, pattern);
-    }
-
-    public void removeLicense(String name)
-    {
-        licenses.remove(name);
-    }
-
-    public Set<String> getLicenseNames()
-    {
-        return Collections.unmodifiableSet(licenses.keySet());
-    }
-
-    public Pattern getLicensePattern(String name)
-    {
-        return licenses.get(name);
-    }
-
-    public ILicensePolicy getDefaultPolicy()
-    {
-        return defaultPolicy;
-    }
-
-    //public ILicensePolicy getPolicy(ISigilProjectModel project) {
-    //	synchronized( policies ) {
-    //		LicensePolicy p = policies.get(project.getName());
-    //		
-    //		if ( p == null ) {
-    //			p = new LicensePolicy(this, project);
-    //			policies.put( project.getName(), p );
-    //		}
-    //		
-    //		return p;
-    //	}
-    //}
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicensePolicy.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicensePolicy.java
deleted file mode 100644
index 06eefd3..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/license/LicensePolicy.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.license;
-
-import org.apache.felix.sigil.common.core.licence.ILicensePolicy;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.progress.IProgress;
-
-public class LicensePolicy implements ILicensePolicy
-{
-
-    private LicenseManager licenseManager;
-
-    public LicensePolicy(LicenseManager licenseManager)
-    {
-        this.licenseManager = licenseManager;
-    }
-
-    public boolean accept(ISigilBundle bundle)
-    {
-        return true;
-    }
-
-    public void addAllowed(String licenseName)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void removeAllowed(String licenseName)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void save(IProgress progress)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/BundleCapability.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/BundleCapability.java
deleted file mode 100644
index 6799420..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/BundleCapability.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.core.internal.model.eclipse;
-
-import org.apache.felix.sigil.common.model.AbstractModelElement;
-import org.apache.felix.sigil.common.model.eclipse.IBundleCapability;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.osgi.framework.Version;
-
-public class BundleCapability extends AbstractModelElement implements IBundleCapability
-{
-
-    private final String bsn;
-    private final Version version;
-
-    public BundleCapability(IBundleModelElement bundle)
-    {
-        super("Bundle Capability");
-        this.bsn = bundle.getSymbolicName();
-        this.version = bundle.getVersion();
-        setParent(bundle.getParent());
-    }
-
-    public String getSymbolicName()
-    {
-        return bsn;
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == this)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof BundleCapability)
-        {
-            BundleCapability bc = (BundleCapability) obj;
-            return (bsn == null ? bc.bsn == null : bsn.equals(bc.bsn))
-                && (version == null ? bc.version == null : version.equals(bc.version));
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hc = 11;
-
-        if (bsn != null)
-        {
-            hc *= bsn.hashCode();
-        }
-
-        if (version != null)
-        {
-            hc *= version.hashCode();
-        }
-
-        return hc;
-    }
-    
-    @Override
-    public String toString() {
-        return "BundleCapability[" + bsn + ":version=" + version + "]";
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/Library.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/Library.java
deleted file mode 100644
index 0e16bc5..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/Library.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.eclipse;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.AbstractCompoundModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.osgi.framework.Version;
-
-public class Library extends AbstractCompoundModelElement implements ILibrary
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private String name;
-    private Version version;
-    private Set<IRequiredBundle> bundles;
-    private Set<IPackageImport> imports;
-
-    public Library()
-    {
-        super("Library");
-        bundles = new HashSet<IRequiredBundle>();
-        imports = new HashSet<IPackageImport>();
-    }
-
-    public void addBundle(IRequiredBundle bundle)
-    {
-        bundles.add(bundle);
-    }
-
-    public void addImport(IPackageImport pi)
-    {
-        imports.add(pi);
-    }
-
-    public Collection<IRequiredBundle> getBundles()
-    {
-        return bundles;
-    }
-
-    public Collection<IPackageImport> getImports()
-    {
-        return imports;
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    public void removeBundle(IRequiredBundle bundle)
-    {
-        bundles.remove(bundle);
-    }
-
-    public void removeImport(IPackageImport pi)
-    {
-        imports.remove(pi);
-    }
-
-    public void setName(String name)
-    {
-        this.name = name;
-    }
-
-    public void setVersion(Version version)
-    {
-        this.version = version;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/LibraryImport.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/LibraryImport.java
deleted file mode 100644
index 9f2e863..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/LibraryImport.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.eclipse;
-
-import org.apache.felix.sigil.common.model.AbstractModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public class LibraryImport extends AbstractModelElement implements ILibraryImport
-{
-
-    private static final long serialVersionUID = 1L;
-
-    public LibraryImport()
-    {
-        super("Library Import");
-    }
-
-    private String libraryName;
-    private VersionRange range = VersionRange.ANY_VERSION;
-
-    public String getLibraryName()
-    {
-        return libraryName;
-    }
-
-    public VersionRange getVersions()
-    {
-        return range;
-    }
-
-    public void setLibraryName(String name)
-    {
-        this.libraryName = name;
-    }
-
-    public void setVersions(VersionRange range)
-    {
-        this.range = range;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/SigilBundle.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/SigilBundle.java
deleted file mode 100644
index 6390495..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/eclipse/SigilBundle.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.eclipse;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URI;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.jar.JarFile;
-
-import org.apache.felix.sigil.common.config.Resource;
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.AbstractCompoundModelElement;
-import org.apache.felix.sigil.common.model.eclipse.IBundleCapability;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.progress.IProgress;
-import org.apache.felix.sigil.common.util.ManifestUtil;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class SigilBundle extends AbstractCompoundModelElement implements ISigilBundle
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private IBundleModelElement bundle;
-    private Resource[] sourcePaths;
-    private String[] classpath;
-    private String[] packages;
-    private File location;
-
-    private File sourcePathLocation;
-    private File licencePathLocation;
-    private String sourceRootPath;
-
-    public SigilBundle()
-    {
-        super("Sigil Bundle");
-        sourcePaths = new Resource[0];
-        classpath = new String[0];
-        packages = new String[0];
-    }
-    
-    public void synchronize(IProgress progress) throws IOException
-    {
-        progress = progress.newTask(100);
-        progress.report("Synchronizing " + bundle.getSymbolicName() + " binary");
-        sync(location, bundle.getUpdateLocation(), progress.newChild(45));
-
-        if (bundle.getSourceLocation() != null)
-        {
-            try
-            {
-                progress.report("Synchronizing " + bundle.getSymbolicName() + " source");
-                sync(sourcePathLocation, bundle.getSourceLocation(),
-                    progress.newChild(45));
-            }
-            catch (IOException e)
-            {
-                BldCore.error("Failed to download source for " + bundle.getSymbolicName()
-                    + " " + bundle.getVersion(), e.getCause());
-            }
-        }
-
-        if (bundle.getLicenseURI() != null)
-        {
-            try
-            {
-                progress.report("Synchronizing " + bundle.getSymbolicName() + " licence");
-                sync(licencePathLocation, bundle.getLicenseURI(), progress.newChild(10));
-            }
-            catch (IOException e)
-            {
-                BldCore.error("Failed to download licence for "
-                    + bundle.getSymbolicName() + " " + bundle.getVersion(), e.getCause());
-            }
-        }
-
-        updateManifest(location);
-    }
-
-    private void updateManifest(File location) throws IOException
-    {
-        if (location != null && location.exists())
-        {
-            JarFile f = new JarFile(location, false);
-            try
-            {
-                setBundleInfo(ManifestUtil.buildBundleModelElement(f));
-            }
-            finally
-            {
-                f.close();
-            }
-        }
-    }
-
-    public boolean isSynchronized()
-    {
-        return location == null || location.exists();
-    }
-
-    private static void sync(File local, URI remote, IProgress progress)
-        throws IOException
-    {
-        try
-        {
-            if (remote != null)
-            {
-                if (local != null && !local.exists())
-                {
-                    URL url = remote.toURL();
-                    URLConnection connection = url.openConnection();
-                    int contentLength = connection.getContentLength();
-
-                    progress = progress.newTask(contentLength);
-                    progress.report("Downloading from " + url.getHost());
-
-                    InputStream in = null;
-                    OutputStream out = null;
-                    try
-                    {
-                        URLConnection conn = url.openConnection();
-                        if (conn instanceof HttpURLConnection)
-                        {
-                            HttpURLConnection http = (HttpURLConnection) conn;
-                            http.setConnectTimeout(10000);
-                            http.setReadTimeout(5000);
-                        }
-                        in = conn.getInputStream();
-                        local.getParentFile().mkdirs();
-                        out = new FileOutputStream(local);
-                        stream(in, out, progress);
-                    }
-                    finally
-                    {
-                        if (in != null)
-                        {
-                            in.close();
-                        }
-                        if (out != null)
-                        {
-                            out.close();
-                        }
-                        progress.done();
-                    }
-                }
-            }
-        }
-        catch (IOException e)
-        {
-            local.delete();
-            throw e;
-        }
-    }
-
-    private static void stream(InputStream in, OutputStream out, IProgress progress)
-        throws IOException
-    {
-        byte[] b = new byte[1024];
-        for (;;)
-        {
-            if (progress.isCanceled())
-            {
-                throw new InterruptedIOException("User canceled download");
-            }
-            int r = in.read(b);
-            if (r == -1)
-                break;
-            out.write(b, 0, r);
-            progress.worked(r);
-        }
-
-        out.flush();
-    }
-
-    public IBundleModelElement getBundleInfo()
-    {
-        return bundle;
-    }
-
-    public void setBundleInfo(IBundleModelElement bundle)
-    {
-        if (bundle == null)
-        {
-            if (this.bundle != null)
-            {
-                this.bundle.setParent(null);
-            }
-        }
-        else
-        {
-            bundle.setParent(this);
-        }
-        this.bundle = bundle;
-    }
-
-    public void addSourcePath(Resource path)
-    {
-        ArrayList<Resource> tmp = new ArrayList<Resource>(getSourcePaths());
-        tmp.add(path);
-        sourcePaths = tmp.toArray(new Resource[tmp.size()]);
-    }
-
-    public void removeSourcePath(Resource path)
-    {
-        ArrayList<Resource> tmp = new ArrayList<Resource>(getSourcePaths());
-        if (tmp.remove(path))
-        {
-            sourcePaths = tmp.toArray(new Resource[tmp.size()]);
-        }
-    }
-
-    public Collection<Resource> getSourcePaths()
-    {
-        return Arrays.asList(sourcePaths);
-    }
-
-    public void clearSourcePaths()
-    {
-        sourcePaths = new Resource[0];
-    }
-
-    public void addClasspathEntry(String encodedClasspath)
-    {
-        encodedClasspath = encodedClasspath.trim();
-        ArrayList<String> tmp = new ArrayList<String>(getClasspathEntrys());
-        if (!tmp.contains(encodedClasspath)) {
-            tmp.add(encodedClasspath);
-            classpath = tmp.toArray(new String[tmp.size()]);
-        }
-    }
-
-    public Collection<String> getClasspathEntrys()
-    {
-        return Arrays.asList(classpath);
-    }
-
-    public void removeClasspathEntry(String encodedClasspath)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(getClasspathEntrys());
-        if (tmp.remove(encodedClasspath.trim()))
-        {
-            classpath = tmp.toArray(new String[tmp.size()]);
-        }
-    }
-
-    public File getLocation()
-    {
-        return location;
-    }
-
-    public void setLocation(File location)
-    {
-        this.location = location;
-    }
-
-    public File getSourcePathLocation()
-    {
-        return sourcePathLocation;
-    }
-
-    public void setSourcePathLocation(File location)
-    {
-        this.sourcePathLocation = location;
-    }
-
-    public String getSourceRootPath()
-    {
-        return sourceRootPath;
-    }
-
-    public void setSourceRootPath(String location)
-    {
-        this.sourceRootPath = location;
-    }
-
-    public File getLicencePathLocation()
-    {
-        return licencePathLocation;
-    }
-
-    public void setLicencePathLocation(File licencePathLocation)
-    {
-        this.licencePathLocation = licencePathLocation;
-    }
-
-    public String getElementName()
-    {
-        return bundle.getSymbolicName();
-    }
-
-    public Version getVersion()
-    {
-        return bundle.getVersion();
-    }
-
-    public void setVersion(Version version)
-    {
-        this.bundle.setVersion(version);
-    }
-
-    public String getSymbolicName()
-    {
-        return bundle.getSymbolicName();
-    }
-
-    public Collection<String> getPackages()
-    {
-        return Arrays.asList(packages);
-    }
-
-    public void addPackage(String pkg)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(getPackages());
-        tmp.add(pkg);
-        packages = tmp.toArray(new String[tmp.size()]);
-    }
-
-    public boolean removePackage(String pkg)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(getPackages());
-        if (tmp.remove(pkg))
-        {
-            packages = tmp.toArray(new String[tmp.size()]);
-            return true;
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public IPackageExport findExport(String packageName)
-    {
-        for (IPackageExport e : bundle.getExports())
-        {
-            if (packageName.equals(e.getPackageName()))
-            {
-                return e;
-            }
-        }
-        return null;
-    }
-
-    public IPackageImport findImport(String packageName)
-    {
-        for (IPackageImport i : bundle.getImports())
-        {
-            if (packageName.equals(i.getPackageName()))
-            {
-                return i;
-            }
-        }
-        return null;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "SigilBundle["
-            + (getBundleInfo() == null ? null
-                : (getBundleInfo().getSymbolicName() + ":" + getBundleInfo().getVersion()))
-            + "]";
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == null)
-            return false;
-        if (obj == this)
-            return true;
-
-        if (obj instanceof SigilBundle)
-        {
-            return obj.toString().equals(toString());
-        }
-
-        return false;
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return 31 * toString().hashCode();
-    }
-
-    @Override
-    public SigilBundle clone()
-    {
-        SigilBundle b = (SigilBundle) super.clone();
-        b.bundle = (IBundleModelElement) b.bundle.clone();
-
-        Resource[] newPaths = new Resource[b.sourcePaths.length];
-        System.arraycopy(b.sourcePaths, 0, newPaths, 0, b.sourcePaths.length);
-        b.sourcePaths = newPaths;
-
-        String[] tmp = new String[classpath.length];
-        System.arraycopy(b.classpath, 0, tmp, 0, b.classpath.length);
-        b.classpath = tmp;
-
-        tmp = new String[packages.length];
-        System.arraycopy(b.packages, 0, tmp, 0, b.packages.length);
-        b.packages = tmp;
-
-        return b;
-    }
-
-    public IBundleCapability getBundleCapability()
-    {
-        return new BundleCapability(bundle);
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/BundleModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/BundleModelElement.java
deleted file mode 100644
index de31c2d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/BundleModelElement.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.osgi;
-
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.AbstractCompoundModelElement;
-import org.apache.felix.sigil.common.model.InvalidModelException;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.osgi.framework.Version;
-
-public class BundleModelElement extends AbstractCompoundModelElement implements IBundleModelElement
-{
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 1L;
-    // required obr values
-    private URI updateLocation;
-    private String symbolicName;
-    private Version version = Version.emptyVersion;
-    private IPackageImport[] imports;
-    private IPackageExport[] exports;
-    private IRequiredBundle[] requires;
-    private URI sourceLocation;
-    private String[] classpathElements;
-    private IRequiredBundle fragmentHost;
-
-    // human readable values
-    private String name;
-    private String description;
-    private String category;
-    private URI licenseURI;
-    private URI docURI;
-    private String vendor;
-    private String contactAddress;
-    private String copyright;
-
-    // internal values
-    private String activator;
-    private Set<ILibraryImport> libraries;
-
-    public BundleModelElement()
-    {
-        super("OSGi Bundle");
-        this.imports = new IPackageImport[0];
-        this.exports = new IPackageExport[0];
-        this.requires = new IRequiredBundle[0];
-        this.classpathElements = new String[0];
-        this.libraries = new HashSet<ILibraryImport>();
-    }
-
-    public String getActivator()
-    {
-        return activator;
-    }
-
-    public void setActivator(String activator)
-    {
-        this.activator = activator;
-    }
-
-    public void addLibraryImport(ILibraryImport library)
-    {
-        libraries.add(library);
-    }
-
-    public Set<ILibraryImport> getLibraryImports()
-    {
-        return libraries;
-    }
-
-    public void removeLibraryImport(ILibraryImport library)
-    {
-        libraries.remove(library);
-    }
-
-    public String getCategory()
-    {
-        return category;
-    }
-
-    public void setCategory(String category)
-    {
-        this.category = category;
-    }
-
-    public String getContactAddress()
-    {
-        return contactAddress;
-    }
-
-    public void setContactAddress(String contactAddress)
-    {
-        this.contactAddress = contactAddress;
-    }
-
-    public String getCopyright()
-    {
-        return copyright;
-    }
-
-    public void setCopyright(String copyright)
-    {
-        this.copyright = copyright;
-    }
-
-    public URI getDocURI()
-    {
-        return docURI;
-    }
-
-    public void setDocURI(URI docURI)
-    {
-        this.docURI = docURI;
-    }
-
-    public Collection<IPackageExport> getExports()
-    {
-        return Arrays.asList(exports);
-    }
-
-    public void addExport(IPackageExport packageExport)
-    {
-        HashSet<IPackageExport> tmp = new HashSet<IPackageExport>(getExports());
-        if (tmp.add(packageExport))
-        {
-            exports = tmp.toArray(new IPackageExport[tmp.size()]);
-            packageExport.setParent(this);
-        }
-    }
-
-    public void removeExport(IPackageExport packageExport)
-    {
-        HashSet<IPackageExport> tmp = new HashSet<IPackageExport>(getExports());
-        if (tmp.remove(packageExport))
-        {
-            exports = tmp.toArray(new IPackageExport[tmp.size()]);
-            packageExport.setParent(null);
-        }
-    }
-
-    public Collection<IPackageImport> getImports()
-    {
-        return Arrays.asList(imports);
-    }
-
-    public void addImport(IPackageImport packageImport)
-    {
-        HashSet<IPackageImport> tmp = new HashSet<IPackageImport>(getImports());
-        if (tmp.add(packageImport))
-        {
-            imports = tmp.toArray(new IPackageImport[tmp.size()]);
-            packageImport.setParent(this);
-        }
-    }
-
-    public void removeImport(IPackageImport packageImport)
-    {
-        HashSet<IPackageImport> tmp = new HashSet<IPackageImport>(getImports());
-        if (tmp.remove(packageImport))
-        {
-            imports = tmp.toArray(new IPackageImport[tmp.size()]);
-            packageImport.setParent(null);
-        }
-    }
-
-    public Collection<IRequiredBundle> getRequiredBundles()
-    {
-        return Arrays.asList(requires);
-    }
-
-    public void addRequiredBundle(IRequiredBundle bundle)
-    {
-        HashSet<IRequiredBundle> tmp = new HashSet<IRequiredBundle>(getRequiredBundles());
-        if (tmp.add(bundle))
-        {
-            requires = tmp.toArray(new IRequiredBundle[tmp.size()]);
-            bundle.setParent(this);
-        }
-    }
-
-    public void removeRequiredBundle(IRequiredBundle bundle)
-    {
-        HashSet<IRequiredBundle> tmp = new HashSet<IRequiredBundle>(getRequiredBundles());
-        if (tmp.remove(bundle))
-        {
-            requires = tmp.toArray(new IRequiredBundle[tmp.size()]);
-            bundle.setParent(null);
-        }
-    }
-
-    public URI getLicenseURI()
-    {
-        return licenseURI;
-    }
-
-    public void setLicenseURI(URI licenseURI)
-    {
-        this.licenseURI = licenseURI;
-    }
-
-    public URI getSourceLocation()
-    {
-        return sourceLocation;
-    }
-
-    public void setSourceLocation(URI sourceLocation)
-    {
-        this.sourceLocation = sourceLocation;
-    }
-
-    public String getSymbolicName()
-    {
-        return symbolicName;
-    }
-
-    public void setSymbolicName(String symbolicName)
-    {
-        this.symbolicName = symbolicName == null ? null : symbolicName.intern();
-    }
-
-    public URI getUpdateLocation()
-    {
-        return updateLocation;
-    }
-
-    public void setUpdateLocation(URI updateLocation)
-    {
-        this.updateLocation = updateLocation;
-    }
-
-    public String getVendor()
-    {
-        return vendor;
-    }
-
-    public void setVendor(String vendor)
-    {
-        this.vendor = vendor;
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    public void setVersion(Version version)
-    {
-        this.version = version == null ? Version.emptyVersion : version;
-    }
-
-    public void checkValid() throws InvalidModelException
-    {
-        if (symbolicName == null)
-            throw new InvalidModelException(this, "Bundle symbolic name not set");
-    }
-
-    public BundleModelElement clone()
-    {
-        BundleModelElement bd = (BundleModelElement) super.clone();
-
-        bd.imports = new IPackageImport[imports.length];
-        bd.exports = new IPackageExport[exports.length];
-        bd.requires = new IRequiredBundle[requires.length];
-
-        for (int i = 0; i < imports.length; i++)
-        {
-            bd.imports[i] = (IPackageImport) imports[i].clone();
-        }
-
-        for (int i = 0; i < exports.length; i++)
-        {
-            bd.exports[i] = (IPackageExport) exports[i].clone();
-        }
-
-        for (int i = 0; i < requires.length; i++)
-        {
-            bd.requires[i] = (IRequiredBundle) requires[i].clone();
-        }
-
-        return bd;
-    }
-
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer();
-
-        buf.append("BundleModelElement[");
-        buf.append(symbolicName);
-        buf.append(", ");
-        buf.append(version);
-        buf.append("]");
-
-        return buf.toString();
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public void setName(String name)
-    {
-        this.name = name;
-    }
-
-    public String getDescription()
-    {
-        return description;
-    }
-
-    public void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    public void addClasspath(String path)
-    {
-        HashSet<String> tmp = new HashSet<String>(Arrays.asList(classpathElements));
-        if (tmp.add(path))
-        {
-            classpathElements = tmp.toArray(new String[tmp.size()]);
-        }
-    }
-
-    public Collection<String> getClasspaths()
-    {
-        return classpathElements.length == 0 ? Collections.singleton(".")
-            : Arrays.asList(classpathElements);
-    }
-
-    public void removeClasspath(String path)
-    {
-        HashSet<String> tmp = new HashSet<String>(Arrays.asList(classpathElements));
-        if (tmp.remove(path))
-        {
-            classpathElements = tmp.toArray(new String[tmp.size()]);
-        }
-    }
-
-    public IRequiredBundle getFragmentHost()
-    {
-        return fragmentHost;
-    }
-
-    public void setFragmentHost(IRequiredBundle fragmentHost)
-    {
-        this.fragmentHost = fragmentHost;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExport.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExport.java
deleted file mode 100644
index 88efb5e..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageExport.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.osgi;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.AbstractModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.osgi.framework.Version;
-
-public class PackageExport extends AbstractModelElement implements IPackageExport
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private String name;
-    private Version version;
-    private String[] uses = new String[0];
-
-    public PackageExport()
-    {
-        super("OSGi Package Export");
-    }
-
-    public String getPackageName()
-    {
-        return name;
-    }
-
-    public void setPackageName(String packageName)
-    {
-        this.name = packageName;
-    }
-
-    public Version getVersion()
-    {
-        Version result;
-        if (version != null)
-        {
-            result = version;
-        }
-        else
-        {
-            ISigilBundle owningBundle = getAncestor(ISigilBundle.class);
-            if (owningBundle == null)
-            {
-                result = Version.emptyVersion;
-            }
-            else
-            {
-                result = owningBundle.getVersion();
-            }
-        }
-        return result;
-    }
-
-    public Version getRawVersion()
-    {
-        return version;
-    }
-
-    public void setVersion(Version version)
-    {
-        this.version = version; // == null ? Version.emptyVersion : version;
-    }
-
-    public void addUse(String use)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(getUses());
-        tmp.add(use);
-        uses = tmp.toArray(new String[tmp.size()]);
-    }
-
-    public Collection<String> getUses()
-    {
-        return Arrays.asList(uses);
-    }
-
-    public void removeUse(String use)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(getUses());
-        tmp.remove(use);
-        uses = tmp.toArray(new String[tmp.size()]);
-    }
-
-    @Override
-    public String toString()
-    {
-        return "PackageExport[" + name + ":" + version + ":uses=" + uses + "]";
-    }
-
-    public void setUses(Collection<String> uses)
-    {
-        ArrayList<String> tmp = new ArrayList<String>(uses);
-        this.uses = tmp.toArray(new String[tmp.size()]);
-    }
-
-    public int compareTo(IPackageExport o)
-    {
-        int i = name.compareTo(o.getPackageName());
-
-        if (i == 0)
-        {
-            i = compareVersion(o.getVersion());
-        }
-
-        return i;
-    }
-
-    private int compareVersion(Version other)
-    {
-        if (version == null)
-        {
-            if (other == null)
-            {
-                return 0;
-            }
-            else
-            {
-                return 1;
-            }
-        }
-        else
-        {
-            if (other == null)
-            {
-                return -1;
-            }
-            else
-            {
-                return version.compareTo(other);
-            }
-        }
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == this)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof PackageExport)
-        {
-            PackageExport e = (PackageExport) obj;
-            return (name == null ? e.name == null : name.equals(e.name))
-                && (version == null ? e.version == null : version.equals(e.version));
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hc = name.hashCode();
-
-        if (version != null)
-            hc *= version.hashCode();
-
-        return hc;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageImport.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageImport.java
deleted file mode 100644
index 4d5ea93..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/PackageImport.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.osgi;
-
-import org.apache.felix.sigil.common.model.AbstractModelElement;
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.InvalidModelException;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public class PackageImport extends AbstractModelElement implements IPackageImport
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private String name;
-    private VersionRange versions = VersionRange.ANY_VERSION;
-
-    // resolution directive
-    private boolean optional;
-    private boolean dependency = true;
-    private OSGiImport osgiImport = OSGiImport.AUTO;
-
-    public PackageImport()
-    {
-        super("OSGi Package Import");
-    }
-
-    @Override
-    public void checkValid() throws InvalidModelException
-    {
-        if (name == null)
-        {
-            throw new InvalidModelException(this, "Package name must be set");
-        }
-    }
-
-    public boolean isOptional()
-    {
-        return optional;
-    }
-
-    public void setOptional(boolean optional)
-    {
-        this.optional = optional;
-    }
-
-    public boolean isDependency()
-    {
-        return dependency;
-    }
-
-    public void setDependency(boolean dependency)
-    {
-        this.dependency = dependency;
-    }
-
-    public OSGiImport getOSGiImport()
-    {
-        return osgiImport;
-    }
-
-    public void setOSGiImport(OSGiImport osgiHeader)
-    {
-        this.osgiImport = osgiHeader;
-    }
-
-    public String getPackageName()
-    {
-        return name;
-    }
-
-    public void setPackageName(String name)
-    {
-        this.name = name;
-    }
-
-    public VersionRange getVersions()
-    {
-        return versions;
-    }
-
-    public void setVersions(VersionRange versions)
-    {
-        this.versions = versions == null ? VersionRange.ANY_VERSION : versions;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "Package-Import[" + name + ":" + versions + ":"
-            + (optional ? "optional" : "mandatory") + "]";
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof PackageImport)
-        {
-            PackageImport pi = (PackageImport) obj;
-            return name.equals(pi.name) && versions.equals(pi.versions)
-                && optional == pi.optional;
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hc = name.hashCode() * versions.hashCode();
-
-        if (optional)
-        {
-            hc *= -1;
-        }
-
-        return hc;
-    }
-
-    public boolean accepts(ICapabilityModelElement provider)
-    {
-        if (provider instanceof IPackageExport)
-        {
-            IPackageExport pe = (IPackageExport) provider;
-            return pe.getPackageName().equals(name) && versions.contains(pe.getVersion());
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public int compareTo(IPackageImport o)
-    {
-        int i = name.compareTo(o.getPackageName());
-
-        if (i == 0)
-        {
-            i = compareVersion(o.getVersions());
-        }
-
-        return i;
-    }
-
-    private int compareVersion(VersionRange range)
-    {
-        if (versions == null)
-        {
-            if (range == null)
-            {
-                return 0;
-            }
-            else
-            {
-                return 1;
-            }
-        }
-        else
-        {
-            if (range == null)
-            {
-                return -1;
-            }
-            else
-            {
-                return versions.getCeiling().compareTo(range.getCeiling());
-            }
-        }
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/RequiredBundle.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/RequiredBundle.java
deleted file mode 100644
index 187e040..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/internal/model/osgi/RequiredBundle.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.internal.model.osgi;
-
-import org.apache.felix.sigil.common.model.AbstractModelElement;
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.eclipse.IBundleCapability;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public class RequiredBundle extends AbstractModelElement implements IRequiredBundle
-{
-    private static final long serialVersionUID = 1L;
-
-    private String symbolicName;
-    private VersionRange versions = VersionRange.ANY_VERSION;
-    private boolean optional;
-
-    public RequiredBundle()
-    {
-        super("OSGi Bundle Requirement");
-    }
-
-    public String getSymbolicName()
-    {
-        return symbolicName;
-    }
-
-    public void setSymbolicName(String symbolicName)
-    {
-        this.symbolicName = symbolicName == null ? null : symbolicName.intern();
-    }
-
-    public VersionRange getVersions()
-    {
-        return versions;
-    }
-
-    public void setVersions(VersionRange versions)
-    {
-        this.versions = versions == null ? VersionRange.ANY_VERSION : versions;
-    }
-
-    public boolean isOptional()
-    {
-        return optional;
-    }
-
-    public void setOptional(boolean optional)
-    {
-        this.optional = optional;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "RequiredBundle[" + symbolicName + ":" + versions + ":"
-            + (optional ? "optional" : "mandatory") + "]";
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof RequiredBundle)
-        {
-            RequiredBundle rb = (RequiredBundle) obj;
-            return symbolicName.equals(rb.symbolicName) && versions.equals(rb.versions)
-                && optional == rb.optional;
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hc = symbolicName.hashCode() * versions.hashCode();
-
-        if (optional)
-        {
-            hc *= -1;
-        }
-
-        return hc;
-    }
-
-    public boolean accepts(ICapabilityModelElement provider)
-    {
-        if (provider instanceof IBundleCapability)
-        {
-            IBundleCapability bndl = (IBundleCapability) provider;
-            return symbolicName.equals(bndl.getSymbolicName())
-                && versions.contains(bndl.getVersion());
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public int compareTo(IRequiredBundle o)
-    {
-        int i = symbolicName.compareTo(o.getSymbolicName());
-
-        if (i == 0)
-        {
-            i = compareVersion(o.getVersions());
-        }
-
-        return i;
-    }
-
-    private int compareVersion(VersionRange range)
-    {
-        if (versions == null)
-        {
-            if (range == null)
-            {
-                return 0;
-            }
-            else
-            {
-                return 1;
-            }
-        }
-        else
-        {
-            if (range == null)
-            {
-                return -1;
-            }
-            else
-            {
-                return versions.getCeiling().compareTo(range.getCeiling());
-            }
-        }
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicenseManager.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicenseManager.java
deleted file mode 100644
index ecc57a9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicenseManager.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.licence;
-
-import java.util.Set;
-import java.util.regex.Pattern;
-
-public interface ILicenseManager
-{
-    void addLicense(String name, Pattern pattern);
-
-    void removeLicense(String name);
-
-    Set<String> getLicenseNames();
-
-    Pattern getLicensePattern(String name);
-
-    ILicensePolicy getDefaultPolicy();
-    //ILicensePolicy getPolicy(ISigilProjectModel project);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicensePolicy.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicensePolicy.java
deleted file mode 100644
index 450e6f0..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/licence/ILicensePolicy.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.licence;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.progress.IProgress;
-
-public interface ILicensePolicy
-{
-    void addAllowed(String licenseName);
-
-    void removeAllowed(String licenseName);
-
-    boolean accept(ISigilBundle bundle);
-
-    void save(IProgress progress);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/BundleResolver.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/BundleResolver.java
deleted file mode 100644
index 77b740d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/BundleResolver.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.progress.IProgress;
-import org.apache.felix.sigil.common.repository.AbstractRepositoryManager;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IBundleResolver;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.IResolutionMonitor;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.osgi.framework.Version;
-
-public class BundleResolver implements IBundleResolver
-{
-
-    private static class BundleOrderComparator implements Comparator<ISigilBundle>
-    {
-        private IModelElement requirement;
-
-        public BundleOrderComparator(IModelElement requirement)
-        {
-            this.requirement = requirement;
-        }
-
-        public int compare(ISigilBundle o1, ISigilBundle o2)
-        {
-            int c = compareVersions(o1, o2);
-
-            if (c == 0)
-            {
-                c = compareImports(o1, o2);
-            }
-
-            return c;
-        }
-
-        private int compareImports(ISigilBundle o1, ISigilBundle o2)
-        {
-            int c1 = o1.getBundleInfo().getImports().size();
-            int c2 = o2.getBundleInfo().getImports().size();
-
-            if (c1 < c2)
-            {
-                return -1;
-            }
-            else if (c2 > c1)
-            {
-                return 1;
-            }
-            else
-            {
-                return 0;
-            }
-        }
-
-        private int compareVersions(ISigilBundle o1, ISigilBundle o2)
-        {
-            Version v1 = null;
-            Version v2 = null;
-            if (requirement instanceof IPackageImport)
-            {
-                v1 = findExportVersion((IPackageImport) requirement, o1);
-                v2 = findExportVersion((IPackageImport) requirement, o2);
-            }
-            else if (requirement instanceof IRequiredBundle)
-            {
-                v1 = o1.getBundleInfo().getVersion();
-                v2 = o1.getBundleInfo().getVersion();
-            }
-
-            if (v1 == null)
-            {
-                if (v2 == null)
-                {
-                    return 0;
-                }
-                else
-                {
-                    return 1;
-                }
-            }
-            else
-            {
-                if (v2 == null)
-                {
-                    return -1;
-                }
-                else
-                {
-                    return v2.compareTo(v1);
-                }
-            }
-        }
-
-        private Version findExportVersion(IPackageImport pi, ISigilBundle o1)
-        {
-            for (IPackageExport pe : o1.getBundleInfo().getExports())
-            {
-                if (pi.getPackageName().equals(pi.getPackageName()))
-                {
-                    return pe.getVersion();
-                }
-            }
-
-            return null;
-        }
-
-    }
-
-    private static class ResolutionContext
-    {
-        private final IModelElement root;
-        private final ResolutionConfig config;
-        private final IResolutionMonitor monitor;
-
-        private final Resolution resolution = new Resolution();
-        private final LinkedList<IModelElement> requirements = new LinkedList<IModelElement>();
-
-        public ResolutionContext(IModelElement root, ResolutionConfig config, IResolutionMonitor monitor)
-        {
-            this.root = root;
-            this.config = config;
-            this.monitor = monitor;
-        }
-
-        public boolean isValid()
-        {
-            return resolution.isSuccess();
-        }
-
-        public void setValid(boolean valid)
-        {
-            resolution.setSuccess(valid);
-        }
-
-        public ResolutionException newResolutionException()
-        {
-            return new ResolutionException(root,
-                requirements.toArray(new IModelElement[requirements.size()]));
-        }
-
-        public void startRequirement(IRequirementModelElement element)
-        {
-            requirements.add(element);
-            monitor.startResolution(element);
-        }
-
-        public void endRequirement(IRequirementModelElement element)
-        {
-            ISigilBundle provider = resolution.getProvider(element);
-
-            setValid(provider != null || element.isOptional() || config.isIgnoreErrors());
-
-            if (isValid())
-            {
-                // only clear stack if valid
-                // else use it as an aid to trace errors
-                requirements.remove(element);
-            }
-
-            monitor.endResolution(element, provider);
-        }
-    }
-
-    private static class Resolution implements IResolution
-    {
-        private Map<ISigilBundle, List<IModelElement>> providees = new HashMap<ISigilBundle, List<IModelElement>>();
-        private Map<IModelElement, ISigilBundle> providers = new HashMap<IModelElement, ISigilBundle>();
-        private boolean success = true; // assume success
-
-        boolean addProvider(IModelElement element, ISigilBundle provider)
-        {
-            providers.put(element, provider);
-
-            List<IModelElement> requirements = providees.get(provider);
-
-            boolean isNewProvider = requirements == null;
-
-            if (isNewProvider)
-            {
-                requirements = new ArrayList<IModelElement>();
-                providees.put(provider, requirements);
-            }
-
-            requirements.add(element);
-
-            return isNewProvider;
-        }
-
-        void removeProvider(IModelElement element, ISigilBundle provider)
-        {
-            providers.remove(element);
-            List<IModelElement> e = providees.get(provider);
-            e.remove(element);
-            if (e.isEmpty())
-            {
-                providees.remove(provider);
-            }
-        }
-
-        void setSuccess(boolean success)
-        {
-            this.success = success;
-        }
-
-        public boolean isSuccess()
-        {
-            return success;
-        }
-
-        public ISigilBundle getProvider(IModelElement requirement)
-        {
-            return providers.get(requirement);
-        }
-
-        public Set<ISigilBundle> getBundles()
-        {
-            return providees.keySet();
-        }
-
-        public List<IModelElement> getMatchedRequirements(ISigilBundle bundle)
-        {
-            return providees.get(bundle);
-        }
-
-        public boolean isSynchronized()
-        {
-            for (ISigilBundle b : getBundles())
-            {
-                if (!b.isSynchronized())
-                {
-                    return false;
-                }
-            }
-
-            return true;
-        }
-
-        public void synchronize(IProgress progress)
-        {
-            Set<ISigilBundle> bundles = getBundles();
-            progress = progress.newTask(bundles.size()*100);
-
-            for (ISigilBundle b : bundles)
-            {
-                if (progress.isCanceled())
-                {
-                    break;
-                }
-
-                try
-                {
-                    b.synchronize(progress.newChild(100));
-                }
-                catch (IOException e)
-                {
-                    BldCore.error("Failed to synchronize " + b, e);
-                }
-            }
-        }
-    }
-
-    private static final IResolutionMonitor NULL_MONITOR = new IResolutionMonitor()
-    {
-        public void endResolution(IModelElement requirement, ISigilBundle sigilBundle)
-        {
-        }
-
-        public boolean isCanceled()
-        {
-            return false;
-        }
-
-        public void startResolution(IModelElement requirement)
-        {
-        }
-    };
-
-    private static final Comparator<IRequirementModelElement> REQUIREMENT_COMPARATOR = new Comparator<IRequirementModelElement>()
-    {
-        public int compare(IRequirementModelElement o1, IRequirementModelElement o2)
-        {
-            if (o1 instanceof IPackageImport)
-            {
-                if (o2 instanceof IPackageImport)
-                {
-                    return 0;
-                }
-                else
-                {
-                    return -1;
-                }
-            }
-            else
-            // assumes only alternative is IRequiredBundle
-            {
-                if (o2 instanceof IRequiredBundle)
-                {
-                    return 0;
-                }
-                else
-                {
-                    return 1;
-                }
-            }
-        }
-    };
-
-    private final AbstractRepositoryManager repositoryManager;
-
-    public BundleResolver(AbstractRepositoryManager repositoryManager)
-    {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public IResolution resolve(IModelElement element, ResolutionConfig config,
-        IResolutionMonitor monitor) throws ResolutionException
-    {
-        if (monitor == null)
-        {
-            monitor = NULL_MONITOR;
-        }
-        ResolutionContext ctx = new ResolutionContext(element, config, monitor);
-
-        resolveElement(element, ctx);
-
-        if (!ctx.isValid())
-        {
-            throw ctx.newResolutionException();
-        }
-
-        return ctx.resolution;
-    }
-
-    private void resolveElement(IModelElement element, ResolutionContext ctx)
-        throws ResolutionException
-    {
-        if (ctx.isValid())
-        {
-            for (IRequirementModelElement req : findRequirements(element, ctx))
-            {
-                if (ctx.monitor.isCanceled())
-                    break;
-                resolveRequirement(req, ctx);
-            }
-        }
-    }
-
-    private List<IRequirementModelElement> findRequirements(IModelElement element,
-        final ResolutionContext ctx)
-    {
-        final LinkedList<IRequirementModelElement> reqs = new LinkedList<IRequirementModelElement>();
-
-        if (element instanceof IRequirementModelElement)
-        {
-            reqs.add((IRequirementModelElement) element);
-        }
-        else if (element instanceof ICompoundModelElement)
-        {
-            ICompoundModelElement compound = (ICompoundModelElement) element;
-            compound.visit(new IModelWalker()
-            {
-                public boolean visit(IModelElement element)
-                {
-                    if (element instanceof IRequirementModelElement)
-                    {
-                        reqs.add((IRequirementModelElement) element);
-                    }
-                    else if (element instanceof ILibrary)
-                    {
-                        ILibrary lib = repositoryManager.resolveLibrary((ILibraryImport) element);
-                        reqs.addAll(lib.getImports());
-                    }
-
-                    return !ctx.monitor.isCanceled();
-                }
-            });
-        }
-
-        if (!ctx.monitor.isCanceled())
-        {
-            Collections.sort(reqs, REQUIREMENT_COMPARATOR);
-        }
-        return reqs;
-    }
-
-    private void resolveRequirement(IRequirementModelElement requirement,
-        ResolutionContext ctx) throws ResolutionException
-    {
-        if (ctx.config.isOptional() || !requirement.isOptional())
-        {
-            ctx.startRequirement(requirement);
-
-            try
-            {
-                if (!findInContext(requirement, ctx))
-                {
-                    findInRepositories(requirement, ctx);
-                }
-            }
-            finally
-            {
-                ctx.endRequirement(requirement);
-            }
-        }
-    }
-
-    private boolean findInContext(final IRequirementModelElement requirement,
-        final ResolutionContext ctx)
-    {
-        for (final ISigilBundle b : ctx.resolution.providees.keySet())
-        {
-            b.visit(new IModelWalker()
-            {
-                public boolean visit(IModelElement element)
-                {
-                    if (element instanceof ICapabilityModelElement)
-                    {
-                        if (requirement.accepts((ICapabilityModelElement) element))
-                        {
-                            ctx.resolution.addProvider(requirement, b);
-                            return false;
-                        }
-                    }
-                    return !ctx.monitor.isCanceled();
-                }
-
-            });
-        }
-
-        return ctx.resolution.getProvider(requirement) != null;
-    }
-
-    private void findInRepositories(IRequirementModelElement requirement,
-        ResolutionContext ctx) throws ResolutionException
-    {
-        int[] priorities = repositoryManager.getPriorityLevels();
-
-        outer: for (int i = 0; i < priorities.length; i++)
-        {
-            List<ISigilBundle> providers = findProvidersAtPriority(priorities[i],
-                requirement, ctx);
-
-            if (!providers.isEmpty() && !ctx.monitor.isCanceled())
-            {
-                if (providers.size() > 1)
-                {
-                    Collections.sort(providers, new BundleOrderComparator(requirement));
-                }
-
-                for (ISigilBundle provider : providers)
-                {
-                    // reset validity - if there's another provider it can still be solved
-                    ctx.setValid(true);
-                    if (ctx.resolution.addProvider(requirement, provider))
-                    {
-                        if (ctx.config.isDependents())
-                        {
-                            resolveElement(provider, ctx);
-                        }
-
-                        if (ctx.isValid())
-                        {
-                            break outer;
-                        }
-                        else
-                        {
-                            ctx.resolution.removeProvider(requirement, provider);
-                        }
-                    }
-                    else
-                    {
-                        break outer;
-                    }
-                }
-            }
-        }
-    }
-
-    private List<ISigilBundle> findProvidersAtPriority(int i,
-        IRequirementModelElement requirement, ResolutionContext ctx)
-        throws ResolutionException
-    {
-        ArrayList<ISigilBundle> providers = new ArrayList<ISigilBundle>();
-
-        for (IBundleRepository rep : repositoryManager.getRepositories(i))
-        {
-            if (ctx.monitor.isCanceled())
-            {
-                break;
-            }
-            providers.addAll(findProviders(requirement, ctx.config, rep));
-        }
-
-        return providers;
-    }
-
-    private Collection<ISigilBundle> findProviders(IRequirementModelElement requirement,
-        ResolutionConfig config, IBundleRepository rep) throws ResolutionException
-    {
-        ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        if (requirement instanceof IPackageImport)
-        {
-            IPackageImport pi = (IPackageImport) requirement;
-            found.addAll(rep.findAllProviders(pi, config.getOptions()));
-        }
-        else if (requirement instanceof IRequiredBundle)
-        {
-            IRequiredBundle rb = (IRequiredBundle) requirement;
-            found.addAll(rep.findAllProviders(rb, config.getOptions()));
-        }
-        else
-        {
-            // shouldn't get here - developer error if do
-            // use isRequirement before getting anywhere near this logic...
-            throw new IllegalStateException("Invalid requirement type " + requirement);
-        }
-
-        return found;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/DirectoryHelper.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/DirectoryHelper.java
deleted file mode 100644
index ec6179d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/DirectoryHelper.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.jar.JarFile;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.util.ManifestUtil;
-
-public class DirectoryHelper
-{
-    public static void scanBundles(AbstractBundleRepository repository,
-        List<ISigilBundle> bundles, File dir, File source, boolean recursive)
-    {
-        if (dir.exists())
-        {
-            for (File f : dir.listFiles())
-            {
-                if (f.isDirectory())
-                {
-                    if (recursive)
-                    {
-                        scanBundles(repository, bundles, f, source, recursive);
-                    }
-                }
-                else if (f.isFile() && f.getName().endsWith(".jar"))
-                {
-                    JarFile jar = null;
-                    try
-                    {
-                        jar = new JarFile(f, false);
-                        ISigilBundle bundle = buildBundle(repository, jar,
-                            f);
-                        if (bundle != null)
-                        {
-                            bundle.setSourcePathLocation(source);
-                            // TODO shouldn't be hard coded
-                            bundle.setSourceRootPath("src");
-                            bundles.add(bundle);
-                        }
-                    }
-                    catch (IOException e)
-                    {
-                        BldCore.error("Failed to read jar file " + f, e);
-                    }
-                    catch (ModelElementFactoryException e)
-                    {
-                        BldCore.error("Failed to build bundle " + f, e);
-                    }
-                    catch (RuntimeException e)
-                    {
-                        BldCore.error("Failed to build bundle " + f, e);
-                    }
-                    finally
-                    {
-                        if (jar != null)
-                        {
-                            try
-                            {
-                                jar.close();
-                            }
-                            catch (IOException e)
-                            {
-                                BldCore.error("Failed to close jar file", e);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    private static ISigilBundle buildBundle(AbstractBundleRepository repository,
-        JarFile jar, File f) throws IOException
-    {
-        IBundleModelElement info = ManifestUtil.buildBundleModelElement(jar);
-
-        ISigilBundle bundle = null;
-
-        if (info != null)
-        {
-            bundle = ModelElementFactory.getInstance().newModelElement(ISigilBundle.class);
-            bundle.addChild(info);
-            bundle.setLocation(f);
-        }
-
-        return bundle;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepository.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepository.java
deleted file mode 100644
index b20c32c..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepository.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.File;
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-
-public class FileSystemRepository extends AbstractBundleRepository
-{
-
-    private ArrayList<ISigilBundle> bundles;
-    private File dir;
-    private boolean recurse;
-
-    public FileSystemRepository(String id, File dir, boolean recurse)
-    {
-        super(id);
-        this.dir = dir;
-        this.recurse = recurse;
-    }
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        synchronized (this)
-        {
-            if (bundles == null)
-            {
-                bundles = new ArrayList<ISigilBundle>();
-                DirectoryHelper.scanBundles(this, bundles, dir, null, recurse);
-            }
-        }
-
-        for (ISigilBundle b : bundles)
-        {
-            if (!visitor.visit(b))
-            {
-                break;
-            }
-        }
-    }
-
-    public void refresh()
-    {
-        synchronized (this)
-        {
-            bundles = null;
-        }
-
-        notifyChange();
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepositoryProvider.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepositoryProvider.java
deleted file mode 100644
index 0926558..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/FileSystemRepositoryProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.File;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-public class FileSystemRepositoryProvider implements IRepositoryProvider
-{
-
-    public IBundleRepository createRepository(String id, Properties preferences)
-        throws RepositoryException
-    {
-        String dirStr = preferences.getProperty("dir");
-        File dir = new File(dirStr);
-        if (!dir.isDirectory())
-        {
-            throw new RepositoryException("directory '" + dir + "' does not exist.");
-        }
-        boolean recurse = Boolean.valueOf(preferences.getProperty("recurse"));
-        return new FileSystemRepository(id, dir, recurse);
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepository.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepository.java
deleted file mode 100644
index 4c0a6e3..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepository.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.util.ManifestUtil;
-import org.osgi.framework.Version;
-
-public class SystemRepository extends AbstractBundleRepository
-{
-
-    private final String packages;
-    private final File frameworkPath;
-
-    public SystemRepository(String id, File frameworkPath, String packages)
-    {
-        super(id);
-        this.frameworkPath = frameworkPath;
-        this.packages = packages;
-    }
-
-    private static ISigilBundle systemBundle;
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        ISigilBundle bundle = loadSystemBundle();
-
-        if (bundle != null)
-        {
-            visitor.visit(bundle);
-        }
-    }
-
-    private synchronized ISigilBundle loadSystemBundle()
-    {
-        if (systemBundle == null)
-        {
-            systemBundle = ModelElementFactory.getInstance().newModelElement(
-                ISigilBundle.class);
-
-            JarFile jar = null;
-
-            try
-            {
-                final IBundleModelElement info;
-                if (frameworkPath != null)
-                {
-                    systemBundle.setLocation(frameworkPath);
-                    jar = new JarFile(frameworkPath,false);
-                    info = ManifestUtil.buildBundleModelElement(jar);
-                }
-                else
-                {
-                    info = ModelElementFactory.getInstance().newModelElement(
-                        IBundleModelElement.class);
-                }
-
-                info.setSymbolicName("system bundle");
-                info.setName("Sigil system bundle");
-
-                applyProfile(info);
-                systemBundle.addChild(info);
-            }
-            catch (IOException e)
-            {
-                BldCore.error("Failed to read jar file " + frameworkPath, e);
-            }
-            catch (ModelElementFactoryException e)
-            {
-                BldCore.error("Failed to build bundle " + frameworkPath, e);
-            }
-            catch (RuntimeException e)
-            {
-                BldCore.error("Failed to build bundle " + frameworkPath, e);
-            }
-            finally
-            {
-                if (jar != null)
-                {
-                    try
-                    {
-                        jar.close();
-                    }
-                    catch (IOException e)
-                    {
-                        BldCore.error("Failed to close jar file", e);
-                    }
-                }
-            }
-        }
-
-        return systemBundle;
-    }
-
-    private static final Pattern attrPattern = Pattern.compile("(.*?)=\"?(.*?)\"?$");
-    
-    private void applyProfile(IBundleModelElement info)
-    {
-        if (packages != null)
-        {
-            String version = null;
-            for (String name : packages.split(";\\s*"))
-            {
-                Matcher m = attrPattern.matcher(name);
-                if ( m.matches() ) {                    
-                    if ("version".equals(m.group(1))) {
-                        version = m.group(2);
-                    }
-                }
-                else {
-                    IPackageExport pe = ModelElementFactory.getInstance().newModelElement(
-                        IPackageExport.class);
-                    pe.setPackageName(name);
-                    info.addExport(pe);
-                }
-            }
-            
-            if ( version != null ) {
-                Version v = VersionTable.getVersion(version);
-                for(IPackageExport pe : info.getExports()) {
-                    pe.setVersion(v);
-                }
-            }
-        }
-    }
-
-    public synchronized void refresh()
-    {
-        systemBundle = null;
-        notifyChange();
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepositoryProvider.java b/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepositoryProvider.java
deleted file mode 100644
index 27ed3b3..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/core/repository/SystemRepositoryProvider.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.core.repository;
-
-import java.io.File;
-import java.io.IOException;
-
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.config.BldUtil;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-public class SystemRepositoryProvider implements IRepositoryProvider
-{
-
-    public IBundleRepository createRepository(String id, Properties properties)
-        throws RepositoryException
-    {
-        String fw = properties.getProperty("framework");
-        File frameworkPath = fw == null ? null : new File(fw);
-        String extraPkgs = properties.getProperty("packages");
-        String profile = properties.getProperty("profile");
-
-        try
-        {
-            String pkgs = readSystemPackages(profile);
-            
-            if ( extraPkgs != null ) {
-                pkgs += "," + extraPkgs;
-            }
-            
-            return new SystemRepository(id, frameworkPath, pkgs);
-        }
-        catch (IOException e)
-        {
-            throw new RepositoryException("Failed to load profile", e);
-        }
-    }
-    
-    public static String readSystemPackages(String name) throws IOException {
-        Properties p = readProperties();
-        
-        String key = systemPackagesKey(name);
-        
-        return BldUtil.expand(p.getProperty(key), p);
-    }
-
-    public static Properties readProperties() throws IOException
-    {
-
-        String profilePath = "profiles/jvm-packages.properties";
-        InputStream in = SystemRepositoryProvider.class.getClassLoader().getResourceAsStream(
-            profilePath);
-
-        if (in == null)
-            throw new IllegalStateException("Missing jvm packages: " + profilePath);
-
-        Properties p = new Properties();
-        
-        p.load(in);
-
-        return p;
-    }
-    
-    private static String systemPackagesKey(String name) {
-        if (name == null)
-        {
-            String version = System.getProperty("java.specification.version");
-            name = "jre-" + version;
-        }
-        
-        return name;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractCompoundModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractCompoundModelElement.java
deleted file mode 100644
index 2bbf575..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractCompoundModelElement.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-public abstract class AbstractCompoundModelElement extends AbstractModelElement implements ICompoundModelElement
-{
-
-    private static final long serialVersionUID = 1L;
-
-    public AbstractCompoundModelElement(String description)
-    {
-        super(description);
-    }
-
-    public boolean addChild(IModelElement child) throws InvalidModelException
-    {
-        return support.addChild(child);
-    }
-
-    public boolean removeChild(IModelElement child)
-    {
-        return support.removeChild(child);
-    }
-
-    public IModelElement[] children()
-    {
-        return support.children();
-    }
-
-    private static final ThreadLocal<Map<IModelWalker, Set<IModelElement>>> walkedLocal = new ThreadLocal<Map<IModelWalker, Set<IModelElement>>>();
-
-    public void visit(IModelWalker walker)
-    {
-        if (walker.visit(this))
-        {
-            Map<IModelWalker, Set<IModelElement>> walked = walkedLocal.get();
-            boolean delete = false;
-
-            if (walked == null)
-            {
-                walked = new HashMap<IModelWalker, Set<IModelElement>>();
-                walkedLocal.set(walked);
-            }
-
-            Set<IModelElement> check = walked.get(walker);
-
-            if (check == null)
-            {
-                delete = true;
-                check = new HashSet<IModelElement>();
-            }
-
-            check.add(this);
-
-            try
-            {
-                for (IModelElement e : children())
-                {
-                    if (!check.contains(e) && walker.visit(e))
-                    {
-                        check.add(e);
-                        if (e instanceof ICompoundModelElement)
-                        {
-                            ICompoundModelElement c = (ICompoundModelElement) e;
-                            c.visit(walker);
-                        }
-                    }
-                }
-            }
-            finally
-            {
-                if (delete)
-                {
-                    walked.remove(walker);
-
-                    if (walked.isEmpty())
-                    {
-                        walkedLocal.set(null);
-                    }
-                }
-            }
-        }
-    }
-
-    public Set<Class<? extends IModelElement>> getOptionalChildren()
-    {
-        return support.getChildrenTypes(false);
-    }
-
-    public Set<Class<? extends IModelElement>> getRequiredChildren()
-    {
-        return support.getChildrenTypes(true);
-    }
-
-    public <T extends IModelElement> T[] childrenOfType(Class<T> type)
-    {
-        return support.childrenOfType(type);
-    }
-
-    @Override
-    public void checkValid() throws InvalidModelException
-    {
-        super.checkValid();
-
-        for (IModelElement e : support.children())
-        {
-            e.checkValid();
-        }
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractModelElement.java
deleted file mode 100644
index ca2afe4..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/AbstractModelElement.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-public abstract class AbstractModelElement implements IModelElement
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private IModelElement parent;
-
-    private String description;
-    private transient Map<Object, Object> meta;
-    private Map<Serializable, Serializable> serializedMeta;
-    private OverrideOptions override;
-
-    protected ModelElementSupport support;
-
-    public AbstractModelElement(String description)
-    {
-        support = new ModelElementSupport(this);
-        this.description = description.intern();
-    }
-
-    public String getElementDescription()
-    {
-        return description;
-    }
-
-    public Map<Object, Object> getMeta()
-    {
-        return meta == null ? Collections.emptyMap() : Collections.unmodifiableMap(meta);
-    }
-
-    public void setMeta(Map<Object, Object> meta)
-    {
-        this.meta = meta;
-    }
-
-    @Override
-    public AbstractModelElement clone()
-    {
-        try
-        {
-            AbstractModelElement clone = (AbstractModelElement) super.clone();
-
-            if (meta != null)
-            {
-                clone.meta = new HashMap<Object, Object>(meta);
-            }
-
-            clone.support = new ModelElementSupport(clone);
-
-            return clone;
-        }
-        catch (CloneNotSupportedException e)
-        {
-            // can't happen but make compiler happy
-            throw new IllegalStateException(e);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    public <T extends IModelElement> T getAncestor(Class<T> type)
-    {
-        IModelElement parent = this.parent;
-
-        while (parent != null)
-        {
-            if (type.isInstance(parent))
-            {
-                return (T) parent;
-            }
-            parent = parent.getParent();
-        }
-
-        return null;
-    }
-
-    public IModelElement getParent()
-    {
-        return parent;
-    }
-
-    public void setParent(IModelElement parent)
-    {
-        if (parent != null)
-        {
-            if (this.parent != null && this.parent != parent)
-            {
-                throw new IllegalStateException("Parent already installed");
-            }
-        }
-
-        this.parent = parent;
-    }
-
-    public void checkValid() throws InvalidModelException
-    {
-        for (String req : getRequiredProperties())
-        {
-            try
-            {
-                if (getProperty(req) == null)
-                {
-                    throw new InvalidModelException(this, "Missing property " + req);
-                }
-            }
-            catch (NoSuchMethodException e)
-            {
-                throw new InvalidModelException(this, "No such property " + req);
-            }
-        }
-    }
-
-    public Object getProperty(String name) throws NoSuchMethodException
-    {
-        return support.getProperty(name);
-    }
-
-    public void setProperty(String name, Object value) throws NoSuchMethodException
-    {
-        support.setProperty(name, value);
-    }
-
-    public void addProperty(String name, Object value) throws NoSuchMethodException
-    {
-        support.addProperty(name, value);
-    }
-
-    public void removeProperty(String name, Object value) throws NoSuchMethodException
-    {
-        support.removeProperty(name, value);
-    }
-
-    public Object getDefaultPropertyValue(String name)
-    {
-        return support.getDefaultPropertyValue(name);
-    }
-
-    public Set<String> getPropertyNames()
-    {
-        return support.getPropertyNames();
-    }
-
-    public Set<String> getRequiredProperties()
-    {
-        return Collections.emptySet();
-    }
-
-    public Class<?> getPropertyType(String name) throws NoSuchMethodException
-    {
-        return support.getPropertyType(name);
-    }
-
-    protected Object writeReplace()
-    {
-        AbstractModelElement clone = clone();
-
-        if (clone.meta != null)
-        {
-            clone.serializedMeta = new HashMap<Serializable, Serializable>(
-                clone.meta.size());
-
-            for (Map.Entry<Object, Object> e : clone.meta.entrySet())
-            {
-                if (e.getKey() instanceof Serializable
-                    && e.getValue() instanceof Serializable)
-                {
-                    clone.serializedMeta.put((Serializable) e.getKey(),
-                        (Serializable) e.getValue());
-                }
-            }
-
-            clone.meta = null;
-        }
-
-        return clone;
-    }
-
-    protected Object readResolve()
-    {
-        meta = serializedMeta == null ? null
-            : new HashMap<Object, Object>(serializedMeta);
-        serializedMeta = null;
-        return this;
-    }
-
-    public OverrideOptions getOverride()
-    {
-        return override;
-    }
-
-    public void setOverride(OverrideOptions override)
-    {
-        this.override = override;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/ICapabilityModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/ICapabilityModelElement.java
deleted file mode 100644
index 17c830b..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/ICapabilityModelElement.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-public interface ICapabilityModelElement extends IModelElement
-{
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/ICompoundModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/ICompoundModelElement.java
deleted file mode 100644
index d2581a8..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/ICompoundModelElement.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.util.Set;
-
-/**
- * Represents a model element that is made up of sub model elements.
- * 
- * @author dave
- *
- */
-public interface ICompoundModelElement extends IModelElement
-{
-    /**
-     * Calls the applicable set/add method of this model to add the element to this part of the model.
-     * 
-     * @param children
-     * @return
-     * @throws InvalidModelException
-     */
-    boolean addChild(IModelElement children) throws InvalidModelException;
-
-    /**
-     * Calls the applicable set/remove method of this model to remove the element from this part of the model
-     * @param children
-     * @return
-     */
-    boolean removeChild(IModelElement children);
-
-    /**
-     * List all direct child elements of this model element.
-     * @return
-     */
-    IModelElement[] children();
-
-    /**
-     * Visits child elements of this model element, recursing down to sub compound elements when found.
-     * 
-     * @param walker
-     */
-    void visit(IModelWalker walker);
-
-    /**
-     * Searches the model to find all child model elements which match the specified type
-     * 
-     * @param <T>
-     * @param type
-     * @return
-     */
-    <T extends IModelElement> T[] childrenOfType(Class<T> type);
-
-    Set<Class<? extends IModelElement>> getRequiredChildren();
-
-    Set<Class<? extends IModelElement>> getOptionalChildren();
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelElement.java
deleted file mode 100644
index 84e9145..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelElement.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * IModelElement represent static information about a part of a model.
- * 
- * @author dave
- * 
- */
-public interface IModelElement extends Cloneable
-{
-    /**
-     * A brief human readable description of the element.
-     * 
-     * @return
-     */
-    String getElementDescription();
-
-    /**
-     * A set of key value pairs designed for use by a machine to classify a particular element.
-     * 
-     * @return
-     */
-    Map<Object, Object> getMeta();
-
-    /**
-     * Set meta data on this descriptor. Meta data is designed for use by a machine to classify or further enhance a
-     * particular element.
-     * 
-     * @param meta
-     */
-    void setMeta(Map<Object, Object> meta);
-
-    /**
-     * Check to see if this element defines a complete set of properties. The definition of what constitutes a
-     * complete set is up to the implementing class.
-     * 
-     * @throws InvalidModelException
-     */
-    void checkValid() throws InvalidModelException;
-
-    /**
-     * Find the parent element of this model element or null if no parent exists.
-     * @return
-     */
-    IModelElement getParent();
-
-    void setParent(IModelElement parent);
-
-    /**
-     * Finds the first ancestor up the hierarch of parents which is an instance of the specified
-     * type.
-     * 
-     * @param type
-     * @return
-     */
-    <T extends IModelElement> T getAncestor(Class<T> type);
-
-    IModelElement clone();
-
-    Set<String> getPropertyNames();
-
-    void setProperty(String name, Object value) throws NoSuchMethodException;
-
-    void addProperty(String name, Object value) throws NoSuchMethodException;
-
-    void removeProperty(String name, Object value) throws NoSuchMethodException;
-
-    Object getProperty(String name) throws NoSuchMethodException;
-
-    Object getDefaultPropertyValue(String name);
-
-    Set<String> getRequiredProperties();
-
-    Class<?> getPropertyType(String name) throws NoSuchMethodException;
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelInfo.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelInfo.java
deleted file mode 100644
index 17993a7..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelInfo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-public interface IModelInfo
-{
-    String getGroupName();
-
-    String getGroupURI();
-
-    String getName();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelWalker.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelWalker.java
deleted file mode 100644
index 931c72d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/IModelWalker.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-/**
- * Visitor pattern to traverse nodes in the model.
- * 
- * @see ICompoundModelElement#visit(IModelWalker);
- * 
- * @author dave
- *
- */
-public interface IModelWalker
-{
-    /**
-     * Callback method providing the part of the model currently being visited.
-     * 
-     * @param element the element being visited
-     * 
-     * @return true to continue walking the model, false otherwise
-     */
-    boolean visit(IModelElement element);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/INamedModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/INamedModelElement.java
deleted file mode 100644
index 07c1664..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/INamedModelElement.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-public interface INamedModelElement extends IModelElement
-{
-    void setName(String name);
-
-    String getName();
-
-    OverrideOptions getOverride();
-
-    void setOverride(OverrideOptions override);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/IRequirementModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/IRequirementModelElement.java
deleted file mode 100644
index 2b197f6..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/IRequirementModelElement.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-public interface IRequirementModelElement extends IModelElement
-{
-    boolean accepts(ICapabilityModelElement provider);
-
-    /**
-     * indicates whether the OSGi attribute "resolution=optional" is specified.
-     */
-    boolean isOptional();
-
-    void setOptional(boolean optional);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/InvalidModelException.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/InvalidModelException.java
deleted file mode 100644
index 5f9740f..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/InvalidModelException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-/**
- * @author dave
- * 
- */
-public class InvalidModelException extends RuntimeException
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private IModelElement target;
-
-    public InvalidModelException(IModelElement target, String msg)
-    {
-        super(msg);
-        this.target = target;
-    }
-
-    public InvalidModelException(IModelElement target, String msg, Throwable t)
-    {
-        super(msg, t);
-        this.target = target;
-    }
-
-    public IModelElement getTarget()
-    {
-        return target;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactory.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactory.java
deleted file mode 100644
index 94d36c9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactory.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public abstract class ModelElementFactory
-{
-    static class ElementInfo
-    {
-        Class<? extends IModelElement> implType;
-        String name;
-        String groupName;
-        String groupURI;
-
-        public ElementInfo(Class<? extends IModelElement> implType, String name, String groupName, String groupURI)
-        {
-            this.implType = implType;
-            this.name = name;
-            this.groupName = groupName;
-            this.groupURI = groupURI;
-        }
-
-        public Class<? extends IModelElement> getImplType()
-        {
-            return implType;
-        }
-
-        public String getName()
-        {
-            return name;
-        }
-
-        public String getGroupName()
-        {
-            return groupName;
-        }
-
-        public String getGroupURI()
-        {
-            return groupURI;
-        }
-
-        public String toString()
-        {
-            return "ElementInfo[" + name + ":" + groupName + ":" + groupURI + ":"
-                + implType.getCanonicalName() + "]";
-        }
-    }
-
-    static class ModelInfo implements IModelInfo
-    {
-
-        private ElementInfo e;
-
-        public ModelInfo(ElementInfo e)
-        {
-            this.e = e;
-        }
-
-        public String getGroupName()
-        {
-            return e.getGroupName();
-        }
-
-        public String getGroupURI()
-        {
-            return e.getGroupURI();
-        }
-
-        public String getName()
-        {
-            return e.getName();
-        }
-
-    }
-
-    static class DefaultModelElementFactory extends ModelElementFactory
-    {
-        private HashMap<Class<? extends IModelElement>, ElementInfo> elementInfo = new HashMap<Class<? extends IModelElement>, ElementInfo>();
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public <T extends IModelElement> T newModelElement(Class<T> type)
-            throws ModelElementFactoryException
-        {
-            ElementInfo info = elementInfo.get(type);
-            if (info == null)
-            {
-                throw new ModelElementFactoryException(
-                    "No implementation registered for " + type);
-            }
-            try
-            {
-                return (T) info.getImplType().newInstance();
-            }
-            catch (InstantiationException e)
-            {
-                throw new ModelElementFactoryException(e);
-            }
-            catch (IllegalAccessException e)
-            {
-                throw new ModelElementFactoryException(e);
-            }
-        }
-
-        @Override
-        public <T extends IModelElement> void register(Class<T> type,
-            Class<? extends T> impl, String name, String groupName, String groupURI)
-        {
-            elementInfo.put(type, new ElementInfo(impl, name, groupName, groupURI));
-        }
-
-        @Override
-        public <T extends IModelElement> void unregister(Class<T> type,
-            Class<? extends T> impl)
-        {
-            ElementInfo info = elementInfo.get(type);
-            if (info != null && info.getImplType() == impl)
-            {
-                elementInfo.remove(type);
-            }
-        }
-
-        @Override
-        public IModelInfo getModelInfo(Class<? extends IModelElement> type)
-        {
-            ElementInfo e = findElementInfo(type);
-
-            if (e == null)
-            {
-                return null;
-            }
-
-            return new ModelInfo(e);
-        }
-
-        @Override
-        public IModelElement newModelElement(String namespaceURI, String localPart)
-            throws ModelElementFactoryException
-        {
-            for (Map.Entry<Class<? extends IModelElement>, ElementInfo> e : elementInfo.entrySet())
-            {
-                ElementInfo i = e.getValue();
-                if (equal(namespaceURI, i.getGroupURI()) && equal(i.getName(), localPart))
-                {
-                    return newModelElement(e.getKey());
-                }
-            }
-
-            return null;
-        }
-
-        private boolean equal(String val1, String val2)
-        {
-            return val1 == null ? val2 == null : val1.equals(val2);
-        }
-
-        private ElementInfo findElementInfo(Class<? extends IModelElement> type)
-        {
-            for (ElementInfo e : elementInfo.values())
-            {
-                if (e.getImplType() == type)
-                {
-                    return e;
-                }
-            }
-
-            return null;
-        }
-
-    }
-
-    public abstract <T extends IModelElement> T newModelElement(Class<T> type)
-        throws ModelElementFactoryException;
-
-    public abstract IModelElement newModelElement(String namespaceURI, String localPart)
-        throws ModelElementFactoryException;
-
-    public abstract <T extends IModelElement> void register(Class<T> type,
-        Class<? extends T> impl, String name, String groupName, String groupURI);
-
-    public abstract <T extends IModelElement> void unregister(Class<T> type,
-        Class<? extends T> impl);
-
-    public abstract IModelInfo getModelInfo(Class<? extends IModelElement> type);
-
-    private static ModelElementFactory instance = new DefaultModelElementFactory();
-
-    public static ModelElementFactory getInstance()
-    {
-        return instance;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactoryException.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactoryException.java
deleted file mode 100644
index d6ea643..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementFactoryException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-public class ModelElementFactoryException extends RuntimeException
-{
-
-    private static final long serialVersionUID = 1L;
-
-    public ModelElementFactoryException(Throwable t)
-    {
-        super(t);
-    }
-
-    public ModelElementFactoryException(String msg)
-    {
-        super(msg);
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementSupport.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementSupport.java
deleted file mode 100644
index c5b49f8..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/ModelElementSupport.java
+++ /dev/null
@@ -1,933 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.io.Serializable;
-import java.lang.ref.SoftReference;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.UndeclaredThrowableException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.WeakHashMap;
-import java.util.logging.Logger;
-
-import org.apache.felix.sigil.common.model.annotations.Required;
-
-public class ModelElementSupport implements Serializable
-{
-
-    private static final Logger log = Logger.getLogger(ModelElementSupport.class.getName());
-
-    private static final long serialVersionUID = 1L;
-
-    private static final PropertyAdapter[] EMPTY_PROPS = new PropertyAdapter[] {};
-    private static final IModelElement[] EMPTY_ELEMENTS = new IModelElement[] {};
-    private static final Object[] ZERO_ARGS = new Object[] {};
-    private static final Class<?>[] ZERO_PARAMS = new Class[] {};
-
-    private static final WeakHashMap<Class<?>, SoftReference<ChildAdapter[]>> adapterCache = new WeakHashMap<Class<?>, SoftReference<ChildAdapter[]>>();;
-    private static final WeakHashMap<Class<?>, SoftReference<PropertyAdapter[]>> propertyCache = new WeakHashMap<Class<?>, SoftReference<PropertyAdapter[]>>();;
-
-    private IModelElement target;
-
-    private transient SoftReference<PropertyAdapter[]> propertyReference;
-    private transient SoftReference<ChildAdapter[]> childrenReference;
-    private transient SoftReference<Set<String>> propertyNameReference;
-
-    public ModelElementSupport(IModelElement target)
-    {
-        this.target = target;
-    }
-
-    public void setProperty(String name, Object value) throws NoSuchMethodException
-    {
-        PropertyAdapter p = findProperty(name, value);
-        if (p == null)
-        {
-            throw new NoSuchMethodException("No such property " + name + " for type "
-                + target.getClass());
-        }
-        invoke(target, p.getWriteMethod(), value);
-    }
-
-    public void addProperty(String name, Object value) throws NoSuchMethodException
-    {
-        PropertyAdapter p = findProperty(name, value);
-        if (p == null)
-        {
-            throw new NoSuchMethodException("No such property " + name + " for type "
-                + target.getClass());
-        }
-        invoke(target, p.getAddMethod(), value);
-    }
-
-    public void removeProperty(String name, Object value) throws NoSuchMethodException
-    {
-        PropertyAdapter p = findProperty(name, value);
-        if (p == null)
-        {
-            throw new NoSuchMethodException("No such property " + name + " for type "
-                + target.getClass());
-        }
-        invoke(target, p.getRemoveMethod(), value);
-    }
-
-    public Object getProperty(String name) throws NoSuchMethodException
-    {
-        PropertyAdapter p = findProperty(name, null);
-        if (p == null)
-        {
-            throw new NoSuchMethodException("No such property " + name + " for type "
-                + target.getClass());
-        }
-        return invoke(target, p.getReadMethod(), ZERO_ARGS);
-    }
-
-    public Set<String> getPropertyNames()
-    {
-        Set<String> names = propertyNameReference == null ? null
-            : propertyNameReference.get();
-
-        if (names == null)
-        {
-            names = new HashSet<String>();
-
-            PropertyAdapter[] props = cachedProps(target.getClass());
-            for (PropertyAdapter prop : props)
-            {
-                names.add(prop.getName());
-            }
-
-            propertyNameReference = new SoftReference<Set<String>>(names);
-        }
-
-        return names;
-    }
-
-    public Object getDefaultPropertyValue(String name)
-    {
-        try
-        {
-            Method m = target.getClass().getMethod(makeDefaultPropertyValue(name),
-                ZERO_PARAMS);
-            return invoke(target, m, ZERO_ARGS);
-        }
-        catch (SecurityException e)
-        {
-            throw new UndeclaredThrowableException(e);
-        }
-        catch (NoSuchMethodException e)
-        {
-            // fine no default
-            return null;
-        }
-    }
-
-    public Class<?> getPropertyType(String name) throws NoSuchMethodException
-    {
-        PropertyAdapter p = findProperty(name, null);
-        if (p == null)
-        {
-            throw new NoSuchMethodException("No such property " + name + " for type "
-                + target.getClass());
-        }
-        return p.getPropertyType();
-    }
-
-    @SuppressWarnings("unchecked")
-    public <T extends IModelElement> T[] childrenOfType(Class<T> type)
-    {
-        ChildAdapter[] adapters = cachedAdapters();
-
-        if (adapters.length == 0)
-        {
-            // return (T[]) EMPTY_ELEMENTS;
-            return ((T[]) Array.newInstance(type, 0));
-        }
-
-        ArrayList<T> elements = new ArrayList<T>();
-
-        for (ChildAdapter adapter : adapters)
-        {
-            Collection<? extends IModelElement> val = adapter.members(target);
-
-            for (IModelElement e : val)
-            {
-                if (type.isInstance(e))
-                {
-                    elements.add((T) e);
-                }
-            }
-        }
-
-        //return elements.toArray( (T[]) EMPTY_ELEMENTS );
-        return elements.toArray((T[]) Array.newInstance(type, elements.size()));
-    }
-
-    public IModelElement[] children()
-    {
-        ChildAdapter[] adapters = cachedAdapters();
-
-        if (adapters.length == 0)
-        {
-            return EMPTY_ELEMENTS;
-        }
-
-        ArrayList<IModelElement> elements = new ArrayList<IModelElement>();
-
-        for (ChildAdapter adapter : adapters)
-        {
-            elements.addAll(adapter.members(target));
-        }
-
-        return elements.toArray(EMPTY_ELEMENTS);
-    }
-
-    public boolean addChild(IModelElement element) throws InvalidModelException
-    {
-        if (element.getParent() == null)
-        {
-            ChildAdapter[] adapters = cachedAdapters();
-
-            if (adapters.length > 0)
-            {
-                for (ChildAdapter adapter : adapters)
-                {
-                    if (adapter.add(target, element))
-                    {
-                        element.setParent(target);
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    public boolean removeChild(IModelElement element)
-    {
-        if (element.getParent() == target)
-        {
-            ChildAdapter[] adapters = cachedAdapters();
-
-            if (adapters.length > 0)
-            {
-                for (ChildAdapter adapter : adapters)
-                {
-                    if (adapter.remove(target, element))
-                    {
-                        element.setParent(null);
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    public Set<Class<? extends IModelElement>> getChildrenTypes(boolean required)
-    {
-        ChildAdapter[] adapters = cachedAdapters();
-
-        if (adapters.length == 0)
-        {
-            return Collections.emptySet();
-        }
-
-        HashSet<Class<? extends IModelElement>> types = new HashSet<Class<? extends IModelElement>>();
-
-        for (ChildAdapter adapter : adapters)
-        {
-            if (adapter.isRequired() == required)
-            {
-                Class<? extends IModelElement> type = adapter.getType();
-
-                if (type != null)
-                {
-                    types.add(type);
-                }
-            }
-        }
-
-        return types;
-    }
-
-    private PropertyAdapter findProperty(String name, Object value)
-    {
-        PropertyAdapter[] props = propertyReference == null ? null
-            : propertyReference.get();
-
-        if (props == null)
-        {
-            props = cachedProps(target.getClass());
-            propertyReference = new SoftReference<PropertyAdapter[]>(props);
-        }
-
-        for (PropertyAdapter prop : props)
-        {
-            if (prop.getName().equals(name)
-                && (value == null || prop.getRawType().isAssignableFrom(value.getClass())))
-            {
-                return prop;
-            }
-        }
-
-        return null;
-    }
-
-    private static synchronized PropertyAdapter[] cachedProps(
-        Class<? extends IModelElement> type)
-    {
-        SoftReference<PropertyAdapter[]> ref = propertyCache.get(type);
-
-        PropertyAdapter[] props = ref == null ? null : ref.get();
-
-        if (props == null)
-        {
-            props = loadProps(type);
-            propertyCache.put(type, new SoftReference<PropertyAdapter[]>(props));
-        }
-
-        return props;
-    }
-
-    private static PropertyAdapter[] loadProps(Class<? extends IModelElement> type)
-    {
-        ArrayList<PropertyAdapter> props = new ArrayList<PropertyAdapter>();
-        for (Method m : type.getMethods())
-        {
-            if (isValidProperty(m))
-            {
-                try
-                {
-                    PropertyAdapter p = new PropertyAdapter(m, type);
-                    props.add(p);
-                }
-                catch (NoSuchMethodException e)
-                {
-                    // fine not a bean method
-                    log.finer("Invalid bean property method " + m + ": " + e.getMessage());
-                }
-            }
-        }
-
-        return props.toArray(EMPTY_PROPS);
-    }
-
-    private static boolean isValidProperty(Method m)
-    {
-        return m.getName().startsWith("get") && m.getParameterTypes().length == 0
-            && !m.getDeclaringClass().equals(Object.class)
-            && !IModelElement.class.isAssignableFrom(m.getReturnType());
-    }
-
-    private static String makeDefaultPropertyValue(String name)
-    {
-        return "getDefault" + capitalise(name);
-    }
-
-    private static String capitalise(String name)
-    {
-        return Character.toUpperCase(name.charAt(0)) + name.substring(1);
-    }
-
-    private static String decapitalise(String substring)
-    {
-        return Character.toLowerCase(substring.charAt(0)) + substring.substring(1);
-    }
-
-    private ChildAdapter[] cachedAdapters()
-    {
-        ChildAdapter[] adapters = childrenReference == null ? null
-            : childrenReference.get();
-
-        if (adapters == null)
-        {
-            adapters = loadAdapters(target);
-            childrenReference = new SoftReference<ChildAdapter[]>(adapters);
-        }
-
-        return adapters;
-    }
-
-    private static synchronized ChildAdapter[] loadAdapters(IModelElement target)
-    {
-        Class<? extends IModelElement> type = target.getClass();
-        SoftReference<ChildAdapter[]> ref = adapterCache.get(type);
-
-        ChildAdapter[] adapters = ref == null ? null : ref.get();
-
-        if (adapters == null)
-        {
-            adapters = buildAdapters(type);
-            adapterCache.put(type, new SoftReference<ChildAdapter[]>(adapters));
-        }
-
-        return adapters;
-    }
-
-    private static ChildAdapter[] buildAdapters(Class<? extends IModelElement> type)
-    {
-        ArrayList<ChildAdapter> adapters = new ArrayList<ChildAdapter>();
-
-        for (Method m : type.getMethods())
-        {
-            ChildAdapter adapter = null;
-
-            if (isValidGetProperty(m))
-            {
-                adapter = buildGetAdapter(m);
-            }
-            else if (isValidSetProperty(m))
-            {
-                adapter = buildSetAdapter(m);
-            }
-            else if (isValidAddProperty(m))
-            {
-                adapter = buildAddAdapter(m);
-            }
-            else if (isValidRemoveProperty(m))
-            {
-                adapter = buildRemoveAdapter(m);
-            }
-
-            if (adapter != null)
-            {
-                adapters.add(adapter);
-            }
-        }
-
-        return adapters.toArray(new ChildAdapter[adapters.size()]);
-    }
-
-    private static ChildAdapter buildGetAdapter(Method m)
-    {
-        if (IModelElement.class.isAssignableFrom(m.getReturnType()))
-        {
-            return new GetPropertyAdapter(m);
-        }
-        else if (Collection.class.isAssignableFrom(m.getReturnType()))
-        {
-            return new GetCollectionAdapter(m);
-        }
-        else if (isModelArray(m.getReturnType()))
-        {
-            return new GetArrayAdapter(m);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private static ChildAdapter buildSetAdapter(Method m)
-    {
-        if (IModelElement.class.isAssignableFrom(m.getParameterTypes()[0]))
-        {
-            return new SetPropertyAdapter(m);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private static ChildAdapter buildAddAdapter(Method m)
-    {
-        if (IModelElement.class.isAssignableFrom(m.getParameterTypes()[0]))
-        {
-            return new AddPropertyAdapter(m);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private static ChildAdapter buildRemoveAdapter(Method m)
-    {
-        if (IModelElement.class.isAssignableFrom(m.getParameterTypes()[0]))
-        {
-            return new RemovePropertyAdapter(m);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private static boolean isValidRemoveProperty(Method m)
-    {
-        return m.getParameterTypes().length == 1 && m.getName().startsWith("remove")
-            && !isDeclared(ICompoundModelElement.class, m);
-    }
-
-    private static boolean isValidAddProperty(Method m)
-    {
-        return m.getParameterTypes().length == 1 && m.getName().startsWith("add")
-            && !isDeclared(ICompoundModelElement.class, m);
-    }
-
-    private static boolean isDeclared(Class<? extends IModelElement> element, Method m)
-    {
-        try
-        {
-            element.getMethod(m.getName(), m.getParameterTypes());
-            return true;
-        }
-        catch (SecurityException e)
-        {
-            throw new UndeclaredThrowableException(e);
-        }
-        catch (NoSuchMethodException e)
-        {
-            return false;
-        }
-    }
-
-    private static boolean isValidSetProperty(Method m)
-    {
-        return m.getParameterTypes().length == 1 && m.getName().startsWith("set")
-            && !isDeclared(IModelElement.class, m);
-    }
-
-    private static boolean isValidGetProperty(Method m)
-    {
-        return m.getParameterTypes().length == 0 && m.getName().startsWith("get")
-            && !isDeclared(IModelElement.class, m)
-            && !isDeclared(ICompoundModelElement.class, m);
-    }
-
-    private static Object invoke(Object target, Method m, Object... args)
-    {
-        try
-        {
-            return m.invoke(target, args);
-        }
-        catch (IllegalArgumentException e)
-        {
-            // this should already have been tested
-            throw new IllegalStateException(e);
-        }
-        catch (IllegalAccessException e)
-        {
-            throw new UndeclaredThrowableException(e);
-        }
-        catch (InvocationTargetException e)
-        {
-            throw new UndeclaredThrowableException(e.getCause());
-        }
-    }
-
-    private static class PropertyAdapter
-    {
-
-        String prop;
-        String name;
-        Method g;
-        Method s;
-        Method a;
-        Method r;
-        Class<?> propertyType;
-
-        public PropertyAdapter(Method g, Class<?> type) throws SecurityException, NoSuchMethodException
-        {
-            if (g.getReturnType().isArray()
-                || Iterable.class.isAssignableFrom(g.getReturnType()))
-            {
-                prop = g.getName().substring(3);
-                // remove trailing s - as in addWibble, removeWibble, getWibbles
-                prop = prop.substring(0, prop.length() - 1);
-                name = decapitalise(prop);
-                a = find("add", prop, g.getReturnType(), type);
-                propertyType = a.getParameterTypes()[0];
-                r = find("remove", prop, g.getReturnType(), type);
-                if (r.getParameterTypes()[0] != propertyType)
-                {
-                    throw new NoSuchMethodException(
-                        "Add remove property method types do not match");
-                }
-                propertyType = Array.newInstance(propertyType, 0).getClass();
-            }
-            else
-            {
-                prop = g.getName().substring(3);
-                name = decapitalise(prop);
-                propertyType = g.getReturnType();
-                s = find("set", prop, propertyType, type);
-            }
-
-            this.g = g;
-        }
-
-        public Class<?> getRawType()
-        {
-            return propertyType.isArray() ? propertyType.getComponentType()
-                : propertyType;
-        }
-
-        public Class<?> getPropertyType()
-        {
-            return propertyType;
-        }
-
-        public Method getReadMethod()
-        {
-            return g;
-        }
-
-        public Method getAddMethod() throws NoSuchMethodException
-        {
-            if (a == null)
-            {
-                throw new NoSuchMethodException("No such method add" + prop);
-            }
-
-            return a;
-        }
-
-        public Method getRemoveMethod() throws NoSuchMethodException
-        {
-            if (r == null)
-            {
-                throw new NoSuchMethodException("No such method remove" + prop);
-            }
-
-            return r;
-        }
-
-        public Method getWriteMethod() throws NoSuchMethodException
-        {
-            if (s == null)
-            {
-                throw new NoSuchMethodException("No such method set" + prop);
-            }
-
-            return s;
-        }
-
-        @Override
-        public String toString()
-        {
-            return "PropertyAdapter[" + name + "]";
-        }
-
-        private Method find(String prefix, String prop, Class<?> returnType, Class<?> type)
-            throws SecurityException, NoSuchMethodException
-        {
-            String methodName = prefix + prop;
-
-            if (returnType.isArray())
-            {
-                Class<?> t = returnType.getComponentType();
-                return type.getMethod(methodName, new Class[] { t });
-            }
-            else if (Iterable.class.isAssignableFrom(returnType))
-            {
-                Method f = null;
-                for (Method m : type.getMethods())
-                {
-                    if (m.getParameterTypes().length == 1
-                        && m.getName().equals(methodName)
-                        && !IModelElement.class.isAssignableFrom(m.getParameterTypes()[0]))
-                    {
-                        if (f == null)
-                        {
-                            f = m;
-                        }
-                        else
-                        {
-                            throw new NoSuchMethodException("Found duplicate "
-                                + methodName);
-                        }
-                    }
-                }
-                if (f == null)
-                {
-                    throw new NoSuchMethodException("No such method " + methodName);
-                }
-
-                return f;
-            }
-            else
-            {
-                return type.getMethod(methodName, new Class[] { returnType });
-            }
-        }
-
-        public String getName()
-        {
-            return name;
-        }
-
-    }
-
-    private static abstract class ChildAdapter
-    {
-        Method m;
-
-        ChildAdapter(Method m)
-        {
-            this.m = m;
-        }
-
-        public boolean isRequired()
-        {
-            return m.isAnnotationPresent(Required.class);
-        }
-
-        boolean add(Object target, IModelElement element)
-        {
-            return false;
-        }
-
-        abstract Class<IModelElement> getType();
-
-        boolean remove(Object target, IModelElement element)
-        {
-            return false;
-        }
-
-        Collection<? extends IModelElement> members(Object target)
-        {
-            return Collections.emptyList();
-        }
-
-        @Override
-        public String toString()
-        {
-            return "ChildAdapter[ " + m.getName() + "]";
-        }
-    }
-
-    private static class GetPropertyAdapter extends ChildAdapter
-    {
-        GetPropertyAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @Override
-        Collection<? extends IModelElement> members(Object target)
-        {
-            IModelElement member = (IModelElement) invoke(target, m, ZERO_ARGS);
-            if (member == null)
-            {
-                return Collections.emptyList();
-            }
-            else
-            {
-                return Collections.<IModelElement> singleton(member);
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Class<IModelElement> getType()
-        {
-            return (Class<IModelElement>) m.getReturnType();
-        }
-    }
-
-    private static class GetCollectionAdapter extends ChildAdapter
-    {
-        public GetCollectionAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Collection<? extends IModelElement> members(Object target)
-        {
-            Collection members = (Collection) invoke(target, m, ZERO_ARGS);
-            if (members == null)
-            {
-                return Collections.emptyList();
-            }
-            else
-            {
-                ArrayList<IModelElement> safe = new ArrayList<IModelElement>(
-                    members.size());
-                for (Object o : members)
-                {
-                    if (o instanceof IModelElement)
-                    {
-                        safe.add((IModelElement) o);
-                    }
-                }
-                return safe;
-            }
-        }
-
-        @Override
-        Class<IModelElement> getType()
-        {
-            // impossible to get type of a collection as erasure removes generics info
-            return null;
-        }
-
-    }
-
-    private static class GetArrayAdapter extends ChildAdapter
-    {
-        public GetArrayAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @Override
-        Collection<? extends IModelElement> members(Object target)
-        {
-            IModelElement[] array = (IModelElement[]) invoke(target, m, ZERO_ARGS);
-            if (array == null || array.length == 0)
-            {
-                return Collections.emptyList();
-            }
-            else
-            {
-                return (Collection<? extends IModelElement>) Arrays.asList(array);
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Class<IModelElement> getType()
-        {
-            return (Class<IModelElement>) m.getReturnType().getComponentType();
-        }
-    }
-
-    private static class SetPropertyAdapter extends ChildAdapter
-    {
-        public SetPropertyAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @Override
-        boolean add(Object target, IModelElement element)
-        {
-            if (m.getParameterTypes()[0].isAssignableFrom(element.getClass()))
-            {
-                invoke(target, m, new Object[] { element });
-                return true;
-            }
-            else
-            {
-                return false;
-            }
-        }
-
-        @Override
-        boolean remove(Object target, IModelElement element)
-        {
-            if (m.getParameterTypes()[0].isAssignableFrom(element.getClass()))
-            {
-                invoke(target, m, new Object[] { null });
-                return true;
-            }
-            else
-            {
-                return false;
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Class<IModelElement> getType()
-        {
-            return (Class<IModelElement>) m.getParameterTypes()[0];
-        }
-    }
-
-    private static class AddPropertyAdapter extends ChildAdapter
-    {
-        public AddPropertyAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @Override
-        boolean add(Object target, IModelElement element)
-        {
-            if (m.getParameterTypes()[0].isAssignableFrom(element.getClass()))
-            {
-                invoke(target, m, new Object[] { element });
-                return true;
-            }
-            else
-            {
-                return false;
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Class<IModelElement> getType()
-        {
-            return (Class<IModelElement>) m.getParameterTypes()[0];
-        }
-    }
-
-    private static class RemovePropertyAdapter extends ChildAdapter
-    {
-
-        public RemovePropertyAdapter(Method m)
-        {
-            super(m);
-        }
-
-        @Override
-        boolean remove(Object target, IModelElement element)
-        {
-            if (m.getParameterTypes()[0].isAssignableFrom(element.getClass()))
-            {
-                invoke(target, m, new Object[] { element });
-                return true;
-            }
-            else
-            {
-                return false;
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        Class<IModelElement> getType()
-        {
-            return (Class<IModelElement>) m.getParameterTypes()[0];
-        }
-    }
-
-    private static boolean isModelArray(Class<?> returnType)
-    {
-        return returnType.isArray()
-            && IModelElement.class.isAssignableFrom(returnType.getComponentType());
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/OverrideOptions.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/OverrideOptions.java
deleted file mode 100644
index 66a60f9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/OverrideOptions.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author dave
- * 
- */
-public enum OverrideOptions
-{
-    NO("no"), MAY("may"), MUST("must");
-
-    private String str;
-
-    private static Map<String, OverrideOptions> map = new HashMap<String, OverrideOptions>();
-
-    static
-    {
-        for (OverrideOptions option : OverrideOptions.values())
-        {
-            map.put(option.str.toLowerCase(), option);
-        }
-    }
-
-    private OverrideOptions(String str)
-    {
-        this.str = str;
-    }
-
-    public static OverrideOptions parse(String val)
-    {
-        OverrideOptions option = map.get(val.toLowerCase());
-
-        if (option == null)
-        {
-            throw new IllegalArgumentException("Invalid override value " + val);
-        }
-
-        return option;
-    }
-
-    @Override
-    public String toString()
-    {
-        return str;
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/annotations/Required.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/annotations/Required.java
deleted file mode 100644
index 592c21b..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/annotations/Required.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.annotations;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Inherited
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-public @interface Required
-{
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/IBundleCapability.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/IBundleCapability.java
deleted file mode 100644
index 5765be9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/IBundleCapability.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.model.eclipse;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.osgi.framework.Version;
-
-public interface IBundleCapability extends ICapabilityModelElement
-{
-    String getSymbolicName();
-
-    Version getVersion();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibrary.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibrary.java
deleted file mode 100644
index d333fe1..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibrary.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.eclipse;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.osgi.framework.Version;
-
-public interface ILibrary extends IModelElement
-{
-    String getName();
-
-    void setName(String name);
-
-    Version getVersion();
-
-    void setVersion(Version version);
-
-    void addImport(IPackageImport pi);
-
-    void removeImport(IPackageImport pi);
-
-    Collection<IPackageImport> getImports();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibraryImport.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibraryImport.java
deleted file mode 100644
index c1818f9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ILibraryImport.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.eclipse;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public interface ILibraryImport extends IModelElement
-{
-    String getLibraryName();
-
-    void setLibraryName(String name);
-
-    VersionRange getVersions();
-
-    void setVersions(VersionRange range);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ISigilBundle.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ISigilBundle.java
deleted file mode 100644
index a597ac9..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/eclipse/ISigilBundle.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.config.Resource;
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IVersionedModelElement;
-import org.apache.felix.sigil.common.progress.IProgress;
-
-/**
- * @author dave
- *
- */
-public interface ISigilBundle extends ICompoundModelElement, IVersionedModelElement
-{
-    void synchronize(IProgress progress) throws IOException;
-
-    boolean isSynchronized();
-
-    IBundleModelElement getBundleInfo();
-
-    String getSymbolicName();
-
-    void setBundleInfo(IBundleModelElement bundle);
-
-    // TODO rename this method...
-    void addSourcePath(Resource path);
-
-    void removeSourcePath(Resource path);
-
-    Collection<Resource> getSourcePaths();
-
-    void clearSourcePaths();
-
-    Collection<String> getClasspathEntrys();
-
-    void addClasspathEntry(String encodedClasspath);
-
-    void removeClasspathEntry(String encodedClasspath);
-
-    // XXX must be file due to SiglCore.isBundlePath
-    File getLocation();
-
-    // XXX must be file due to SiglCore.isBundlePath
-    void setLocation(File location);
-
-    File getSourcePathLocation();
-
-    void setSourcePathLocation(File location);
-
-    String getSourceRootPath();
-
-    void setSourceRootPath(String location);
-
-    void setLicencePathLocation(File cacheSourceLocation);
-
-    File getLicencePathLocation();
-
-    /**
-     * get package names included in bundle.
-     * Can contain wildcards e.g. org.foo.*
-     */
-    Collection<String> getPackages();
-
-    /**
-     * remove package name from those included in bundle.
-     */
-    boolean removePackage(String pkg);
-
-    /**
-     * add package name to be included in bundle.
-     */
-    void addPackage(String pkg);
-
-    /**
-     * Attempt to find a package export that matches the given name or return null if none specified
-     * 
-     * @param elementName
-     * @return
-     */
-    IPackageExport findExport(String elementName);
-
-    /**
-     * Attempt to find a package import that matches the given name or return null if none specified
-     * @param packageName
-     * @return
-     */
-    IPackageImport findImport(String packageName);
-
-    IBundleCapability getBundleCapability();
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IBundleModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IBundleModelElement.java
deleted file mode 100644
index 653f683..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IBundleModelElement.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.INamedModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.osgi.framework.Version;
-
-public interface IBundleModelElement extends INamedModelElement, ICompoundModelElement, IVersionedModelElement
-{
-
-    String getActivator();
-
-    void setActivator(String activator);
-
-    String getCategory();
-
-    void setCategory(String category);
-
-    String getContactAddress();
-
-    void setContactAddress(String contactAddress);
-
-    String getCopyright();
-
-    void setCopyright(String copyright);
-
-    URI getDocURI();
-
-    void setDocURI(URI docURI);
-
-    Collection<IPackageExport> getExports();
-
-    void addExport(IPackageExport packageExport);
-
-    void removeExport(IPackageExport packageExport);
-
-    Collection<IPackageImport> getImports();
-
-    void addImport(IPackageImport packageImport);
-
-    void removeImport(IPackageImport packageImport);
-
-    Collection<IRequiredBundle> getRequiredBundles();
-
-    void addRequiredBundle(IRequiredBundle bundle);
-
-    void removeRequiredBundle(IRequiredBundle bundle);
-
-    void addLibraryImport(ILibraryImport library);
-
-    void removeLibraryImport(ILibraryImport library);
-
-    Set<ILibraryImport> getLibraryImports();
-
-    URI getLicenseURI();
-
-    void setLicenseURI(URI licenseURI);
-
-    URI getSourceLocation();
-
-    void setSourceLocation(URI sourceLocation);
-
-    String getSymbolicName();
-
-    void setSymbolicName(String symbolicName);
-
-    URI getUpdateLocation();
-
-    void setUpdateLocation(URI updateLocation);
-
-    String getVendor();
-
-    void setVendor(String vendor);
-
-    Version getVersion();
-
-    void setVersion(Version version);
-
-    void setDescription(String elementText);
-
-    String getDescription();
-
-    Collection<String> getClasspaths();
-
-    void addClasspath(String path);
-
-    void removeClasspath(String path);
-
-    void setFragmentHost(IRequiredBundle fragmentHost);
-
-    IRequiredBundle getFragmentHost();
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageExport.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageExport.java
deleted file mode 100644
index 5f27980..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageExport.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.osgi.framework.Version;
-
-public interface IPackageExport extends IPackageModelElement, IVersionedModelElement, Comparable<IPackageExport>, ICapabilityModelElement
-{
-    void addUse(String uses);
-
-    void removeUse(String uses);
-
-    Collection<String> getUses();
-
-    void setUses(Collection<String> asList);
-
-    Version getRawVersion();
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageImport.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageImport.java
deleted file mode 100644
index 2ddc6dd..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageImport.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-
-public interface IPackageImport extends IPackageModelElement, IVersionRangeModelElement, IRequirementModelElement, Comparable<IPackageImport>
-{
-    /**
-     * indicates whether import is needed at compile-time.
-     * Default true. Used in conjunction with OSGiHeader.ALWAYS,
-     * to add an OSGI import, without creating a dependency.
-     */
-    boolean isDependency();
-
-    void setDependency(boolean dependency);
-
-    /**
-     * indicates whether import should be added to OSGi Package-Import header.
-     * Default: AUTO.
-     */
-    OSGiImport getOSGiImport();
-
-    void setOSGiImport(OSGiImport osgiImport);
-
-    enum OSGiImport
-    {
-        /**
-         * only add to OSGi header, if it appears to be needed.
-         */
-        AUTO,
-
-        /**
-         * always add to OSGi header, even if it appears unnecessary.
-         */
-        ALWAYS,
-
-        /**
-         * never add to OSGi header.
-         */
-        NEVER
-    }
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageModelElement.java
deleted file mode 100644
index e236e4e..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IPackageModelElement.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-
-public interface IPackageModelElement extends IModelElement
-{
-
-    String getPackageName();
-
-    void setPackageName(String packageName);
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IRequiredBundle.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IRequiredBundle.java
deleted file mode 100644
index 9c706a0..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IRequiredBundle.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public interface IRequiredBundle extends IModelElement, IRequirementModelElement, Comparable<IRequiredBundle>
-{
-    String getSymbolicName();
-
-    void setSymbolicName(String symbolicName);
-
-    VersionRange getVersions();
-
-    void setVersions(VersionRange versions);
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionRangeModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionRangeModelElement.java
deleted file mode 100644
index fe069ad..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionRangeModelElement.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public interface IVersionRangeModelElement
-{
-
-    VersionRange getVersions();
-
-    void setVersions(VersionRange version);
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionedModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionedModelElement.java
deleted file mode 100644
index 8b88b13..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/model/osgi/IVersionedModelElement.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.model.osgi;
-
-import org.osgi.framework.Version;
-
-public interface IVersionedModelElement
-{
-
-    Version getVersion();
-
-    void setVersion(Version version);
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/progress/IProgress.java b/sigil/common/core/src/org/apache/felix/sigil/common/progress/IProgress.java
deleted file mode 100644
index 93a8dc1..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/progress/IProgress.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.progress;
-
-/**
- * @author dave
- *
- */
-public interface IProgress
-{
-
-    /**
-     * @return
-     */
-    boolean isCanceled();
-
-    /**
-     * @param totalWork
-     * @return
-     */
-    IProgress newChild(int totalWork);
-    
-    /**
-     * @param name
-     * @param totalWork
-     * @return
-     */
-    IProgress newTask(int totalWork);
-    
-    /**
-     * @param msg
-     */
-    void report(String msg);
-
-    /**
-     * @param work
-     */
-    void worked(int work);
-
-    /**
-     * 
-     */
-    void done();
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractBundleRepository.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractBundleRepository.java
deleted file mode 100644
index d0d1e80..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractBundleRepository.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.core.licence.ILicenseManager;
-import org.apache.felix.sigil.common.core.licence.ILicensePolicy;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-
-public abstract class AbstractBundleRepository implements IBundleRepository
-{
-
-    private final String id;
-    private final HashSet<IBundleRepositoryListener> listeners = new HashSet<IBundleRepositoryListener>();
-
-    public AbstractBundleRepository(String id)
-    {
-        this.id = id;
-    }
-
-    public abstract void accept(IRepositoryVisitor visitor, int options);
-
-    public void addBundleRepositoryListener(IBundleRepositoryListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.add(listener);
-        }
-    }
-
-    public void removeBundleRepositoryListener(IBundleRepositoryListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.remove(listener);
-        }
-    }
-
-    protected void notifyChange()
-    {
-        for (IBundleRepositoryListener l : listeners)
-        {
-            l.notifyChange(this);
-        }
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public void accept(IRepositoryVisitor visitor)
-    {
-        accept(visitor, 0);
-    }
-
-    public void writeOBR(OutputStream out) throws IOException
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public Collection<ISigilBundle> findProviders(final ILibrary library, int options)
-    {
-        final ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        final ILicensePolicy policy = findPolicy(library);
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle bundle)
-            {
-                if (policy.accept(bundle))
-                {
-                    IBundleModelElement info = bundle.getBundleInfo();
-                    for (IPackageImport pi : library.getImports())
-                    {
-                        for (IPackageExport e : info.getExports())
-                        {
-                            if (pi.getPackageName().equals(e.getPackageName())
-                                && pi.getVersions().contains(e.getVersion()))
-                            {
-                                found.add(bundle);
-                                break;
-                            }
-                        }
-                    }
-                }
-                return true;
-            }
-        };
-
-        accept(visitor, options);
-
-        return found;
-    }
-
-    public Collection<ISigilBundle> findAllProviders(final IRequiredBundle req,
-        int options)
-    {
-        final ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        final ILicensePolicy policy = findPolicy(req);
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle bundle)
-            {
-                if (policy.accept(bundle))
-                {
-                    IBundleModelElement info = bundle.getBundleInfo();
-                    if (req.getSymbolicName().equals(info.getSymbolicName())
-                        && req.getVersions().contains(info.getVersion()))
-                    {
-                        found.add(bundle);
-                    }
-                }
-                return true;
-            }
-        };
-
-        accept(visitor, options);
-
-        return found;
-    }
-
-    public Collection<ISigilBundle> findAllProviders(final IPackageImport pi, int options)
-    {
-        final ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        final ILicensePolicy policy = findPolicy(pi);
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-
-            public boolean visit(ISigilBundle bundle)
-            {
-                if (policy.accept(bundle))
-                {
-                    IBundleModelElement info = bundle.getBundleInfo();
-                    if (info != null)
-                    {
-                        for (IPackageExport e : info.getExports())
-                        {
-                            if (pi.getPackageName().equals(e.getPackageName()))
-                            {
-                                if (pi.getVersions().contains(e.getVersion()))
-                                {
-                                    found.add(bundle);
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                }
-                return true;
-            }
-
-        };
-
-        accept(visitor, options);
-
-        return found;
-    }
-
-    public ISigilBundle findProvider(final IPackageImport pi, int options)
-    {
-        final ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        final ILicensePolicy policy = findPolicy(pi);
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle bundle)
-            {
-                if (policy.accept(bundle))
-                {
-                    IBundleModelElement info = bundle.getBundleInfo();
-                    for (IPackageExport e : info.getExports())
-                    {
-                        if (pi.getPackageName().equals(e.getPackageName())
-                            && pi.getVersions().contains(e.getVersion()))
-                        {
-                            found.add(bundle);
-                            return false;
-                        }
-                    }
-                }
-                return true;
-            }
-
-        };
-
-        accept(visitor, options);
-
-        return found.isEmpty() ? null : found.iterator().next();
-    }
-
-    public ISigilBundle findProvider(final IRequiredBundle req, int options)
-    {
-        final ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-
-        final ILicensePolicy policy = findPolicy(req);
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-
-            public boolean visit(ISigilBundle bundle)
-            {
-                if (policy.accept(bundle))
-                {
-                    IBundleModelElement info = bundle.getBundleInfo();
-                    if (req.getSymbolicName().equals(info.getSymbolicName())
-                        && req.getVersions().contains(info.getVersion()))
-                    {
-                        found.add(bundle);
-                        return false;
-                    }
-                }
-                return true;
-            }
-
-        };
-
-        accept(visitor, options);
-
-        return found.isEmpty() ? null : found.iterator().next();
-    }
-
-    protected ILicensePolicy findPolicy(IModelElement elem)
-    {
-        ILicenseManager man = BldCore.getLicenseManager();
-
-        /*		ISigilProjectModel p = elem.getAncestor(ISigilProjectModel.class);
-        		
-        		ILicensePolicy policy = null;
-        		
-        		if ( p != null ) {
-        			policy = man.getPolicy(p);
-        		}
-        		else {
-        			policy = man.getDefaultPolicy();
-        		}
-        		
-        		return policy; */
-
-        return man.getDefaultPolicy();
-    }
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractRepositoryManager.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractRepositoryManager.java
deleted file mode 100644
index 7032f68..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/AbstractRepositoryManager.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.core.repository.BundleResolver;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.RepositoryChangeEvent.Type;
-
-public abstract class AbstractRepositoryManager implements IRepositoryManager, IBundleRepositoryListener
-{
-
-    private HashSet<IRepositoryChangeListener> listeners = new HashSet<IRepositoryChangeListener>();
-
-    private boolean initialised;
-
-    private final HashMap<String, IBundleRepository> repositories = new HashMap<String, IBundleRepository>();
-    private final ArrayList<IBundleRepository> order = new ArrayList<IBundleRepository>();
-    private final TreeMap<Integer, HashSet<IBundleRepository>> levelMap = new TreeMap<Integer, HashSet<IBundleRepository>>();
-    private final ArrayList<ILibrary> libraries = new ArrayList<ILibrary>();
-    
-    private final BundleResolver resolver = new BundleResolver(this);
-
-    private int[] levels;
-
-    private final IRepositoryConfig config;
-    
-    public AbstractRepositoryManager(IRepositoryConfig config) {
-        this.config = config;
-    }
-    
-    /**
-     * @return
-     */
-    protected IRepositoryConfig getConfig()
-    {
-        return config;
-    }
-
-    public void initialise()
-    {
-        synchronized (repositories)
-        {
-            if (!initialised)
-            {
-                initialised = true;
-                loadRepositories();
-            }
-        }
-    }
-
-    protected abstract void loadRepositories();
-
-    public void addRepositoryChangeListener(IRepositoryChangeListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.add(listener);
-        }
-    }
-
-    public void removeRepositoryChangeListener(IRepositoryChangeListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.remove(listener);
-        }
-    }
-
-    public void notifyChange(IBundleRepository repository)
-    {
-        
-        notifyListeners(new RepositoryChangeEvent(repository, Type.CHANGED));
-    }
-
-    private void notifyListeners(RepositoryChangeEvent event)
-    {
-        ArrayList<IRepositoryChangeListener> safe = null;
-        synchronized (listeners)
-        {
-            safe = new ArrayList<IRepositoryChangeListener>(listeners);
-        }
-        for (IRepositoryChangeListener l : safe)
-        {
-            l.repositoryChanged(event);
-        }
-    }
-
-    protected void setRepositories(IBundleRepository[] repos)
-    {
-        synchronized (repositories)
-        {
-            repositories.clear();
-            order.clear();
-            levelMap.clear();
-            resetLevels();
-            if (repos != null)
-            {
-                for (int i = 0; i < repos.length; i++)
-                {
-                    addRepository(repos[i], i);
-                }
-            }
-        }
-    }
-
-    private void addRepository(IBundleRepository rep, int level)
-    {
-        Type type = null;
-
-        synchronized (repositories)
-        {
-            IBundleRepository old = repositories.put(rep.getId(), rep);
-            if (old == null)
-            {
-                type = Type.ADDED;
-                rep.addBundleRepositoryListener(this);
-            }
-            else
-            {
-                old.removeBundleRepositoryListener(this);
-                type = Type.CHANGED;
-                order.remove(old);
-                clearLevel(rep);
-            }
-
-            order.add(rep);
-
-            HashSet<IBundleRepository> set = levelMap.get(level);
-
-            if (set == null)
-            {
-                set = new HashSet<IBundleRepository>();
-                levelMap.put(level, set);
-            }
-
-            set.add(rep);
-            resetLevels();
-        }
-
-        notifyListeners(new RepositoryChangeEvent(rep, type));
-    }
-
-    private void clearLevel(IBundleRepository rep)
-    {
-        for (Iterator<Map.Entry<Integer, HashSet<IBundleRepository>>> iter = levelMap.entrySet().iterator(); iter.hasNext();)
-        {
-            Map.Entry<Integer, HashSet<IBundleRepository>> e = iter.next();
-            if (e.getValue().remove(rep))
-            {
-                if (e.getValue().isEmpty())
-                {
-                    iter.remove();
-                }
-                break;
-            }
-        }
-    }
-
-    public Collection<IBundleRepository> getRepositories()
-    {
-        initialise();
-        ArrayList<IBundleRepository> safe = null;
-
-        synchronized (repositories)
-        {
-            safe = new ArrayList<IBundleRepository>(order);
-        }
-
-        return safe;
-    }
-
-    private void resetLevels()
-    {
-        Collections.sort(order, new Comparator<IBundleRepository>()
-        {
-            public int compare(IBundleRepository o1, IBundleRepository o2)
-            {
-                int l1 = findLevel(o1);
-                int l2 = findLevel(o2);
-
-                if (l1 < l2)
-                {
-                    return -1;
-                }
-                else if (l1 > l2)
-                {
-                    return 1;
-                }
-                else
-                {
-                    return 0;
-                }
-            }
-
-            private int findLevel(IBundleRepository rep)
-            {
-                for (Map.Entry<Integer, HashSet<IBundleRepository>> e : levelMap.entrySet())
-                {
-                    if (e.getValue().contains(rep))
-                    {
-                        return e.getKey();
-                    }
-                }
-                throw new IllegalStateException();
-            }
-        });
-        levels = new int[levelMap.size()];
-        int i = 0;
-        for (Integer v : levelMap.keySet())
-        {
-            levels[i++] = v;
-        }
-    }
-
-    public int[] getPriorityLevels()
-    {
-        initialise();
-        synchronized (repositories)
-        {
-            return levels;
-        }
-    }
-
-    public Collection<IBundleRepository> getRepositories(int priorityLevel)
-    {
-        initialise();
-        List<IBundleRepository> found = null;
-
-        synchronized (repositories)
-        {
-            HashSet<IBundleRepository> b = levelMap.get(priorityLevel);
-            if (b == null)
-            {
-                found = Collections.emptyList();
-            }
-            else
-            {
-                found = new ArrayList<IBundleRepository>(b);
-            }
-        }
-
-        return found;
-    }
-
-    public void addLibrary(ILibrary library)
-    {
-        synchronized (libraries)
-        {
-            libraries.add(library);
-        }
-    }
-
-    public void removeLibrary(ILibrary library)
-    {
-        synchronized (libraries)
-        {
-            libraries.remove(library);
-        }
-    }
-
-    public Collection<ILibrary> getLibraries()
-    {
-        synchronized (libraries)
-        {
-            return libraries;
-        }
-    }
-
-    public ILibrary resolveLibrary(final ILibraryImport l)
-    {
-        final ArrayList<ILibrary> found = new ArrayList<ILibrary>(1);
-        //ISigilProjectModel p = l.getAncestor(ISigilProjectModel.class);
-        //
-        //IModelWalker w = new IModelWalker() {
-        //	public boolean visit(IModelElement element) {
-        //		if ( element instanceof ILibrary ) {
-        //			updateLibrary(l, (ILibrary) element, found);
-        //			return false;
-        //		}
-        //		
-        //		return true;
-        //	}
-        //};
-
-        //p.visit( w );
-
-        //if ( found.isEmpty() ) { // no project specific libraries - check workspace definitions
-        synchronized (libraries)
-        {
-            for (ILibrary lib : libraries)
-            {
-                if (l.getLibraryName().equals(lib.getName())
-                    && l.getVersions().contains(lib.getVersion()))
-                {
-                    updateLibrary(l, lib, found);
-                }
-            }
-        }
-        //}
-
-        return found.isEmpty() ? null : found.get(0);
-    }
-
-    protected void updateLibrary(ILibraryImport li, ILibrary l, ArrayList<ILibrary> found)
-    {
-        if (li.getLibraryName().equals(l.getName())
-            && li.getVersions().contains(l.getVersion()))
-        {
-            if (found.isEmpty())
-            {
-                found.add(l);
-            }
-            else
-            {
-                ILibrary c = found.get(0);
-                if (l.getVersion().compareTo(c.getVersion()) > 0)
-                {
-                    found.remove(0);
-                    found.add(l);
-                }
-            }
-        }
-    }
-
-    public IBundleResolver getBundleResolver()
-    {
-        return resolver;
-    }
-
-    public void visit(final IModelWalker walker)
-    {
-        for (IBundleRepository rep : getRepositories())
-        {
-            IRepositoryVisitor wrapper = new IRepositoryVisitor()
-            {
-                public boolean visit(ISigilBundle bundle)
-                {
-                    bundle.visit(walker);
-                    // return true as still want to visit other bundles
-                    return true;
-                }
-            };
-            rep.accept(wrapper);
-        }
-    }
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepository.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepository.java
deleted file mode 100644
index 31b0ef6..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepository.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-
-public interface IBundleRepository
-{
-    String getId();
-
-    void addBundleRepositoryListener(IBundleRepositoryListener listener);
-
-    void removeBundleRepositoryListener(IBundleRepositoryListener listener);
-
-    void accept(IRepositoryVisitor visitor);
-
-    void accept(IRepositoryVisitor visitor, int options);
-
-    void writeOBR(OutputStream out) throws IOException;
-
-    void refresh();
-
-    ISigilBundle findProvider(IPackageImport packageImport, int options);
-
-    ISigilBundle findProvider(IRequiredBundle bundle, int options);
-
-    Collection<ISigilBundle> findAllProviders(IRequiredBundle bundle, int options);
-
-    Collection<ISigilBundle> findAllProviders(IPackageImport packageImport, int options);
-
-    Collection<ISigilBundle> findProviders(ILibrary library, int options);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepositoryListener.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepositoryListener.java
deleted file mode 100644
index b63bb5f..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleRepositoryListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public interface IBundleRepositoryListener
-{
-    void notifyChange(IBundleRepository repository);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleResolver.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleResolver.java
deleted file mode 100644
index c60d6b5..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IBundleResolver.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-
-public interface IBundleResolver
-{
-    IResolution resolve(IModelElement element, ResolutionConfig config,
-        IResolutionMonitor monitor) throws ResolutionException;
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IProviderChangeListener.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IProviderChangeListener.java
deleted file mode 100644
index 38e313c..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IProviderChangeListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public interface IProviderChangeListener
-{
-    void notifyChange(IRepositoryProvider provider);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryChangeListener.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryChangeListener.java
deleted file mode 100644
index b70161d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryChangeListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public interface IRepositoryChangeListener
-{
-    void repositoryChanged(RepositoryChangeEvent event);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryManager.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryManager.java
deleted file mode 100644
index 5c1ec1d..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-
-public interface IRepositoryManager
-{
-    void addRepositoryChangeListener(IRepositoryChangeListener listener);
-
-    void removeRepositoryChangeListener(IRepositoryChangeListener listener);
-
-    Collection<IBundleRepository> getRepositories();
-
-    IBundleResolver getBundleResolver();
-
-    ILibrary resolveLibrary(final ILibraryImport l);
-
-    void visit(IModelWalker modelWalker);
-}
\ No newline at end of file
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryProvider.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryProvider.java
deleted file mode 100644
index dbc462e..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.util.Properties;
-
-public interface IRepositoryProvider
-{
-    IBundleRepository createRepository(String id, Properties properties)
-        throws RepositoryException;
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryVisitor.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryVisitor.java
deleted file mode 100644
index 0f59173..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IRepositoryVisitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-
-public interface IRepositoryVisitor
-{
-    /**
-     * Visit the next bundle in the repository. 
-     * Return true if should continue visiting other bundles, false otherwise.
-     * @param bundle
-     * @return
-     */
-    boolean visit(ISigilBundle bundle);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolution.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolution.java
deleted file mode 100644
index f9b053f..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolution.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.progress.IProgress;
-
-public interface IResolution
-{
-    Set<ISigilBundle> getBundles();
-
-    ISigilBundle getProvider(IModelElement requirement);
-
-    List<IModelElement> getMatchedRequirements(ISigilBundle bundle);
-
-    void synchronize(IProgress progress);
-
-    boolean isSynchronized();
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolutionMonitor.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolutionMonitor.java
deleted file mode 100644
index a866611..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/IResolutionMonitor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-
-public interface IResolutionMonitor
-{
-    boolean isCanceled();
-
-    void startResolution(IModelElement requirement);
-
-    void endResolution(IModelElement requirement, ISigilBundle sigilBundle);
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryChangeEvent.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryChangeEvent.java
deleted file mode 100644
index d1be228..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryChangeEvent.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public class RepositoryChangeEvent
-{
-    public static enum Type
-    {
-        ADDED, CHANGED, REMOVED
-    };
-
-    private Type type;
-    private IBundleRepository repository;
-
-    public RepositoryChangeEvent(IBundleRepository repository, Type type)
-    {
-        this.repository = repository;
-        this.type = type;
-    }
-
-    public Type getType()
-    {
-        return type;
-    }
-
-    public IBundleRepository getRepository()
-    {
-        return repository;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryException.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryException.java
deleted file mode 100644
index ccd39d3..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/RepositoryException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public class RepositoryException extends Exception
-{
-
-    private static final long serialVersionUID = 1L;
-
-    public RepositoryException(String msg, Throwable cause)
-    {
-        super(msg, cause);
-    }
-
-    public RepositoryException(String message)
-    {
-        super(message);
-    }
-
-    public RepositoryException(Throwable cause)
-    {
-        super(cause);
-    }
-
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionConfig.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionConfig.java
deleted file mode 100644
index 35d6c2a..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionConfig.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-public class ResolutionConfig
-{
-    private int options;
-
-    public static final int INCLUDE_DEPENDENTS = 1;
-    public static final int INCLUDE_OPTIONAL = 2;
-    public static final int IGNORE_ERRORS = 4;
-    /** Return only bundles that are indexed locally */
-    public static final int INDEXED_ONLY = 8;
-    /** Return only bundles that are stored or cached locally */
-    public static final int LOCAL_ONLY = 16;
-    public static final int COMPILE_TIME = 32;
-
-    public ResolutionConfig()
-    {
-        this(INCLUDE_DEPENDENTS);
-    }
-
-    public ResolutionConfig(int options)
-    {
-        this.options = options;
-    }
-
-    public int getOptions()
-    {
-        return options;
-    }
-
-    public boolean isDependents()
-    {
-        return (options & INCLUDE_DEPENDENTS) != 0;
-    }
-
-    public boolean isIgnoreErrors()
-    {
-        return (options & IGNORE_ERRORS) != 0;
-    }
-
-    public boolean isOptional()
-    {
-        return (options & INCLUDE_OPTIONAL) != 0;
-    }
-
-    public boolean isCalculateLocalDependencies()
-    {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isCompileTime()
-    {
-        return (options & COMPILE_TIME) != 0;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionException.java b/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionException.java
deleted file mode 100644
index c68b9e1..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/repository/ResolutionException.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.repository;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-
-public class ResolutionException extends Exception
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private IModelElement[] parsed;
-
-    public ResolutionException(String message, Throwable cause)
-    {
-        super(message, cause);
-    }
-
-    public ResolutionException(String message)
-    {
-        super(message);
-    }
-
-    public ResolutionException(Throwable cause)
-    {
-        super(cause);
-    }
-
-    public ResolutionException(IModelElement root, IModelElement[] parsed)
-    {
-        super(buildMessage(root, parsed));
-        this.parsed = parsed;
-    }
-
-    private static String buildMessage(IModelElement root, IModelElement[] parsed)
-    {
-        StringBuilder b = new StringBuilder();
-        b.append("Failed to resolve ");
-        b.append(root);
-
-        if (parsed.length > 0)
-        {
-            b.append(" due to missing provider for ");
-            b.append(parsed[parsed.length - 1]);
-        }
-
-        return b.toString();
-    }
-
-    public IModelElement[] getParsed()
-    {
-        return parsed;
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/util/ManifestUtil.java b/sigil/common/core/src/org/apache/felix/sigil/common/util/ManifestUtil.java
deleted file mode 100644
index 9048a77..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/util/ManifestUtil.java
+++ /dev/null
@@ -1,265 +0,0 @@
-package org.apache.felix.sigil.common.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.osgi.framework.Version;
-
-public class ManifestUtil
-{
-    /**
-     * Use this utility to read Manifest from a JarFile or ZipFile
-     * due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6735255
-     * 
-     * @param zip
-     * @return
-     * @throws IOException
-     */
-    public static Manifest getManifest(ZipFile zip) throws IOException {
-        ZipEntry entry = zip.getEntry("META-INF/MANIFEST.MF");
-        if ( entry == null ) return null;
-        
-        InputStream in = zip.getInputStream(entry);
-        try {
-            return new Manifest(in);
-        }
-        finally {
-            // explicitly close due to 
-            // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6735255
-            in.close();
-        }
-    }
-    
-    public static IBundleModelElement buildBundleModelElement(ZipFile zip) throws IOException {
-        IBundleModelElement info = null;
-
-        Manifest mf = getManifest(zip);
-        
-        if (mf != null)
-        {
-            Attributes attrs = mf.getMainAttributes();
-            String name = attrs.getValue("Bundle-SymbolicName");
-            if (name == null)
-            {
-                // framework.jar doesn't have Bundle-SymbolicName!
-                name = attrs.getValue("Bundle-Name");
-            }
-
-            if (name != null)
-            {
-                try
-                {
-                    info = ModelElementFactory.getInstance().newModelElement(
-                        IBundleModelElement.class);
-                    info.setSymbolicName(name.split(";")[0]);
-                    info.setVersion(VersionTable.getVersion(attrs.getValue("Bundle-Version")));
-                    info.setName(attrs.getValue("Bundle-Name"));
-                    info.setDescription(attrs.getValue("Bundle-Description"));
-                    info.setVendor(attrs.getValue("Bundle-Vendor"));
-
-                    String str = attrs.getValue("Import-Package");
-                    if (str != null)
-                    {
-                        addImports(info, str);
-                    }
-
-                    str = attrs.getValue("Export-Package");
-                    if (str != null)
-                    {
-                        addExports(info, str);
-                    }
-
-                    str = attrs.getValue("Require-Bundle");
-                    if (str != null)
-                    {
-                        addRequires(info, str);
-                    }
-
-                    str = attrs.getValue("Bundle-Classpath");
-
-                    if (str != null)
-                    {
-                        addClasspath(info, str);
-                    }
-
-                    str = attrs.getValue("Fragment-Host");
-                    if (str != null)
-                    {
-                        addHost(info, str);
-                    }
-                }
-                catch (RuntimeException e)
-                {
-                    BldCore.error("Failed to read info from bundle " + name, e);
-                    // clear elements as clearly got garbage
-                    info = null;
-                }
-            }
-        }
-
-        return info;
-    }
-
-    private static void addClasspath(IBundleModelElement info, String cpStr)
-    {
-        for (String cp : cpStr.split("\\s*,\\s*"))
-        {
-            info.addClasspath(cp);
-        }
-    }
-
-    private static void addExports(IBundleModelElement info, String exportStr)
-        throws ModelElementFactoryException
-    {
-        for (String exp : QuoteUtil.split(exportStr))
-        {
-            try
-            {
-                String[] parts = exp.split(";");
-                IPackageExport pe = ModelElementFactory.getInstance().newModelElement(
-                    IPackageExport.class);
-                pe.setPackageName(parts[0].trim());
-
-                if (parts.length > 1)
-                {
-                    for (int i = 1; i < parts.length; i++)
-                    {
-                        String check = parts[i];
-                        if (check.toLowerCase().startsWith("version="))
-                        {
-                            pe.setVersion(parseVersion(check.substring("version=".length())));
-                        }
-                        else if (check.toLowerCase().startsWith("specification-version="))
-                        {
-                            pe.setVersion(parseVersion(check.substring("specification-version=".length())));
-                        }
-                        else if (check.toLowerCase().startsWith("uses:="))
-                        {
-                            for (String use : parseUses(check.substring("uses:=".length())))
-                            {
-                                pe.addUse(use);
-                            }
-                        }
-                    }
-                }
-                info.addExport(pe);
-            }
-            catch (RuntimeException e)
-            {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    private static Collection<String> parseUses(String uses)
-    {
-        if (uses.startsWith("\""))
-        {
-            uses = uses.substring(1, uses.length() - 2);
-        }
-
-        return Arrays.asList(uses.split(","));
-    }
-
-    private static Version parseVersion(String val)
-    {
-        val = val.replaceAll("\"", "");
-        return VersionTable.getVersion(val);
-    }
-
-    private static void addImports(IBundleModelElement info, String importStr)
-        throws ModelElementFactoryException
-    {
-        for (String imp : QuoteUtil.split(importStr))
-        {
-            String[] parts = imp.split(";");
-            IPackageImport pi = ModelElementFactory.getInstance().newModelElement(
-                IPackageImport.class);
-            pi.setPackageName(parts[0].trim());
-
-            if (parts.length > 1)
-            {
-                for (int i = 1; i < parts.length; i++)
-                {
-                    String p = parts[i];
-                    if (p.toLowerCase().startsWith("version="))
-                    {
-                        pi.setVersions(VersionRange.parseVersionRange(p.substring("version=".length())));
-                    }
-                    else if (p.toLowerCase().startsWith("specification-version="))
-                    {
-                        pi.setVersions(VersionRange.parseVersionRange(p.substring("specification-version=".length())));
-                    }
-                    else if (p.toLowerCase().startsWith("resolution:="))
-                    {
-                        pi.setOptional(p.toLowerCase().substring("resolution:=".length()).equals(
-                            "optional"));
-                    }
-                }
-            }
-            info.addImport(pi);
-        }
-    }
-
-    private static void addRequires(IBundleModelElement info, String reqStr)
-        throws ModelElementFactoryException
-    {
-        for (String imp : QuoteUtil.split(reqStr))
-        {
-            String[] parts = imp.split(";");
-            IRequiredBundle req = ModelElementFactory.getInstance().newModelElement(
-                IRequiredBundle.class);
-            req.setSymbolicName(parts[0]);
-
-            if (parts.length > 1)
-            {
-                if (parts[1].toLowerCase().startsWith("version="))
-                {
-                    req.setVersions(VersionRange.parseVersionRange(parts[1].substring("version=".length())));
-                }
-                else if (parts[1].toLowerCase().startsWith("specification-version="))
-                {
-                    req.setVersions(VersionRange.parseVersionRange(parts[1].substring("specification-version=".length())));
-                }
-            }
-            info.addRequiredBundle(req);
-        }
-    }
-
-    /**
-     * @param info
-     * @param str
-     */
-    private static void addHost(IBundleModelElement info, String str)
-    {
-        String[] parts = str.split(";");
-        IRequiredBundle req = ModelElementFactory.getInstance().newModelElement(
-            IRequiredBundle.class);
-        req.setSymbolicName(parts[0].trim());
-
-        if (parts.length > 1)
-        {
-            String part = parts[1].toLowerCase().trim();
-            if (part.startsWith("bundle-version="))
-            {
-                req.setVersions(VersionRange.parseVersionRange(part.substring("bundle-version=".length())));
-            }
-        }
-        info.setFragmentHost(req);
-    }
-}
diff --git a/sigil/common/core/src/org/apache/felix/sigil/common/util/QuoteUtil.java b/sigil/common/core/src/org/apache/felix/sigil/common/util/QuoteUtil.java
deleted file mode 100644
index 4bab43e..0000000
--- a/sigil/common/core/src/org/apache/felix/sigil/common/util/QuoteUtil.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.util;
-
-import java.util.ArrayList;
-
-public class QuoteUtil
-{
-    public static String[] split(String str)
-    {
-        ArrayList<String> split = new ArrayList<String>();
-        boolean quote = false;
-        StringBuffer buf = new StringBuffer(str.length());
-
-        for (int i = 0; i < str.length(); i++)
-        {
-            char c = str.charAt(i);
-            switch (c)
-            {
-                case '"':
-                    quote = !quote;
-                    break;
-                case ',':
-                    if (!quote)
-                    {
-                        split.add(buf.toString().trim());
-                        buf.setLength(0);
-                        break;
-                    }
-                    // else fall through on purpose
-                default:
-                    buf.append(c);
-            }
-        }
-
-        if (buf.length() > 0)
-        {
-            split.add(buf.toString().trim());
-        }
-        return split.toArray(new String[split.size()]);
-    }
-}
diff --git a/sigil/common/junit/.classpath b/sigil/common/junit/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/junit/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/junit/.project b/sigil/common/junit/.project
deleted file mode 100644
index aebb4f6..0000000
--- a/sigil/common/junit/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.junit</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/junit/.settings/org.eclipse.jdt.core.prefs b/sigil/common/junit/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9b955ca..0000000
--- a/sigil/common/junit/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:07:16 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/junit/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/junit/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 6fc2d89..0000000
--- a/sigil/common/junit/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:07:16 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/junit/build.xml b/sigil/common/junit/build.xml
deleted file mode 100644
index 712ef92..0000000
--- a/sigil/common/junit/build.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-
-<project name="junit" default="bundle" basedir=".">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/junit/ivy.xml b/sigil/common/junit/ivy.xml
deleted file mode 100644
index 6121212..0000000
--- a/sigil/common/junit/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache"
-        module="felix.sigil.common.junit"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.junit" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/junit/sigil.properties b/sigil/common/junit/sigil.properties
deleted file mode 100644
index c39b192..0000000
--- a/sigil/common/junit/sigil.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.common.junit.activator.Activator
-
--bundles: \
-	org.apache.felix.sigil.common.junit, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.common.junit.server, \
-
--imports: \
-	junit.framework, \
-	org.apache.felix.sigil.common.junit.server, \
-	org.osgi.framework, \
-	org.osgi.util.tracker, \
-
-# end
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/AbstractSigilTestCase.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/AbstractSigilTestCase.java
deleted file mode 100644
index 93453a0..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/AbstractSigilTestCase.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit;
-
-import java.lang.reflect.Method;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-import junit.framework.TestCase;
-
-public abstract class AbstractSigilTestCase extends TestCase
-{
-
-    private final static List<ServiceTracker> trackers = new LinkedList<ServiceTracker>();
-
-    private BundleContext ctx;
-
-    public void setBundleContext(BundleContext ctx)
-    {
-        this.ctx = ctx;
-    }
-
-    protected BundleContext getBundleContext()
-    {
-        return ctx;
-    }
-
-    @Override
-    protected void setUp()
-    {
-        for (Class<?> c : getReferences())
-        {
-            ServiceTracker t = createBindTracker(c);
-            t.open();
-            trackers.add(t);
-        }
-    }
-
-    @Override
-    protected void tearDown()
-    {
-        for (ServiceTracker t : trackers)
-        {
-            t.close();
-        }
-        trackers.clear();
-    }
-
-    private ServiceTracker createBindTracker(final Class<?> c)
-    {
-        return new ServiceTracker(ctx, c.getName(), new ServiceTrackerCustomizer()
-        {
-            public Object addingService(ServiceReference reference)
-            {
-                Object o = ctx.getService(reference);
-                Method m = getBindMethod(c);
-                if (m != null)
-                    invoke(m, o);
-                return o;
-            }
-
-            public void modifiedService(ServiceReference reference, Object service)
-            {
-            }
-
-            public void removedService(ServiceReference reference, Object service)
-            {
-                Method m = getUnbindMethod(c);
-                if (m != null)
-                    invoke(m, service);
-                ctx.ungetService(reference);
-            }
-        });
-    }
-
-    private void invoke(Method m, Object o)
-    {
-        try
-        {
-            m.invoke(this, new Object[] { o });
-        }
-        catch (Exception e)
-        {
-            throw new IllegalStateException("Failed to invoke binding method " + m, e);
-        }
-    }
-
-    protected abstract Class<?>[] getReferences();
-
-    protected abstract Method getBindMethod(Class<?> clazz);
-
-    protected abstract Method getUnbindMethod(Class<?> clazz);
-}
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/ReflectiveSigilTestCase.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/ReflectiveSigilTestCase.java
deleted file mode 100644
index 96743c3..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/ReflectiveSigilTestCase.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit;
-
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-
-public abstract class ReflectiveSigilTestCase extends AbstractSigilTestCase
-{
-
-    private Class<?>[] references;
-    private Map<Class<?>, Method> bindMethods;
-    private Map<Class<?>, Method> unbindMethods;
-
-    @Override
-    protected Class<?>[] getReferences()
-    {
-        introspect();
-        return references;
-    }
-
-    @Override
-    protected Method getBindMethod(Class<?> clazz)
-    {
-        return bindMethods.get(clazz);
-    }
-
-    @Override
-    protected Method getUnbindMethod(Class<?> clazz)
-    {
-        return unbindMethods.get(clazz);
-    }
-
-    private void introspect()
-    {
-        if (references == null)
-        {
-            bindMethods = findBindMethods(getClass(), "set", "add");
-            unbindMethods = findBindMethods(getClass(), "set", "remove");
-
-            HashSet<Class<?>> refs = new HashSet<Class<?>>();
-            refs.addAll(bindMethods.keySet());
-            refs.addAll(unbindMethods.keySet());
-            references = refs.toArray(new Class<?>[refs.size()]);
-        }
-    }
-
-    private static Map<Class<?>, Method> findBindMethods(Class<?> clazz, String... prefix)
-    {
-        HashMap<Class<?>, Method> found = new HashMap<Class<?>, Method>();
-
-        checkDeclaredMethods(clazz, found, prefix);
-
-        return found;
-    }
-
-    private static void checkDeclaredMethods(Class<?> clazz, Map<Class<?>, Method> found,
-        String... prefix)
-    {
-        for (Method m : clazz.getDeclaredMethods())
-        {
-            if (isMethodPrefixed(m, prefix) && isBindSignature(m))
-            {
-                found.put(m.getParameterTypes()[0], m);
-            }
-        }
-
-        Class<?> sup = clazz.getSuperclass();
-        if (sup != null && sup != Object.class)
-        {
-            checkDeclaredMethods(sup, found, prefix);
-        }
-
-        for (Class<?> i : clazz.getInterfaces())
-        {
-            checkDeclaredMethods(i, found, prefix);
-        }
-    }
-
-    private static boolean isMethodPrefixed(Method m, String... prefix)
-    {
-        String n = m.getName();
-        for (String p : prefix)
-        {
-            if (n.startsWith(p) && n.length() > p.length())
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private static boolean isBindSignature(Method m)
-    {
-        return m.getReturnType() == Void.TYPE && m.getParameterTypes().length == 1;
-    }
-}
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/activator/Activator.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/activator/Activator.java
deleted file mode 100644
index a34511c..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/activator/Activator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit.activator;
-
-import org.apache.felix.sigil.common.junit.server.JUnitService;
-import org.apache.felix.sigil.common.junit.server.impl.JUnitServiceFactory;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-/**
- * @author dave
- */
-public class Activator implements BundleActivator
-{
-    private ServiceRegistration reg;
-    private JUnitServiceFactory service;
-
-    public void start(final BundleContext ctx)
-    {
-        service = new JUnitServiceFactory();
-        service.start(ctx);
-        reg = ctx.registerService(JUnitService.class.getName(), service, null);
-    }
-
-    public void stop(BundleContext ctx)
-    {
-        reg.unregister();
-        reg = null;
-        service.stop(ctx);
-        service = null;
-    }
-}
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/JUnitService.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/JUnitService.java
deleted file mode 100644
index 0d73a50..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/JUnitService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit.server;
-
-import java.util.Set;
-
-import org.osgi.framework.BundleContext;
-
-import junit.framework.TestSuite;
-
-public interface JUnitService
-{
-    Set<String> getTests();
-
-    TestSuite createTest(String test);
-
-    TestSuite createTest(String test, BundleContext ctx);
-}
\ No newline at end of file
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceFactory.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceFactory.java
deleted file mode 100644
index 838d30a..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit.server.impl;
-
-import java.util.HashMap;
-import java.util.Set;
-import java.util.TreeSet;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceFactory;
-import org.osgi.framework.ServiceRegistration;
-
-public class JUnitServiceFactory implements ServiceFactory
-{
-
-    private HashMap<String, Class<? extends TestCase>> tests = new HashMap<String, Class<? extends TestCase>>();
-    private TestClassListener listener;
-
-    public void start(BundleContext ctx)
-    {
-        listener = new TestClassListener(this);
-        ctx.addBundleListener(listener);
-        //listener.index(ctx.getBundle());
-        for (Bundle b : ctx.getBundles())
-        {
-            if (b.getState() == Bundle.RESOLVED)
-            {
-                listener.index(b);
-            }
-        }
-    }
-
-    public void stop(BundleContext ctx)
-    {
-        ctx.removeBundleListener(listener);
-        listener = null;
-    }
-
-    public Object getService(Bundle bundle, ServiceRegistration reg)
-    {
-        return new JUnitServiceImpl(this, bundle.getBundleContext());
-    }
-
-    public void ungetService(Bundle bundle, ServiceRegistration reg, Object service)
-    {
-    }
-
-    public void registerTest(Class<? extends TestCase> clazz)
-    {
-        tests.put(clazz.getName(), clazz);
-    }
-
-    public void unregister(Class<? extends TestCase> clazz)
-    {
-        tests.remove(clazz.getName());
-    }
-
-    public Set<String> getTests()
-    {
-        return new TreeSet<String>(tests.keySet());
-    }
-
-    public TestSuite getTest(String test)
-    {
-        Class<? extends TestCase> tc = tests.get(test);
-        return tc == null ? null : new TestSuite(tc);
-    }
-
-}
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceImpl.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceImpl.java
deleted file mode 100644
index 593d280..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/JUnitServiceImpl.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit.server.impl;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.apache.felix.sigil.common.junit.server.JUnitService;
-import org.osgi.framework.BundleContext;
-
-public class JUnitServiceImpl implements JUnitService
-{
-
-    private static final Logger log = Logger.getLogger(JUnitServiceImpl.class.getName());
-
-    private static final Class<?>[] BUNDLE_CONTEXT_PARAMS = new Class[] { BundleContext.class };
-
-    private final JUnitServiceFactory junitServiceFactory;
-    private final BundleContext bundleContext;
-
-    public JUnitServiceImpl(JUnitServiceFactory junitServiceFactory, BundleContext bundleContext)
-    {
-        this.junitServiceFactory = junitServiceFactory;
-        this.bundleContext = bundleContext;
-    }
-
-    public Set<String> getTests()
-    {
-        return junitServiceFactory.getTests();
-    }
-
-    public TestSuite createTest(String test)
-    {
-        return createTest(test, null);
-    }
-
-    public TestSuite createTest(String test, BundleContext ctx)
-    {
-        try
-        {
-            TestSuite ts = junitServiceFactory.getTest(test);
-
-            if (ts == null)
-                return null;
-
-            TestSuite ret = new TestSuite(ts.getName());
-
-            Enumeration<Test> e = ts.tests();
-
-            while (e.hasMoreElements())
-            {
-                Test t = e.nextElement();
-                setContext(t, ctx);
-                ret.addTest(t);
-            }
-
-            return ret;
-        }
-        catch (final NoClassDefFoundError e)
-        {
-            TestSuite s = new TestSuite(test);
-            s.addTest(new Test()
-            {
-                public int countTestCases()
-                {
-                    return 1;
-                }
-
-                public void run(TestResult result)
-                {
-                    result.addError(this, e);
-                }
-            });
-            return s;
-        }
-        catch (final RuntimeException e)
-        {
-            TestSuite s = new TestSuite(test);
-            s.addTest(new Test()
-            {
-                public int countTestCases()
-                {
-                    return 1;
-                }
-
-                public void run(TestResult result)
-                {
-                    result.addError(this, e);
-                }
-
-            });
-            return s;
-        }
-    }
-
-    private void setContext(Test t, BundleContext ctx)
-    {
-        try
-        {
-            Method m = findMethod(t.getClass(), "setBundleContext", BUNDLE_CONTEXT_PARAMS);
-            if (m != null)
-                m.invoke(t, ctx == null ? bundleContext : ctx);
-        }
-        catch (SecurityException e)
-        {
-            log.log(Level.WARNING, "Failed to set bundle context on " + t, e);
-        }
-        catch (IllegalArgumentException e)
-        {
-            log.log(Level.WARNING, "Failed to set bundle context on " + t, e);
-        }
-        catch (IllegalAccessException e)
-        {
-            log.log(Level.WARNING, "Failed to set bundle context on " + t, e);
-        }
-        catch (InvocationTargetException e)
-        {
-            log.log(Level.WARNING, "Failed to set bundle context on " + t, e);
-        }
-    }
-
-    private Method findMethod(Class<?> clazz, String name, Class<?>[] params)
-    {
-        Method found = null;
-
-        for (Method m : clazz.getDeclaredMethods())
-        {
-            if (m.getName().equals(name)
-                && Arrays.deepEquals(m.getParameterTypes(), params))
-            {
-                found = m;
-                break;
-            }
-        }
-
-        if (found == null)
-        {
-            Class<?> c = clazz.getSuperclass();
-
-            if (c != null && c != Object.class)
-            {
-                found = findMethod(c, name, params);
-            }
-        }
-
-        if (found == null)
-        {
-            for (Class<?> c : clazz.getInterfaces())
-            {
-                found = findMethod(c, name, params);
-                if (found != null)
-                {
-                    break;
-                }
-            }
-        }
-
-        return found;
-    }
-}
diff --git a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/TestClassListener.java b/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/TestClassListener.java
deleted file mode 100644
index 3c7b22b..0000000
--- a/sigil/common/junit/src/org/apache/felix/sigil/common/junit/server/impl/TestClassListener.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.junit.server.impl;
-
-import java.lang.reflect.Modifier;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import junit.framework.TestCase;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.SynchronousBundleListener;
-
-public class TestClassListener implements SynchronousBundleListener
-{
-    private static final Logger log = Logger.getLogger(TestClassListener.class.getName());
-
-    private final JUnitServiceFactory service;
-
-    private HashMap<Long, Class<TestCase>[]> registrations = new HashMap<Long, Class<TestCase>[]>();
-
-    public TestClassListener(JUnitServiceFactory service)
-    {
-        this.service = service;
-    }
-
-    public void bundleChanged(BundleEvent event)
-    {
-        switch (event.getType())
-        {
-            case BundleEvent.RESOLVED:
-                index(event.getBundle());
-                break;
-            case BundleEvent.UNRESOLVED:
-                unindex(event.getBundle());
-                break;
-        }
-    }
-
-    void index(Bundle bundle)
-    {
-        if (isTestBundle(bundle))
-        {
-            List<String> tests = findTests(bundle);
-
-            if (!tests.isEmpty())
-            {
-                LinkedList<Class<? extends TestCase>> regs = new LinkedList<Class<? extends TestCase>>();
-
-                for (String jc : tests)
-                {
-                    try
-                    {
-                        Class<?> clazz = bundle.loadClass(jc);
-                        if (isTestCase(clazz))
-                        {
-                            Class<? extends TestCase> tc = clazz.asSubclass(TestCase.class);
-                            regs.add(tc);
-                            service.registerTest(tc);
-                        }
-                    }
-                    catch (ClassNotFoundException e)
-                    {
-                        log.log(Level.WARNING, "Failed to load class " + jc, e);
-                    }
-                    catch (NoClassDefFoundError e)
-                    {
-                        log.log(Level.WARNING, "Failed to load class " + jc, e);
-                    }
-                }
-
-                registrations.put(bundle.getBundleId(), toArray(regs));
-            }
-        }
-    }
-
-    private boolean isTestBundle(Bundle bundle)
-    {
-        try
-        {
-            bundle.loadClass(TestCase.class.getName());
-            return true;
-        }
-        catch (ClassNotFoundException e)
-        {
-            return false;
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private Class<TestCase>[] toArray(LinkedList<Class<? extends TestCase>> regs)
-    {
-        return regs.toArray(new Class[regs.size()]);
-    }
-
-    private boolean isTestCase(Class<?> clazz)
-    {
-        return TestCase.class.isAssignableFrom(clazz)
-            && !Modifier.isAbstract(clazz.getModifiers())
-            && !clazz.getPackage().getName().startsWith("junit");
-    }
-
-    void unindex(Bundle bundle)
-    {
-        Class<TestCase>[] classes = registrations.remove(bundle.getBundleId());
-        if (classes != null)
-        {
-            for (Class<TestCase> tc : classes)
-            {
-                service.unregister(tc);
-            }
-        }
-    }
-
-    private List<String> findTests(Bundle bundle)
-    {
-        @SuppressWarnings("unchecked")
-        Enumeration<URL> urls = bundle.findEntries("", "*.class", true);
-
-        LinkedList<String> tests = new LinkedList<String>();
-        while (urls.hasMoreElements())
-        {
-            URL url = urls.nextElement();
-            tests.add(toClassName(url));
-        }
-
-        return tests;
-    }
-
-    private String toClassName(URL url)
-    {
-        String f = url.getFile();
-        String cn = f.substring(1, f.length() - 6);
-        return cn.replace('/', '.');
-    }
-
-}
diff --git a/sigil/common/obr.test/.classpath b/sigil/common/obr.test/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/obr.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/obr.test/.project b/sigil/common/obr.test/.project
deleted file mode 100644
index f952bce..0000000
--- a/sigil/common/obr.test/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.obr.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/obr.test/sigil.properties b/sigil/common/obr.test/sigil.properties
deleted file mode 100644
index 2945c8f..0000000
--- a/sigil/common/obr.test/sigil.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.obr.test, \
-
--sourcedirs: \
-	src, \
-
--fragment: \
-	org.apache.felix.sigil.common.obr;version=0.9.0, \
-
--imports: \
-	junit.framework, \
-	org.osgi.framework, \
-	org.apache.felix.sigil.common.osgi;version=0.9.0, \
-
-# end
diff --git a/sigil/common/obr.test/src/org/apache/felix/sigil/obr/impl/VersionRangeHelperTest.java b/sigil/common/obr.test/src/org/apache/felix/sigil/obr/impl/VersionRangeHelperTest.java
deleted file mode 100644
index 75a7513..0000000
--- a/sigil/common/obr.test/src/org/apache/felix/sigil/obr/impl/VersionRangeHelperTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.obr.impl;
-
-import org.apache.felix.sigil.common.obr.impl.VersionRangeHelper;
-import org.apache.felix.sigil.common.osgi.LDAPExpr;
-import org.apache.felix.sigil.common.osgi.LDAPParser;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.osgi.framework.Version;
-
-import junit.framework.TestCase;
-
-public class VersionRangeHelperTest extends TestCase
-{
-    public void testRange1()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(&(version>=1.0.0)(version<=2.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[1.0.0,2.0.0]"), range);
-    }
-
-    public void testRange2()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(&(version>1.0.0)(version<2.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("(1.0.0,2.0.0)"), range);
-    }
-
-    public void testRange3()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(&(!(version<1.0.0))(!(version>2.0.0)))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[1.0.0,2.0.0]"), range);
-    }
-
-    public void testRange4()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(&(!(version<=1.0.0))(!(version>=2.0.0)))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("(1.0.0,2.0.0)"), range);
-    }
-
-    public void testRange5()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(version=1.0.0)");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[1.0.0,1.0.0]"), range);
-    }
-
-    public void testRange6()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(version>=1.0.0)");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(new VersionRange(false, new Version(1, 0, 0),
-            VersionRange.INFINITE_VERSION, true), range);
-    }
-
-    public void testRange7()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(version<=2.0.0)");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[0,2.0.0]"), range);
-    }
-
-    public void testRange8()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(version>1.0.0)");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(new VersionRange(true, new Version(1, 0, 0),
-            VersionRange.INFINITE_VERSION, true), range);
-    }
-
-    public void testRange9()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(version<2.0.0)");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[0,2.0.0)"), range);
-    }
-
-    public void testRange10()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(!(version>2.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[0,2.0.0]"), range);
-    }
-
-    public void testRange11()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(!(version<1.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("1.0.0"), range);
-    }
-
-    public void testRange12()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(!(version>=2.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(VersionRange.parseVersionRange("[0,2.0.0)"), range);
-    }
-
-    public void testRange13()
-    {
-        LDAPExpr expr;
-        VersionRange range;
-
-        expr = LDAPParser.parseExpression("(!(version<=1.0.0))");
-        range = VersionRangeHelper.decodeVersions(expr);
-        assertEquals(new VersionRange(true, new Version(1, 0, 0),
-            VersionRange.INFINITE_VERSION, true), range);
-    }
-}
diff --git a/sigil/common/obr/.classpath b/sigil/common/obr/.classpath
deleted file mode 100644
index 427e30f..0000000
--- a/sigil/common/obr/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/obr/.project b/sigil/common/obr/.project
deleted file mode 100644
index 2576901..0000000
--- a/sigil/common/obr/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.obr</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/obr/.settings/org.eclipse.jdt.core.prefs b/sigil/common/obr/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5a9f21b..0000000
--- a/sigil/common/obr/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:07:48 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/obr/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/obr/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0f83f19..0000000
--- a/sigil/common/obr/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:07:48 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/obr/.settings/org.eclipse.pde.core.prefs b/sigil/common/obr/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 66d1746..0000000
--- a/sigil/common/obr/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Wed Sep 10 14:14:56 BST 2008
-eclipse.preferences.version=1
-pluginProject.equinox=false
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/sigil/common/obr/DEPENDENCIES b/sigil/common/obr/DEPENDENCIES
deleted file mode 100644
index e9ecd0b..0000000
--- a/sigil/common/obr/DEPENDENCIES
+++ /dev/null
@@ -1,20 +0,0 @@
-Apache Felix Sigil Common OBR
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/common/obr/NOTICE b/sigil/common/obr/NOTICE
deleted file mode 100644
index caf3ce7..0000000
--- a/sigil/common/obr/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Common Core
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/common/obr/build.xml b/sigil/common/obr/build.xml
deleted file mode 100644
index 39cb53f..0000000
--- a/sigil/common/obr/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common.obr" default="build">
-      <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/obr/ivy.xml b/sigil/common/obr/ivy.xml
deleted file mode 100644
index 374a9cf..0000000
--- a/sigil/common/obr/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache"
-        module="felix.sigil.common.obr"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.obr" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/obr/sigil.properties b/sigil/common/obr/sigil.properties
deleted file mode 100644
index 001899d..0000000
--- a/sigil/common/obr/sigil.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.obr, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.common.obr, \
-
--imports: \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.obr, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.osgi.framework, \
-
-# end
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/OBRRepositoryProvider.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/OBRRepositoryProvider.java
deleted file mode 100644
index 524fc8b..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/OBRRepositoryProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.felix.sigil.common.obr.impl.CachingOBRBundleRepository;
-import org.apache.felix.sigil.common.obr.impl.NonCachingOBRBundleRepository;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-public class OBRRepositoryProvider implements IRepositoryProvider
-{
-    private static final String IN_MEMORY = "inmemory";
-    private static final String UPDATE_PERIOD = "updatePeriod";
-    private static final String AUTH_FILE = "auth";
-    public static final String CACHE_DIRECTORY = "cache";
-    public static final String INDEX_CACHE_FILE = "index";
-    public static final String OFFLINE = "offline";
-
-    public IBundleRepository createRepository(String id, Properties preferences)
-        throws RepositoryException
-    {
-        String urlStr = preferences.getProperty("url");
-        if (urlStr == null)
-            throw new RepositoryException("url is not specified.");
-
-        try
-        {
-            File urlFile = new File(urlStr);
-            URL repositoryURL = urlFile.exists() ? urlFile.toURI().toURL() : new URL(
-                urlStr);
-            URL testURL = urlFile.exists() ? urlFile.toURI().toURL() : new URL(urlStr);
-            File indexCache = new File(preferences.getProperty(INDEX_CACHE_FILE));
-            File localCache = new File(preferences.getProperty(CACHE_DIRECTORY));
-            String auth = preferences.getProperty(AUTH_FILE);
-            File authFile = auth == null ? null : new File(auth);
-            Long up = preferences.containsKey(UPDATE_PERIOD) ? Long.parseLong(preferences.getProperty(UPDATE_PERIOD))
-                : 60 * 60 * 24 * 7;
-            
-            boolean offline = preferences.containsKey(OFFLINE) ? Boolean.parseBoolean(preferences.getProperty(OFFLINE)) : false;
-
-            if (!offline && testURL.openConnection().getLastModified() == 0)
-            {
-                String msg = "Failed to read OBR index: ";
-                if (!indexCache.exists())
-                    throw new RepositoryException(msg + urlStr);
-                System.err.println("WARNING: " + msg + "using cache: " + urlStr);
-            }
-
-            long updatePeriod = TimeUnit.MILLISECONDS.convert(up, TimeUnit.SECONDS);
-            if (preferences.getProperty(IN_MEMORY) == null)
-            {
-                return new NonCachingOBRBundleRepository(id, repositoryURL, indexCache,
-                    localCache, updatePeriod, authFile, offline);
-            }
-            else
-            {
-                return new CachingOBRBundleRepository(id, repositoryURL, indexCache,
-                    localCache, updatePeriod, authFile, offline);
-            }
-        }
-        catch (IOException e)
-        {
-            throw new RepositoryException(id + ": invalid repository url:" + urlStr, e);
-        }
-    }
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/AbstractOBRBundleRepository.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/AbstractOBRBundleRepository.java
deleted file mode 100644
index b8599e2..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/AbstractOBRBundleRepository.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-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.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Properties;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.xml.sax.SAXException;
-
-public abstract class AbstractOBRBundleRepository extends AbstractBundleRepository
-{
-    private static SAXParserFactory factory = SAXParserFactory.newInstance();
-
-    private final URL obrURL;
-    private final File obrlCache;
-    private final File bundleCache;
-    private final long updatePeriod;
-    private final File authFile;
-    private final Properties authMap = new Properties();
-    private final boolean offline;
-
-    private long authLastModified;
-    
-    public AbstractOBRBundleRepository(String id, URL repositoryURL, File obrCache, File bundleCache, long updatePeriod, File authFile, boolean offline)
-    {
-        super(id);
-        this.obrURL = repositoryURL;
-        this.obrlCache = (repositoryURL.getProtocol().equals("file") ? null : obrCache);
-        this.bundleCache = bundleCache;
-        this.updatePeriod = updatePeriod;
-        this.authFile = authFile;
-        this.offline = offline;
-    }
-
-    public void refresh()
-    {
-        if (obrlCache != null)
-            obrlCache.delete();
-    }
-
-    protected void readBundles(OBRListener listener)
-    {
-        File index = syncOBRIndex();
-        OBRHandler handler = new OBRHandler(getObrURL(), getBundleCache(), listener);
-        try
-        {
-            SAXParser parser = factory.newSAXParser();
-            if (getObrlCache() != null)
-                parser.parse(index, handler);
-            else
-                parser.parse(getObrURL().toExternalForm(), handler);
-        }
-        catch (ParserConfigurationException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        catch (SAXException e)
-        {
-            System.out.println("Failed to parse " + index);
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        catch (IOException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    private String getAuth(String url) throws IOException
-    {
-        if (authFile == null)
-            return null;
-
-        if (authFile.lastModified() > authLastModified)
-        {
-            authMap.clear();
-            authMap.load(new FileInputStream(authFile));
-            
-            authLastModified = authFile.lastModified();
-        }
-
-        String authKey = "";
-
-        for (Object okey : authMap.keySet())
-        {
-            String key = (String) okey;
-            if (url.startsWith(key) && key.length() > authKey.length())
-                authKey = key;
-        }
-
-        return authMap.getProperty(authKey);
-    }
-
-    private File syncOBRIndex()
-    {
-        File file = null;
-        if ("file".equals(getObrURL().getProtocol()))
-        {
-            try
-            {
-                file = new File(getObrURL().toURI());
-            }
-            catch (URISyntaxException e)
-            {
-                // should be impossible ?
-                throw new IllegalStateException("Failed to convert file url to uri", e);
-            }
-        }
-        else
-        {
-            file = getObrlCache();
-            if (isUpdated())
-            {
-                cacheIndex(file);
-            }
-        }
-
-        return file;
-    }
-
-    private void cacheIndex(File file)
-    {
-        InputStream in = null;
-        OutputStream out = null;
-
-        try
-        {
-            URL url = getObrURL();
-            URLConnection c = url.openConnection();
-            String auth = getAuth(url.toString());
-            if (auth != null)
-            {
-                c.setRequestProperty("Authorization", "Basic " + auth);
-            }
-
-            c.connect();
-            in = c.getInputStream();
-            if (!file.getParentFile().exists() && !file.getParentFile().mkdirs())
-            {
-                throw new IOException("Failed to create obr cache dir "
-                    + file.getParentFile());
-            }
-            out = new FileOutputStream(file);
-            stream(in, out);
-        }
-        catch (IOException e)
-        {
-            e.printStackTrace();
-            getObrlCache().setLastModified(0);
-        }
-        finally
-        {
-            close(in, out);
-        }
-    }
-
-    private void close(InputStream in, OutputStream out)
-    {
-        if (in != null)
-        {
-            try
-            {
-                in.close();
-            }
-            catch (IOException e)
-            {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-        }
-        if (out != null)
-        {
-            try
-            {
-                out.close();
-            }
-            catch (IOException e)
-            {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-        }
-    }
-
-    private void stream(InputStream in, OutputStream out) throws IOException
-    {
-        byte[] buf = new byte[1024];
-        for (;;)
-        {
-            int r = in.read(buf);
-            if (r == -1)
-            {
-                break;
-            }
-            out.write(buf, 0, r);
-        }
-        out.flush();
-    }
-
-    private boolean isUpdated()
-    {
-        if (getObrlCache() == null)
-            return false;
-
-        if (!getObrlCache().exists())
-            return true;
-
-        return !offline && getObrlCache().lastModified() + getUpdatePeriod() < System.currentTimeMillis();
-    }
-
-    private URL getObrURL()
-    {
-        return obrURL;
-    }
-
-    private File getObrlCache()
-    {
-        return obrlCache;
-    }
-
-    private File getBundleCache()
-    {
-        return bundleCache;
-    }
-
-    private long getUpdatePeriod()
-    {
-        return updatePeriod;
-    }
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/CachingOBRBundleRepository.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/CachingOBRBundleRepository.java
deleted file mode 100644
index 14e3687..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/CachingOBRBundleRepository.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-import java.io.File;
-import java.lang.ref.SoftReference;
-import java.net.URL;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-
-public class CachingOBRBundleRepository extends AbstractOBRBundleRepository
-{
-
-    private SoftReference<List<ISigilBundle>> bundles;
-
-    public CachingOBRBundleRepository(String id, URL repositoryURL, File obrCache, File bundleCache, long updatePeriod, File authFile, boolean offline)
-    {
-        super(id, repositoryURL, obrCache, bundleCache, updatePeriod, authFile, offline);
-    }
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        for (ISigilBundle b : loadFromCache(options))
-        {
-            if (!visitor.visit(b))
-            {
-                break;
-            }
-        }
-    }
-
-    public synchronized void refresh()
-    {
-        super.refresh();
-        if (bundles != null)
-        {
-            bundles.clear();
-            notifyChange();
-        }
-    }
-
-    private synchronized List<ISigilBundle> loadFromCache(int options)
-    {
-        List<ISigilBundle> cached = bundles == null ? null : bundles.get();
-        if (cached == null)
-        {
-            final LinkedList<ISigilBundle> read = new LinkedList<ISigilBundle>();
-            readBundles(new OBRListener()
-            {
-                public void handleBundle(ISigilBundle bundle)
-                {
-                    read.add(bundle);
-                }
-            });
-            cached = read;
-            bundles = new SoftReference<List<ISigilBundle>>(cached);
-        }
-
-        return cached;
-    }
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/NonCachingOBRBundleRepository.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/NonCachingOBRBundleRepository.java
deleted file mode 100644
index 06a6806..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/NonCachingOBRBundleRepository.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-import java.io.File;
-import java.net.URL;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-
-public class NonCachingOBRBundleRepository extends AbstractOBRBundleRepository
-{
-
-    /*public static void main(String[] args) throws Exception {
-    	String url = args[0];
-    	String obr = args[1];
-    	String cache = args[2];
-    	String update = args[3];
-    	BldCore.init();
-    	NonCachingOBRBundleRepository rep = new NonCachingOBRBundleRepository( "main", new URL(url), new File(obr), new File(cache), Long.parseLong(update));
-    	rep.accept(new IRepositoryVisitor() {
-    		public boolean visit(ISigilBundle bundle) {
-    			System.out.println( "Found " + bundle );
-    			return true;
-    		}
-    	});
-    } */
-
-    public NonCachingOBRBundleRepository(String id, URL repositoryURL, File obrCache, File bundleCache, long updatePeriod, File authFile, boolean offline)
-    {
-        super(id, repositoryURL, obrCache, bundleCache, updatePeriod, authFile, offline);
-    }
-
-    @Override
-    public void accept(final IRepositoryVisitor visitor, int options)
-    {
-        readBundles(new OBRListener()
-        {
-            boolean visit = true;
-
-            public void handleBundle(ISigilBundle bundle)
-            {
-                if (visit)
-                {
-                    visit = visitor.visit(bundle);
-                }
-            }
-        });
-    }
-
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRHandler.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRHandler.java
deleted file mode 100644
index 0979e41..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRHandler.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.LDAPExpr;
-import org.apache.felix.sigil.common.osgi.LDAPParseException;
-import org.apache.felix.sigil.common.osgi.LDAPParser;
-import org.apache.felix.sigil.common.osgi.SimpleTerm;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.xml.sax.Attributes;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.helpers.DefaultHandler;
-
-final class OBRHandler extends DefaultHandler
-{
-    private static final String PACKAGE = "package";
-    private static final String URI = "uri";
-    private static final String PRESENTATION_NAME = "presentationname";
-    private static final String VERSION = "version";
-    private static final String SYMBOLIC_NAME = "symbolicname";
-    private final File cacheDir;
-    private final URL obrURL;
-    private final OBRListener listener;
-
-    private HashSet<String> sanity = new HashSet<String>();
-    private Locator locator;
-    private ISigilBundle bundle;
-    private IPackageExport export;
-    private int depth;
-
-    public OBRHandler(URL obrURL, File bundleCache, OBRListener listener)
-    {
-        this.obrURL = obrURL;
-        this.cacheDir = bundleCache;
-        this.listener = listener;
-    }
-
-    public void setDocumentLocator(Locator locator)
-    {
-        this.locator = locator;
-    }
-
-    public void startElement(String uri, String localName, String qName,
-        Attributes attributes) throws SAXException
-    {
-        if (depth++ == 0 && !"repository".equals(qName))
-        {
-            throw new SAXParseException(
-                "Invalid OBR document, expected repository top level element", locator);
-        }
-        else if ("resource".equals(qName))
-        {
-            startResource(attributes);
-        }
-        else if ("capability".equals(qName))
-        {
-            startCapability(attributes);
-        }
-        else if ("require".equals(qName))
-        {
-            startRequire(attributes);
-        }
-        else if ("p".equals(qName))
-        {
-            startProperty(attributes);
-        }
-    }
-
-    public void endElement(String uri, String localName, String qName)
-        throws SAXException
-    {
-        depth--;
-        if ("resource".equals(qName))
-        {
-            endResource();
-        }
-        else if ("capability".equals(qName))
-        {
-            endCapability();
-        }
-        else if ("require".equals(qName))
-        {
-            endRequire();
-        }
-        else if ("p".equals(qName))
-        {
-            endProperty();
-        }
-    }
-
-    private void startResource(Attributes attributes) throws SAXException
-    {
-        try
-        {
-            String uri = attributes.getValue("", URI);
-            if (uri.endsWith(".jar"))
-            {
-                if (!sanity.add(uri))
-                {
-                    // TODO replace with logging framework for build
-                    // should hook in with ide/build logging
-                    System.err.println(obrURL + " contains duplicate uri: " + uri);
-                }
-                
-                ISigilBundle b = ModelElementFactory.getInstance().newModelElement(
-                    ISigilBundle.class);
-                IBundleModelElement info = ModelElementFactory.getInstance().newModelElement(
-                    IBundleModelElement.class);
-                info.setSymbolicName(attributes.getValue("", SYMBOLIC_NAME));
-                info.setVersion(VersionTable.getVersion(attributes.getValue("", VERSION)));
-                info.setName(attributes.getValue("", PRESENTATION_NAME));
-                URI l = makeAbsolute(uri);
-                info.setUpdateLocation(l);
-                if ("file".equals(l.getScheme()))
-                {
-                    b.setLocation(new File(l));
-                }
-                else
-                {
-                    b.setLocation(cachePath(info));
-                }
-                b.setBundleInfo(info);
-                bundle = b;
-            }
-        }
-        catch (Exception e)
-        {
-            throw new SAXParseException("Failed to build bundle info", locator, e);
-        }
-    }
-
-    private URI makeAbsolute(String uri) throws URISyntaxException
-    {
-        URI l = new URI(uri);
-        if (!l.isAbsolute())
-        {
-            String base = obrURL.toExternalForm();
-            int i = base.lastIndexOf("/");
-            if (i != -1)
-            {
-                base = base.substring(0, i);
-                l = new URI(base + (uri.startsWith("/") ? "" : "/") + uri);
-            }
-        }
-        return l;
-    }
-
-    private File cachePath(IBundleModelElement info)
-    {
-        return new File(cacheDir, info.getSymbolicName() + "_" + info.getVersion()
-            + ".jar");
-    }
-
-    private void startCapability(Attributes attributes)
-    {
-        if (bundle != null)
-        {
-            if (PACKAGE.equals(attributes.getValue("", "name")))
-            {
-                export = ModelElementFactory.getInstance().newModelElement(
-                    IPackageExport.class);
-            }
-        }
-    }
-
-    private void startRequire(Attributes attributes) throws SAXParseException
-    {
-        if (bundle != null)
-        {
-            String name = attributes.getValue("name");
-            if (PACKAGE.equals(name))
-            {
-                IPackageImport pi = ModelElementFactory.getInstance().newModelElement(
-                    IPackageImport.class);
-                try
-                {
-                    LDAPExpr expr = LDAPParser.parseExpression(attributes.getValue("filter"));
-                    pi.setPackageName(decodePackage(expr, locator));
-                    pi.setVersions(decodeVersions(expr, locator));
-                    pi.setOptional(Boolean.valueOf(attributes.getValue("optional")));
-                    bundle.getBundleInfo().addImport(pi);
-                }
-                catch (LDAPParseException e)
-                {
-                    throw new SAXParseException("Failed to parse filter", locator, e);
-                }
-            }
-            else if ("bundle".equals(name))
-            {
-                IRequiredBundle b = ModelElementFactory.getInstance().newModelElement(
-                    IRequiredBundle.class);
-                try
-                {
-                    LDAPExpr expr = LDAPParser.parseExpression(attributes.getValue("filter"));
-                    b.setSymbolicName(decodeSymbolicName(expr, locator));
-                    b.setVersions(decodeVersions(expr, locator));
-                    b.setOptional(Boolean.valueOf(attributes.getValue("optional")));
-                    bundle.getBundleInfo().addRequiredBundle(b);
-                }
-                catch (Exception e)
-                {
-                    System.err.println("Failed to parse filter in bundle "
-                        + bundle.getBundleInfo().getSymbolicName());
-                    throw new SAXParseException("Failed to parse filter in bundle "
-                        + bundle.getBundleInfo().getSymbolicName(), locator, e);
-                }
-            }
-            //else if ( "ee".equals( name ) ) {
-            // TODO ignore for now...
-            //}
-            //else if ( "service".equals( name ) ) {
-            // TODO ignore for now...
-            //}
-            //else {
-            //	for ( int i = 0; i < attributes.getLength(); i++ ) {
-            //		System.out.println( "Found requirement " + attributes.getValue(i) );				
-            //	}
-            //}
-        }
-    }
-
-    private static VersionRange decodeVersions(LDAPExpr expr, Locator locator)
-        throws SAXParseException
-    {
-        try
-        {
-            return VersionRangeHelper.decodeVersions(expr);
-        }
-        catch (NumberFormatException e)
-        {
-            throw new SAXParseException(e.getMessage(), locator);
-        }
-    }
-
-    private void startProperty(Attributes attributes)
-    {
-        if (export != null)
-        {
-            String name = attributes.getValue("", "n");
-            String value = attributes.getValue("", "v");
-            if (PACKAGE.equals(name))
-            {
-                export.setPackageName(value);
-            }
-            else if ("uses".equals(name))
-            {
-                String[] split = value.split(",");
-                export.setUses(Arrays.asList(split));
-            }
-            else if ("version".equals(name))
-            {
-                export.setVersion(VersionTable.getVersion(value));
-            }
-        }
-    }
-
-    private void endResource()
-    {
-        if (bundle != null)
-        {
-            listener.handleBundle(bundle);
-            bundle = null;
-        }
-    }
-
-    private void endCapability()
-    {
-        if (bundle != null)
-        {
-            if (export != null)
-            {
-                bundle.getBundleInfo().addExport(export);
-                export = null;
-            }
-        }
-    }
-
-    private void endRequire()
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    private void endProperty()
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    private static String decodePackage(LDAPExpr expr, Locator locator)
-        throws SAXParseException
-    {
-        ArrayList<SimpleTerm> terms = new ArrayList<SimpleTerm>(1);
-
-        findTerms("package", expr, terms);
-
-        if (terms.isEmpty())
-        {
-            throw new SAXParseException("Missing name filter in " + expr, locator);
-        }
-
-        return terms.get(0).getRval();
-    }
-
-    private static String decodeSymbolicName(LDAPExpr expr, Locator locator)
-        throws SAXParseException
-    {
-        ArrayList<SimpleTerm> terms = new ArrayList<SimpleTerm>(1);
-
-        findTerms("symbolicname", expr, terms);
-
-        if (terms.isEmpty())
-        {
-            throw new SAXParseException("Missing name filter in " + expr, locator);
-        }
-
-        return terms.get(0).getRval();
-    }
-
-    private static void findTerms(String string, LDAPExpr expr, List<SimpleTerm> terms)
-        throws SAXParseException
-    {
-        if (expr instanceof SimpleTerm)
-        {
-            SimpleTerm term = (SimpleTerm) expr;
-            if (term.getName().equals(string))
-            {
-                terms.add(term);
-            }
-        }
-        else
-        {
-            for (LDAPExpr c : expr.getChildren())
-            {
-                findTerms(string, c, terms);
-            }
-        }
-    }
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRListener.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRListener.java
deleted file mode 100644
index 12c9894..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/OBRListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-
-public interface OBRListener
-{
-    void handleBundle(ISigilBundle bundle);
-}
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/VersionRangeHelper.java b/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/VersionRangeHelper.java
deleted file mode 100644
index e5aff3a..0000000
--- a/sigil/common/obr/src/org/apache/felix/sigil/common/obr/impl/VersionRangeHelper.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.obr.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.osgi.LDAPExpr;
-import org.apache.felix.sigil.common.osgi.Not;
-import org.apache.felix.sigil.common.osgi.Ops;
-import org.apache.felix.sigil.common.osgi.SimpleTerm;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.osgi.framework.Version;
-
-public class VersionRangeHelper
-{
-
-    public static VersionRange decodeVersions(LDAPExpr expr) throws NumberFormatException
-    {
-        ArrayList<LDAPExpr> terms = new ArrayList<LDAPExpr>(1);
-
-        findExpr("version", expr, terms);
-
-        if (terms.isEmpty())
-        {
-            // woo hoo!
-            return VersionRange.ANY_VERSION;
-        }
-        else
-        {
-            switch (terms.size())
-            {
-                case 1:
-                {
-                    return parseSimpleVersionRange(terms.get(0));
-                }
-                case 2:
-                {
-                    return parseCompoundVersionRange(terms.get(0), terms.get(1));
-                }
-                default:
-                {
-                    // (&(version>=min)(!(version=min))(version<=max)(!(version=max))) 	- (min,max) - not dealt with!!
-                    // (&(|(version>min)(version=min))(|(version<max)(version=max))) 	- [min,max] - not dealt with!!
-                    throw new NumberFormatException(
-                        "Failed to parse complicated version expression " + expr);
-                }
-            }
-        }
-    }
-
-    // (&(version>=min)(version<=max)) 									- [min,max]
-    // (&(version>min)(version<max))									- (min,max)
-    //
-    // (&(!(version<min))(!(version>max)))								- [min,max]
-    // (&(!(version<=min))(!(version>=max)) 							- (min,max)
-    private static VersionRange parseCompoundVersionRange(LDAPExpr left, LDAPExpr right)
-        throws NumberFormatException
-    {
-        VersionRange one = parseSimpleVersionRange(left);
-        VersionRange two = parseSimpleVersionRange(right);
-
-        // sanity check
-        if (one.isPointVersion() || two.isPointVersion())
-        {
-            throw new NumberFormatException(
-                "Unexpected point version in compound expression " + left);
-        }
-
-        VersionRange max = one.getFloor().equals(Version.emptyVersion) ? one : two;
-        VersionRange min = max == one ? two : one;
-
-        return new VersionRange(min.isOpenFloor(), min.getFloor(), max.getCeiling(),
-            max.isOpenCeiling());
-    }
-
-    // possible variations				
-    // (version=v)														- [v,v]
-    //
-    // (version>=min)													- [min,*)
-    // (version<=max)													- [0,max]
-    //
-    // (version>min)													- (min,*)
-    // (version<max)													- [0,max)
-    //
-    // (!(version>max))													- [0,max]
-    // (!(version<min))													- [min,*)
-    // (!(version>=max))												- [0,max)
-    // (!(version<=min))												- (0,*)
-    private static VersionRange parseSimpleVersionRange(LDAPExpr expr)
-        throws NumberFormatException
-    {
-        Version min = Version.emptyVersion;
-        Version max = VersionRange.INFINITE_VERSION;
-        boolean openFloor = false;
-        boolean openCeiling = false;
-        if (expr instanceof Not)
-        {
-            Not n = (Not) expr;
-            SimpleTerm t = (SimpleTerm) n.getEx();
-            if (t.getOp() == Ops.EQ)
-            {
-                throw new NumberFormatException(
-                    "Unexpected point version in negated expression " + expr);
-            }
-            if (!isMax(t.getOp()))
-            {
-                max = toVersion(t);
-                openCeiling = !openFloor(t);
-            }
-            else if (!isMin(t.getOp()))
-            {
-                min = toVersion(t);
-                openFloor = !openCeiling(t);
-            }
-            else
-            {
-                throw new IllegalStateException("Unexpected operator " + t.getOp());
-            }
-        }
-        else
-        {
-            SimpleTerm t = (SimpleTerm) expr;
-            if (t.getOp().equals(Ops.EQ))
-            {
-                max = toVersion(t);
-                min = max;
-                openFloor = false;
-                openCeiling = false;
-            }
-            else if (isMax(t.getOp()))
-            {
-                max = toVersion(t);
-                openCeiling = openCeiling(t);
-            }
-            else if (isMin(t.getOp()))
-            {
-                min = toVersion(t);
-                openFloor = openFloor(t);
-            }
-            else
-            {
-                throw new IllegalStateException("Unexpected operator " + t.getOp());
-            }
-        }
-
-        return new VersionRange(openFloor, min, max, openCeiling);
-    }
-
-    private static Version toVersion(SimpleTerm t)
-    {
-        return VersionTable.getVersion(t.getRval());
-    }
-
-    private static boolean isMax(Ops op)
-    {
-        return op == Ops.LE || op == Ops.LT;
-    }
-
-    private static boolean isMin(Ops op)
-    {
-        return op == Ops.GE || op == Ops.GT;
-    }
-
-    private static boolean openFloor(SimpleTerm t)
-    {
-        return t.getOp() == Ops.GT;
-    }
-
-    private static boolean openCeiling(SimpleTerm t)
-    {
-        return t.getOp() == Ops.LT;
-    }
-
-    private static void findExpr(String string, LDAPExpr expr, List<LDAPExpr> terms)
-    {
-        if (expr instanceof SimpleTerm)
-        {
-            SimpleTerm term = (SimpleTerm) expr;
-            if (term.getName().equals(string))
-            {
-                terms.add(term);
-            }
-        }
-        else if (expr instanceof Not)
-        {
-            Not not = (Not) expr;
-            if (not.getEx() instanceof SimpleTerm)
-            {
-                SimpleTerm term = (SimpleTerm) not.getEx();
-                if (term.getName().equals(string))
-                {
-                    terms.add(not);
-                }
-            }
-        }
-        else
-        {
-            for (LDAPExpr c : expr.getChildren())
-            {
-                findExpr(string, c, terms);
-            }
-        }
-    }
-}
diff --git a/sigil/common/osgi.test/.classpath b/sigil/common/osgi.test/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/osgi.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/osgi.test/.project b/sigil/common/osgi.test/.project
deleted file mode 100644
index a183385..0000000
--- a/sigil/common/osgi.test/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.osgi.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/osgi.test/sigil.properties b/sigil/common/osgi.test/sigil.properties
deleted file mode 100644
index 36662f6..0000000
--- a/sigil/common/osgi.test/sigil.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.osgi.test, \
-
--sourcedirs: \
-	src, \
-
--fragment: \
-	org.apache.felix.sigil.common.osgi;version=0.9.0, \
-
--imports: \
-	junit.framework;version=3.8.2, \
-
-# end
diff --git a/sigil/common/osgi.test/src/org/apache/felix/sigil/common/osgi/LDAPParserTest.java b/sigil/common/osgi.test/src/org/apache/felix/sigil/common/osgi/LDAPParserTest.java
deleted file mode 100644
index d03bb31..0000000
--- a/sigil/common/osgi.test/src/org/apache/felix/sigil/common/osgi/LDAPParserTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import junit.framework.TestCase;
-
-public class LDAPParserTest extends TestCase
-{
-    private static final SimpleTerm A_B = new SimpleTerm("a", Ops.EQ, "b");
-    private static final SimpleTerm C_D = new SimpleTerm("c", Ops.EQ, "d");
-
-    public void testSimple()
-    {
-        LDAPExpr expr = LDAPParser.parseExpression("(a=b)");
-        assertEquals(expr, A_B);
-    }
-
-    public void testSimpleWhiteSpace()
-    {
-        LDAPExpr expr = LDAPParser.parseExpression("  ( a = b )  ");
-        assertEquals(expr, A_B);
-    }
-
-    public void testNot()
-    {
-        LDAPExpr expr = LDAPParser.parseExpression("(!(a=b))");
-        assertEquals(expr, Not.apply(A_B));
-    }
-
-    public void testAnd()
-    {
-        LDAPExpr expr = LDAPParser.parseExpression("(&(a=b)(c=d))");
-        assertEquals(expr, And.apply(A_B, C_D));
-    }
-
-    public void testOr()
-    {
-        LDAPExpr expr = LDAPParser.parseExpression("(|(a=b)(c=d))");
-        assertEquals(expr, Or.apply(A_B, C_D));
-    }
-
-    public void testParseException()
-    {
-        try
-        {
-            LDAPExpr expr = LDAPParser.parseExpression(".(a=b)");
-            fail("Unexpectedly parsed invalid ldap expr " + expr);
-        }
-        catch (LDAPParseException e)
-        {
-            // expected
-        }
-    }
-}
diff --git a/sigil/common/osgi/.classpath b/sigil/common/osgi/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/osgi/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/osgi/.project b/sigil/common/osgi/.project
deleted file mode 100644
index 9702092..0000000
--- a/sigil/common/osgi/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.osgi</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/osgi/.settings/org.eclipse.jdt.core.prefs b/sigil/common/osgi/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 72e1348..0000000
--- a/sigil/common/osgi/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:08:04 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/osgi/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/osgi/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 65a4192..0000000
--- a/sigil/common/osgi/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:08:04 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/osgi/DEPENDENCIES b/sigil/common/osgi/DEPENDENCIES
deleted file mode 100644
index 6e85a6c..0000000
--- a/sigil/common/osgi/DEPENDENCIES
+++ /dev/null
@@ -1,20 +0,0 @@
-Apache Felix Sigil Common OSGi
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/common/osgi/NOTICE b/sigil/common/osgi/NOTICE
deleted file mode 100644
index ea0a322..0000000
--- a/sigil/common/osgi/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Common OSGi
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/common/osgi/build.xml b/sigil/common/osgi/build.xml
deleted file mode 100644
index 8f55817..0000000
--- a/sigil/common/osgi/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common.osgi" default="build">
-      <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/osgi/ivy.xml b/sigil/common/osgi/ivy.xml
deleted file mode 100644
index a28cff4..0000000
--- a/sigil/common/osgi/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.common.osgi"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.osgi" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/osgi/sigil.properties b/sigil/common/osgi/sigil.properties
deleted file mode 100644
index d31a08b..0000000
--- a/sigil/common/osgi/sigil.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.osgi, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.common.osgi, \
-
--imports: \
-	org.apache.felix.sigil.common.osgi, \
-	org.osgi.framework, \
-
-# end
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/AbstractExpr.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/AbstractExpr.java
deleted file mode 100644
index 144ae55..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/AbstractExpr.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public abstract class AbstractExpr implements LDAPExpr
-{
-    public void visit(ExprVisitor visitor)
-    {
-        visitor.visitExpr(this);
-        for (LDAPExpr expr : getChildren())
-        {
-            visitor.visitExpr(expr);
-        }
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java
deleted file mode 100644
index 16d7b6e..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.Map;
-
-public class And extends AbstractExpr
-{
-    private LDAPExpr[] children;
-
-    public static LDAPExpr apply(LDAPExpr... terms)
-    {
-        if (terms == null)
-        {
-            throw new NullPointerException("terms cannot be null");
-        }
-        else if (terms.length == 0)
-        {
-            return Expressions.T;
-        }
-        else if (terms.length == 1)
-        {
-            return terms[0];
-        }
-        LDAPExpr[] filtered = new LDAPExpr[terms.length];
-        int ctr = 0;
-        for (int i = 0; i < terms.length; i++)
-        {
-            if (terms[i].equals(Expressions.F))
-                return Expressions.F;
-            if (terms[i].equals(Expressions.T))
-                continue;
-            filtered[ctr] = terms[i];
-            ctr++;
-        }
-        if (ctr == 0)
-        {
-            return Expressions.T;
-        }
-        else if (ctr == 1)
-        {
-            return filtered[0];
-        }
-        LDAPExpr[] andTerms = new LDAPExpr[ctr];
-        System.arraycopy(filtered, 0, andTerms, 0, ctr);
-
-        return new And(andTerms);
-    }
-
-    private And(LDAPExpr... children)
-    {
-        this.children = children;
-    }
-
-    public boolean eval(Map<String, ?> map)
-    {
-        for (int i = 0; i < children.length; i++)
-        {
-            if (!children[i].eval(map))
-            {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    public LDAPExpr[] getChildren()
-    {
-        return children;
-    }
-
-    public void setChildren(LDAPExpr[] children)
-    {
-        this.children = children;
-    }
-
-    @Override
-    public boolean equals(Object other)
-    {
-        if (other instanceof And)
-        {
-            And that = (And) other;
-            if (children.length != that.children.length)
-            {
-                return false;
-            }
-            for (int i = 0; i < children.length; i++)
-            {
-                if (!children[i].equals(that.children[i]))
-                {
-                    return false;
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer(256);
-        buf.append("(&");
-        for (int i = 0; i < children.length; i++)
-        {
-            buf.append(" ").append(children[i]).append(" ");
-        }
-        buf.append(")");
-        return buf.toString();
-    }
-
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java
deleted file mode 100644
index 9cf5d36..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public interface ExprVisitor
-{
-    void visitExpr(LDAPExpr expr);
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java
deleted file mode 100644
index bb3cd81..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.Map;
-
-public class Expressions
-{
-
-    public static LDAPExpr and(LDAPExpr... terms)
-    {
-        return And.apply(terms);
-    }
-
-    public static LDAPExpr or(LDAPExpr... terms)
-    {
-        return Or.apply(terms);
-    }
-
-    public static LDAPExpr not(LDAPExpr e)
-    {
-        return Not.apply(e);
-    }
-
-    public static LDAPExpr T = Bool.TRUE;
-    public static LDAPExpr F = Bool.FALSE;
-
-    // supports direct use of wildcards for ease of testing, but not literal *s
-    public static SimpleTerm ex(String name, Ops op, String rhs)
-    {
-
-        rhs = rhs.replace('*', SimpleTerm.WILDCARD);
-        return new SimpleTerm(name, op, rhs);
-    }
-
-}
-
-class Bool implements LDAPExpr
-{
-
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 1L;
-    public static final Bool TRUE = new Bool(true);
-    public static final Bool FALSE = new Bool(false);
-
-    private boolean bool;
-
-    public Bool(boolean bool)
-    {
-        this.bool = bool;
-    }
-
-    public boolean eval(Map<String, ?> map)
-    {
-        return bool;
-    }
-
-    public void visit(ExprVisitor v)
-    {
-    }
-
-    public LDAPExpr[] getChildren()
-    {
-        return CHILDLESS;
-    }
-
-    public String toString()
-    {
-        return "(" + bool + ")";
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java
deleted file mode 100644
index b1c9d3d..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public interface FilterValidator
-{
-
-    public static FilterValidator ACCEPT_ALL = new AcceptEverythingValidator();
-
-    boolean validate(LDAPExpr filter);
-
-    static class AcceptEverythingValidator implements FilterValidator
-    {
-
-        public boolean validate(LDAPExpr filter)
-        {
-            return true;
-        }
-
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java
deleted file mode 100644
index 2a79b44..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.Map;
-
-public interface LDAPExpr 
-{
-
-    public static final LDAPExpr[] CHILDLESS = new LDAPExpr[0];
-
-    public static LDAPExpr ACCEPT_ALL = Expressions.T;
-
-    LDAPExpr[] getChildren();
-
-    void visit(ExprVisitor v);
-
-    boolean equals(Object other);
-
-    int hashCode();
-
-    boolean eval(Map<String, ?> map);
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java
deleted file mode 100644
index bb2d1b9..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public class LDAPParseException extends RuntimeException
-{
-    private static final long serialVersionUID = 2L;
-
-    private ParseState ps;
-    private static final String LINE_SEPARATOR = System.getProperty("line.separator",
-        "\\r\\n");
-
-    public LDAPParseException(String message, ParseState ps)
-    {
-        super(message);
-        this.ps = ps;
-    }
-
-    public LDAPParseException(String message)
-    {
-        super(message);
-    }
-
-    @Override
-    public String getMessage()
-    {
-        if (ps == null)
-        {
-            return super.getMessage();
-        }
-
-        String basicMessage = super.getMessage();
-        StringBuffer buf = new StringBuffer(basicMessage.length() + ps.str.length() * 2);
-        buf.append(basicMessage).append(LINE_SEPARATOR);
-        buf.append(ps.str).append(LINE_SEPARATOR);
-        for (int i = 0; i < ps.pos; i++)
-        {
-            buf.append(" ");
-        }
-        buf.append("^");
-        return buf.toString();
-    }
-
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java
deleted file mode 100644
index de1cb51..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import static org.apache.felix.sigil.common.osgi.Expressions.and;
-import static org.apache.felix.sigil.common.osgi.Expressions.not;
-import static org.apache.felix.sigil.common.osgi.Expressions.or;
-import static org.apache.felix.sigil.common.osgi.Ops.APPROX;
-import static org.apache.felix.sigil.common.osgi.Ops.EQ;
-import static org.apache.felix.sigil.common.osgi.Ops.GE;
-import static org.apache.felix.sigil.common.osgi.Ops.GT;
-import static org.apache.felix.sigil.common.osgi.Ops.LE;
-import static org.apache.felix.sigil.common.osgi.Ops.LT;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class LDAPParser
-{
-
-    private static final LDAPParser parser = new LDAPParser();
-
-    public static LDAPExpr parseExpression(String strExpr) throws LDAPParseException
-    {
-        return parser.parse(strExpr);
-    }
-
-    public LDAPExpr parse(String strExpr) throws LDAPParseException
-    {
-
-        if (strExpr == null || strExpr.trim().length() == 0)
-        {
-            return LDAPExpr.ACCEPT_ALL;
-        }
-
-        ParseState ps = new ParseState(strExpr);
-        LDAPExpr expr = parseExpr(ps);
-        ps.skipWhitespace();
-        if (!ps.isEndOfString())
-        {
-            error("expected end of expression ", ps);
-        }
-        return expr;
-    }
-
-    public LDAPExpr parseExpr(ParseState ps) throws LDAPParseException
-    {
-        ps.skipWhitespace();
-        if (!(ps.peek() == '('))
-        {
-            error("expected (", ps);
-        }
-        ps.read();
-        LDAPExpr expr = null;
-        ps.skipWhitespace();
-        char ch = ps.peek();
-        switch (ch)
-        {
-            case '&':
-                ps.readAndSkipWhiteSpace();
-                List<LDAPExpr> andList = new ArrayList<LDAPExpr>();
-                while (ps.peek() == '(')
-                {
-                    andList.add(parseExpr(ps));
-                    ps.skipWhitespace();
-                }
-                LDAPExpr[] andArr = andList.toArray(new LDAPExpr[andList.size()]);
-                expr = and(andArr);
-                break;
-            case '|':
-                ps.readAndSkipWhiteSpace();
-                List<LDAPExpr> orList = new ArrayList<LDAPExpr>();
-                while (ps.peek() == '(')
-                {
-                    orList.add(parseExpr(ps));
-                    ps.skipWhitespace();
-                }
-                LDAPExpr[] orArray = orList.toArray(new LDAPExpr[orList.size()]);
-                expr = or(orArray);
-                break;
-            case '!':
-                ps.readAndSkipWhiteSpace();
-                expr = not(parseExpr(ps));
-                break;
-            default:
-                if (isNameChar(ch))
-                {
-                    expr = parseSimple(ps);
-                }
-                else
-                {
-                    error("unexpected character: '" + ch + "'", ps);
-                }
-        }
-        ps.skipWhitespace();
-        if (ps.peek() != ')')
-        {
-            error("expected )", ps);
-        }
-        ps.read();
-        return expr;
-
-    }
-
-    void error(String message, ParseState ps) throws LDAPParseException
-    {
-        throw new LDAPParseException(message, ps);
-    }
-
-    private SimpleTerm parseSimple(ParseState ps) throws LDAPParseException
-    {
-        // read name
-        StringBuffer name = new StringBuffer(16);
-        for (char c = ps.peek(); !ps.isEndOfString() && isNameChar(c); c = ps.peek())
-        {
-            ps.read();
-            name.append(c);
-        }
-        ps.skipWhitespace();
-        Ops op = null;
-        // read op
-        if (ps.lookingAt("="))
-        {
-            op = EQ;
-            ps.skip(1);
-        }
-        else if (ps.lookingAt(">="))
-        {
-            op = GE;
-            ps.skip(2);
-        }
-        else if (ps.lookingAt("<="))
-        {
-            op = LE;
-            ps.skip(2);
-        }
-        else if (ps.lookingAt(">"))
-        {
-            op = GT;
-            ps.skip(1);
-        }
-        else if (ps.lookingAt("<"))
-        {
-            op = LT;
-            ps.skip(1);
-        }
-        else if (ps.lookingAt("-="))
-        {
-            op = APPROX;
-            ps.skip(2);
-        }
-        else if (ps.isEndOfString())
-        {
-            error("unexpected end of expression", ps);
-        }
-        else
-        {
-            error("unexpected character: '" + ps.peek() + "'", ps);
-        }
-        ps.skipWhitespace();
-
-        boolean escaped = false;
-        StringBuffer value = new StringBuffer(16);
-
-        while (!ps.isEndOfString() && !Character.isWhitespace(ps.peek())
-            && !(ps.peek() == ')' && !escaped))
-        {
-
-            char ch = ps.peek();
-
-            if (ch == '\\')
-            {
-                escaped = true;
-                ps.read();
-            }
-            else if (ch == '*')
-            {
-                if (escaped)
-                {
-                    value.append(ch);
-                    escaped = false;
-                }
-                else
-                {
-                    value.append(SimpleTerm.WILDCARD);
-                }
-                ps.read();
-            }
-            else if (isLiteralValue(ch))
-            {
-                if (escaped)
-                {
-                    error("incorrectly applied escape of '" + ch + "'", ps);
-                }
-                value.append(ps.read());
-            }
-            else if (isEscapedValue(ch))
-            {
-                if (!escaped)
-                {
-                    error("missing escape for '" + ch + "'", ps);
-                }
-                value.append(ps.read());
-                escaped = false;
-            }
-            else
-            {
-                error("unexpected character: '" + ps.peek() + "'", ps);
-            }
-        }
-        ps.skipWhitespace();
-
-        SimpleTerm expr = new SimpleTerm(name.toString(), op, value.toString());
-
-        return expr;
-    }
-
-    private boolean isNameChar(int ch)
-    {
-        return !(Character.isWhitespace(ch) || (ch == '(') || (ch == ')') || (ch == '<')
-            || (ch == '>') || (ch == '=') || (ch == '~') || (ch == '*') || (ch == '\\'));
-    }
-
-    private boolean isLiteralValue(int ch)
-    {
-        return !(Character.isWhitespace(ch) || (ch == '(') || (ch == ')') || (ch == '*'));
-    }
-
-    private boolean isEscapedValue(int ch)
-    {
-        return (ch == '(') || (ch == ')') || (ch == '*');
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java
deleted file mode 100644
index fc6e9b9..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.Map;
-
-public class Not extends AbstractExpr
-{
-    private LDAPExpr[] children;
-
-    public static LDAPExpr apply(LDAPExpr e)
-    {
-        if (e == null)
-        {
-            throw new NullPointerException("cannot apply Not to a null expression");
-        }
-        if (e.equals(Expressions.T))
-        {
-            return Expressions.F;
-        }
-        if (e.equals(Expressions.F))
-        {
-            return Expressions.T;
-        }
-        return new Not(e);
-    }
-
-    private Not(LDAPExpr child)
-    {
-        this.children = new LDAPExpr[] { child };
-    }
-
-    public boolean eval(Map<String, ?> map)
-    {
-        return !children[0].eval(map);
-    }
-
-    public LDAPExpr getEx()
-    {
-        return children[0];
-    }
-
-    public LDAPExpr[] getChildren()
-    {
-        return children;
-    }
-
-    public void setChild(LDAPExpr child)
-    {
-        this.children = new LDAPExpr[] { child };
-    }
-
-    @Override
-    public boolean equals(Object other)
-    {
-        if (other instanceof Not)
-        {
-            Not that = (Not) other;
-            return children[0].equals(that.children[0]);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer(256);
-        buf.append("(!");
-        buf.append(" ").append(children[0]).append(" ");
-        buf.append(")");
-        return buf.toString();
-    }
-
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java
deleted file mode 100644
index 05d66b9..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public enum Ops
-{
-    EQ, GE, LE, GT, LT, APPROX;
-
-    @Override
-    public String toString()
-    {
-        switch (this)
-        {
-            case EQ:
-                return "=";
-            case GE:
-                return ">=";
-            case LE:
-                return "<=";
-            case GT:
-                return ">";
-            case LT:
-                return "<";
-            case APPROX:
-                return "~=";
-            default:
-                return super.toString();
-        }
-    }
-
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java
deleted file mode 100644
index 165d56e..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.Map;
-
-public class Or extends AbstractExpr
-{
-    private LDAPExpr[] children;
-
-    public static LDAPExpr apply(LDAPExpr... terms)
-    {
-        if (terms == null)
-        {
-            throw new NullPointerException("terms cannot be null");
-        }
-        else if (terms.length == 0)
-        {
-            return Expressions.T;
-        }
-        else if (terms.length == 1)
-        {
-            return terms[0];
-        }
-        LDAPExpr[] filtered = new LDAPExpr[terms.length];
-        int ctr = 0;
-        for (int i = 0; i < terms.length; i++)
-        {
-            if (terms[i].equals(Expressions.T))
-                return Expressions.T;
-            if (terms[i].equals(Expressions.F))
-                continue;
-            filtered[ctr] = terms[i];
-            ctr++;
-        }
-        if (ctr == 0)
-        {
-            return Expressions.F;
-        }
-        else if (ctr == 1)
-        {
-            return filtered[0];
-        }
-        LDAPExpr[] orTerms = new LDAPExpr[ctr];
-        System.arraycopy(filtered, 0, orTerms, 0, ctr);
-
-        return new Or(orTerms);
-    }
-
-    private Or(LDAPExpr... children)
-    {
-        this.children = children;
-    }
-
-    public boolean eval(Map<String, ?> map)
-    {
-        for (int i = 0; i < children.length; i++)
-        {
-            if (children[i].eval(map))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public LDAPExpr[] getChildren()
-    {
-        return children;
-    }
-
-    public void setChildren(LDAPExpr[] children)
-    {
-        this.children = children;
-    }
-
-    @Override
-    public boolean equals(Object other)
-    {
-        if (other instanceof Or)
-        {
-            Or that = (Or) other;
-            if (children.length != that.children.length)
-            {
-                return false;
-            }
-            for (int i = 0; i < children.length; i++)
-            {
-                if (children[i].equals(that.children[i]))
-                {
-                    return true;
-                }
-            }
-            return false;
-        }
-        return false;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer(256);
-        buf.append("(|");
-        for (int i = 0; i < children.length; i++)
-        {
-            buf.append(" ").append(children[i]).append(" ");
-        }
-        buf.append(")");
-        return buf.toString();
-    }
-
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java
deleted file mode 100644
index f7f502d..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.io.Serializable;
-
-/**
- * @author dave
- * 
- */
-class ParseState implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    int pos;
-
-    String str;
-
-    ParseState(String str)
-    {
-        this.str = str;
-    }
-
-    public boolean lookingAt(String start)
-    {
-        return str.substring(pos).startsWith(start);
-    }
-
-    public CharSequence skip(int n)
-    {
-        int end = pos + n < str.length() ? pos + n : str.length();
-        int start = pos;
-        pos = end;
-        return str.subSequence(start, end);
-    }
-
-    public char read()
-    {
-        char ch = str.charAt(pos);
-        if (pos < str.length())
-        {
-            pos++;
-        }
-        return ch;
-    }
-
-    public char readAndSkipWhiteSpace()
-    {
-        char ch = read();
-        skipWhitespace();
-        return ch;
-    }
-
-    char peek()
-    {
-        if (isEndOfString())
-        {
-            return (char) -1;
-        }
-        return str.charAt(pos);
-    }
-
-    boolean isEndOfString()
-    {
-        return pos == str.length();
-    }
-
-    void skipWhitespace()
-    {
-        while (pos < str.length() && Character.isWhitespace(str.charAt(pos)))
-        {
-            pos++;
-        }
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java
deleted file mode 100644
index 03331ee..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.lang.reflect.Constructor;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-
-public class SimpleTerm extends AbstractExpr
-{
-    public static final char WILDCARD = 2 ^ 16 - 1;
-    private static final String WILDCARD_STRING = new String(
-        new char[] { SimpleTerm.WILDCARD });
-
-    private Ops op;
-    private String name;
-    private String rval;
-
-    public SimpleTerm(String name, Ops op, String value)
-    {
-        this.op = op;
-        this.name = name.intern();
-        this.rval = value.intern();
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public Ops getOp()
-    {
-        return op;
-    }
-
-    public String getRval()
-    {
-        return rval;
-    }
-
-    public boolean eval(Map<String, ?> map)
-    {
-
-        Object lval = map.get(name);
-        if (lval == null)
-        {
-            return false;
-        }
-        else if (Ops.EQ == op && WILDCARD_STRING.equals(lval))
-        {
-            return true;
-        }
-        // any match in the vector will do
-        else if (lval instanceof Vector<?>)
-        {
-            Vector<?> vec = (Vector<?>) lval;
-            for (Iterator<?> i = vec.iterator(); i.hasNext();)
-            {
-                if (check(i.next()))
-                {
-                    return true;
-                }
-            }
-            return false;
-        }
-        // any match in the array will do
-        else if (lval instanceof Object[])
-        {
-            Object[] arr = (Object[]) lval;
-            for (int i = 0; i < arr.length; i++)
-            {
-                if (check(arr[i]))
-                {
-                    return true;
-                }
-            }
-            return false;
-        }
-        return check(lval);
-    }
-
-    @SuppressWarnings("unchecked")
-    private boolean check(Object lval)
-    {
-        if (lval == null)
-        {
-            return false;
-        }
-        else if (Ops.EQ == op && WILDCARD_STRING.equals(lval))
-        {
-            return true;
-        }
-
-        Object rhs = null;
-
-        if (lval instanceof String)
-        {
-
-            if (Ops.APPROX == op)
-            {
-                rhs = collapseWhiteSpace(rval);
-                lval = collapseWhiteSpace((String) lval);
-            }
-
-            if (Ops.EQ == op || Ops.APPROX == op)
-            {
-                return stringCheck((String) lval);
-            }
-            // rhs already a string
-
-        }
-        else if (lval.getClass() == Byte.class)
-        {
-            rhs = Byte.valueOf(rval);
-        }
-        else if (lval.getClass() == Short.class)
-        {
-            rhs = Short.valueOf(rval);
-        }
-        else if (lval.getClass() == Integer.class)
-        {
-            rhs = Integer.valueOf(rval);
-        }
-        else if (lval.getClass() == Long.class)
-        {
-            rhs = Long.valueOf(rval);
-        }
-        else if (lval.getClass() == Float.class)
-        {
-            rhs = Float.valueOf(rval);
-        }
-        else if (lval.getClass() == Double.class)
-        {
-            rhs = Double.valueOf(rval);
-        }
-        else
-        {
-            try
-            {
-                Constructor<?> stringCtor = lval.getClass().getConstructor(
-                    new Class[] { String.class });
-                rhs = stringCtor.newInstance(rval);
-            }
-            catch (Exception e)
-            {
-                // log it
-                e.printStackTrace();
-                return false;
-            }
-        }
-
-        if (!(lval instanceof Comparable))
-        {
-            return Ops.EQ == op && lval.equals(rval);
-        }
-        else
-        {
-
-            Comparable<? super Object> lhs = (Comparable<? super Object>) lval;
-
-            int compare = lhs.compareTo(rhs);
-
-            switch (op)
-            {
-                case EQ:
-                    return compare == 0;
-                case APPROX:
-                    return compare == 0;
-                case GE:
-                    return compare >= 0;
-                case LE:
-                    return compare <= 0;
-                case GT:
-                    return compare > 0;
-                case LT:
-                    return compare < 0;
-            }
-        }
-
-        return false;
-    }
-
-    private boolean stringCheck(String lhs)
-    {
-
-        String rhs;
-        switch (op)
-        {
-            case EQ:
-            case APPROX:
-                rhs = rval;
-                break;
-            default:
-                return false;
-        }
-
-        int valLength = lhs.length();
-        int patLength = rval.length();
-
-        if (valLength == 0 && patLength == 0)
-        {
-            return true;
-        }
-
-        boolean wc = false;
-        int j = 0;
-        for (int i = 0; i < patLength; i++)
-        {
-            // trailing wildcards
-            char pc = rhs.charAt(i);
-            if (j == valLength)
-            {
-                if (pc != SimpleTerm.WILDCARD)
-                {
-                    return false;
-                }
-                continue;
-            }
-            if (pc == SimpleTerm.WILDCARD)
-            {
-                wc = true;
-                continue;
-            }
-            while (wc && j < valLength - 1 && lhs.charAt(j) != pc)
-            {
-                j++;
-            }
-            if (lhs.charAt(j) != pc)
-            {
-                return false;
-            }
-            else
-            {
-                wc = false;
-                j++;
-            }
-        }
-        return (wc || j == valLength);
-
-    }
-
-    private String collapseWhiteSpace(String in)
-    {
-        StringBuffer out = new StringBuffer(in.trim().length());
-        boolean white = false;
-        for (int i = 0; i < in.length(); i++)
-        {
-            char ch = in.charAt(i);
-            if (Character.isWhitespace(ch))
-            {
-                white = true;
-            }
-            else
-            {
-                if (white)
-                {
-                    out.append(" ");
-                    white = false;
-                }
-                out.append(ch);
-            }
-        }
-        return out.toString();
-    }
-
-    public LDAPExpr[] getChildren()
-    {
-        return CHILDLESS;
-    }
-
-    @Override
-    public boolean equals(Object other)
-    {
-        if (other instanceof SimpleTerm)
-        {
-            SimpleTerm that = (SimpleTerm) other;
-            return name.equals(that.name) && op.equals(that.op) && rval.equals(that.rval);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "(" + name + " " + op.toString() + " " + escape(rval) + ")";
-    }
-
-    private String escape(String raw)
-    {
-        StringBuffer buf = new StringBuffer(raw.length() + 10);
-        for (int i = 0; i < raw.length(); i++)
-        {
-            char ch = raw.charAt(i);
-            switch (ch)
-            {
-                case SimpleTerm.WILDCARD:
-                    buf.append("*");
-                    break;
-                case '(':
-                case ')':
-                case '*':
-                    buf.append("\\").append(ch);
-                    break;
-                default:
-                    buf.append(ch);
-            }
-        }
-        return buf.toString();
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java
deleted file mode 100644
index feed6e8..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Utils
-{
-    public static MapBuilder map(String name, Object value)
-    {
-        return new MapBuilder().put(name, value);
-    }
-
-    public static String toString(Map<String, Object> attrs)
-    {
-        if (attrs == null)
-        {
-            return "NULL";
-        }
-
-        StringBuffer buf = new StringBuffer(128);
-        List<String> keys = new ArrayList<String>(attrs.keySet());
-        Collections.sort(keys);
-        buf.append("{");
-
-        for (int i = 0; i < keys.size(); i++)
-        {
-            Object name = keys.get(i);
-            Object value = attrs.get(name);
-            buf.append(name).append("=").append(value).append(",");
-        }
-
-        if (buf.length() > 1)
-        {
-            buf.delete(buf.length() - 1, buf.length());
-        }
-
-        buf.append("}");
-
-        return buf.toString();
-    }
-
-    public static class MapBuilder
-    {
-        private Map<String, Object> map = new HashMap<String, Object>();
-
-        public MapBuilder put(String name, Object value)
-        {
-            map.put(name, value);
-
-            return this;
-        }
-
-        public Map<String, Object> toMap()
-        {
-            return map;
-        }
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java
deleted file mode 100644
index efc445b..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-import org.osgi.framework.Version;
-
-public class VersionRange
-{
-
-    private static final long serialVersionUID = 1L;
-    public static final Version INFINITE_VERSION = new Version(Integer.MAX_VALUE,
-        Integer.MAX_VALUE, Integer.MAX_VALUE, "");
-    public static final VersionRange ANY_VERSION = new VersionRange(false,
-        Version.emptyVersion, INFINITE_VERSION, true);
-
-    private boolean openFloor;
-    private Version floor;
-    private Version ceiling;
-    private boolean openCeiling;
-
-    /**
-     * Interval constructor
-     * 
-     * @param openFloor Whether the lower bound of the range is inclusive (false) or exclusive (true).
-     * @param floor The lower bound version of the range.
-     * @param ceiling The upper bound version of the range.
-     * @param openCeiling Whether the upper bound of the range is inclusive (false) or exclusive (true).
-     */
-    public VersionRange(boolean openFloor, Version floor, Version ceiling, boolean openCeiling)
-    {
-        this.openFloor = openFloor;
-        this.floor = floor;
-        this.ceiling = ceiling;
-        this.openCeiling = openCeiling;
-    }
-
-    /**
-     * atLeast constructor
-     * 
-     * @param openFloor
-     * @param floor
-     */
-    public VersionRange(Version atLeast)
-    {
-        this.openFloor = false;
-        this.floor = atLeast;
-        this.ceiling = INFINITE_VERSION;
-        this.openCeiling = true;
-    }
-
-    public static VersionRange parseVersionRange(String val)
-        throws IllegalArgumentException, NumberFormatException
-    {
-        if (val == null || val.trim().length() == 0)
-        {
-            return ANY_VERSION;
-        }
-
-        boolean openFloor;
-        boolean openCeiling;
-        val = val.replaceAll("\\s", "");
-        val = val.replaceAll("\"", "");
-        int fst = val.charAt(0);
-        if (fst == '[')
-        {
-            openFloor = false;
-        }
-        else if (fst == '(')
-        {
-            openFloor = true;
-        }
-        else
-        {
-            Version atLeast = VersionTable.getVersion(val);
-            return new VersionRange(atLeast);
-        }
-
-        int lst = val.charAt(val.length() - 1);
-        if (lst == ']')
-        {
-            openCeiling = false;
-        }
-        else if (lst == ')')
-        {
-            openCeiling = true;
-        }
-        else
-        {
-            throw new IllegalArgumentException("illegal version range syntax " + val
-                + ": range must end in ')' or ']'");
-        }
-
-        String inner = val.substring(1, val.length() - 1);
-        String[] floorCeiling = inner.split(",");
-        if (floorCeiling.length != 2)
-        {
-            throw new IllegalArgumentException("illegal version range syntax "
-                + "too many commas");
-        }
-        Version floor = VersionTable.getVersion(floorCeiling[0]);
-        Version ceiling = "*".equals(floorCeiling[1]) ? INFINITE_VERSION
-            : Version.parseVersion(floorCeiling[1]);
-        return new VersionRange(openFloor, floor, ceiling, openCeiling);
-    }
-
-    public Version getCeiling()
-    {
-        return ceiling;
-    }
-
-    public Version getFloor()
-    {
-        return floor;
-    }
-
-    public boolean isOpenCeiling()
-    {
-        return openCeiling;
-    }
-
-    public boolean isOpenFloor()
-    {
-        return openFloor;
-    }
-
-    public boolean isPointVersion()
-    {
-        return !openFloor && !openCeiling && floor.equals(ceiling);
-    }
-
-    /**
-     * test a version to see if it falls in the range
-     * 
-     * @param version
-     * @return
-     */
-    public boolean contains(Version version)
-    {
-        if (version.equals(INFINITE_VERSION))
-        {
-            return ceiling.equals(INFINITE_VERSION);
-        }
-        else
-        {
-            return (version.compareTo(floor) > 0 && version.compareTo(ceiling) < 0)
-                || (!openFloor && version.equals(floor))
-                || (!openCeiling && version.equals(ceiling));
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((ceiling == null) ? 0 : ceiling.hashCode());
-        result = prime * result + ((floor == null) ? 0 : floor.hashCode());
-        result = prime * result + (openCeiling ? 1231 : 1237);
-        result = prime * result + (openFloor ? 1231 : 1237);
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        final VersionRange other = (VersionRange) obj;
-        if (ceiling == null)
-        {
-            if (other.ceiling != null)
-                return false;
-        }
-        else if (!ceiling.equals(other.ceiling))
-            return false;
-        if (floor == null)
-        {
-            if (other.floor != null)
-                return false;
-        }
-        else if (!floor.equals(other.floor))
-            return false;
-        if (openCeiling != other.openCeiling)
-            return false;
-        if (openFloor != other.openFloor)
-            return false;
-        return true;
-    }
-
-    @Override
-    public String toString()
-    {
-        if (ANY_VERSION.equals(this))
-        {
-            return makeString(openFloor, Version.emptyVersion, INFINITE_VERSION,
-                openCeiling);
-        }
-        return makeString(openFloor, floor, ceiling, openCeiling);
-    }
-
-    private String makeString(boolean openFloor, Version floor, Version ceiling,
-        boolean openCeiling)
-    {
-        StringBuffer vr = new StringBuffer(32);
-        if (INFINITE_VERSION.equals(ceiling))
-        {
-            vr.append(Version.emptyVersion.equals(floor) ? "0" : floor.toString());
-        }
-        else
-        {
-            vr.append(openFloor ? "(" : "[");
-            String floorStr = Version.emptyVersion.equals(floor) ? "0" : floor.toString();
-            String ceilingStr = ceiling.toString();
-            vr.append(floorStr).append(",").append(ceilingStr);
-            vr.append(openCeiling ? ")" : "]");
-        }
-        return vr.toString();
-    }
-
-    public static VersionRange newInstance(Version pointVersion,
-        VersionRangeBoundingRule lowerBoundRule, VersionRangeBoundingRule upperBoundRule)
-    {
-        Version floor = null;
-        switch (lowerBoundRule)
-        {
-            case Any:
-                floor = VersionTable.getVersion(0, 0, 0);
-                break;
-            case Major:
-                floor = VersionTable.getVersion(pointVersion.getMajor(), 0, 0);
-                break;
-            case Minor:
-                floor = VersionTable.getVersion(pointVersion.getMajor(),
-                    pointVersion.getMinor(), 0);
-                break;
-            case Micro:
-                floor = VersionTable.getVersion(pointVersion.getMajor(),
-                    pointVersion.getMinor(), pointVersion.getMicro());
-                break;
-            case Exact:
-                floor = pointVersion;
-                break;
-        }
-
-        Version ceiling = null;
-        boolean openCeiling = true;
-        switch (upperBoundRule)
-        {
-            case Any:
-                ceiling = INFINITE_VERSION;
-                break;
-            case Major:
-                ceiling = VersionTable.getVersion(pointVersion.getMajor() + 1, 0, 0);
-                break;
-            case Minor:
-                ceiling = VersionTable.getVersion(pointVersion.getMajor(),
-                    pointVersion.getMinor() + 1, 0);
-                break;
-            case Micro:
-                ceiling = VersionTable.getVersion(pointVersion.getMajor(),
-                    pointVersion.getMinor(), pointVersion.getMicro() + 1);
-                break;
-            case Exact:
-                ceiling = pointVersion;
-                openCeiling = false;
-                break;
-        }
-
-        return new VersionRange(false, floor, ceiling, openCeiling);
-    }
-}
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java
deleted file mode 100644
index cb2e236..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.osgi;
-
-public enum VersionRangeBoundingRule
-{
-    Exact, Micro, Minor, Major, Any
-}
\ No newline at end of file
diff --git a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionTable.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionTable.java
deleted file mode 100644
index 0b0b05e..0000000
--- a/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionTable.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.osgi;
-
-import java.util.WeakHashMap;
-
-import org.osgi.framework.Version;
-
-/**
- * Cache of Versions used in Sigil backed by a WeakHashMap to conserve memory.
- * 
- * VersionTable.getVersion should be used in preference to new Version() or Version.parseVersion.
- * 
- * @author dave
- *
- */
-public class VersionTable
-{
-    private static final WeakHashMap<String, Version> versions = new WeakHashMap<String, Version>();
-
-    public static Version getVersion(String version)
-    {
-        synchronized (versions)
-        {
-            Version v = versions.get(version);
-            if (v == null)
-            {
-                v = Version.parseVersion(version);
-                versions.put(version, v);
-            }
-
-            return v;
-        }
-    }
-
-    public static Version getVersion(int major, int minor, int micro)
-    {
-        return getVersion(major, minor, micro, null);
-    }
-
-    public static Version getVersion(int major, int minor, int micro, String qualifier)
-    {
-        String key;
-
-        if (qualifier == null || qualifier.length() == 0)
-        {
-            key = major + "." + minor + "." + micro;
-        }
-        else
-        {
-            key = major + "." + minor + "." + micro + "." + qualifier;
-        }
-
-        synchronized (versions)
-        {
-            Version v = versions.get(key);
-            if (v == null)
-            {
-                v = new Version(major, minor, micro, qualifier);
-                versions.put(key, v);
-            }
-
-            return v;
-        }
-    }
-}
diff --git a/sigil/common/runtime/.classpath b/sigil/common/runtime/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/common/runtime/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/common/runtime/.project b/sigil/common/runtime/.project
deleted file mode 100644
index 7ce9ec8..0000000
--- a/sigil/common/runtime/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.common.runtime</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/common/runtime/.settings/org.eclipse.jdt.core.prefs b/sigil/common/runtime/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1be5ab2..0000000
--- a/sigil/common/runtime/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:08:20 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/common/runtime/.settings/org.eclipse.jdt.ui.prefs b/sigil/common/runtime/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 13fd675..0000000
--- a/sigil/common/runtime/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:08:20 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/common/runtime/DEPENDENCIES b/sigil/common/runtime/DEPENDENCIES
deleted file mode 100644
index 5717b0c..0000000
--- a/sigil/common/runtime/DEPENDENCIES
+++ /dev/null
@@ -1,20 +0,0 @@
-Apache Felix Sigil Common Runtime
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/common/runtime/NOTICE b/sigil/common/runtime/NOTICE
deleted file mode 100644
index 8601917..0000000
--- a/sigil/common/runtime/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Common Runtime
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/common/runtime/build.xml b/sigil/common/runtime/build.xml
deleted file mode 100644
index aaf48be..0000000
--- a/sigil/common/runtime/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common.runtime" default="build">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/common/runtime/ivy.xml b/sigil/common/runtime/ivy.xml
deleted file mode 100644
index 0a697df..0000000
--- a/sigil/common/runtime/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.common.runtime"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.common.runtime" />
-   </publications>
-</ivy-module>
diff --git a/sigil/common/runtime/sigil.properties b/sigil/common/runtime/sigil.properties
deleted file mode 100644
index 75a520b..0000000
--- a/sigil/common/runtime/sigil.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.common.runtime, \
-
--contents: \
-	org.apache.felix.sigil.common.runtime.*, \
-	org.osgi.framework.launch, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-
--exports: \
-	org.apache.felix.sigil.common.runtime, \
-
--imports: \
-	org.apache.felix.sigil.common.runtime, \
-	org.osgi.framework, \
-	org.osgi.framework.launch, \
-	org.osgi.service.packageadmin, \
-
-header;Main-Class: org.apache.felix.sigil.common.runtime.Main
-
-# end
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/BundleForm.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/BundleForm.java
deleted file mode 100644
index bd373d1..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/BundleForm.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.runtime;
-
-import java.io.BufferedReader;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.jar.Manifest;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-
-public class BundleForm
-{
-    public interface Resolver
-    {
-        URI[] resolve(URI base) throws URISyntaxException;
-    }
-
-    public interface ResolutionContext
-    {
-        Resolver findResolver(URI uri);
-    }
-
-    private static final Resolver NULL_RESOLVER = new Resolver()
-    {
-
-        public URI[] resolve(URI base)
-        {
-            return new URI[] { base };
-        }
-
-    };
-    private static final ResolutionContext NULL_CONTEXT = new ResolutionContext()
-    {
-        public Resolver findResolver(URI uri)
-        {
-            return NULL_RESOLVER;
-        }
-    };
-
-    public static class BundleStatus
-    {
-        private String location;
-        private String bundleSymbolicName;
-        private String version;
-        private long id;
-        private int status;
-
-        public String getLocation()
-        {
-            return location;
-        }
-
-        public void setLocation(String location)
-        {
-            this.location = location;
-        }
-
-        public String getBundleSymbolicName()
-        {
-            return bundleSymbolicName;
-        }
-
-        public void setBundleSymbolicName(String bundleSymbolicName)
-        {
-            this.bundleSymbolicName = bundleSymbolicName;
-        }
-
-        public String getVersion()
-        {
-            return version;
-        }
-
-        public void setVersion(String version)
-        {
-            this.version = version;
-        }
-
-        public long getId()
-        {
-            return id;
-        }
-
-        public void setId(long id)
-        {
-            this.id = id;
-        }
-
-        public void setStatus(int status)
-        {
-            this.status = status;
-        }
-
-        public int getStatus()
-        {
-            return status;
-        }
-
-        public boolean isMatch(BundleStatus n)
-        {
-            return bundleSymbolicName.equals(n.bundleSymbolicName)
-                && version.equals(n.version);
-        }
-    }
-
-    private URI[] bundles;
-    private Set<URI> startMap = new HashSet<URI>();
-
-    public BundleForm()
-    {
-    }
-
-    public BundleStatus[] resolve(ResolutionContext ctx) throws IOException,
-        URISyntaxException
-    {
-        if (ctx == null)
-        {
-            ctx = NULL_CONTEXT;
-        }
-
-        ArrayList<BundleStatus> ret = new ArrayList<BundleStatus>(bundles.length);
-
-        for (int i = 0; i < bundles.length; i++)
-        {
-            Resolver resolver = ctx.findResolver(bundles[i]);
-            if (resolver == null)
-            {
-                resolver = NULL_RESOLVER;
-            }
-            URI[] resolved = resolver.resolve(bundles[i]);
-            for (URI uri : resolved)
-            {
-                BundleStatus bundle = toBundle(uri, isStarted(bundles[i]));
-                if (bundle == null)
-                {
-                    throw new IllegalStateException("Failed to read bundle " + uri);
-                }
-                ret.add(bundle);
-            }
-        }
-
-        return ret.toArray(new BundleStatus[ret.size()]);
-
-    }
-
-    private BundleStatus toBundle(URI uri, boolean started) throws IOException
-    {
-        try
-        {
-            Manifest mf = findManifest(uri);
-            if (mf == null)
-                return null;
-            Attributes attr = mf.getMainAttributes();
-            String bsn = attr.getValue(Constants.BUNDLE_SYMBOLICNAME);
-            String ver = attr.getValue(Constants.BUNDLE_VERSION);
-            BundleStatus st = new BundleStatus();
-            st.setBundleSymbolicName(bsn);
-            st.setVersion(ver);
-            st.setLocation(uri.toURL().toExternalForm());
-            st.setStatus(started ? Bundle.ACTIVE : Bundle.INSTALLED);
-            return st;
-        }
-        catch (IllegalArgumentException e)
-        {
-            throw new IllegalArgumentException("Invalid uri " + uri, e);
-        }
-    }
-
-    private Manifest findManifest(URI uri) throws IOException
-    {
-        Manifest mf = null;
-
-        try
-        {
-            File f = new File(uri);
-            if (f.isDirectory())
-            {
-                f = new File(f, "META-INF/MANIFEST.MF");
-                if (f.isFile())
-                {
-                    FileInputStream fin = new FileInputStream(f);
-                    try
-                    {
-                        mf = new Manifest(fin);
-                    }
-                    finally
-                    {
-                        fin.close();
-                    }
-                }
-            }
-        }
-        catch (IllegalArgumentException e)
-        {
-            // fine
-        }
-
-        if (mf == null)
-        {
-            InputStream in = uri.toURL().openStream();
-            try
-            {
-                JarInputStream jin = new JarInputStream(in);
-                mf = jin.getManifest();
-                if (mf == null)
-                {
-                    for (;;)
-                    {
-                        JarEntry entry = jin.getNextJarEntry();
-                        if (entry == null)
-                            break;
-                        if ("META-INF/MANIFEST.MF".equals(entry.getName()))
-                        {
-                            mf = new Manifest(jin);
-                            break;
-                        }
-                    }
-                }
-
-            }
-            finally
-            {
-                in.close();
-            }
-        }
-        return mf;
-    }
-
-    public static BundleForm create(URL formURL) throws IOException, URISyntaxException
-    {
-        InputStream in = formURL.openStream();
-        try
-        {
-            BundleForm f = new BundleForm();
-            BufferedReader r = new BufferedReader(new InputStreamReader(in));
-            LinkedList<URI> locs = new LinkedList<URI>();
-            for (;;)
-            {
-                String l = r.readLine();
-                if (l == null)
-                    break;
-                l = l.trim();
-                if (!l.startsWith("#"))
-                {
-                    URI uri = URI.create(l);
-                    String status = uri.getScheme();
-                    uri = URI.create(uri.getSchemeSpecificPart());
-                    locs.add(uri);
-                    f.setStarted(uri, "start".equalsIgnoreCase(status));
-                }
-            }
-            f.setBundles(locs.toArray(new URI[locs.size()]));
-            return f;
-        }
-        finally
-        {
-            try
-            {
-                in.close();
-            }
-            catch (IOException e)
-            {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-        }
-    }
-
-    public void setBundles(URI[] bundles)
-    {
-        this.bundles = bundles;
-    }
-
-    public URI[] getBundles()
-    {
-        return bundles;
-    }
-
-    public boolean isStarted(URI uri)
-    {
-        return startMap.contains(uri);
-    }
-
-    public void setStarted(URI uri, boolean started)
-    {
-        if (started)
-        {
-            startMap.add(uri);
-        }
-        else
-        {
-            startMap.remove(uri);
-        }
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Client.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Client.java
deleted file mode 100644
index fd9a2c2..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Client.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.runtime.BundleForm.BundleStatus;
-import org.apache.felix.sigil.common.runtime.io.InstallAction;
-import org.apache.felix.sigil.common.runtime.io.RefreshAction;
-import org.apache.felix.sigil.common.runtime.io.StartAction;
-import org.apache.felix.sigil.common.runtime.io.StatusAction;
-import org.apache.felix.sigil.common.runtime.io.StopAction;
-import org.apache.felix.sigil.common.runtime.io.UninstallAction;
-import org.apache.felix.sigil.common.runtime.io.UpdateAction;
-import org.apache.felix.sigil.common.runtime.io.UpdateAction.Update;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-import static org.apache.felix.sigil.common.runtime.Runtime.PORT_PROPERTY;
-import static org.apache.felix.sigil.common.runtime.Runtime.ADDRESS_PROPERTY;
-
-/**
- * @author dave
- *
- */
-public class Client
-{
-    private Socket socket;
-    private DataInputStream in;
-    private DataOutputStream out;
-
-    public Client()
-    {
-    }
-
-    public void connect(Properties props) throws IOException
-    {
-        String v = props.getProperty(ADDRESS_PROPERTY);
-        InetAddress address = v == null ? null : InetAddress.getByName(v);
-        int port = Integer.parseInt(props.getProperty(PORT_PROPERTY, "0"));
-
-        if (port < 1)
-        {
-            throw new IOException("Missing or invalid port");
-        }
-
-        InetSocketAddress endpoint = new InetSocketAddress(address, port);
-
-        socket = new Socket();
-        socket.connect(endpoint);
-
-        Main.log("Connected to " + endpoint);
-
-        in = new DataInputStream(socket.getInputStream());
-        out = new DataOutputStream(socket.getOutputStream());
-    }
-
-    public boolean isConnected()
-    {
-        return socket != null;
-    }
-
-    public void disconnect() throws IOException
-    {
-        socket.close();
-        socket = null;
-        in = null;
-        out = null;
-    }
-
-    public void apply(BundleForm.BundleStatus[] newStatus) throws IOException,
-        BundleException
-    {
-        BundleStatus[] currentStatus = status();
-
-        stopOldBundles(currentStatus, newStatus);
-
-        boolean change = uninstallOldBundles(currentStatus, newStatus);
-        change |= installNewBundles(currentStatus, newStatus);
-
-        if (change)
-            refresh();
-
-        startNewBundles(newStatus);
-    }
-
-    public void refresh() throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        new RefreshAction(in, out).client();
-    }
-
-    public long install(String url) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        return new InstallAction(in, out).client(url);
-    }
-
-    public void start(long bundle) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        new StartAction(in, out).client(bundle);
-    }
-
-    public void stop(long bundle) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        new StopAction(in, out).client(bundle);
-    }
-
-    public void uninstall(long bundle) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        new UninstallAction(in, out).client(bundle);
-    }
-
-    public void update(long bundle) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        Update update = new UpdateAction.Update(bundle, null);
-        new UpdateAction(in, out).client(update);
-    }
-
-    public void update(long bundle, String url) throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        Update update = new UpdateAction.Update(bundle, url);
-        new UpdateAction(in, out).client(update);
-    }
-
-    public BundleStatus[] status() throws IOException, BundleException
-    {
-        if (socket == null)
-            throw new IllegalStateException("Not connected");
-        return new StatusAction(in, out).client();
-    }
-
-    private boolean installNewBundles(BundleStatus[] status, BundleStatus[] newStatus)
-        throws IOException, BundleException
-    {
-        boolean change = false;
-        for (BundleStatus n : newStatus)
-        {
-            boolean found = false;
-            for (BundleStatus o : status)
-            {
-                if (o.isMatch(n))
-                {
-                    update(o.getId(), n.getLocation());
-                    found = true;
-                    change = true;
-                    break;
-                }
-            }
-
-            if (!found)
-            {
-                install(n.getLocation());
-                change = true;
-            }
-        }
-
-        return change;
-    }
-
-    private void startNewBundles(BundleStatus[] newStatus) throws IOException,
-        BundleException
-    {
-        BundleStatus[] status = status();
-        for (BundleStatus n : newStatus)
-        {
-            if (n.getStatus() == Bundle.ACTIVE)
-            {
-                for (BundleStatus o : status)
-                {
-                    if (o.isMatch(n))
-                    {
-                        start(o.getId());
-                    }
-                }
-            }
-        }
-    }
-
-    private void stopOldBundles(BundleStatus[] status, BundleStatus[] newStatus)
-        throws IOException, BundleException
-    {
-        for (BundleStatus n : newStatus)
-        {
-            if (n.getStatus() == Bundle.INSTALLED)
-            {
-                for (BundleStatus o : status)
-                {
-                    if (o.getId() != 0)
-                    {
-                        if (o.isMatch(n))
-                        {
-                            stop(o.getId());
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    private boolean uninstallOldBundles(BundleStatus[] status, BundleStatus[] newStatus)
-        throws IOException, BundleException
-    {
-        boolean change = false;
-        for (BundleStatus o : status)
-        {
-            if (o.getId() != 0)
-            {
-                boolean found = false;
-
-                for (BundleStatus n : newStatus)
-                {
-                    if (o.isMatch(n))
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-
-                if (!found)
-                {
-                    change = true;
-                    uninstall(o.getId());
-                }
-            }
-        }
-        return change;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Main.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Main.java
deleted file mode 100644
index 34572f5..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Main.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime;
-
-import static org.apache.felix.sigil.common.runtime.Runtime.ADDRESS_PROPERTY;
-import static org.apache.felix.sigil.common.runtime.Runtime.PORT_PROPERTY;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.runtime.cli.CommandLine;
-import org.apache.felix.sigil.common.runtime.cli.HelpFormatter;
-import org.apache.felix.sigil.common.runtime.cli.Options;
-import org.apache.felix.sigil.common.runtime.cli.ParseException;
-import org.apache.felix.sigil.common.runtime.cli.Parser;
-import org.apache.felix.sigil.common.runtime.cli.PosixParser;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-import org.osgi.framework.launch.FrameworkFactory;
-
-public class Main
-{
-    private static final String COMMAND_LINE_SYNTAX = "java -jar org.apache.felix.sigil.common.runtime";
-
-    private static Framework framework;
-    private static final Options options;
-
-    private static boolean verbose = false;
-
-    static
-    {
-        options = new Options();
-        options.addOption("?", "help", false, "Print help for the Sigil launcher");
-        options.addOption("p", "port", true,
-            "Port to launch server on (0 implies auto allocate) [default 0]");
-        options.addOption("a", "address", true, "Address to bind server to [default all]");
-        options.addOption("c", "clean", false, "Clean bundle cache directory on init");
-        options.addOption("s", "startLevel", true, "Start level for framework");
-        options.addOption("v", "verbose", false, "Verbose output");
-    }
-
-    public static void main(String[] args) throws Exception
-    {
-        FrameworkFactory factory = getFrameworkFactory();
-
-        try
-        {
-            Parser parser = new PosixParser();
-            CommandLine cl = parser.parse(options, args);
-
-            if (cl.hasOption('?'))
-            {
-                printHelp();
-            }
-            else
-            {
-                verbose = cl.hasOption('v');
-
-                Map<String, String> config = buildConfig(cl);
-
-                framework = factory.newFramework(config);
-                framework.init();
-                framework.start();
-
-                Server server = launch(cl);
-
-                framework.waitForStop(0);
-
-                if (server != null)
-                {
-                    server.stop();
-                }
-            }
-        }
-        catch (NoSuchElementException e)
-        {
-            System.err.println("No " + FrameworkFactory.class.getName()
-                + " found on classpath");
-            System.exit(1);
-        }
-        catch (InterruptedException e)
-        {
-            System.err.println("Interrupted prior to framework stop");
-            System.exit(1);
-        }
-        catch (ParseException e)
-        {
-            printHelp();
-            System.exit(1);
-        }
-        catch (BundleException e)
-        {
-            e.printStackTrace();
-            System.exit(1);
-        }
-        catch (IOException e)
-        {
-            e.printStackTrace();
-            System.exit(1);
-        }
-    }
-
-    /**
-     * Simple method to parse META-INF/services file for framework factory.
-     * Currently, it assumes the first non-commented line is the class name
-     * of the framework factory implementation.
-     * @return The created <tt>FrameworkFactory</tt> instance.
-     * @throws Exception if any errors occur.
-    **/
-    private static FrameworkFactory getFrameworkFactory() throws Exception
-    {
-        URL url = Main.class.getClassLoader().getResource(
-            "META-INF/services/org.osgi.framework.launch.FrameworkFactory");
-        if (url != null)
-        {
-            BufferedReader br = new BufferedReader(
-                new InputStreamReader(url.openStream()));
-            try
-            {
-                for (String s = br.readLine(); s != null; s = br.readLine())
-                {
-                    s = s.trim();
-                    // Try to load first non-empty, non-commented line.
-                    if ((s.length() > 0) && (s.charAt(0) != '#'))
-                    {
-                        return (FrameworkFactory) Class.forName(s).newInstance();
-                    }
-                }
-            }
-            finally
-            {
-                if (br != null)
-                    br.close();
-            }
-        }
-
-        throw new Exception("Could not find framework factory.");
-    }
-
-    private static Map<String, String> buildConfig(CommandLine cl)
-    {
-        HashMap<String, String> config = new HashMap<String, String>();
-        if (cl.hasOption('c'))
-            config.put("org.osgi.framework.storage.clean", "onFirstInit");
-
-        if (cl.hasOption('s'))
-            config.put("org.osgi.framework.startlevel.beginning", cl.getOptionValue('s'));
-
-        return config;
-    }
-
-    private static Server launch(CommandLine line) throws IOException
-    {
-        Server server = new Server(framework);
-        Properties props = new Properties();
-        props.put(ADDRESS_PROPERTY, line.getOptionValue('a'));
-        props.put(PORT_PROPERTY, line.getOptionValue('p'));
-        server.start(props);
-        return server;
-    }
-
-    private static void printHelp()
-    {
-        HelpFormatter f = new HelpFormatter();
-        f.printHelp(COMMAND_LINE_SYNTAX, options);
-    }
-
-    public static void log(String msg)
-    {
-        if (verbose)
-            System.out.println(msg);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Runtime.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Runtime.java
deleted file mode 100644
index 7fbf762..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Runtime.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime;
-
-public interface Runtime
-{
-    public static final String PORT_PROPERTY = "port";
-    public static final String ADDRESS_PROPERTY = "address";
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Server.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Server.java
deleted file mode 100644
index 4ee4357..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Server.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.Properties;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.felix.sigil.common.runtime.io.Action;
-import org.apache.felix.sigil.common.runtime.io.InstallAction;
-import org.apache.felix.sigil.common.runtime.io.RefreshAction;
-import org.apache.felix.sigil.common.runtime.io.StartAction;
-import org.apache.felix.sigil.common.runtime.io.StatusAction;
-import org.apache.felix.sigil.common.runtime.io.StopAction;
-import org.apache.felix.sigil.common.runtime.io.UninstallAction;
-import org.apache.felix.sigil.common.runtime.io.UpdateAction;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.Runtime.ADDRESS_PROPERTY;
-import static org.apache.felix.sigil.common.runtime.Runtime.PORT_PROPERTY;
-import static org.apache.felix.sigil.common.runtime.io.Constants.*;
-
-/**
- * @author dave
- *
- */
-public class Server
-{
-    private final Framework fw;
-    private Thread accept;
-    private ExecutorService read = Executors.newCachedThreadPool();
-
-    private AtomicBoolean stopped = new AtomicBoolean();
-
-    public Server(Framework fw)
-    {
-        this.fw = fw;
-    }
-
-    public void start(Properties props) throws IOException
-    {
-        final ServerSocket socket = new ServerSocket();
-
-        String v = props.getProperty(ADDRESS_PROPERTY);
-        InetAddress address = v == null ? null : InetAddress.getByName(v);
-        int port = Integer.parseInt(props.getProperty(PORT_PROPERTY, "0"));
-
-        InetSocketAddress socketAddress = new InetSocketAddress(address, port);
-        socket.bind(socketAddress);
-
-        Main.log("Started server listening on " + socket.getLocalSocketAddress() + ":"
-            + socket.getLocalPort());
-
-        accept = new Thread(new Runnable()
-        {
-            public void run()
-            {
-                while (!stopped.get())
-                {
-                    try
-                    {
-                        read.execute(new Reader(socket.accept()));
-                    }
-                    catch (IOException e)
-                    {
-                        // TODO Auto-generated catch block
-                        e.printStackTrace();
-                    }
-                }
-            }
-        });
-
-        accept.start();
-
-        Main.log("Started thread!");
-    }
-
-    public void stop()
-    {
-        stopped.set(true);
-        accept.interrupt();
-        accept = null;
-    }
-
-    public class Reader implements Runnable
-    {
-
-        private final Socket socket;
-
-        /**
-         * @param accept
-         */
-        public Reader(Socket socket)
-        {
-            this.socket = socket;
-        }
-
-        /* (non-Javadoc)
-         * @see java.lang.Runnable#run()
-         */
-        public void run()
-        {
-            Main.log("Accepted " + socket.getInetAddress() + ":" + socket.getLocalPort());
-
-            try
-            {
-                DataInputStream in = new DataInputStream(socket.getInputStream());
-                DataOutputStream out = new DataOutputStream(socket.getOutputStream());
-
-                while (!stopped.get())
-                {
-                    int action = in.readInt();
-
-                    Action<?, ?> task = null;
-
-                    switch (action)
-                    {
-                        case INSTALL:
-                            task = new InstallAction(in, out);
-                            break;
-                        case START:
-                            task = new StartAction(in, out);
-                            break;
-                        case STOP:
-                            task = new StopAction(in, out);
-                            break;
-                        case UNINSTALL:
-                            task = new UninstallAction(in, out);
-                            break;
-                        case UPDATE:
-                            task = new UpdateAction(in, out);
-                            break;
-                        case STATUS:
-                            task = new StatusAction(in, out);
-                            break;
-                        case REFRESH:
-                            task = new RefreshAction(in, out);
-                            break;
-                    }
-
-                    if (task == null)
-                    {
-                        Main.log("Invalid action " + action);
-                    }
-                    else
-                    {
-                        task.server(fw);
-                    }
-                }
-            }
-            catch (EOFException e)
-            {
-                // fine
-            }
-            catch (IOException e)
-            {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-            finally
-            {
-                try
-                {
-                    socket.close();
-                }
-                catch (IOException e)
-                {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/AlreadySelectedException.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/AlreadySelectedException.java
deleted file mode 100644
index e1ce866..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/AlreadySelectedException.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Thrown when more than one option in an option group
- * has been provided.
- *
- * @author John Keyes ( john at integralsource.com )
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class AlreadySelectedException extends ParseException
-{
-    /** The option group selected. */
-    private OptionGroup group;
-
-    /** The option that triggered the exception. */
-    private Option option;
-
-    /**
-     * Construct a new <code>AlreadySelectedException</code>
-     * with the specified detail message.
-     *
-     * @param message the detail message
-     */
-    public AlreadySelectedException(String message)
-    {
-        super(message);
-    }
-
-    /**
-     * Construct a new <code>AlreadySelectedException</code>
-     * for the specified option group.
-     *
-     * @param group  the option group already selected
-     * @param option the option that triggered the exception
-     * @since 1.2
-     */
-    public AlreadySelectedException(OptionGroup group, Option option)
-    {
-        this("The option '" + option.getKey()
-            + "' was specified but an option from this group "
-            + "has already been selected: '" + group.getSelected() + "'");
-        this.group = group;
-        this.option = option;
-    }
-
-    /**
-     * Returns the option group where another option has been selected.
-     *
-     * @return the related option group
-     * @since 1.2
-     */
-    public OptionGroup getOptionGroup()
-    {
-        return group;
-    }
-
-    /**
-     * Returns the option that was added to the group and triggered the exception.
-     *
-     * @return the related option
-     * @since 1.2
-     */
-    public Option getOption()
-    {
-        return option;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/BasicParser.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/BasicParser.java
deleted file mode 100644
index 55bf80f..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/BasicParser.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * The class BasicParser provides a very simple implementation of
- * the {@link Parser#flatten(Options,String[],boolean) flatten} method.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class BasicParser extends Parser
-{
-    /**
-     * <p>A simple implementation of {@link Parser}'s abstract
-     * {@link Parser#flatten(Options, String[], boolean) flatten} method.</p>
-     *
-     * <p><b>Note:</b> <code>options</code> and <code>stopAtNonOption</code>
-     * are not used in this <code>flatten</code> method.</p>
-     *
-     * @param options The command line {@link Options}
-     * @param arguments The command line arguments to be parsed
-     * @param stopAtNonOption Specifies whether to stop flattening
-     * when an non option is found.
-     * @return The <code>arguments</code> String array.
-     */
-    protected String[] flatten(Options options, String[] arguments,
-        boolean stopAtNonOption)
-    {
-        // just echo the arguments
-        return arguments;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLine.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLine.java
deleted file mode 100644
index 912db47..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLine.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * Represents list of arguments parsed against a {@link Options} descriptor.
- *
- * <p>It allows querying of a boolean {@link #hasOption(String opt)},
- * in addition to retrieving the {@link #getOptionValue(String opt)}
- * for options requiring arguments.</p>
- *
- * <p>Additionally, any left-over or unrecognized arguments,
- * are available for further processing.</p>
- *
- * @author bob mcwhirter (bob @ werken.com)
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 735247 $, $Date: 2009-01-17 00:23:35 -0800 (Sat, 17 Jan 2009) $
- */
-public class CommandLine implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** the unrecognised options/arguments */
-    private List args = new LinkedList();
-
-    /** the processed options */
-    private List options = new ArrayList();
-
-    /**
-     * Creates a command line.
-     */
-    CommandLine()
-    {
-        // nothing to do
-    }
-
-    /** 
-     * Query to see if an option has been set.
-     *
-     * @param opt Short name of the option
-     * @return true if set, false if not
-     */
-    public boolean hasOption(String opt)
-    {
-        return options.contains(resolveOption(opt));
-    }
-
-    /** 
-     * Query to see if an option has been set.
-     *
-     * @param opt character name of the option
-     * @return true if set, false if not
-     */
-    public boolean hasOption(char opt)
-    {
-        return hasOption(String.valueOf(opt));
-    }
-
-    /**
-     * Return the <code>Object</code> type of this <code>Option</code>.
-     *
-     * @param opt the name of the option
-     * @return the type of this <code>Option</code>
-     * @deprecated due to System.err message. Instead use getParsedOptionValue(String)
-     */
-    public Object getOptionObject(String opt)
-    {
-        try
-        {
-            return getParsedOptionValue(opt);
-        }
-        catch (ParseException pe)
-        {
-            System.err.println("Exception found converting " + opt + " to desired type: "
-                + pe.getMessage());
-            return null;
-        }
-    }
-
-    /**
-     * Return a version of this <code>Option</code> converted to a particular type. 
-     *
-     * @param opt the name of the option
-     * @return the value parsed into a particluar object
-     * @throws ParseException if there are problems turning the option value into the desired type
-     * @see PatternOptionBuilder
-     */
-    public Object getParsedOptionValue(String opt) throws ParseException
-    {
-        String res = getOptionValue(opt);
-
-        Option option = resolveOption(opt);
-        if (option == null)
-        {
-            return null;
-        }
-
-        Object type = option.getType();
-
-        return (res == null) ? null : TypeHandler.createValue(res, type);
-    }
-
-    /**
-     * Return the <code>Object</code> type of this <code>Option</code>.
-     *
-     * @param opt the name of the option
-     * @return the type of opt
-     */
-    public Object getOptionObject(char opt)
-    {
-        return getOptionObject(String.valueOf(opt));
-    }
-
-    /** 
-     * Retrieve the argument, if any, of this option.
-     *
-     * @param opt the name of the option
-     * @return Value of the argument if option is set, and has an argument,
-     * otherwise null.
-     */
-    public String getOptionValue(String opt)
-    {
-        String[] values = getOptionValues(opt);
-
-        return (values == null) ? null : values[0];
-    }
-
-    /** 
-     * Retrieve the argument, if any, of this option.
-     *
-     * @param opt the character name of the option
-     * @return Value of the argument if option is set, and has an argument,
-     * otherwise null.
-     */
-    public String getOptionValue(char opt)
-    {
-        return getOptionValue(String.valueOf(opt));
-    }
-
-    /** 
-     * Retrieves the array of values, if any, of an option.
-     *
-     * @param opt string name of the option
-     * @return Values of the argument if option is set, and has an argument,
-     * otherwise null.
-     */
-    public String[] getOptionValues(String opt)
-    {
-        List values = new ArrayList();
-
-        for (Iterator it = options.iterator(); it.hasNext();)
-        {
-            Option option = (Option) it.next();
-            if (opt.equals(option.getOpt()) || opt.equals(option.getLongOpt()))
-            {
-                values.addAll(option.getValuesList());
-            }
-        }
-
-        return values.isEmpty() ? null
-            : (String[]) values.toArray(new String[values.size()]);
-    }
-
-    /**
-     * Retrieves the option object given the long or short option as a String
-     * 
-     * @param opt short or long name of the option
-     * @return Canonicalized option
-     */
-    private Option resolveOption(String opt)
-    {
-        opt = Util.stripLeadingHyphens(opt);
-        for (Iterator it = options.iterator(); it.hasNext();)
-        {
-            Option option = (Option) it.next();
-            if (opt.equals(option.getOpt()))
-            {
-                return option;
-            }
-
-            if (opt.equals(option.getLongOpt()))
-            {
-                return option;
-            }
-
-        }
-        return null;
-    }
-
-    /** 
-     * Retrieves the array of values, if any, of an option.
-     *
-     * @param opt character name of the option
-     * @return Values of the argument if option is set, and has an argument,
-     * otherwise null.
-     */
-    public String[] getOptionValues(char opt)
-    {
-        return getOptionValues(String.valueOf(opt));
-    }
-
-    /** 
-     * Retrieve the argument, if any, of an option.
-     *
-     * @param opt name of the option
-     * @param defaultValue is the default value to be returned if the option
-     * is not specified
-     * @return Value of the argument if option is set, and has an argument,
-     * otherwise <code>defaultValue</code>.
-     */
-    public String getOptionValue(String opt, String defaultValue)
-    {
-        String answer = getOptionValue(opt);
-
-        return (answer != null) ? answer : defaultValue;
-    }
-
-    /** 
-     * Retrieve the argument, if any, of an option.
-     *
-     * @param opt character name of the option
-     * @param defaultValue is the default value to be returned if the option
-     * is not specified
-     * @return Value of the argument if option is set, and has an argument,
-     * otherwise <code>defaultValue</code>.
-     */
-    public String getOptionValue(char opt, String defaultValue)
-    {
-        return getOptionValue(String.valueOf(opt), defaultValue);
-    }
-
-    /**
-     * Retrieve the map of values associated to the option. This is convenient
-     * for options specifying Java properties like <tt>-Dparam1=value1
-     * -Dparam2=value2</tt>. The first argument of the option is the key, and
-     * the 2nd argument is the value. If the option has only one argument
-     * (<tt>-Dfoo</tt>) it is considered as a boolean flag and the value is
-     * <tt>"true"</tt>.
-     *
-     * @param opt name of the option
-     * @return The Properties mapped by the option, never <tt>null</tt>
-     *         even if the option doesn't exists
-     * @since 1.2
-     */
-    public Properties getOptionProperties(String opt)
-    {
-        Properties props = new Properties();
-
-        for (Iterator it = options.iterator(); it.hasNext();)
-        {
-            Option option = (Option) it.next();
-
-            if (opt.equals(option.getOpt()) || opt.equals(option.getLongOpt()))
-            {
-                List values = option.getValuesList();
-                if (values.size() >= 2)
-                {
-                    // use the first 2 arguments as the key/value pair
-                    props.put(values.get(0), values.get(1));
-                }
-                else if (values.size() == 1)
-                {
-                    // no explicit value, handle it as a boolean
-                    props.put(values.get(0), "true");
-                }
-            }
-        }
-
-        return props;
-    }
-
-    /** 
-     * Retrieve any left-over non-recognized options and arguments
-     *
-     * @return remaining items passed in but not parsed as an array
-     */
-    public String[] getArgs()
-    {
-        String[] answer = new String[args.size()];
-
-        args.toArray(answer);
-
-        return answer;
-    }
-
-    /** 
-     * Retrieve any left-over non-recognized options and arguments
-     *
-     * @return remaining items passed in but not parsed as a <code>List</code>.
-     */
-    public List getArgList()
-    {
-        return args;
-    }
-
-    /** 
-     * jkeyes
-     * - commented out until it is implemented properly
-     * <p>Dump state, suitable for debugging.</p>
-     *
-     * @return Stringified form of this object
-     */
-
-    /*
-    public String toString() {
-        StringBuffer buf = new StringBuffer();
-            
-        buf.append("[ CommandLine: [ options: ");
-        buf.append(options.toString());
-        buf.append(" ] [ args: ");
-        buf.append(args.toString());
-        buf.append(" ] ]");
-            
-        return buf.toString();
-    }
-    */
-
-    /**
-     * Add left-over unrecognized option/argument.
-     *
-     * @param arg the unrecognised option/argument.
-     */
-    void addArg(String arg)
-    {
-        args.add(arg);
-    }
-
-    /**
-     * Add an option to the command line.  The values of the option are stored.
-     *
-     * @param opt the processed option
-     */
-    void addOption(Option opt)
-    {
-        options.add(opt);
-    }
-
-    /**
-     * Returns an iterator over the Option members of CommandLine.
-     *
-     * @return an <code>Iterator</code> over the processed {@link Option}
-     * members of this {@link CommandLine}
-     */
-    public Iterator iterator()
-    {
-        return options.iterator();
-    }
-
-    /**
-     * Returns an array of the processed {@link Option}s.
-     *
-     * @return an array of the processed {@link Option}s.
-     */
-    public Option[] getOptions()
-    {
-        Collection processed = options;
-
-        // reinitialise array
-        Option[] optionsArray = new Option[processed.size()];
-
-        // return the array
-        return (Option[]) processed.toArray(optionsArray);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLineParser.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLineParser.java
deleted file mode 100644
index cdfa8c2..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/CommandLineParser.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * A class that implements the <code>CommandLineParser</code> interface
- * can parse a String array according to the {@link Options} specified
- * and return a {@link CommandLine}.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public interface CommandLineParser
-{
-    /**
-     * Parse the arguments according to the specified options.
-     *
-     * @param options the specified Options
-     * @param arguments the command line arguments
-     * @return the list of atomic option and value tokens
-     *
-     * @throws ParseException if there are any problems encountered
-     * while parsing the command line tokens.
-     */
-    CommandLine parse(Options options, String[] arguments) throws ParseException;
-
-    /**
-     * Parse the arguments according to the specified options and
-     * properties.
-     *
-     * @param options the specified Options
-     * @param arguments the command line arguments
-     * @param properties command line option name-value pairs
-     * @return the list of atomic option and value tokens
-     *
-     * @throws ParseException if there are any problems encountered
-     * while parsing the command line tokens.
-     */
-    /* To maintain binary compatibility, this is commented out.
-       It is still in the abstract Parser class, so most users will
-       still reap the benefit.
-    CommandLine parse(Options options, String[] arguments, Properties properties)
-               throws ParseException;
-     */
-
-    /**
-     * Parse the arguments according to the specified options.
-     *
-     * @param options the specified Options
-     * @param arguments the command line arguments
-     * @param stopAtNonOption specifies whether to continue parsing the
-     * arguments if a non option is encountered.
-     *
-     * @return the list of atomic option and value tokens
-     * @throws ParseException if there are any problems encountered
-     * while parsing the command line tokens.
-     */
-    CommandLine parse(Options options, String[] arguments, boolean stopAtNonOption)
-        throws ParseException;
-
-    /**
-     * Parse the arguments according to the specified options and
-     * properties.
-     *
-     * @param options the specified Options
-     * @param arguments the command line arguments
-     * @param properties command line option name-value pairs
-     * @param stopAtNonOption specifies whether to continue parsing the
-     *
-     * @return the list of atomic option and value tokens
-     * @throws ParseException if there are any problems encountered
-     * while parsing the command line tokens.
-     */
-    /* To maintain binary compatibility, this is commented out.
-       It is still in the abstract Parser class, so most users will
-       still reap the benefit.
-    CommandLine parse(Options options, String[] arguments, Properties properties, boolean stopAtNonOption)
-            throws ParseException;
-     */
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/GnuParser.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/GnuParser.java
deleted file mode 100644
index e130aa9..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/GnuParser.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * The class GnuParser provides an implementation of the
- * {@link Parser#flatten(Options, String[], boolean) flatten} method.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class GnuParser extends Parser
-{
-    /**
-     * This flatten method does so using the following rules:
-     * <ol>
-     *   <li>If an {@link Option} exists for the first character of
-     *   the <code>arguments</code> entry <b>AND</b> an {@link Option}
-     *   does not exist for the whole <code>argument</code> then
-     *   add the first character as an option to the processed tokens
-     *   list e.g. "-D" and add the rest of the entry to the also.</li>
-     *   <li>Otherwise just add the token to the processed tokens list.</li>
-     * </ol>
-     *
-     * @param options         The Options to parse the arguments by.
-     * @param arguments       The arguments that have to be flattened.
-     * @param stopAtNonOption specifies whether to stop flattening when
-     *                        a non option has been encountered
-     * @return a String array of the flattened arguments
-     */
-    protected String[] flatten(Options options, String[] arguments,
-        boolean stopAtNonOption)
-    {
-        List tokens = new ArrayList();
-
-        boolean eatTheRest = false;
-
-        for (int i = 0; i < arguments.length; i++)
-        {
-            String arg = arguments[i];
-
-            if ("--".equals(arg))
-            {
-                eatTheRest = true;
-                tokens.add("--");
-            }
-            else if ("-".equals(arg))
-            {
-                tokens.add("-");
-            }
-            else if (arg.startsWith("-"))
-            {
-                String opt = Util.stripLeadingHyphens(arg);
-
-                if (options.hasOption(opt))
-                {
-                    tokens.add(arg);
-                }
-                else
-                {
-                    if (opt.indexOf('=') != -1
-                        && options.hasOption(opt.substring(0, opt.indexOf('='))))
-                    {
-                        // the format is --foo=value or -foo=value
-                        tokens.add(arg.substring(0, arg.indexOf('='))); // --foo
-                        tokens.add(arg.substring(arg.indexOf('=') + 1)); // value
-                    }
-                    else if (options.hasOption(arg.substring(0, 2)))
-                    {
-                        // the format is a special properties option (-Dproperty=value)
-                        tokens.add(arg.substring(0, 2)); // -D
-                        tokens.add(arg.substring(2)); // property=value
-                    }
-                    else
-                    {
-                        eatTheRest = stopAtNonOption;
-                        tokens.add(arg);
-                    }
-                }
-            }
-            else
-            {
-                tokens.add(arg);
-            }
-
-            if (eatTheRest)
-            {
-                for (i++; i < arguments.length; i++)
-                {
-                    tokens.add(arguments[i]);
-                }
-            }
-        }
-
-        return (String[]) tokens.toArray(new String[tokens.size()]);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/HelpFormatter.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/HelpFormatter.java
deleted file mode 100644
index bb0cc2e..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/HelpFormatter.java
+++ /dev/null
@@ -1,988 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-/** 
- * A formatter of help messages for the current command line options
- *
- * @author Slawek Zachcial
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 751120 $, $Date: 2009-03-06 14:45:57 -0800 (Fri, 06 Mar 2009) $
- */
-public class HelpFormatter
-{
-    // --------------------------------------------------------------- Constants
-
-    /** default number of characters per line */
-    public static final int DEFAULT_WIDTH = 74;
-
-    /** default padding to the left of each line */
-    public static final int DEFAULT_LEFT_PAD = 1;
-
-    /**
-     * the number of characters of padding to be prefixed
-     * to each description line
-     */
-    public static final int DEFAULT_DESC_PAD = 3;
-
-    /** the string to display at the beginning of the usage statement */
-    public static final String DEFAULT_SYNTAX_PREFIX = "usage: ";
-
-    /** default prefix for shortOpts */
-    public static final String DEFAULT_OPT_PREFIX = "-";
-
-    /** default prefix for long Option */
-    public static final String DEFAULT_LONG_OPT_PREFIX = "--";
-
-    /** default name for an argument */
-    public static final String DEFAULT_ARG_NAME = "arg";
-
-    // -------------------------------------------------------------- Attributes
-
-    /**
-     * number of characters per line
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setWidth methods instead.
-     */
-    public int defaultWidth = DEFAULT_WIDTH;
-
-    /**
-     * amount of padding to the left of each line
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setLeftPadding methods instead.
-     */
-    public int defaultLeftPad = DEFAULT_LEFT_PAD;
-
-    /**
-     * the number of characters of padding to be prefixed
-     * to each description line
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setDescPadding methods instead.
-     */
-    public int defaultDescPad = DEFAULT_DESC_PAD;
-
-    /**
-     * the string to display at the begining of the usage statement
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setSyntaxPrefix methods instead.
-     */
-    public String defaultSyntaxPrefix = DEFAULT_SYNTAX_PREFIX;
-
-    /**
-     * the new line string
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setNewLine methods instead.
-     */
-    public String defaultNewLine = System.getProperty("line.separator");
-
-    /**
-     * the shortOpt prefix
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setOptPrefix methods instead.
-     */
-    public String defaultOptPrefix = DEFAULT_OPT_PREFIX;
-
-    /**
-     * the long Opt prefix
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setLongOptPrefix methods instead.
-     */
-    public String defaultLongOptPrefix = DEFAULT_LONG_OPT_PREFIX;
-
-    /**
-     * the name of the argument
-     *
-     * @deprecated Scope will be made private for next major version
-     * - use get/setArgName methods instead.
-     */
-    public String defaultArgName = DEFAULT_ARG_NAME;
-
-    /**
-     * Comparator used to sort the options when they output in help text
-     * 
-     * Defaults to case-insensitive alphabetical sorting by option key
-     */
-    protected Comparator optionComparator = new OptionComparator();
-
-    /**
-     * Sets the 'width'.
-     *
-     * @param width the new value of 'width'
-     */
-    public void setWidth(int width)
-    {
-        this.defaultWidth = width;
-    }
-
-    /**
-     * Returns the 'width'.
-     *
-     * @return the 'width'
-     */
-    public int getWidth()
-    {
-        return defaultWidth;
-    }
-
-    /**
-     * Sets the 'leftPadding'.
-     *
-     * @param padding the new value of 'leftPadding'
-     */
-    public void setLeftPadding(int padding)
-    {
-        this.defaultLeftPad = padding;
-    }
-
-    /**
-     * Returns the 'leftPadding'.
-     *
-     * @return the 'leftPadding'
-     */
-    public int getLeftPadding()
-    {
-        return defaultLeftPad;
-    }
-
-    /**
-     * Sets the 'descPadding'.
-     *
-     * @param padding the new value of 'descPadding'
-     */
-    public void setDescPadding(int padding)
-    {
-        this.defaultDescPad = padding;
-    }
-
-    /**
-     * Returns the 'descPadding'.
-     *
-     * @return the 'descPadding'
-     */
-    public int getDescPadding()
-    {
-        return defaultDescPad;
-    }
-
-    /**
-     * Sets the 'syntaxPrefix'.
-     *
-     * @param prefix the new value of 'syntaxPrefix'
-     */
-    public void setSyntaxPrefix(String prefix)
-    {
-        this.defaultSyntaxPrefix = prefix;
-    }
-
-    /**
-     * Returns the 'syntaxPrefix'.
-     *
-     * @return the 'syntaxPrefix'
-     */
-    public String getSyntaxPrefix()
-    {
-        return defaultSyntaxPrefix;
-    }
-
-    /**
-     * Sets the 'newLine'.
-     *
-     * @param newline the new value of 'newLine'
-     */
-    public void setNewLine(String newline)
-    {
-        this.defaultNewLine = newline;
-    }
-
-    /**
-     * Returns the 'newLine'.
-     *
-     * @return the 'newLine'
-     */
-    public String getNewLine()
-    {
-        return defaultNewLine;
-    }
-
-    /**
-     * Sets the 'optPrefix'.
-     *
-     * @param prefix the new value of 'optPrefix'
-     */
-    public void setOptPrefix(String prefix)
-    {
-        this.defaultOptPrefix = prefix;
-    }
-
-    /**
-     * Returns the 'optPrefix'.
-     *
-     * @return the 'optPrefix'
-     */
-    public String getOptPrefix()
-    {
-        return defaultOptPrefix;
-    }
-
-    /**
-     * Sets the 'longOptPrefix'.
-     *
-     * @param prefix the new value of 'longOptPrefix'
-     */
-    public void setLongOptPrefix(String prefix)
-    {
-        this.defaultLongOptPrefix = prefix;
-    }
-
-    /**
-     * Returns the 'longOptPrefix'.
-     *
-     * @return the 'longOptPrefix'
-     */
-    public String getLongOptPrefix()
-    {
-        return defaultLongOptPrefix;
-    }
-
-    /**
-     * Sets the 'argName'.
-     *
-     * @param name the new value of 'argName'
-     */
-    public void setArgName(String name)
-    {
-        this.defaultArgName = name;
-    }
-
-    /**
-     * Returns the 'argName'.
-     *
-     * @return the 'argName'
-     */
-    public String getArgName()
-    {
-        return defaultArgName;
-    }
-
-    /**
-     * Comparator used to sort the options when they output in help text
-     * 
-     * Defaults to case-insensitive alphabetical sorting by option key
-     */
-    public Comparator getOptionComparator()
-    {
-        return optionComparator;
-    }
-
-    /**
-     * Set the comparator used to sort the options when they output in help text
-     * 
-     * Passing in a null parameter will set the ordering to the default mode
-     */
-    public void setOptionComparator(Comparator comparator)
-    {
-        if (comparator == null)
-        {
-            this.optionComparator = new OptionComparator();
-        }
-        else
-        {
-            this.optionComparator = comparator;
-        }
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to
-     * System.out.
-     *
-     * @param cmdLineSyntax the syntax for this application
-     * @param options the Options instance
-     */
-    public void printHelp(String cmdLineSyntax, Options options)
-    {
-        printHelp(defaultWidth, cmdLineSyntax, null, options, null, false);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to 
-     * System.out.
-     *
-     * @param cmdLineSyntax the syntax for this application
-     * @param options the Options instance
-     * @param autoUsage whether to print an automatically generated
-     * usage statement
-     */
-    public void printHelp(String cmdLineSyntax, Options options, boolean autoUsage)
-    {
-        printHelp(defaultWidth, cmdLineSyntax, null, options, null, autoUsage);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to
-     * System.out.
-     *
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the begining of the help
-     * @param options the Options instance
-     * @param footer the banner to display at the end of the help
-     */
-    public void printHelp(String cmdLineSyntax, String header, Options options,
-        String footer)
-    {
-        printHelp(cmdLineSyntax, header, options, footer, false);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to 
-     * System.out.
-     *
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the begining of the help
-     * @param options the Options instance
-     * @param footer the banner to display at the end of the help
-     * @param autoUsage whether to print an automatically generated
-     * usage statement
-     */
-    public void printHelp(String cmdLineSyntax, String header, Options options,
-        String footer, boolean autoUsage)
-    {
-        printHelp(defaultWidth, cmdLineSyntax, header, options, footer, autoUsage);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to
-     * System.out.
-     *
-     * @param width the number of characters to be displayed on each line
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the beginning of the help
-     * @param options the Options instance
-     * @param footer the banner to display at the end of the help
-     */
-    public void printHelp(int width, String cmdLineSyntax, String header,
-        Options options, String footer)
-    {
-        printHelp(width, cmdLineSyntax, header, options, footer, false);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.  This method prints help information to
-     * System.out.
-     *
-     * @param width the number of characters to be displayed on each line
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the begining of the help
-     * @param options the Options instance
-     * @param footer the banner to display at the end of the help
-     * @param autoUsage whether to print an automatically generated 
-     * usage statement
-     */
-    public void printHelp(int width, String cmdLineSyntax, String header,
-        Options options, String footer, boolean autoUsage)
-    {
-        PrintWriter pw = new PrintWriter(System.out);
-
-        printHelp(pw, width, cmdLineSyntax, header, options, defaultLeftPad,
-            defaultDescPad, footer, autoUsage);
-        pw.flush();
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.
-     *
-     * @param pw the writer to which the help will be written
-     * @param width the number of characters to be displayed on each line
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the begining of the help
-     * @param options the Options instance
-     * @param leftPad the number of characters of padding to be prefixed
-     * to each line
-     * @param descPad the number of characters of padding to be prefixed
-     * to each description line
-     * @param footer the banner to display at the end of the help
-     *
-     * @throws IllegalStateException if there is no room to print a line
-     */
-    public void printHelp(PrintWriter pw, int width, String cmdLineSyntax, String header,
-        Options options, int leftPad, int descPad, String footer)
-    {
-        printHelp(pw, width, cmdLineSyntax, header, options, leftPad, descPad, footer,
-            false);
-    }
-
-    /**
-     * Print the help for <code>options</code> with the specified
-     * command line syntax.
-     *
-     * @param pw the writer to which the help will be written
-     * @param width the number of characters to be displayed on each line
-     * @param cmdLineSyntax the syntax for this application
-     * @param header the banner to display at the begining of the help
-     * @param options the Options instance
-     * @param leftPad the number of characters of padding to be prefixed
-     * to each line
-     * @param descPad the number of characters of padding to be prefixed
-     * to each description line
-     * @param footer the banner to display at the end of the help
-     * @param autoUsage whether to print an automatically generated
-     * usage statement
-     *
-     * @throws IllegalStateException if there is no room to print a line
-     */
-    public void printHelp(PrintWriter pw, int width, String cmdLineSyntax, String header,
-        Options options, int leftPad, int descPad, String footer, boolean autoUsage)
-    {
-        if ((cmdLineSyntax == null) || (cmdLineSyntax.length() == 0))
-        {
-            throw new IllegalArgumentException("cmdLineSyntax not provided");
-        }
-
-        if (autoUsage)
-        {
-            printUsage(pw, width, cmdLineSyntax, options);
-        }
-        else
-        {
-            printUsage(pw, width, cmdLineSyntax);
-        }
-
-        if ((header != null) && (header.trim().length() > 0))
-        {
-            printWrapped(pw, width, header);
-        }
-
-        printOptions(pw, width, options, leftPad, descPad);
-
-        if ((footer != null) && (footer.trim().length() > 0))
-        {
-            printWrapped(pw, width, footer);
-        }
-    }
-
-    /**
-     * <p>Prints the usage statement for the specified application.</p>
-     *
-     * @param pw The PrintWriter to print the usage statement 
-     * @param width The number of characters to display per line
-     * @param app The application name
-     * @param options The command line Options
-     *
-     */
-    public void printUsage(PrintWriter pw, int width, String app, Options options)
-    {
-        // initialise the string buffer
-        StringBuffer buff = new StringBuffer(defaultSyntaxPrefix).append(app).append(" ");
-
-        // create a list for processed option groups
-        final Collection processedGroups = new ArrayList();
-
-        // temp variable
-        Option option;
-
-        List optList = new ArrayList(options.getOptions());
-        Collections.sort(optList, getOptionComparator());
-        // iterate over the options
-        for (Iterator i = optList.iterator(); i.hasNext();)
-        {
-            // get the next Option
-            option = (Option) i.next();
-
-            // check if the option is part of an OptionGroup
-            OptionGroup group = options.getOptionGroup(option);
-
-            // if the option is part of a group 
-            if (group != null)
-            {
-                // and if the group has not already been processed
-                if (!processedGroups.contains(group))
-                {
-                    // add the group to the processed list
-                    processedGroups.add(group);
-
-                    // add the usage clause
-                    appendOptionGroup(buff, group);
-                }
-
-                // otherwise the option was displayed in the group
-                // previously so ignore it.
-            }
-
-            // if the Option is not part of an OptionGroup
-            else
-            {
-                appendOption(buff, option, option.isRequired());
-            }
-
-            if (i.hasNext())
-            {
-                buff.append(" ");
-            }
-        }
-
-        // call printWrapped
-        printWrapped(pw, width, buff.toString().indexOf(' ') + 1, buff.toString());
-    }
-
-    /**
-     * Appends the usage clause for an OptionGroup to a StringBuffer.  
-     * The clause is wrapped in square brackets if the group is required.
-     * The display of the options is handled by appendOption
-     * @param buff the StringBuffer to append to
-     * @param group the group to append
-     * @see #appendOption(StringBuffer,Option,boolean)
-     */
-    private void appendOptionGroup(final StringBuffer buff, final OptionGroup group)
-    {
-        if (!group.isRequired())
-        {
-            buff.append("[");
-        }
-
-        List optList = new ArrayList(group.getOptions());
-        Collections.sort(optList, getOptionComparator());
-        // for each option in the OptionGroup
-        for (Iterator i = optList.iterator(); i.hasNext();)
-        {
-            // whether the option is required or not is handled at group level
-            appendOption(buff, (Option) i.next(), true);
-
-            if (i.hasNext())
-            {
-                buff.append(" | ");
-            }
-        }
-
-        if (!group.isRequired())
-        {
-            buff.append("]");
-        }
-    }
-
-    /**
-     * Appends the usage clause for an Option to a StringBuffer.  
-     *
-     * @param buff the StringBuffer to append to
-     * @param option the Option to append
-     * @param required whether the Option is required or not
-     */
-    private static void appendOption(final StringBuffer buff, final Option option,
-        final boolean required)
-    {
-        if (!required)
-        {
-            buff.append("[");
-        }
-
-        if (option.getOpt() != null)
-        {
-            buff.append("-").append(option.getOpt());
-        }
-        else
-        {
-            buff.append("--").append(option.getLongOpt());
-        }
-
-        // if the Option has a value
-        if (option.hasArg() && option.hasArgName())
-        {
-            buff.append(" <").append(option.getArgName()).append(">");
-        }
-
-        // if the Option is not a required option
-        if (!required)
-        {
-            buff.append("]");
-        }
-    }
-
-    /**
-     * Print the cmdLineSyntax to the specified writer, using the
-     * specified width.
-     *
-     * @param pw The printWriter to write the help to
-     * @param width The number of characters per line for the usage statement.
-     * @param cmdLineSyntax The usage statement.
-     */
-    public void printUsage(PrintWriter pw, int width, String cmdLineSyntax)
-    {
-        int argPos = cmdLineSyntax.indexOf(' ') + 1;
-
-        printWrapped(pw, width, defaultSyntaxPrefix.length() + argPos,
-            defaultSyntaxPrefix + cmdLineSyntax);
-    }
-
-    /**
-     * <p>Print the help for the specified Options to the specified writer, 
-     * using the specified width, left padding and description padding.</p>
-     *
-     * @param pw The printWriter to write the help to
-     * @param width The number of characters to display per line
-     * @param options The command line Options
-     * @param leftPad the number of characters of padding to be prefixed
-     * to each line
-     * @param descPad the number of characters of padding to be prefixed
-     * to each description line
-     */
-    public void printOptions(PrintWriter pw, int width, Options options, int leftPad,
-        int descPad)
-    {
-        StringBuffer sb = new StringBuffer();
-
-        renderOptions(sb, width, options, leftPad, descPad);
-        pw.println(sb.toString());
-    }
-
-    /**
-     * Print the specified text to the specified PrintWriter.
-     *
-     * @param pw The printWriter to write the help to
-     * @param width The number of characters to display per line
-     * @param text The text to be written to the PrintWriter
-     */
-    public void printWrapped(PrintWriter pw, int width, String text)
-    {
-        printWrapped(pw, width, 0, text);
-    }
-
-    /**
-     * Print the specified text to the specified PrintWriter.
-     *
-     * @param pw The printWriter to write the help to
-     * @param width The number of characters to display per line
-     * @param nextLineTabStop The position on the next line for the first tab.
-     * @param text The text to be written to the PrintWriter
-     */
-    public void printWrapped(PrintWriter pw, int width, int nextLineTabStop, String text)
-    {
-        StringBuffer sb = new StringBuffer(text.length());
-
-        renderWrappedText(sb, width, nextLineTabStop, text);
-        pw.println(sb.toString());
-    }
-
-    // --------------------------------------------------------------- Protected
-
-    /**
-     * Render the specified Options and return the rendered Options
-     * in a StringBuffer.
-     *
-     * @param sb The StringBuffer to place the rendered Options into.
-     * @param width The number of characters to display per line
-     * @param options The command line Options
-     * @param leftPad the number of characters of padding to be prefixed
-     * to each line
-     * @param descPad the number of characters of padding to be prefixed
-     * to each description line
-     *
-     * @return the StringBuffer with the rendered Options contents.
-     */
-    protected StringBuffer renderOptions(StringBuffer sb, int width, Options options,
-        int leftPad, int descPad)
-    {
-        final String lpad = createPadding(leftPad);
-        final String dpad = createPadding(descPad);
-
-        // first create list containing only <lpad>-a,--aaa where 
-        // -a is opt and --aaa is long opt; in parallel look for 
-        // the longest opt string this list will be then used to 
-        // sort options ascending
-        int max = 0;
-        StringBuffer optBuf;
-        List prefixList = new ArrayList();
-
-        List optList = options.helpOptions();
-
-        Collections.sort(optList, getOptionComparator());
-
-        for (Iterator i = optList.iterator(); i.hasNext();)
-        {
-            Option option = (Option) i.next();
-            optBuf = new StringBuffer(8);
-
-            if (option.getOpt() == null)
-            {
-                optBuf.append(lpad).append("   " + defaultLongOptPrefix).append(
-                    option.getLongOpt());
-            }
-            else
-            {
-                optBuf.append(lpad).append(defaultOptPrefix).append(option.getOpt());
-
-                if (option.hasLongOpt())
-                {
-                    optBuf.append(',').append(defaultLongOptPrefix).append(
-                        option.getLongOpt());
-                }
-            }
-
-            if (option.hasArg())
-            {
-                if (option.hasArgName())
-                {
-                    optBuf.append(" <").append(option.getArgName()).append(">");
-                }
-                else
-                {
-                    optBuf.append(' ');
-                }
-            }
-
-            prefixList.add(optBuf);
-            max = (optBuf.length() > max) ? optBuf.length() : max;
-        }
-
-        int x = 0;
-
-        for (Iterator i = optList.iterator(); i.hasNext();)
-        {
-            Option option = (Option) i.next();
-            optBuf = new StringBuffer(prefixList.get(x++).toString());
-
-            if (optBuf.length() < max)
-            {
-                optBuf.append(createPadding(max - optBuf.length()));
-            }
-
-            optBuf.append(dpad);
-
-            int nextLineTabStop = max + descPad;
-
-            if (option.getDescription() != null)
-            {
-                optBuf.append(option.getDescription());
-            }
-
-            renderWrappedText(sb, width, nextLineTabStop, optBuf.toString());
-
-            if (i.hasNext())
-            {
-                sb.append(defaultNewLine);
-            }
-        }
-
-        return sb;
-    }
-
-    /**
-     * Render the specified text and return the rendered Options
-     * in a StringBuffer.
-     *
-     * @param sb The StringBuffer to place the rendered text into.
-     * @param width The number of characters to display per line
-     * @param nextLineTabStop The position on the next line for the first tab.
-     * @param text The text to be rendered.
-     *
-     * @return the StringBuffer with the rendered Options contents.
-     */
-    protected StringBuffer renderWrappedText(StringBuffer sb, int width,
-        int nextLineTabStop, String text)
-    {
-        int pos = findWrapPos(text, width, 0);
-
-        if (pos == -1)
-        {
-            sb.append(rtrim(text));
-
-            return sb;
-        }
-        sb.append(rtrim(text.substring(0, pos))).append(defaultNewLine);
-
-        if (nextLineTabStop >= width)
-        {
-            // stops infinite loop happening
-            nextLineTabStop = 1;
-        }
-
-        // all following lines must be padded with nextLineTabStop space 
-        // characters
-        final String padding = createPadding(nextLineTabStop);
-
-        while (true)
-        {
-            text = padding + text.substring(pos).trim();
-            pos = findWrapPos(text, width, 0);
-
-            if (pos == -1)
-            {
-                sb.append(text);
-
-                return sb;
-            }
-
-            if ((text.length() > width) && (pos == nextLineTabStop - 1))
-            {
-                pos = width;
-            }
-
-            sb.append(rtrim(text.substring(0, pos))).append(defaultNewLine);
-        }
-    }
-
-    /**
-     * Finds the next text wrap position after <code>startPos</code> for the
-     * text in <code>text</code> with the column width <code>width</code>.
-     * The wrap point is the last postion before startPos+width having a 
-     * whitespace character (space, \n, \r).
-     *
-     * @param text The text being searched for the wrap position
-     * @param width width of the wrapped text
-     * @param startPos position from which to start the lookup whitespace
-     * character
-     * @return postion on which the text must be wrapped or -1 if the wrap
-     * position is at the end of the text
-     */
-    protected int findWrapPos(String text, int width, int startPos)
-    {
-        int pos = -1;
-
-        // the line ends before the max wrap pos or a new line char found
-        if (((pos = text.indexOf('\n', startPos)) != -1 && pos <= width)
-            || ((pos = text.indexOf('\t', startPos)) != -1 && pos <= width))
-        {
-            return pos + 1;
-        }
-        else if (startPos + width >= text.length())
-        {
-            return -1;
-        }
-
-        // look for the last whitespace character before startPos+width
-        pos = startPos + width;
-
-        char c;
-
-        while ((pos >= startPos) && ((c = text.charAt(pos)) != ' ') && (c != '\n')
-            && (c != '\r'))
-        {
-            --pos;
-        }
-
-        // if we found it - just return
-        if (pos > startPos)
-        {
-            return pos;
-        }
-
-        // must look for the first whitespace chearacter after startPos 
-        // + width
-        pos = startPos + width;
-
-        while ((pos <= text.length()) && ((c = text.charAt(pos)) != ' ') && (c != '\n')
-            && (c != '\r'))
-        {
-            ++pos;
-        }
-
-        return (pos == text.length()) ? (-1) : pos;
-    }
-
-    /**
-     * Return a String of padding of length <code>len</code>.
-     *
-     * @param len The length of the String of padding to create.
-     *
-     * @return The String of padding
-     */
-    protected String createPadding(int len)
-    {
-        StringBuffer sb = new StringBuffer(len);
-
-        for (int i = 0; i < len; ++i)
-        {
-            sb.append(' ');
-        }
-
-        return sb.toString();
-    }
-
-    /**
-     * Remove the trailing whitespace from the specified String.
-     *
-     * @param s The String to remove the trailing padding from.
-     *
-     * @return The String of without the trailing padding
-     */
-    protected String rtrim(String s)
-    {
-        if ((s == null) || (s.length() == 0))
-        {
-            return s;
-        }
-
-        int pos = s.length();
-
-        while ((pos > 0) && Character.isWhitespace(s.charAt(pos - 1)))
-        {
-            --pos;
-        }
-
-        return s.substring(0, pos);
-    }
-
-    // ------------------------------------------------------ Package protected
-    // ---------------------------------------------------------------- Private
-    // ---------------------------------------------------------- Inner classes
-    /**
-     * This class implements the <code>Comparator</code> interface
-     * for comparing Options.
-     */
-    private static class OptionComparator implements Comparator
-    {
-
-        /**
-         * Compares its two arguments for order. Returns a negative
-         * integer, zero, or a positive integer as the first argument
-         * is less than, equal to, or greater than the second.
-         *
-         * @param o1 The first Option to be compared.
-         * @param o2 The second Option to be compared.
-         * @return a negative integer, zero, or a positive integer as
-         *         the first argument is less than, equal to, or greater than the
-         *         second.
-         */
-        public int compare(Object o1, Object o2)
-        {
-            Option opt1 = (Option) o1;
-            Option opt2 = (Option) o2;
-
-            return opt1.getKey().compareToIgnoreCase(opt2.getKey());
-        }
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingArgumentException.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingArgumentException.java
deleted file mode 100644
index 5c80081..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingArgumentException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Thrown when an option requiring an argument
- * is not provided with an argument.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class MissingArgumentException extends ParseException
-{
-    /** The option requiring additional arguments */
-    private Option option;
-
-    /**
-     * Construct a new <code>MissingArgumentException</code>
-     * with the specified detail message.
-     *
-     * @param message the detail message
-     */
-    public MissingArgumentException(String message)
-    {
-        super(message);
-    }
-
-    /**
-     * Construct a new <code>MissingArgumentException</code>
-     * with the specified detail message.
-     *
-     * @param option the option requiring an argument
-     * @since 1.2
-     */
-    public MissingArgumentException(Option option)
-    {
-        this("Missing argument for option: " + option.getKey());
-        this.option = option;
-    }
-
-    /**
-     * Return the option requiring an argument that wasn't provided
-     * on the command line.
-     *
-     * @return the related option
-     * @since 1.2
-     */
-    public Option getOption()
-    {
-        return option;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingOptionException.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingOptionException.java
deleted file mode 100644
index 0341d55..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/MissingOptionException.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.util.List;
-import java.util.Iterator;
-
-/**
- * Thrown when a required option has not been provided.
- *
- * @author John Keyes ( john at integralsource.com )
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class MissingOptionException extends ParseException
-{
-    /** The list of missing options */
-    private List missingOptions;
-
-    /**
-     * Construct a new <code>MissingSelectedException</code>
-     * with the specified detail message.
-     *
-     * @param message the detail message
-     */
-    public MissingOptionException(String message)
-    {
-        super(message);
-    }
-
-    /**
-     * Constructs a new <code>MissingSelectedException</code> with the
-     * specified list of missing options.
-     *
-     * @param missingOptions the list of missing options
-     * @since 1.2
-     */
-    public MissingOptionException(List missingOptions)
-    {
-        this(createMessage(missingOptions));
-        this.missingOptions = missingOptions;
-    }
-
-    /**
-     * Return the list of options (as strings) missing in the command line parsed.
-     *
-     * @return the missing options
-     * @since 1.2
-     */
-    public List getMissingOptions()
-    {
-        return missingOptions;
-    }
-
-    /**
-     * Build the exception message from the specified list of options.
-     *
-     * @param missingOptions
-     * @since 1.2
-     */
-    private static String createMessage(List missingOptions)
-    {
-        StringBuffer buff = new StringBuffer("Missing required option");
-        buff.append(missingOptions.size() == 1 ? "" : "s");
-        buff.append(": ");
-
-        Iterator it = missingOptions.iterator();
-        while (it.hasNext())
-        {
-            buff.append(it.next());
-            if (it.hasNext())
-            {
-                buff.append(", ");
-            }
-        }
-
-        return buff.toString();
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Option.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Option.java
deleted file mode 100644
index acf66e3..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Option.java
+++ /dev/null
@@ -1,675 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-/** <p>Describes a single command-line option.  It maintains
- * information regarding the short-name of the option, the long-name,
- * if any exists, a flag indicating if an argument is required for
- * this option, and a self-documenting description of the option.</p>
- *
- * <p>An Option is not created independantly, but is create through
- * an instance of {@link Options}.<p>
- *
- * @see org.apache.commons.cli.Options
- * @see org.apache.commons.cli.CommandLine
- *
- * @author bob mcwhirter (bob @ werken.com)
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class Option implements Cloneable, Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** constant that specifies the number of argument values has not been specified */
-    public static final int UNINITIALIZED = -1;
-
-    /** constant that specifies the number of argument values is infinite */
-    public static final int UNLIMITED_VALUES = -2;
-
-    /** the name of the option */
-    private String opt;
-
-    /** the long representation of the option */
-    private String longOpt;
-
-    /** the name of the argument for this option */
-    private String argName = "arg";
-
-    /** description of the option */
-    private String description;
-
-    /** specifies whether this option is required to be present */
-    private boolean required;
-
-    /** specifies whether the argument value of this Option is optional */
-    private boolean optionalArg;
-
-    /** the number of argument values this option can have */
-    private int numberOfArgs = UNINITIALIZED;
-
-    /** the type of this Option */
-    private Object type;
-
-    /** the list of argument values **/
-    private List values = new ArrayList();
-
-    /** the character that is the value separator */
-    private char valuesep;
-
-    /**
-     * Creates an Option using the specified parameters.
-     *
-     * @param opt short representation of the option
-     * @param description describes the function of the option
-     *
-     * @throws IllegalArgumentException if there are any non valid
-     * Option characters in <code>opt</code>.
-     */
-    public Option(String opt, String description) throws IllegalArgumentException
-    {
-        this(opt, null, false, description);
-    }
-
-    /**
-     * Creates an Option using the specified parameters.
-     *
-     * @param opt short representation of the option
-     * @param hasArg specifies whether the Option takes an argument or not
-     * @param description describes the function of the option
-     *
-     * @throws IllegalArgumentException if there are any non valid
-     * Option characters in <code>opt</code>.
-     */
-    public Option(String opt, boolean hasArg, String description) throws IllegalArgumentException
-    {
-        this(opt, null, hasArg, description);
-    }
-
-    /**
-     * Creates an Option using the specified parameters.
-     *
-     * @param opt short representation of the option
-     * @param longOpt the long representation of the option
-     * @param hasArg specifies whether the Option takes an argument or not
-     * @param description describes the function of the option
-     *
-     * @throws IllegalArgumentException if there are any non valid
-     * Option characters in <code>opt</code>.
-     */
-    public Option(String opt, String longOpt, boolean hasArg, String description) throws IllegalArgumentException
-    {
-        // ensure that the option is valid
-        OptionValidator.validateOption(opt);
-
-        this.opt = opt;
-        this.longOpt = longOpt;
-
-        // if hasArg is set then the number of arguments is 1
-        if (hasArg)
-        {
-            this.numberOfArgs = 1;
-        }
-
-        this.description = description;
-    }
-
-    /**
-     * Returns the id of this Option.  This is only set when the
-     * Option shortOpt is a single character.  This is used for switch
-     * statements.
-     *
-     * @return the id of this Option
-     */
-    public int getId()
-    {
-        return getKey().charAt(0);
-    }
-
-    /**
-     * Returns the 'unique' Option identifier.
-     * 
-     * @return the 'unique' Option identifier
-     */
-    String getKey()
-    {
-        // if 'opt' is null, then it is a 'long' option
-        if (opt == null)
-        {
-            return longOpt;
-        }
-
-        return opt;
-    }
-
-    /** 
-     * Retrieve the name of this Option.
-     *
-     * It is this String which can be used with
-     * {@link CommandLine#hasOption(String opt)} and
-     * {@link CommandLine#getOptionValue(String opt)} to check
-     * for existence and argument.
-     *
-     * @return The name of this option
-     */
-    public String getOpt()
-    {
-        return opt;
-    }
-
-    /**
-     * Retrieve the type of this Option.
-     * 
-     * @return The type of this option
-     */
-    public Object getType()
-    {
-        return type;
-    }
-
-    /**
-     * Sets the type of this Option.
-     *
-     * @param type the type of this Option
-     */
-    public void setType(Object type)
-    {
-        this.type = type;
-    }
-
-    /** 
-     * Retrieve the long name of this Option.
-     *
-     * @return Long name of this option, or null, if there is no long name
-     */
-    public String getLongOpt()
-    {
-        return longOpt;
-    }
-
-    /**
-     * Sets the long name of this Option.
-     *
-     * @param longOpt the long name of this Option
-     */
-    public void setLongOpt(String longOpt)
-    {
-        this.longOpt = longOpt;
-    }
-
-    /**
-     * Sets whether this Option can have an optional argument.
-     *
-     * @param optionalArg specifies whether the Option can have
-     * an optional argument.
-     */
-    public void setOptionalArg(boolean optionalArg)
-    {
-        this.optionalArg = optionalArg;
-    }
-
-    /**
-     * @return whether this Option can have an optional argument
-     */
-    public boolean hasOptionalArg()
-    {
-        return optionalArg;
-    }
-
-    /** 
-     * Query to see if this Option has a long name
-     *
-     * @return boolean flag indicating existence of a long name
-     */
-    public boolean hasLongOpt()
-    {
-        return longOpt != null;
-    }
-
-    /** 
-     * Query to see if this Option requires an argument
-     *
-     * @return boolean flag indicating if an argument is required
-     */
-    public boolean hasArg()
-    {
-        return numberOfArgs > 0 || numberOfArgs == UNLIMITED_VALUES;
-    }
-
-    /** 
-     * Retrieve the self-documenting description of this Option
-     *
-     * @return The string description of this option
-     */
-    public String getDescription()
-    {
-        return description;
-    }
-
-    /**
-     * Sets the self-documenting description of this Option
-     *
-     * @param description The description of this option
-     * @since 1.1
-     */
-    public void setDescription(String description)
-    {
-        this.description = description;
-    }
-
-    /** 
-     * Query to see if this Option requires an argument
-     *
-     * @return boolean flag indicating if an argument is required
-     */
-    public boolean isRequired()
-    {
-        return required;
-    }
-
-    /**
-     * Sets whether this Option is mandatory.
-     *
-     * @param required specifies whether this Option is mandatory
-     */
-    public void setRequired(boolean required)
-    {
-        this.required = required;
-    }
-
-    /**
-     * Sets the display name for the argument value.
-     *
-     * @param argName the display name for the argument value.
-     */
-    public void setArgName(String argName)
-    {
-        this.argName = argName;
-    }
-
-    /**
-     * Gets the display name for the argument value.
-     *
-     * @return the display name for the argument value.
-     */
-    public String getArgName()
-    {
-        return argName;
-    }
-
-    /**
-     * Returns whether the display name for the argument value
-     * has been set.
-     *
-     * @return if the display name for the argument value has been
-     * set.
-     */
-    public boolean hasArgName()
-    {
-        return argName != null && argName.length() > 0;
-    }
-
-    /** 
-     * Query to see if this Option can take many values.
-     *
-     * @return boolean flag indicating if multiple values are allowed
-     */
-    public boolean hasArgs()
-    {
-        return numberOfArgs > 1 || numberOfArgs == UNLIMITED_VALUES;
-    }
-
-    /** 
-     * Sets the number of argument values this Option can take.
-     *
-     * @param num the number of argument values
-     */
-    public void setArgs(int num)
-    {
-        this.numberOfArgs = num;
-    }
-
-    /**
-     * Sets the value separator.  For example if the argument value
-     * was a Java property, the value separator would be '='.
-     *
-     * @param sep The value separator.
-     */
-    public void setValueSeparator(char sep)
-    {
-        this.valuesep = sep;
-    }
-
-    /**
-     * Returns the value separator character.
-     *
-     * @return the value separator character.
-     */
-    public char getValueSeparator()
-    {
-        return valuesep;
-    }
-
-    /**
-     * Return whether this Option has specified a value separator.
-     * 
-     * @return whether this Option has specified a value separator.
-     * @since 1.1
-     */
-    public boolean hasValueSeparator()
-    {
-        return valuesep > 0;
-    }
-
-    /** 
-     * Returns the number of argument values this Option can take.
-     *
-     * @return num the number of argument values
-     */
-    public int getArgs()
-    {
-        return numberOfArgs;
-    }
-
-    /**
-     * Adds the specified value to this Option.
-     * 
-     * @param value is a/the value of this Option
-     */
-    void addValueForProcessing(String value)
-    {
-        switch (numberOfArgs)
-        {
-            case UNINITIALIZED:
-                throw new RuntimeException("NO_ARGS_ALLOWED");
-
-            default:
-                processValue(value);
-        }
-    }
-
-    /**
-     * Processes the value.  If this Option has a value separator
-     * the value will have to be parsed into individual tokens.  When
-     * n-1 tokens have been processed and there are more value separators
-     * in the value, parsing is ceased and the remaining characters are
-     * added as a single token.
-     *
-     * @param value The String to be processed.
-     *
-     * @since 1.0.1
-     */
-    private void processValue(String value)
-    {
-        // this Option has a separator character
-        if (hasValueSeparator())
-        {
-            // get the separator character
-            char sep = getValueSeparator();
-
-            // store the index for the value separator
-            int index = value.indexOf(sep);
-
-            // while there are more value separators
-            while (index != -1)
-            {
-                // next value to be added 
-                if (values.size() == (numberOfArgs - 1))
-                {
-                    break;
-                }
-
-                // store
-                add(value.substring(0, index));
-
-                // parse
-                value = value.substring(index + 1);
-
-                // get new index
-                index = value.indexOf(sep);
-            }
-        }
-
-        // store the actual value or the last value that has been parsed
-        add(value);
-    }
-
-    /**
-     * Add the value to this Option.  If the number of arguments
-     * is greater than zero and there is enough space in the list then
-     * add the value.  Otherwise, throw a runtime exception.
-     *
-     * @param value The value to be added to this Option
-     *
-     * @since 1.0.1
-     */
-    private void add(String value)
-    {
-        if ((numberOfArgs > 0) && (values.size() > (numberOfArgs - 1)))
-        {
-            throw new RuntimeException("Cannot add value, list full.");
-        }
-
-        // store value
-        values.add(value);
-    }
-
-    /**
-     * Returns the specified value of this Option or 
-     * <code>null</code> if there is no value.
-     *
-     * @return the value/first value of this Option or 
-     * <code>null</code> if there is no value.
-     */
-    public String getValue()
-    {
-        return hasNoValues() ? null : (String) values.get(0);
-    }
-
-    /**
-     * Returns the specified value of this Option or 
-     * <code>null</code> if there is no value.
-     *
-     * @param index The index of the value to be returned.
-     *
-     * @return the specified value of this Option or 
-     * <code>null</code> if there is no value.
-     *
-     * @throws IndexOutOfBoundsException if index is less than 1
-     * or greater than the number of the values for this Option.
-     */
-    public String getValue(int index) throws IndexOutOfBoundsException
-    {
-        return hasNoValues() ? null : (String) values.get(index);
-    }
-
-    /**
-     * Returns the value/first value of this Option or the 
-     * <code>defaultValue</code> if there is no value.
-     *
-     * @param defaultValue The value to be returned if ther
-     * is no value.
-     *
-     * @return the value/first value of this Option or the 
-     * <code>defaultValue</code> if there are no values.
-     */
-    public String getValue(String defaultValue)
-    {
-        String value = getValue();
-
-        return (value != null) ? value : defaultValue;
-    }
-
-    /**
-     * Return the values of this Option as a String array 
-     * or null if there are no values
-     *
-     * @return the values of this Option as a String array 
-     * or null if there are no values
-     */
-    public String[] getValues()
-    {
-        return hasNoValues() ? null
-            : (String[]) values.toArray(new String[values.size()]);
-    }
-
-    /**
-     * @return the values of this Option as a List
-     * or null if there are no values
-     */
-    public List getValuesList()
-    {
-        return values;
-    }
-
-    /** 
-     * Dump state, suitable for debugging.
-     *
-     * @return Stringified form of this object
-     */
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer().append("[ option: ");
-
-        buf.append(opt);
-
-        if (longOpt != null)
-        {
-            buf.append(" ").append(longOpt);
-        }
-
-        buf.append(" ");
-
-        if (hasArgs())
-        {
-            buf.append("[ARG...]");
-        }
-        else if (hasArg())
-        {
-            buf.append(" [ARG]");
-        }
-
-        buf.append(" :: ").append(description);
-
-        if (type != null)
-        {
-            buf.append(" :: ").append(type);
-        }
-
-        buf.append(" ]");
-
-        return buf.toString();
-    }
-
-    /**
-     * Returns whether this Option has any values.
-     *
-     * @return whether this Option has any values.
-     */
-    private boolean hasNoValues()
-    {
-        return values.isEmpty();
-    }
-
-    public boolean equals(Object o)
-    {
-        if (this == o)
-        {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass())
-        {
-            return false;
-        }
-
-        Option option = (Option) o;
-
-        if (opt != null ? !opt.equals(option.opt) : option.opt != null)
-        {
-            return false;
-        }
-        if (longOpt != null ? !longOpt.equals(option.longOpt) : option.longOpt != null)
-        {
-            return false;
-        }
-
-        return true;
-    }
-
-    public int hashCode()
-    {
-        int result;
-        result = (opt != null ? opt.hashCode() : 0);
-        result = 31 * result + (longOpt != null ? longOpt.hashCode() : 0);
-        return result;
-    }
-
-    /**
-     * A rather odd clone method - due to incorrect code in 1.0 it is public 
-     * and in 1.1 rather than throwing a CloneNotSupportedException it throws 
-     * a RuntimeException so as to maintain backwards compat at the API level. 
-     *
-     * After calling this method, it is very likely you will want to call 
-     * clearValues(). 
-     *
-     * @throws RuntimeException
-     */
-    public Object clone()
-    {
-        try
-        {
-            Option option = (Option) super.clone();
-            option.values = new ArrayList(values);
-            return option;
-        }
-        catch (CloneNotSupportedException cnse)
-        {
-            throw new RuntimeException("A CloneNotSupportedException was thrown: "
-                + cnse.getMessage());
-        }
-    }
-
-    /**
-     * Clear the Option values. After a parse is complete, these are left with
-     * data in them and they need clearing if another parse is done.
-     *
-     * See: <a href="https://issues.apache.org/jira/browse/CLI-71">CLI-71</a>
-     */
-    void clearValues()
-    {
-        values.clear();
-    }
-
-    /**
-     * This method is not intended to be used. It was a piece of internal 
-     * API that was made public in 1.0. It currently throws an UnsupportedOperationException. 
-     * @deprecated
-     * @throws UnsupportedOperationException
-     */
-    public boolean addValue(String value)
-    {
-        throw new UnsupportedOperationException(
-            "The addValue method is not intended for client use. "
-                + "Subclasses should use the addValueForProcessing method instead. ");
-    }
-
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionBuilder.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionBuilder.java
deleted file mode 100644
index 2deef51..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionBuilder.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * OptionBuilder allows the user to create Options using descriptive methods.
- *
- * <p>Details on the Builder pattern can be found at
- * <a href="http://c2.com/cgi-bin/wiki?BuilderPattern">
- * http://c2.com/cgi-bin/wiki?BuilderPattern</a>.</p>
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 754830 $, $Date: 2009-03-16 00:26:44 -0700 (Mon, 16 Mar 2009) $
- * @since 1.0
- */
-public final class OptionBuilder
-{
-    /** long option */
-    private static String longopt;
-
-    /** option description */
-    private static String description;
-
-    /** argument name */
-    private static String argName;
-
-    /** is required? */
-    private static boolean required;
-
-    /** the number of arguments */
-    private static int numberOfArgs = Option.UNINITIALIZED;
-
-    /** option type */
-    private static Object type;
-
-    /** option can have an optional argument value */
-    private static boolean optionalArg;
-
-    /** value separator for argument value */
-    private static char valuesep;
-
-    /** option builder instance */
-    private static OptionBuilder instance = new OptionBuilder();
-
-    /**
-     * private constructor to prevent instances being created
-     */
-    private OptionBuilder()
-    {
-        // hide the constructor
-    }
-
-    /**
-     * Resets the member variables to their default values.
-     */
-    private static void reset()
-    {
-        description = null;
-        argName = "arg";
-        longopt = null;
-        type = null;
-        required = false;
-        numberOfArgs = Option.UNINITIALIZED;
-
-        // PMM 9/6/02 - these were missing
-        optionalArg = false;
-        valuesep = (char) 0;
-    }
-
-    /**
-     * The next Option created will have the following long option value.
-     *
-     * @param newLongopt the long option value
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withLongOpt(String newLongopt)
-    {
-        OptionBuilder.longopt = newLongopt;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will require an argument value.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasArg()
-    {
-        OptionBuilder.numberOfArgs = 1;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will require an argument value if
-     * <code>hasArg</code> is true.
-     *
-     * @param hasArg if true then the Option has an argument value
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasArg(boolean hasArg)
-    {
-        OptionBuilder.numberOfArgs = hasArg ? 1 : Option.UNINITIALIZED;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will have the specified argument value name.
-     *
-     * @param name the name for the argument value
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withArgName(String name)
-    {
-        OptionBuilder.argName = name;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will be required.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder isRequired()
-    {
-        OptionBuilder.required = true;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created uses <code>sep</code> as a means to
-     * separate argument values.
-     *
-     * <b>Example:</b>
-     * <pre>
-     * Option opt = OptionBuilder.withValueSeparator(':')
-     *                           .create('D');
-     *
-     * CommandLine line = parser.parse(args);
-     * String propertyName = opt.getValue(0);
-     * String propertyValue = opt.getValue(1);
-     * </pre>
-     *
-     * @param sep The value separator to be used for the argument values.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withValueSeparator(char sep)
-    {
-        OptionBuilder.valuesep = sep;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created uses '<code>=</code>' as a means to
-     * separate argument values.
-     *
-     * <b>Example:</b>
-     * <pre>
-     * Option opt = OptionBuilder.withValueSeparator()
-     *                           .create('D');
-     *
-     * CommandLine line = parser.parse(args);
-     * String propertyName = opt.getValue(0);
-     * String propertyValue = opt.getValue(1);
-     * </pre>
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withValueSeparator()
-    {
-        OptionBuilder.valuesep = '=';
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will be required if <code>required</code>
-     * is true.
-     *
-     * @param newRequired if true then the Option is required
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder isRequired(boolean newRequired)
-    {
-        OptionBuilder.required = newRequired;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created can have unlimited argument values.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasArgs()
-    {
-        OptionBuilder.numberOfArgs = Option.UNLIMITED_VALUES;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created can have <code>num</code> argument values.
-     *
-     * @param num the number of args that the option can have
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasArgs(int num)
-    {
-        OptionBuilder.numberOfArgs = num;
-
-        return instance;
-    }
-
-    /**
-     * The next Option can have an optional argument.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasOptionalArg()
-    {
-        OptionBuilder.numberOfArgs = 1;
-        OptionBuilder.optionalArg = true;
-
-        return instance;
-    }
-
-    /**
-     * The next Option can have an unlimited number of optional arguments.
-     *
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasOptionalArgs()
-    {
-        OptionBuilder.numberOfArgs = Option.UNLIMITED_VALUES;
-        OptionBuilder.optionalArg = true;
-
-        return instance;
-    }
-
-    /**
-     * The next Option can have the specified number of optional arguments.
-     *
-     * @param numArgs - the maximum number of optional arguments
-     * the next Option created can have.
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder hasOptionalArgs(int numArgs)
-    {
-        OptionBuilder.numberOfArgs = numArgs;
-        OptionBuilder.optionalArg = true;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will have a value that will be an instance
-     * of <code>type</code>.
-     *
-     * @param newType the type of the Options argument value
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withType(Object newType)
-    {
-        OptionBuilder.type = newType;
-
-        return instance;
-    }
-
-    /**
-     * The next Option created will have the specified description
-     *
-     * @param newDescription a description of the Option's purpose
-     * @return the OptionBuilder instance
-     */
-    public static OptionBuilder withDescription(String newDescription)
-    {
-        OptionBuilder.description = newDescription;
-
-        return instance;
-    }
-
-    /**
-     * Create an Option using the current settings and with
-     * the specified Option <code>char</code>.
-     *
-     * @param opt the character representation of the Option
-     * @return the Option instance
-     * @throws IllegalArgumentException if <code>opt</code> is not
-     * a valid character.  See Option.
-     */
-    public static Option create(char opt) throws IllegalArgumentException
-    {
-        return create(String.valueOf(opt));
-    }
-
-    /**
-     * Create an Option using the current settings
-     *
-     * @return the Option instance
-     * @throws IllegalArgumentException if <code>longOpt</code> has not been set.
-     */
-    public static Option create() throws IllegalArgumentException
-    {
-        if (longopt == null)
-        {
-            OptionBuilder.reset();
-            throw new IllegalArgumentException("must specify longopt");
-        }
-
-        return create(null);
-    }
-
-    /**
-     * Create an Option using the current settings and with
-     * the specified Option <code>char</code>.
-     *
-     * @param opt the <code>java.lang.String</code> representation
-     * of the Option
-     * @return the Option instance
-     * @throws IllegalArgumentException if <code>opt</code> is not
-     * a valid character.  See Option.
-     */
-    public static Option create(String opt) throws IllegalArgumentException
-    {
-        Option option = null;
-        try
-        {
-            // create the option
-            option = new Option(opt, description);
-
-            // set the option properties
-            option.setLongOpt(longopt);
-            option.setRequired(required);
-            option.setOptionalArg(optionalArg);
-            option.setArgs(numberOfArgs);
-            option.setType(type);
-            option.setValueSeparator(valuesep);
-            option.setArgName(argName);
-        }
-        finally
-        {
-            // reset the OptionBuilder properties
-            OptionBuilder.reset();
-        }
-
-        // return the Option instance
-        return option;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionGroup.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionGroup.java
deleted file mode 100644
index e9deeb2..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionGroup.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A group of mutually exclusive options.
- *
- * @author John Keyes ( john at integralsource.com )
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class OptionGroup implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** hold the options */
-    private Map optionMap = new HashMap();
-
-    /** the name of the selected option */
-    private String selected;
-
-    /** specified whether this group is required */
-    private boolean required;
-
-    /**
-     * Add the specified <code>Option</code> to this group.
-     *
-     * @param option the option to add to this group
-     * @return this option group with the option added
-     */
-    public OptionGroup addOption(Option option)
-    {
-        // key   - option name
-        // value - the option
-        optionMap.put(option.getKey(), option);
-
-        return this;
-    }
-
-    /**
-     * @return the names of the options in this group as a 
-     * <code>Collection</code>
-     */
-    public Collection getNames()
-    {
-        // the key set is the collection of names
-        return optionMap.keySet();
-    }
-
-    /**
-     * @return the options in this group as a <code>Collection</code>
-     */
-    public Collection getOptions()
-    {
-        // the values are the collection of options
-        return optionMap.values();
-    }
-
-    /**
-     * Set the selected option of this group to <code>name</code>.
-     *
-     * @param option the option that is selected
-     * @throws AlreadySelectedException if an option from this group has 
-     * already been selected.
-     */
-    public void setSelected(Option option) throws AlreadySelectedException
-    {
-        // if no option has already been selected or the 
-        // same option is being reselected then set the
-        // selected member variable
-        if (selected == null || selected.equals(option.getOpt()))
-        {
-            selected = option.getOpt();
-        }
-        else
-        {
-            throw new AlreadySelectedException(this, option);
-        }
-    }
-
-    /**
-     * @return the selected option name
-     */
-    public String getSelected()
-    {
-        return selected;
-    }
-
-    /**
-     * @param required specifies if this group is required
-     */
-    public void setRequired(boolean required)
-    {
-        this.required = required;
-    }
-
-    /**
-     * Returns whether this option group is required.
-     *
-     * @return whether this option group is required
-     */
-    public boolean isRequired()
-    {
-        return required;
-    }
-
-    /**
-     * Returns the stringified version of this OptionGroup.
-     * 
-     * @return the stringified representation of this group
-     */
-    public String toString()
-    {
-        StringBuffer buff = new StringBuffer();
-
-        Iterator iter = getOptions().iterator();
-
-        buff.append("[");
-
-        while (iter.hasNext())
-        {
-            Option option = (Option) iter.next();
-
-            if (option.getOpt() != null)
-            {
-                buff.append("-");
-                buff.append(option.getOpt());
-            }
-            else
-            {
-                buff.append("--");
-                buff.append(option.getLongOpt());
-            }
-
-            buff.append(" ");
-            buff.append(option.getDescription());
-
-            if (iter.hasNext())
-            {
-                buff.append(", ");
-            }
-        }
-
-        buff.append("]");
-
-        return buff.toString();
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionValidator.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionValidator.java
deleted file mode 100644
index e051a95..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/OptionValidator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Validates an Option string.
- *
- * @author John Keyes ( john at integralsource.com )
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- * @since 1.1
- */
-class OptionValidator
-{
-    /**
-     * Validates whether <code>opt</code> is a permissable Option
-     * shortOpt.  The rules that specify if the <code>opt</code>
-     * is valid are:
-     *
-     * <ul>
-     *  <li><code>opt</code> is not NULL</li>
-     *  <li>a single character <code>opt</code> that is either
-     *  ' '(special case), '?', '@' or a letter</li>
-     *  <li>a multi character <code>opt</code> that only contains
-     *  letters.</li>
-     * </ul>
-     *
-     * @param opt The option string to validate
-     * @throws IllegalArgumentException if the Option is not valid.
-     */
-    static void validateOption(String opt) throws IllegalArgumentException
-    {
-        // check that opt is not NULL
-        if (opt == null)
-        {
-            return;
-        }
-
-        // handle the single character opt
-        else if (opt.length() == 1)
-        {
-            char ch = opt.charAt(0);
-
-            if (!isValidOpt(ch))
-            {
-                throw new IllegalArgumentException("illegal option value '" + ch + "'");
-            }
-        }
-
-        // handle the multi character opt
-        else
-        {
-            char[] chars = opt.toCharArray();
-
-            for (int i = 0; i < chars.length; i++)
-            {
-                if (!isValidChar(chars[i]))
-                {
-                    throw new IllegalArgumentException(
-                        "opt contains illegal character value '" + chars[i] + "'");
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns whether the specified character is a valid Option.
-     *
-     * @param c the option to validate
-     * @return true if <code>c</code> is a letter, ' ', '?' or '@',
-     *         otherwise false.
-     */
-    private static boolean isValidOpt(char c)
-    {
-        return isValidChar(c) || c == ' ' || c == '?' || c == '@';
-    }
-
-    /**
-     * Returns whether the specified character is a valid character.
-     *
-     * @param c the character to validate
-     * @return true if <code>c</code> is a letter.
-     */
-    private static boolean isValidChar(char c)
-    {
-        return Character.isJavaIdentifierPart(c);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Options.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Options.java
deleted file mode 100644
index 67f667e..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Options.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>Main entry-point into the library.</p>
- *
- * <p>Options represents a collection of {@link Option} objects, which
- * describe the possible options for a command-line.<p>
- *
- * <p>It may flexibly parse long and short options, with or without
- * values.  Additionally, it may parse only a portion of a commandline,
- * allowing for flexible multi-stage parsing.<p>
- *
- * @see org.apache.commons.cli.CommandLine
- *
- * @author bob mcwhirter (bob @ werken.com)
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class Options implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** a map of the options with the character key */
-    private Map shortOpts = new HashMap();
-
-    /** a map of the options with the long key */
-    private Map longOpts = new HashMap();
-
-    /** a map of the required options */
-    private List requiredOpts = new ArrayList();
-
-    /** a map of the option groups */
-    private Map optionGroups = new HashMap();
-
-    /**
-     * Add the specified option group.
-     *
-     * @param group the OptionGroup that is to be added
-     * @return the resulting Options instance
-     */
-    public Options addOptionGroup(OptionGroup group)
-    {
-        Iterator options = group.getOptions().iterator();
-
-        if (group.isRequired())
-        {
-            requiredOpts.add(group);
-        }
-
-        while (options.hasNext())
-        {
-            Option option = (Option) options.next();
-
-            // an Option cannot be required if it is in an
-            // OptionGroup, either the group is required or
-            // nothing is required
-            option.setRequired(false);
-            addOption(option);
-
-            optionGroups.put(option.getKey(), group);
-        }
-
-        return this;
-    }
-
-    /**
-     * Lists the OptionGroups that are members of this Options instance.
-     *
-     * @return a Collection of OptionGroup instances.
-     */
-    Collection getOptionGroups()
-    {
-        return new HashSet(optionGroups.values());
-    }
-
-    /**
-     * Add an option that only contains a short-name.
-     * It may be specified as requiring an argument.
-     *
-     * @param opt Short single-character name of the option.
-     * @param hasArg flag signally if an argument is required after this option
-     * @param description Self-documenting description
-     * @return the resulting Options instance
-     */
-    public Options addOption(String opt, boolean hasArg, String description)
-    {
-        addOption(opt, null, hasArg, description);
-
-        return this;
-    }
-
-    /**
-     * Add an option that contains a short-name and a long-name.
-     * It may be specified as requiring an argument.
-     *
-     * @param opt Short single-character name of the option.
-     * @param longOpt Long multi-character name of the option.
-     * @param hasArg flag signally if an argument is required after this option
-     * @param description Self-documenting description
-     * @return the resulting Options instance
-     */
-    public Options addOption(String opt, String longOpt, boolean hasArg,
-        String description)
-    {
-        addOption(new Option(opt, longOpt, hasArg, description));
-
-        return this;
-    }
-
-    /**
-     * Adds an option instance
-     *
-     * @param opt the option that is to be added
-     * @return the resulting Options instance
-     */
-    public Options addOption(Option opt)
-    {
-        String key = opt.getKey();
-
-        // add it to the long option list
-        if (opt.hasLongOpt())
-        {
-            longOpts.put(opt.getLongOpt(), opt);
-        }
-
-        // if the option is required add it to the required list
-        if (opt.isRequired())
-        {
-            if (requiredOpts.contains(key))
-            {
-                requiredOpts.remove(requiredOpts.indexOf(key));
-            }
-            requiredOpts.add(key);
-        }
-
-        shortOpts.put(key, opt);
-
-        return this;
-    }
-
-    /**
-     * Retrieve a read-only list of options in this set
-     *
-     * @return read-only Collection of {@link Option} objects in this descriptor
-     */
-    public Collection getOptions()
-    {
-        return Collections.unmodifiableCollection(helpOptions());
-    }
-
-    /**
-     * Returns the Options for use by the HelpFormatter.
-     *
-     * @return the List of Options
-     */
-    List helpOptions()
-    {
-        return new ArrayList(shortOpts.values());
-    }
-
-    /**
-     * Returns the required options.
-     *
-     * @return List of required options
-     */
-    public List getRequiredOptions()
-    {
-        return requiredOpts;
-    }
-
-    /**
-     * Retrieve the {@link Option} matching the long or short name specified.
-     * The leading hyphens in the name are ignored (up to 2).
-     *
-     * @param opt short or long name of the {@link Option}
-     * @return the option represented by opt
-     */
-    public Option getOption(String opt)
-    {
-        opt = Util.stripLeadingHyphens(opt);
-
-        if (shortOpts.containsKey(opt))
-        {
-            return (Option) shortOpts.get(opt);
-        }
-
-        return (Option) longOpts.get(opt);
-    }
-
-    /**
-     * Returns whether the named {@link Option} is a member of this {@link Options}.
-     *
-     * @param opt short or long name of the {@link Option}
-     * @return true if the named {@link Option} is a member
-     * of this {@link Options}
-     */
-    public boolean hasOption(String opt)
-    {
-        opt = Util.stripLeadingHyphens(opt);
-
-        return shortOpts.containsKey(opt) || longOpts.containsKey(opt);
-    }
-
-    /**
-     * Returns the OptionGroup the <code>opt</code> belongs to.
-     * @param opt the option whose OptionGroup is being queried.
-     *
-     * @return the OptionGroup if <code>opt</code> is part
-     * of an OptionGroup, otherwise return null
-     */
-    public OptionGroup getOptionGroup(Option opt)
-    {
-        return (OptionGroup) optionGroups.get(opt.getKey());
-    }
-
-    /**
-     * Dump state, suitable for debugging.
-     *
-     * @return Stringified form of this object
-     */
-    public String toString()
-    {
-        StringBuffer buf = new StringBuffer();
-
-        buf.append("[ Options: [ short ");
-        buf.append(shortOpts.toString());
-        buf.append(" ] [ long ");
-        buf.append(longOpts);
-        buf.append(" ]");
-
-        return buf.toString();
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/ParseException.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/ParseException.java
deleted file mode 100644
index 94620e2..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/ParseException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Base for Exceptions thrown during parsing of a command-line.
- *
- * @author bob mcwhirter (bob @ werken.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class ParseException extends Exception
-{
-    /**
-     * Construct a new <code>ParseException</code>
-     * with the specified detail message.
-     *
-     * @param message the detail message
-     */
-    public ParseException(String message)
-    {
-        super(message);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Parser.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Parser.java
deleted file mode 100644
index bca2633..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Parser.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Properties;
-
-/**
- * <code>Parser</code> creates {@link CommandLine}s.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public abstract class Parser implements CommandLineParser
-{
-    /** commandline instance */
-    protected CommandLine cmd;
-
-    /** current Options */
-    private Options options;
-
-    /** list of required options strings */
-    private List requiredOptions;
-
-    protected void setOptions(final Options options)
-    {
-        this.options = options;
-        this.requiredOptions = new ArrayList(options.getRequiredOptions());
-    }
-
-    protected Options getOptions()
-    {
-        return options;
-    }
-
-    protected List getRequiredOptions()
-    {
-        return requiredOptions;
-    }
-
-    /**
-     * Subclasses must implement this method to reduce
-     * the <code>arguments</code> that have been passed to the parse method.
-     *
-     * @param opts The Options to parse the arguments by.
-     * @param arguments The arguments that have to be flattened.
-     * @param stopAtNonOption specifies whether to stop
-     * flattening when a non option has been encountered
-     * @return a String array of the flattened arguments
-     */
-    protected abstract String[] flatten(Options opts, String[] arguments,
-        boolean stopAtNonOption);
-
-    /**
-     * Parses the specified <code>arguments</code> based
-     * on the specifed {@link Options}.
-     *
-     * @param options the <code>Options</code>
-     * @param arguments the <code>arguments</code>
-     * @return the <code>CommandLine</code>
-     * @throws ParseException if an error occurs when parsing the
-     * arguments.
-     */
-    public CommandLine parse(Options options, String[] arguments) throws ParseException
-    {
-        return parse(options, arguments, null, false);
-    }
-
-    /**
-     * Parse the arguments according to the specified options and properties.
-     *
-     * @param options    the specified Options
-     * @param arguments  the command line arguments
-     * @param properties command line option name-value pairs
-     * @return the list of atomic option and value tokens
-     * @throws ParseException if there are any problems encountered
-     *                        while parsing the command line tokens.
-     *
-     * @since 1.1
-     */
-    public CommandLine parse(Options options, String[] arguments, Properties properties)
-        throws ParseException
-    {
-        return parse(options, arguments, properties, false);
-    }
-
-    /**
-     * Parses the specified <code>arguments</code>
-     * based on the specifed {@link Options}.
-     *
-     * @param options         the <code>Options</code>
-     * @param arguments       the <code>arguments</code>
-     * @param stopAtNonOption specifies whether to stop interpreting the
-     *                        arguments when a non option has been encountered
-     *                        and to add them to the CommandLines args list.
-     * @return the <code>CommandLine</code>
-     * @throws ParseException if an error occurs when parsing the arguments.
-     */
-    public CommandLine parse(Options options, String[] arguments, boolean stopAtNonOption)
-        throws ParseException
-    {
-        return parse(options, arguments, null, stopAtNonOption);
-    }
-
-    /**
-     * Parse the arguments according to the specified options and
-     * properties.
-     *
-     * @param options the specified Options
-     * @param arguments the command line arguments
-     * @param properties command line option name-value pairs
-     * @param stopAtNonOption stop parsing the arguments when the first
-     * non option is encountered.
-     *
-     * @return the list of atomic option and value tokens
-     *
-     * @throws ParseException if there are any problems encountered
-     * while parsing the command line tokens.
-     *
-     * @since 1.1
-     */
-    public CommandLine parse(Options options, String[] arguments, Properties properties,
-        boolean stopAtNonOption) throws ParseException
-    {
-        // clear out the data in options in case it's been used before (CLI-71)
-        for (Iterator it = options.helpOptions().iterator(); it.hasNext();)
-        {
-            Option opt = (Option) it.next();
-            opt.clearValues();
-        }
-
-        // initialise members
-        setOptions(options);
-
-        cmd = new CommandLine();
-
-        boolean eatTheRest = false;
-
-        if (arguments == null)
-        {
-            arguments = new String[0];
-        }
-
-        List tokenList = Arrays.asList(flatten(getOptions(), arguments, stopAtNonOption));
-
-        ListIterator iterator = tokenList.listIterator();
-
-        // process each flattened token
-        while (iterator.hasNext())
-        {
-            String t = (String) iterator.next();
-
-            // the value is the double-dash
-            if ("--".equals(t))
-            {
-                eatTheRest = true;
-            }
-
-            // the value is a single dash
-            else if ("-".equals(t))
-            {
-                if (stopAtNonOption)
-                {
-                    eatTheRest = true;
-                }
-                else
-                {
-                    cmd.addArg(t);
-                }
-            }
-
-            // the value is an option
-            else if (t.startsWith("-"))
-            {
-                if (stopAtNonOption && !getOptions().hasOption(t))
-                {
-                    eatTheRest = true;
-                    cmd.addArg(t);
-                }
-                else
-                {
-                    processOption(t, iterator);
-                }
-            }
-
-            // the value is an argument
-            else
-            {
-                cmd.addArg(t);
-
-                if (stopAtNonOption)
-                {
-                    eatTheRest = true;
-                }
-            }
-
-            // eat the remaining tokens
-            if (eatTheRest)
-            {
-                while (iterator.hasNext())
-                {
-                    String str = (String) iterator.next();
-
-                    // ensure only one double-dash is added
-                    if (!"--".equals(str))
-                    {
-                        cmd.addArg(str);
-                    }
-                }
-            }
-        }
-
-        processProperties(properties);
-        checkRequiredOptions();
-
-        return cmd;
-    }
-
-    /**
-     * Sets the values of Options using the values in <code>properties</code>.
-     *
-     * @param properties The value properties to be processed.
-     */
-    protected void processProperties(Properties properties)
-    {
-        if (properties == null)
-        {
-            return;
-        }
-
-        for (Enumeration e = properties.propertyNames(); e.hasMoreElements();)
-        {
-            String option = e.nextElement().toString();
-
-            if (!cmd.hasOption(option))
-            {
-                Option opt = getOptions().getOption(option);
-
-                // get the value from the properties instance
-                String value = properties.getProperty(option);
-
-                if (opt.hasArg())
-                {
-                    if (opt.getValues() == null || opt.getValues().length == 0)
-                    {
-                        try
-                        {
-                            opt.addValueForProcessing(value);
-                        }
-                        catch (RuntimeException exp)
-                        {
-                            // if we cannot add the value don't worry about it
-                        }
-                    }
-                }
-                else if (!("yes".equalsIgnoreCase(value)
-                    || "true".equalsIgnoreCase(value) || "1".equalsIgnoreCase(value)))
-                {
-                    // if the value is not yes, true or 1 then don't add the
-                    // option to the CommandLine
-                    break;
-                }
-
-                cmd.addOption(opt);
-            }
-        }
-    }
-
-    /**
-     * Throws a {@link MissingOptionException} if all of the required options
-     * are not present.
-     *
-     * @throws MissingOptionException if any of the required Options
-     * are not present.
-     */
-    protected void checkRequiredOptions() throws MissingOptionException
-    {
-        // if there are required options that have not been processsed
-        if (!getRequiredOptions().isEmpty())
-        {
-            throw new MissingOptionException(getRequiredOptions());
-        }
-    }
-
-    /**
-     * <p>Process the argument values for the specified Option
-     * <code>opt</code> using the values retrieved from the
-     * specified iterator <code>iter</code>.
-     *
-     * @param opt The current Option
-     * @param iter The iterator over the flattened command line
-     * Options.
-     *
-     * @throws ParseException if an argument value is required
-     * and it is has not been found.
-     */
-    public void processArgs(Option opt, ListIterator iter) throws ParseException
-    {
-        // loop until an option is found
-        while (iter.hasNext())
-        {
-            String str = (String) iter.next();
-
-            // found an Option, not an argument
-            if (getOptions().hasOption(str) && str.startsWith("-"))
-            {
-                iter.previous();
-                break;
-            }
-
-            // found a value
-            try
-            {
-                opt.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(str));
-            }
-            catch (RuntimeException exp)
-            {
-                iter.previous();
-                break;
-            }
-        }
-
-        if (opt.getValues() == null && !opt.hasOptionalArg())
-        {
-            throw new MissingArgumentException(opt);
-        }
-    }
-
-    /**
-     * Process the Option specified by <code>arg</code> using the values
-     * retrieved from the specfied iterator <code>iter</code>.
-     *
-     * @param arg The String value representing an Option
-     * @param iter The iterator over the flattened command line arguments.
-     *
-     * @throws ParseException if <code>arg</code> does not represent an Option
-     */
-    protected void processOption(String arg, ListIterator iter) throws ParseException
-    {
-        boolean hasOption = getOptions().hasOption(arg);
-
-        // if there is no option throw an UnrecognisedOptionException
-        if (!hasOption)
-        {
-            throw new UnrecognizedOptionException("Unrecognized option: " + arg, arg);
-        }
-
-        // get the option represented by arg
-        Option opt = (Option) getOptions().getOption(arg).clone();
-
-        // if the option is a required option remove the option from
-        // the requiredOptions list
-        if (opt.isRequired())
-        {
-            getRequiredOptions().remove(opt.getKey());
-        }
-
-        // if the option is in an OptionGroup make that option the selected
-        // option of the group
-        if (getOptions().getOptionGroup(opt) != null)
-        {
-            OptionGroup group = getOptions().getOptionGroup(opt);
-
-            if (group.isRequired())
-            {
-                getRequiredOptions().remove(group);
-            }
-
-            group.setSelected(opt);
-        }
-
-        // if the option takes an argument value
-        if (opt.hasArg())
-        {
-            processArgs(opt, iter);
-        }
-
-        // set the option on the command line
-        cmd.addOption(opt);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PatternOptionBuilder.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PatternOptionBuilder.java
deleted file mode 100644
index 596e6b3..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PatternOptionBuilder.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.net.URL;
-import java.util.Date;
-
-/**
- * <p>
- * Allows Options to be created from a single String.
- * The pattern contains various single character flags and via
- * an optional punctuation character, their expected type.
- * </p>
- *
- * <table border="1">
- * <tr><td>a</td><td>-a flag</td></tr>
- * <tr><td>b@</td><td>-b [classname]</td></tr>
- * <tr><td>c&gt;</td><td>-c [filename]</td></tr>
- * <tr><td>d+</td><td>-d [classname] (creates object via empty contructor)</td></tr>
- * <tr><td>e%</td><td>-e [number] (creates Double/Long instance depeding on existing of a '.')</td></tr>
- * <tr><td>f/</td><td>-f [url]</td></tr>
- * <tr><td>g:</td><td>-g [string]</td></tr>
- * </table>
- *
- * <p>
- * For example, the following allows command line flags of '-v -p string-value -f /dir/file'.
- * The exclamation mark precede a mandatory option.
- * </p>
- * <code>Options options = PatternOptionBuilder.parsePattern("vp:!f/");</code>
- *
- * <p>
- * TODO These need to break out to OptionType and also
- * to be pluggable.
- * </p>
- *
- * @version $Revision: 734339 $, $Date: 2009-01-13 21:56:47 -0800 (Tue, 13 Jan 2009) $
- */
-public class PatternOptionBuilder
-{
-    /** String class */
-    public static final Class STRING_VALUE = String.class;
-
-    /** Object class */
-    public static final Class OBJECT_VALUE = Object.class;
-
-    /** Number class */
-    public static final Class NUMBER_VALUE = Number.class;
-
-    /** Date class */
-    public static final Class DATE_VALUE = Date.class;
-
-    /** Class class */
-    public static final Class CLASS_VALUE = Class.class;
-
-    /// can we do this one??
-    // is meant to check that the file exists, else it errors.
-    // ie) it's for reading not writing.
-
-    /** FileInputStream class */
-    public static final Class EXISTING_FILE_VALUE = FileInputStream.class;
-
-    /** File class */
-    public static final Class FILE_VALUE = File.class;
-
-    /** File array class */
-    public static final Class FILES_VALUE = File[].class;
-
-    /** URL class */
-    public static final Class URL_VALUE = URL.class;
-
-    /**
-     * Retrieve the class that <code>ch</code> represents.
-     *
-     * @param ch the specified character
-     * @return The class that <code>ch</code> represents
-     */
-    public static Object getValueClass(char ch)
-    {
-        switch (ch)
-        {
-            case '@':
-                return PatternOptionBuilder.OBJECT_VALUE;
-            case ':':
-                return PatternOptionBuilder.STRING_VALUE;
-            case '%':
-                return PatternOptionBuilder.NUMBER_VALUE;
-            case '+':
-                return PatternOptionBuilder.CLASS_VALUE;
-            case '#':
-                return PatternOptionBuilder.DATE_VALUE;
-            case '<':
-                return PatternOptionBuilder.EXISTING_FILE_VALUE;
-            case '>':
-                return PatternOptionBuilder.FILE_VALUE;
-            case '*':
-                return PatternOptionBuilder.FILES_VALUE;
-            case '/':
-                return PatternOptionBuilder.URL_VALUE;
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns whether <code>ch</code> is a value code, i.e.
-     * whether it represents a class in a pattern.
-     *
-     * @param ch the specified character
-     * @return true if <code>ch</code> is a value code, otherwise false.
-     */
-    public static boolean isValueCode(char ch)
-    {
-        return ch == '@' || ch == ':' || ch == '%' || ch == '+' || ch == '#' || ch == '<'
-            || ch == '>' || ch == '*' || ch == '/' || ch == '!';
-    }
-
-    /**
-     * Returns the {@link Options} instance represented by <code>pattern</code>.
-     *
-     * @param pattern the pattern string
-     * @return The {@link Options} instance
-     */
-    public static Options parsePattern(String pattern)
-    {
-        char opt = ' ';
-        boolean required = false;
-        Object type = null;
-
-        Options options = new Options();
-
-        for (int i = 0; i < pattern.length(); i++)
-        {
-            char ch = pattern.charAt(i);
-
-            // a value code comes after an option and specifies
-            // details about it
-            if (!isValueCode(ch))
-            {
-                if (opt != ' ')
-                {
-                    OptionBuilder.hasArg(type != null);
-                    OptionBuilder.isRequired(required);
-                    OptionBuilder.withType(type);
-
-                    // we have a previous one to deal with
-                    options.addOption(OptionBuilder.create(opt));
-                    required = false;
-                    type = null;
-                    opt = ' ';
-                }
-
-                opt = ch;
-            }
-            else if (ch == '!')
-            {
-                required = true;
-            }
-            else
-            {
-                type = getValueClass(ch);
-            }
-        }
-
-        if (opt != ' ')
-        {
-            OptionBuilder.hasArg(type != null);
-            OptionBuilder.isRequired(required);
-            OptionBuilder.withType(type);
-
-            // we have a final one to deal with
-            options.addOption(OptionBuilder.create(opt));
-        }
-
-        return options;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PosixParser.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PosixParser.java
deleted file mode 100644
index 5969db6..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/PosixParser.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * The class PosixParser provides an implementation of the
- * {@link Parser#flatten(Options,String[],boolean) flatten} method.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 695760 $, $Date: 2008-09-16 01:05:03 -0700 (Tue, 16 Sep 2008) $
- */
-public class PosixParser extends Parser
-{
-    /** holder for flattened tokens */
-    private List tokens = new ArrayList();
-
-    /** specifies if bursting should continue */
-    private boolean eatTheRest;
-
-    /** holder for the current option */
-    private Option currentOption;
-
-    /** the command line Options */
-    private Options options;
-
-    /**
-     * Resets the members to their original state i.e. remove
-     * all of <code>tokens</code> entries and set <code>eatTheRest</code>
-     * to false.
-     */
-    private void init()
-    {
-        eatTheRest = false;
-        tokens.clear();
-    }
-
-    /**
-     * <p>An implementation of {@link Parser}'s abstract
-     * {@link Parser#flatten(Options,String[],boolean) flatten} method.</p>
-     *
-     * <p>The following are the rules used by this flatten method.
-     * <ol>
-     *  <li>if <code>stopAtNonOption</code> is <b>true</b> then do not
-     *  burst anymore of <code>arguments</code> entries, just add each
-     *  successive entry without further processing.  Otherwise, ignore
-     *  <code>stopAtNonOption</code>.</li>
-     *  <li>if the current <code>arguments</code> entry is "<b>--</b>"
-     *  just add the entry to the list of processed tokens</li>
-     *  <li>if the current <code>arguments</code> entry is "<b>-</b>"
-     *  just add the entry to the list of processed tokens</li>
-     *  <li>if the current <code>arguments</code> entry is two characters
-     *  in length and the first character is "<b>-</b>" then check if this
-     *  is a valid {@link Option} id.  If it is a valid id, then add the
-     *  entry to the list of processed tokens and set the current {@link Option}
-     *  member.  If it is not a valid id and <code>stopAtNonOption</code>
-     *  is true, then the remaining entries are copied to the list of
-     *  processed tokens.  Otherwise, the current entry is ignored.</li>
-     *  <li>if the current <code>arguments</code> entry is more than two
-     *  characters in length and the first character is "<b>-</b>" then
-     *  we need to burst the entry to determine its constituents.  For more
-     *  information on the bursting algorithm see
-     *  {@link PosixParser#burstToken(String, boolean) burstToken}.</li>
-     *  <li>if the current <code>arguments</code> entry is not handled
-     *  by any of the previous rules, then the entry is added to the list
-     *  of processed tokens.</li>
-     * </ol>
-     * </p>
-     *
-     * @param options The command line {@link Options}
-     * @param arguments The command line arguments to be parsed
-     * @param stopAtNonOption Specifies whether to stop flattening
-     * when an non option is found.
-     * @return The flattened <code>arguments</code> String array.
-     */
-    protected String[] flatten(Options options, String[] arguments,
-        boolean stopAtNonOption)
-    {
-        init();
-        this.options = options;
-
-        // an iterator for the command line tokens
-        Iterator iter = Arrays.asList(arguments).iterator();
-
-        // process each command line token
-        while (iter.hasNext())
-        {
-            // get the next command line token
-            String token = (String) iter.next();
-
-            // handle long option --foo or --foo=bar
-            if (token.startsWith("--"))
-            {
-                int pos = token.indexOf('=');
-                String opt = pos == -1 ? token : token.substring(0, pos); // --foo
-
-                if (!options.hasOption(opt))
-                {
-                    processNonOptionToken(token, stopAtNonOption);
-                }
-                else
-                {
-                    currentOption = options.getOption(opt);
-
-                    tokens.add(opt);
-                    if (pos != -1)
-                    {
-                        tokens.add(token.substring(pos + 1));
-                    }
-                }
-            }
-
-            // single hyphen
-            else if ("-".equals(token))
-            {
-                tokens.add(token);
-            }
-            else if (token.startsWith("-"))
-            {
-                if (token.length() == 2 || options.hasOption(token))
-                {
-                    processOptionToken(token, stopAtNonOption);
-                }
-                // requires bursting
-                else
-                {
-                    burstToken(token, stopAtNonOption);
-                }
-            }
-            else
-            {
-                processNonOptionToken(token, stopAtNonOption);
-            }
-
-            gobble(iter);
-        }
-
-        return (String[]) tokens.toArray(new String[tokens.size()]);
-    }
-
-    /**
-     * Adds the remaining tokens to the processed tokens list.
-     *
-     * @param iter An iterator over the remaining tokens
-     */
-    private void gobble(Iterator iter)
-    {
-        if (eatTheRest)
-        {
-            while (iter.hasNext())
-            {
-                tokens.add(iter.next());
-            }
-        }
-    }
-
-    /**
-     * Add the special token "<b>--</b>" and the current <code>value</code>
-     * to the processed tokens list. Then add all the remaining
-     * <code>argument</code> values to the processed tokens list.
-     *
-     * @param value The current token
-     */
-    private void processNonOptionToken(String value, boolean stopAtNonOption)
-    {
-        if (stopAtNonOption && (currentOption == null || !currentOption.hasArg()))
-        {
-            eatTheRest = true;
-            tokens.add("--");
-        }
-
-        tokens.add(value);
-    }
-
-    /**
-     * <p>If an {@link Option} exists for <code>token</code> then
-     * add the token to the processed list.</p>
-     *
-     * <p>If an {@link Option} does not exist and <code>stopAtNonOption</code>
-     * is set then add the remaining tokens to the processed tokens list
-     * directly.</p>
-     *
-     * @param token The current option token
-     * @param stopAtNonOption Specifies whether flattening should halt
-     * at the first non option.
-     */
-    private void processOptionToken(String token, boolean stopAtNonOption)
-    {
-        if (stopAtNonOption && !options.hasOption(token))
-        {
-            eatTheRest = true;
-        }
-
-        if (options.hasOption(token))
-        {
-            currentOption = options.getOption(token);
-        }
-
-        tokens.add(token);
-    }
-
-    /**
-     * Breaks <code>token</code> into its constituent parts
-     * using the following algorithm.
-     *
-     * <ul>
-     *  <li>ignore the first character ("<b>-</b>")</li>
-     *  <li>foreach remaining character check if an {@link Option}
-     *  exists with that id.</li>
-     *  <li>if an {@link Option} does exist then add that character
-     *  prepended with "<b>-</b>" to the list of processed tokens.</li>
-     *  <li>if the {@link Option} can have an argument value and there
-     *  are remaining characters in the token then add the remaining
-     *  characters as a token to the list of processed tokens.</li>
-     *  <li>if an {@link Option} does <b>NOT</b> exist <b>AND</b>
-     *  <code>stopAtNonOption</code> <b>IS</b> set then add the special token
-     *  "<b>--</b>" followed by the remaining characters and also
-     *  the remaining tokens directly to the processed tokens list.</li>
-     *  <li>if an {@link Option} does <b>NOT</b> exist <b>AND</b>
-     *  <code>stopAtNonOption</code> <b>IS NOT</b> set then add that
-     *  character prepended with "<b>-</b>".</li>
-     * </ul>
-     *
-     * @param token The current token to be <b>burst</b>
-     * @param stopAtNonOption Specifies whether to stop processing
-     * at the first non-Option encountered.
-     */
-    protected void burstToken(String token, boolean stopAtNonOption)
-    {
-        for (int i = 1; i < token.length(); i++)
-        {
-            String ch = String.valueOf(token.charAt(i));
-
-            if (options.hasOption(ch))
-            {
-                tokens.add("-" + ch);
-                currentOption = options.getOption(ch);
-
-                if (currentOption.hasArg() && (token.length() != (i + 1)))
-                {
-                    tokens.add(token.substring(i + 1));
-
-                    break;
-                }
-            }
-            else if (stopAtNonOption)
-            {
-                processNonOptionToken(token.substring(i), true);
-                break;
-            }
-            else
-            {
-                tokens.add(token);
-                break;
-            }
-        }
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/TypeHandler.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/TypeHandler.java
deleted file mode 100644
index cffe14b..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/TypeHandler.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-import java.io.File;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.util.Date;
-
-/**
-  * This is a temporary implementation. TypeHandler will handle the
-  * pluggableness of OptionTypes and it will direct all of these types
-  * of conversion functionalities to ConvertUtils component in Commons
-  * already. BeanUtils I think.
-  *
-  * @version $Revision: 741425 $, $Date: 2009-02-05 22:10:54 -0800 (Thu, 05 Feb 2009) $
-  */
-public class TypeHandler
-{
-    /**
-     * Returns the <code>Object</code> of type <code>obj</code>
-     * with the value of <code>str</code>.
-     *
-     * @param str the command line value
-     * @param obj the type of argument
-     * @return The instance of <code>obj</code> initialised with
-     * the value of <code>str</code>.
-     */
-    public static Object createValue(String str, Object obj) throws ParseException
-    {
-        return createValue(str, (Class) obj);
-    }
-
-    /**
-     * Returns the <code>Object</code> of type <code>clazz</code>
-     * with the value of <code>str</code>.
-     *
-     * @param str the command line value
-     * @param clazz the type of argument
-     * @return The instance of <code>clazz</code> initialised with
-     * the value of <code>str</code>.
-     */
-    public static Object createValue(String str, Class clazz) throws ParseException
-    {
-        if (PatternOptionBuilder.STRING_VALUE == clazz)
-        {
-            return str;
-        }
-        else if (PatternOptionBuilder.OBJECT_VALUE == clazz)
-        {
-            return createObject(str);
-        }
-        else if (PatternOptionBuilder.NUMBER_VALUE == clazz)
-        {
-            return createNumber(str);
-        }
-        else if (PatternOptionBuilder.DATE_VALUE == clazz)
-        {
-            return createDate(str);
-        }
-        else if (PatternOptionBuilder.CLASS_VALUE == clazz)
-        {
-            return createClass(str);
-        }
-        else if (PatternOptionBuilder.FILE_VALUE == clazz)
-        {
-            return createFile(str);
-        }
-        else if (PatternOptionBuilder.EXISTING_FILE_VALUE == clazz)
-        {
-            return createFile(str);
-        }
-        else if (PatternOptionBuilder.FILES_VALUE == clazz)
-        {
-            return createFiles(str);
-        }
-        else if (PatternOptionBuilder.URL_VALUE == clazz)
-        {
-            return createURL(str);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    /**
-      * Create an Object from the classname and empty constructor.
-      *
-      * @param classname the argument value
-      * @return the initialised object, or null if it couldn't create
-      * the Object.
-      */
-    public static Object createObject(String classname) throws ParseException
-    {
-        Class cl = null;
-
-        try
-        {
-            cl = Class.forName(classname);
-        }
-        catch (ClassNotFoundException cnfe)
-        {
-            throw new ParseException("Unable to find the class: " + classname);
-        }
-
-        Object instance = null;
-
-        try
-        {
-            instance = cl.newInstance();
-        }
-        catch (Exception e)
-        {
-            throw new ParseException(e.getClass().getName()
-                + "; Unable to create an instance of: " + classname);
-        }
-
-        return instance;
-    }
-
-    /**
-     * Create a number from a String. If a . is present, it creates a
-     * Double, otherwise a Long.
-     *
-     * @param str the value
-     * @return the number represented by <code>str</code>, if <code>str</code>
-     * is not a number, null is returned.
-     */
-    public static Number createNumber(String str) throws ParseException
-    {
-        try
-        {
-            if (str.indexOf('.') != -1)
-            {
-                return Double.valueOf(str);
-            }
-            else
-            {
-                return Long.valueOf(str);
-            }
-        }
-        catch (NumberFormatException e)
-        {
-            throw new ParseException(e.getMessage());
-        }
-    }
-
-    /**
-     * Returns the class whose name is <code>classname</code>.
-     *
-     * @param classname the class name
-     * @return The class if it is found, otherwise return null
-     */
-    public static Class createClass(String classname) throws ParseException
-    {
-        try
-        {
-            return Class.forName(classname);
-        }
-        catch (ClassNotFoundException e)
-        {
-            throw new ParseException("Unable to find the class: " + classname);
-        }
-    }
-
-    /**
-     * Returns the date represented by <code>str</code>.
-     *
-     * @param str the date string
-     * @return The date if <code>str</code> is a valid date string,
-     * otherwise return null.
-     */
-    public static Date createDate(String str) throws ParseException
-    {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-    /**
-     * Returns the URL represented by <code>str</code>.
-     *
-     * @param str the URL string
-     * @return The URL is <code>str</code> is well-formed, otherwise
-     * return null.
-     */
-    public static URL createURL(String str) throws ParseException
-    {
-        try
-        {
-            return new URL(str);
-        }
-        catch (MalformedURLException e)
-        {
-            throw new ParseException("Unable to parse the URL: " + str);
-        }
-    }
-
-    /**
-     * Returns the File represented by <code>str</code>.
-     *
-     * @param str the File location
-     * @return The file represented by <code>str</code>.
-     */
-    public static File createFile(String str) throws ParseException
-    {
-        return new File(str);
-    }
-
-    /**
-     * Returns the File[] represented by <code>str</code>.
-     *
-     * @param str the paths to the files
-     * @return The File[] represented by <code>str</code>.
-     */
-    public static File[] createFiles(String str) throws ParseException
-    {
-        // to implement/port:
-        //        return FileW.findFiles(str);
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/UnrecognizedOptionException.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/UnrecognizedOptionException.java
deleted file mode 100644
index 8cb49c9..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/UnrecognizedOptionException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Exception thrown during parsing signalling an unrecognized
- * option was seen.
- *
- * @author bob mcwhiter (bob @ werken.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-public class UnrecognizedOptionException extends ParseException
-{
-    /** The  unrecognized option */
-    private String option;
-
-    /**
-     * Construct a new <code>UnrecognizedArgumentException</code>
-     * with the specified detail message.
-     *
-     * @param message the detail message
-     */
-    public UnrecognizedOptionException(String message)
-    {
-        super(message);
-    }
-
-    /**
-     * Construct a new <code>UnrecognizedArgumentException</code>
-     * with the specified option and detail message.
-     *
-     * @param message the detail message
-     * @param option  the unrecognized option
-     * @since 1.2
-     */
-    public UnrecognizedOptionException(String message, String option)
-    {
-        this(message);
-        this.option = option;
-    }
-
-    /**
-     * Returns the unrecognized option.
-     *
-     * @return the related option
-     * @since 1.2
-     */
-    public String getOption()
-    {
-        return option;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Util.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Util.java
deleted file mode 100644
index 7d18e3b..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/Util.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.cli;
-
-/**
- * Contains useful helper methods for classes within this package.
- *
- * @author John Keyes (john at integralsource.com)
- * @version $Revision: 680644 $, $Date: 2008-07-29 01:13:48 -0700 (Tue, 29 Jul 2008) $
- */
-class Util
-{
-    /**
-     * Remove the hyphens from the begining of <code>str</code> and
-     * return the new String.
-     *
-     * @param str The string from which the hyphens should be removed.
-     *
-     * @return the new String.
-     */
-    static String stripLeadingHyphens(String str)
-    {
-        if (str == null)
-        {
-            return null;
-        }
-        if (str.startsWith("--"))
-        {
-            return str.substring(2, str.length());
-        }
-        else if (str.startsWith("-"))
-        {
-            return str.substring(1, str.length());
-        }
-
-        return str;
-    }
-
-    /**
-     * Remove the leading and trailing quotes from <code>str</code>.
-     * E.g. if str is '"one two"', then 'one two' is returned.
-     *
-     * @param str The string from which the leading and trailing quotes
-     * should be removed.
-     *
-     * @return The string without the leading and trailing quotes.
-     */
-    static String stripLeadingAndTrailingQuotes(String str)
-    {
-        if (str.startsWith("\""))
-        {
-            str = str.substring(1, str.length());
-        }
-        if (str.endsWith("\""))
-        {
-            str = str.substring(0, str.length() - 1);
-        }
-        return str;
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/overview.html b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/overview.html
deleted file mode 100644
index eec9ce7..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/overview.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<body>
-
-    <p>Commons CLI -- version 1.2</p>
-
-    <p>The commons-cli package aides in parsing command-line arguments.</p>
-
-    <p>Allow command-line arguments to be parsed against a descriptor of
-    valid options (long and short), potentially with arguments.</p>
-
-    <p>command-line arguments may be of the typical <code>String[]</code>
-    form, but also may be a <code>java.util.List</code>.  Indexes allow
-    for parsing only a portion of the command-line.  Also, functionality
-    for parsing the command-line in phases is built in, allowing for
-    'cvs-style' command-lines, where some global options are specified
-    before a 'command' argument, and command-specific options are
-    specified after the command argument:
-
-    <code>
-    <pre>
-        myApp -p &lt;port&gt; command -p &lt;printer&gt;
-    </pre>
-    </code>
-
-
-    <p>The homepage for the project is
-    <a href="http://commons.apache.org">Apache Commons/</a>
-</body>
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/package.html b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/package.html
deleted file mode 100644
index 20ebdde..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/cli/package.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<body>
-
-    Commons CLI 1.2
-
-</body>
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Action.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Action.java
deleted file mode 100644
index 40dd629..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Action.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import org.apache.felix.sigil.common.runtime.Main;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.OK;
-import static org.apache.felix.sigil.common.runtime.io.Constants.ERROR;
-
-/**
- * @author dave
- *
- */
-public abstract class Action<I, O>
-{
-    private static final String PREFIX = "\t";
-    private static final String ASCII = "ASCII";
-    private final DataInputStream in;
-    private final DataOutputStream out;
-
-    public Action(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        this.in = in;
-        this.out = out;
-    }
-
-    public O client() throws IOException, BundleException
-    {
-        return client(null);
-    }
-
-    public abstract O client(I input) throws IOException, BundleException;
-
-    public abstract void server(Framework fw) throws IOException;
-
-    protected boolean checkOk() throws IOException
-    {
-        int ch = readInt();
-        switch (ch)
-        {
-            case OK:
-                return true;
-            case ERROR:
-                return false;
-            default:
-                throw new IOException("Unexpected return code " + ch);
-        }
-    }
-
-    protected void writeOk() throws IOException
-    {
-        writeInt(OK);
-    }
-
-    protected void writeError() throws IOException
-    {
-        writeInt(ERROR);
-    }
-
-    protected void writeThrowable(Throwable t) throws IOException
-    {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        t.printStackTrace(new PrintStream(bos));
-        writeString(bos.toString());
-    }
-
-    protected String readString() throws IOException
-    {
-        int l = in.readInt();
-        if (l == -1)
-        {
-            return null;
-        }
-        else
-        {
-            byte[] buf = new byte[l];
-            in.readFully(buf);
-            return new String(buf, ASCII);
-        }
-    }
-
-    protected void writeString(String str) throws IOException
-    {
-        if (str == null)
-        {
-            out.writeInt(-1);
-        }
-        else
-        {
-            byte[] buf = str.getBytes(ASCII);
-            out.writeInt(buf.length);
-            out.write(buf);
-        }
-    }
-
-    protected void writeInt(int i) throws IOException
-    {
-        out.writeInt(i);
-    }
-
-    protected int readInt() throws IOException
-    {
-        return in.readInt();
-    }
-
-    protected void writeLong(long l) throws IOException
-    {
-        out.writeLong(l);
-    }
-
-    protected long readLong() throws IOException
-    {
-        return in.readLong();
-    }
-
-    protected void writeBoolean(boolean b) throws IOException
-    {
-        out.writeBoolean(b);
-    }
-
-    protected boolean readBoolean() throws IOException
-    {
-        return in.readBoolean();
-    }
-
-    protected void flush() throws IOException
-    {
-        out.flush();
-    }
-
-    protected void log(String msg)
-    {
-        Main.log(msg);
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Constants.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Constants.java
deleted file mode 100644
index 2f56779..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/Constants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-public interface Constants
-{
-    public static final int OK = 0;
-    public static final int ERROR = -1;
-
-    public static final int INSTALL = 1;
-    public static final int START = 2;
-    public static final int STOP = 3;
-    public static final int UNINSTALL = 4;
-    public static final int UPDATE = 5;
-    public static final int STATUS = 6;
-    public static final int REFRESH = 7;
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/InstallAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/InstallAction.java
deleted file mode 100644
index 8fe3210..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/InstallAction.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.INSTALL;
-
-/**
- * @author dave
- *
- */
-public class InstallAction extends Action<String, Long>
-{
-
-    public InstallAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-    }
-
-    @Override
-    public Long client(String url) throws IOException, BundleException
-    {
-        writeInt(INSTALL);
-        writeString(url);
-        flush();
-        if (checkOk())
-        {
-            return readLong();
-        }
-        else
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        String url = readString();
-        try
-        {
-            Bundle val = fw.getBundleContext().installBundle(url);
-            log("Installed " + url);
-            writeOk();
-            writeLong(val.getBundleId());
-        }
-        catch (BundleException e)
-        {
-            e.printStackTrace();
-            writeError();
-            writeThrowable(e);
-        }
-        flush();
-    }
-
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/RefreshAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/RefreshAction.java
deleted file mode 100644
index c2ec3ec..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/RefreshAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.common.runtime.io;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.REFRESH;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.osgi.framework.BundleException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.launch.Framework;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class RefreshAction extends Action<Void, Void>
-{
-
-    public RefreshAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-    }
-
-    @Override
-    public Void client(Void input) throws IOException, BundleException
-    {
-        writeInt(REFRESH);
-        flush();
-        if (checkOk())
-        {
-            return null;
-        }
-        else
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        ServiceReference ref = fw.getBundleContext().getServiceReference(
-            PackageAdmin.class.getName());
-        if (ref != null)
-        {
-            PackageAdmin pa = (PackageAdmin) fw.getBundleContext().getService(ref);
-            if (pa != null)
-            {
-                try
-                {
-                    pa.refreshPackages(null);
-                }
-                finally
-                {
-                    fw.getBundleContext().ungetService(ref);
-                }
-            }
-        }
-        writeOk();
-        flush();
-    }
-
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StartAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StartAction.java
deleted file mode 100644
index 3eb8d0a..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StartAction.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.START;
-
-/**
- * @author dave
- *
- */
-public class StartAction extends Action<Long, Void>
-{
-
-    public StartAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-    }
-
-    @Override
-    public Void client(Long bundle) throws IOException, BundleException
-    {
-        writeInt(START);
-        writeLong(bundle);
-        flush();
-        if (!checkOk())
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-        return null;
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        long id = readLong();
-        Bundle b = fw.getBundleContext().getBundle(id);
-        if (b == null)
-        {
-            writeError();
-            writeString("Unknown bundle " + id);
-        }
-        else
-        {
-            try
-            {
-                b.start();
-                writeOk();
-                log("Started " + b.getSymbolicName());
-            }
-            catch (BundleException e)
-            {
-                writeError();
-                writeThrowable(e);
-            }
-        }
-        flush();
-    }
-
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StatusAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StatusAction.java
deleted file mode 100644
index 8fdebd7..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StatusAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.common.runtime.BundleForm.BundleStatus;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.STATUS;
-import static org.osgi.framework.Constants.BUNDLE_VERSION;
-import static org.osgi.framework.Constants.BUNDLE_NAME;
-
-/**
- * @author dave
- *
- */
-public class StatusAction extends Action<Void, BundleStatus[]>
-{
-
-    public StatusAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-    }
-
-    @Override
-    public BundleStatus[] client(Void in) throws IOException
-    {
-        writeInt(STATUS);
-        flush();
-        int num = readInt();
-        ArrayList<BundleStatus> ret = new ArrayList<BundleStatus>(num);
-
-        for (int i = 0; i < num; i++)
-        {
-            BundleStatus s = new BundleStatus();
-            s.setId(readLong());
-            s.setBundleSymbolicName(readString());
-            s.setVersion(readString());
-            s.setLocation(readString());
-            s.setStatus(readInt());
-            ret.add(s);
-        }
-
-        return ret.toArray(new BundleStatus[num]);
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        log("Read status");
-        Bundle[] bundles = fw.getBundleContext().getBundles();
-        writeInt(bundles.length);
-        for (Bundle b : bundles)
-        {
-            writeLong(b.getBundleId());
-            String bsn = b.getSymbolicName();
-            if (bsn == null)
-                bsn = (String) b.getHeaders().get(BUNDLE_NAME);
-
-            writeString(bsn);
-            writeString((String) b.getHeaders().get(BUNDLE_VERSION));
-            writeString(b.getLocation());
-            writeInt(b.getState());
-            flush();
-        }
-        flush();
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StopAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StopAction.java
deleted file mode 100644
index 5af9355..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/StopAction.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.STOP;
-
-/**
- * @author dave
- *
- */
-public class StopAction extends Action<Long, Void>
-{
-
-    public StopAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-        // TODO Auto-generated constructor stub
-    }
-
-    @Override
-    public Void client(Long bundle) throws IOException, BundleException
-    {
-        writeInt(STOP);
-        writeLong(bundle);
-        if (!checkOk())
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-        return null;
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        long id = readLong();
-        Bundle b = fw.getBundleContext().getBundle(id);
-        if (b == null)
-        {
-            writeError();
-            writeString("Unknown bundle " + id);
-        }
-        else
-        {
-            try
-            {
-                b.stop();
-                writeOk();
-            }
-            catch (BundleException e)
-            {
-                writeError();
-                writeThrowable(e);
-            }
-        }
-    }
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UninstallAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UninstallAction.java
deleted file mode 100644
index 7212b26..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UninstallAction.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.UNINSTALL;
-
-/**
- * @author dave
- *
- */
-public class UninstallAction extends Action<Long, Void>
-{
-
-    public UninstallAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-    }
-
-    @Override
-    public Void client(Long bundle) throws IOException, BundleException
-    {
-        writeInt(UNINSTALL);
-        writeLong(bundle);
-        if (!checkOk())
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-        return null;
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        long id = readLong();
-        Bundle b = fw.getBundleContext().getBundle(id);
-        if (b == null)
-        {
-            writeError();
-            writeString("Unknown bundle " + id);
-        }
-        else
-        {
-            try
-            {
-                b.uninstall();
-                writeOk();
-            }
-            catch (BundleException e)
-            {
-                writeError();
-                writeThrowable(e);
-            }
-        }
-    }
-
-}
diff --git a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UpdateAction.java b/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UpdateAction.java
deleted file mode 100644
index 628fdd9..0000000
--- a/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/io/UpdateAction.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.common.runtime.io;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.Framework;
-
-import static org.apache.felix.sigil.common.runtime.io.Constants.UPDATE;
-
-/**
- * @author dave
- *
- */
-public class UpdateAction extends Action<UpdateAction.Update, Void>
-{
-    public static class Update
-    {
-        final long bundleID;
-        final String location;
-
-        public Update(long bundleID, String location)
-        {
-            this.bundleID = bundleID;
-            this.location = location;
-        }
-    }
-
-    public UpdateAction(DataInputStream in, DataOutputStream out) throws IOException
-    {
-        super(in, out);
-        // TODO Auto-generated constructor stub
-    }
-
-    @Override
-    public Void client(Update update) throws IOException, BundleException
-    {
-        writeInt(UPDATE);
-        writeLong(update.bundleID);
-        if (update.location == null)
-        {
-            writeBoolean(false);
-        }
-        else
-        {
-            writeBoolean(true);
-            writeString(update.location);
-        }
-        flush();
-
-        if (!checkOk())
-        {
-            String msg = readString();
-            throw new BundleException(msg);
-        }
-
-        return null;
-    }
-
-    @Override
-    public void server(Framework fw) throws IOException
-    {
-        long id = readLong();
-        Bundle b = fw.getBundleContext().getBundle(id);
-        if (b == null)
-        {
-            writeError();
-            writeString("Unknown bundle " + id);
-        }
-        else
-        {
-            try
-            {
-                boolean remote = readBoolean();
-                if (remote)
-                {
-                    String loc = readString();
-                    try
-                    {
-                        InputStream in = open(loc);
-                        try
-                        {
-                            b.update(in);
-                            writeOk();
-                        }
-                        finally
-                        {
-                            in.close();
-                        }
-                    }
-                    catch (IOException e)
-                    {
-                        writeError();
-                        writeThrowable(e);
-                    }
-                }
-                else
-                {
-                    b.update();
-                    writeOk();
-                }
-            }
-            catch (BundleException e)
-            {
-                writeError();
-                writeString(e.getMessage());
-            }
-        }
-
-        flush();
-    }
-
-    private InputStream open(String loc) throws IOException
-    {
-        URL url = new URL(loc);
-        return url.openStream();
-    }
-}
diff --git a/sigil/common/sigil-defaults.properties b/sigil/common/sigil-defaults.properties
deleted file mode 100644
index bfc9d0d..0000000
--- a/sigil/common/sigil-defaults.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# sigil common default properties
--defaults: ${BLDCOMMON:-../bldcommon}/sigil-defaults.properties
diff --git a/sigil/eclipse/build.xml b/sigil/eclipse/build.xml
deleted file mode 100644
index c9dba4d..0000000
--- a/sigil/eclipse/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse" default="build-list">
-  <import file="../bldcommon/common.xml"/>
-</project>
diff --git a/sigil/eclipse/core.feature/.classpath b/sigil/eclipse/core.feature/.classpath
deleted file mode 100644
index dd6ef05..0000000
--- a/sigil/eclipse/core.feature/.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="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/core.feature/.project b/sigil/eclipse/core.feature/.project
deleted file mode 100644
index 6160bf9..0000000
--- a/sigil/eclipse/core.feature/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.core.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e8bd922..0000000
--- a/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:13:17 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9f9ff66..0000000
--- a/sigil/eclipse/core.feature/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:13:17 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/core.feature/build.xml b/sigil/eclipse/core.feature/build.xml
deleted file mode 100644
index d18a1ae..0000000
--- a/sigil/eclipse/core.feature/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.core.feature" default="build">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/eclipse/core.feature/feature.xml b/sigil/eclipse/core.feature/feature.xml
deleted file mode 100644
index df9d26e..0000000
--- a/sigil/eclipse/core.feature/feature.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<feature
-      id="org.apache.felix.sigil.eclipse.core.feature"
-      label="Sigil SDK"
-      version="${version}"
-      provider-name="Paremus Ltd">
-
-   <description>
-      Sigil plugin, integrated IDE and headless build system for OSGi developers.
-   </description>
-
-   <license url="http://www.apache.org/licenses/LICENSE-2.0">
-      Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-or implied.
-See the License for the specific language governing permissions
-and
-limitations under the License.
-   </license>
-
-   <url>
-      <update url="${update-site}"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.ant.core"/>
-      <import plugin="org.eclipse.core.expressions"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.debug.ui"/>
-      <import plugin="org.eclipse.jdt.core"/>
-      <import plugin="org.eclipse.jdt.ui"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.pde.ui"/>
-      <import plugin="org.eclipse.ui.editors"/>
-      <import plugin="org.eclipse.ui.forms"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.osgi"/>
-      <import plugin="org.eclipse.jdt.launching"/>
-      <import plugin="org.eclipse.ui.console"/>
-      <import plugin="org.eclipse.jdt.debug.ui"/>
-      <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.jface.text" version="3.4.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.ide" version="3.4.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.help"/>
-      <import plugin="org.eclipse.zest.core" version="1.0.0" match="compatible"/>
-      <import plugin="org.eclipse.zest.layouts" version="1.0.0" match="compatible"/>
-      <import plugin="org.eclipse.ltk.core.refactoring"/>
-      <import plugin="org.eclipse.help" version="3.3.1" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.cheatsheets" version="3.3.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.equinox.common" version="3.4.0" match="greaterOrEqual"/>
-   </requires>
-
-   <plugin
-         id="com.springsource.org.apache.commons.lang"
-         download-size="0"
-         install-size="0"
-         version="2.4.0"
-         unpack="false"/>
-         
-   <plugin
-         id="org.apache.felix.sigil.common.core"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.felix.sigil.common.osgi"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-         
-   <plugin
-         id="org.apache.felix.sigil.common.runtime"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.felix.sigil.eclipse.core"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <!--plugin
-         id="org.apache.felix.sigil.eclipse.help"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/-->
-
-   <plugin
-         id="org.apache.felix.sigil.eclipse.runtime"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-         
-   <plugin
-         id="org.apache.felix.sigil.eclipse.search"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.felix.sigil.eclipse.ui"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.felix.sigil.eclipse.utils"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-</feature>
diff --git a/sigil/eclipse/core.feature/ivy.xml b/sigil/eclipse/core.feature/ivy.xml
deleted file mode 100644
index 5dba2f4..0000000
--- a/sigil/eclipse/core.feature/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.core.feature"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.core.feature" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/core.feature/sigil.properties b/sigil/eclipse/core.feature/sigil.properties
deleted file mode 100644
index 08a4de4..0000000
--- a/sigil/eclipse/core.feature/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.eclipse.core.feature, \
-
--resources: \
-	{feature.xml}, \
-
-# end
diff --git a/sigil/eclipse/core/.classpath b/sigil/eclipse/core/.classpath
deleted file mode 100644
index b644560..0000000
--- a/sigil/eclipse/core/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.swt.carbon.macosx.jar"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/core/.project b/sigil/eclipse/core/.project
deleted file mode 100644
index f5e965d..0000000
--- a/sigil/eclipse/core/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/core/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 24113b7..0000000
--- a/sigil/eclipse/core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:08:38 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/core/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 36e2065..0000000
--- a/sigil/eclipse/core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:08:38 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/core/DEPENDENCIES b/sigil/eclipse/core/DEPENDENCIES
deleted file mode 100644
index e9ad596..0000000
--- a/sigil/eclipse/core/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse Core
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/core/NOTICE b/sigil/eclipse/core/NOTICE
deleted file mode 100644
index 7080eb2..0000000
--- a/sigil/eclipse/core/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse Core
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/core/build.xml b/sigil/eclipse/core/build.xml
deleted file mode 100644
index db7659d..0000000
--- a/sigil/eclipse/core/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.core" default="build"
-  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-  <target name="init">
-    <ivy:retrieve organisation="org.eclipse" module="org.eclipse.swt.carbon.macosx" revision="3.4.1.v3452b" inline="true" pattern="lib/[artifact].[ext]" transitive="false"/>
-  </target>
-</project>
diff --git a/sigil/eclipse/core/ivy.xml b/sigil/eclipse/core/ivy.xml
deleted file mode 100644
index e4d6526..0000000
--- a/sigil/eclipse/core/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.core"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.core" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/core/plugin.xml b/sigil/eclipse/core/plugin.xml
deleted file mode 100644
index 3b14335..0000000
--- a/sigil/eclipse/core/plugin.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="org.apache.felix.sigil.repositoryprovider" name="Bundle Repository Provider" schema="schema/org.apache.felix.sigil.repositoryprovider.exsd"/>
-   <extension-point id="org.apache.felix.sigil.installbuilder" name="OSGi Install Builder" schema="schema/org.apache.felix.sigil.installbuilder.exsd"/>
-   
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.apache.felix.sigil.eclipse.internal.property.SigilPropertyTester"
-            id="org.apache.felix.sigil.property.SigilPropertyTester"
-            namespace="org.apache.felix.sigil"
-            properties="isSigilProject"
-            type="org.eclipse.core.resources.IResource"/>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            adaptableType="org.eclipse.core.resources.IFile"
-            class="org.apache.felix.sigil.eclipse.internal.adapter.FileAdaptorFactory">
-         <adapter type="org.apache.felix.sigil.model.eclipse.ISigilBundle"/>
-      </factory>
-      <factory
-            adaptableType="org.eclipse.core.resources.IProject"
-            class="org.apache.felix.sigil.eclipse.internal.adapter.ProjectAdaptorFactory">
-         <adapter type="org.apache.felix.sigil.model.project.ISigilProjectModel"/>
-      </factory>
-   </extension>
-   <extension
-         id="org.apache.felix.sigil.sigilnature"
-         name="Sigil Nature"
-         point="org.eclipse.core.resources.natures">
-      <runtime>
-         <run class="org.apache.felix.sigil.eclipse.nature.SigilProjectNature"/>
-      </runtime>
-   </extension>
-   <extension
-   		 id="sigilBuilder"
-         name="Sigil Bundle Builder"
-         point="org.eclipse.core.resources.builders">
-      <builder
-            hasNature="false"
-            isConfigurable="false">
-         <run class="org.apache.felix.sigil.eclipse.internal.builders.SigilIncrementalProjectBuilder"/>
-      </builder>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.apache.felix.sigil.eclipse.internal.preferences.SigilPreferencesInitializer">
-      </initializer>
-   </extension>
-   <extension
-         point="org.apache.felix.sigil.repositoryprovider">
-      <provider
-            class="org.apache.felix.sigil.eclipse.internal.repository.eclipse.WorkspaceRepositoryProvider"
-            defaultLevel="-3"
-            dynamic="false"
-            id="org.apache.felix.sigil.core.workspaceprovider"
-            alias="project"
-            type="Workspace Repository">
-      </provider>
-      <provider
-            class="org.apache.felix.sigil.common.core.repository.FileSystemRepositoryProvider"
-            dynamic="true"
-            id="org.apache.felix.sigil.core.file"
-            alias="filesystem"
-            type="File System Repository">
-      </provider>
-      <provider
-            class="org.apache.felix.sigil.common.core.repository.SystemRepositoryProvider"
-            dynamic="false"
-            id="org.apache.felix.sigil.core.system"
-            alias="system"
-            type="System Repository">
-      </provider>
-   </extension>
-   <extension
-         id="org.apache.felix.sigil.unresolvedDependencyMarker"
-         name="Unresolved Dependency"
-         point="org.eclipse.core.resources.markers">
-      <persistent
-            value="true">
-      </persistent>
-      <super
-            type="org.eclipse.core.resources.problemmarker">
-      </super>
-      <attribute
-            name="element">
-      </attribute>
-      <attribute
-            name="versionRange">
-      </attribute>
-   </extension>
-   <extension
-         id="org.apache.felix.sigil.unresolvedDependencyMarker.importPackage"
-         name="Unresolved Import Package"
-         point="org.eclipse.core.resources.markers">
-      <persistent
-            value="true">
-      </persistent>
-      <super
-            type="org.apache.felix.sigil.unresolvedDependencyMarker">
-      </super>
-   </extension>
-   <extension
-         id="org.apache.felix.sigil.unresolvedDependencyMarker.requireBundle"
-         name="Unresolve Require Bundle"
-         point="org.eclipse.core.resources.markers">
-      <persistent
-            value="true">
-      </persistent>
-      <super
-            type="org.apache.felix.sigil.unresolvedDependencyMarker">
-      </super>
-   </extension>
-</plugin>
diff --git a/sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd b/sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd
deleted file mode 100644
index e6c29c6..0000000
--- a/sigil/eclipse/core/schema/org.apache.felix.sigil.installbuilder.exsd
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.apache.felix.sigil.eclipse.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.apache.felix.sigil.eclipse.core" id="org.apache.felix.sigil.installbuilder" name="OSGi Install Builder"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="builder" minOccurs="0" 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="builder">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.apache.felix.sigil.eclipse.install.IOSGiInstallBuilder"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="priority" type="string">
-            <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>
-
-
-</schema>
diff --git a/sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd b/sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd
deleted file mode 100644
index f760d9d..0000000
--- a/sigil/eclipse/core/schema/org.apache.felix.sigil.repositoryprovider.exsd
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.apache.felix.sigil.eclipse.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.apache.felix.sigil.eclipse.core" id="org.apache.felix.sigil.repository" name="Sigil Bundle Repository Provider"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="provider" minOccurs="0" 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="alias" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="type" 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.apache.felix.sigil.repository.IRepositoryProvider"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="dynamic" type="boolean" use="default" value="true">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultLevel" type="string" use="default" value="500">
-            <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>
-
-
-</schema>
diff --git a/sigil/eclipse/core/sigil.properties b/sigil/eclipse/core/sigil.properties
deleted file mode 100644
index 44c6d48..0000000
--- a/sigil/eclipse/core/sigil.properties
+++ /dev/null
@@ -1,86 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.eclipse.SigilCore
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.core, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	plugin.xml, \
-	schema, \
-	schema/org.apache.felix.sigil.installbuilder.exsd, \
-	schema/org.apache.felix.sigil.repositoryprovider.exsd, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.install, \
-	org.apache.felix.sigil.eclipse.job, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.model.repository, \
-	org.apache.felix.sigil.eclipse.model.util, \
-	org.apache.felix.sigil.eclipse.preferences, \
-	org.apache.felix.sigil.eclipse.repository, \
-
--imports: \
-	org.apache.commons.lang, \
-	org.apache.commons.lang.text, \
-	org.apache.felix.sigil.common.bnd, \
-	org.apache.felix.sigil.common.config, \
-	org.apache.felix.sigil.common.core, \
-	org.apache.felix.sigil.common.core.repository, \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.progress, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.common.util, \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.install, \
-	org.apache.felix.sigil.eclipse.job, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.model.repository, \
-	org.apache.felix.sigil.eclipse.model.util, \
-	org.apache.felix.sigil.eclipse.preferences, \
-	org.apache.felix.sigil.utils, \
-	org.eclipse.core.commands.common;resolve=compile, \
-	org.eclipse.core.expressions, \
-	org.eclipse.core.resources, \
-	org.eclipse.core.runtime.content, \
-	org.eclipse.core.runtime.jobs, \
-	org.eclipse.core.runtime.preferences, \
-	org.eclipse.debug.core, \
-	org.eclipse.jdt.core, \
-	org.eclipse.jface.dialogs, \
-	org.eclipse.jface.preference, \
-	org.eclipse.jface.resource, \
-	org.eclipse.jface.util, \
-	org.eclipse.jface.window, \
-	org.eclipse.ui, \
-	org.eclipse.ui.console, \
-	org.eclipse.ui.dialogs, \
-	org.eclipse.ui.plugin, \
-	org.osgi.framework, \
-	org.osgi.service.prefs, \
-	org.osgi.util.tracker, \
-
--requires: \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.equinox.registry;version=3.4.0, \
-	org.eclipse.swt;version=3.4.2, \
-	org.eclipse.ui.workbench;version=3.4.1, \
-
-header;Bundle-ActivationPolicy: lazy
-
-option;addMissingImports: false
-
-# end
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/PathUtil.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/PathUtil.java
deleted file mode 100644
index 9cea7fd..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/PathUtil.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * @author dave
- *
- */
-public class PathUtil
-{
-    /**
-     * @param sourceRootPath
-     * @return
-     */
-    public static IPath newPathIfNotNull(String path)
-    {
-        return path == null ? null : new Path(path);
-    }
-
-    /**
-     * @param absolutePath
-     * @return
-     */
-    public static IPath newPathIfExists(File file)
-    {
-        if (file == null)
-            return null;
-        if (file.exists())
-            return new Path(file.getAbsolutePath());
-        // fine
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
deleted file mode 100644
index 69cb7a1..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
+++ /dev/null
@@ -1,589 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstallManager;
-import org.apache.felix.sigil.eclipse.internal.install.OSGiInstallManager;
-import org.apache.felix.sigil.eclipse.internal.model.project.SigilModelRoot;
-import org.apache.felix.sigil.eclipse.internal.model.repository.RepositoryPreferences;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.GlobalRepositoryManager;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.IEclipseBundleRepository;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.RepositoryCache;
-import org.apache.felix.sigil.eclipse.internal.resources.ProjectResourceListener;
-import org.apache.felix.sigil.eclipse.internal.resources.SigilProjectManager;
-import org.apache.felix.sigil.eclipse.model.project.ISigilModelRoot;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryPreferences;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class SigilCore extends AbstractUIPlugin
-{
-
-    private static final String BASE = "org.apache.felix.sigil";
-    // The plug-in ID
-    public static final String PLUGIN_ID = BASE + ".eclipse.core";
-    public static final String NATURE_ID = BASE + ".sigilnature";
-    public static final String PREFERENCES_ID = BASE
-        + ".ui.preferences.SigilPreferencePage";
-    public static final String OSGI_INSTALLS_PREFERENCES_ID = BASE
-        + ".ui.preferences.osgiInstalls";
-    public static final String EXCLUDED_RESOURCES_PREFERENCES_ID = BASE
-        + ".ui.preferences.excludedResources";
-    public static final String REPOSITORIES_PREFERENCES_ID = BASE
-        + ".ui.preferences.repositoriesPreferencePage";
-    public static final String SIGIL_PROJECT_FILE = IBldProject.PROJECT_FILE;
-    public static final String BUILDER_ID = PLUGIN_ID + ".sigilBuilder";
-    public static final String CLASSPATH_CONTAINER_PATH = BASE + ".classpathContainer";
-
-    public static final String OSGI_INSTALLS = BASE + ".osgi.installs";
-    public static final String OSGI_DEFAULT_INSTALL_ID = BASE
-        + ".osgi.default.install.id";
-    public static final String OSGI_INSTALL_PREFIX = BASE + ".osgi.install.";
-    public static final String OSGI_SOURCE_LOCATION = BASE + ".osgi.source.location";
-    public static final String OSGI_INSTALL_CHECK_PREFERENCE = BASE
-        + ".osgi.install.check";
-    public static final String LIBRARY_KEYS_PREF = BASE + ".library.keys";
-    public static final String PREFERENCES_REBUILD_PROJECTS = BASE + ".rebuild.projects";
-    public static final String QUALIFY_VERSIONS = BASE + ".qualify.versions";
-
-    public static final String DEFAULT_VERSION_LOWER_BOUND = BASE + ".versionLowerBound";
-    public static final String DEFAULT_VERSION_UPPER_BOUND = BASE + ".versionUpperBound";
-
-    public static final String DEFAULT_EXCLUDED_RESOURCES = BASE + ".excludedResources";
-    public static final String INCLUDE_OPTIONAL_DEPENDENCIES = BASE
-        + ".includeOptionalDependencies";
-
-    public static final String INSTALL_BUILDER_EXTENSION_POINT_ID = BASE
-        + ".installbuilder";
-    public static final String REPOSITORY_PROVIDER_EXTENSION_POINT_ID = BASE
-        + ".repositoryprovider";
-
-    public static final String MARKER_UNRESOLVED_DEPENDENCY = BASE
-        + ".unresolvedDependencyMarker";
-    public static final String MARKER_UNRESOLVED_IMPORT_PACKAGE = BASE
-        + ".unresolvedDependencyMarker.importPackage";
-    public static final String MARKER_UNRESOLVED_REQUIRE_BUNDLE = BASE
-        + ".unresolvedDependencyMarker.requireBundle";
-    public static final String REPOSITORY_SET = PLUGIN_ID + ".repository.set";
-
-    public static final String PREFERENCES_NOASK_OSGI_INSTALL = BASE + ".noAskOSGIHome";
-    public static final String PREFERENCES_ADD_IMPORT_FOR_EXPORT = BASE
-        + ".addImportForExport";
-    public static final String PREFERENCES_INCLUDE_OPTIONAL = PLUGIN_ID
-        + ".include.optional";
-    public static final String PREFERENCES_REMOVE_IMPORT_FOR_EXPORT = BASE
-        + ".removeImportForExport";
-
-    // The shared instance
-    private static SigilCore plugin;
-
-    private static RepositoryPreferences repositoryPrefs;
-    private static SigilProjectManager projectManager;
-    private static OSGiInstallManager installs;
-    private static ISigilModelRoot modelRoot;
-    private static GlobalRepositoryManager globalRepositoryManager;
-
-    /**
-     * Returns the shared instance
-     * 
-     * @return the shared instance
-     */
-    public static SigilCore getDefault()
-    {
-        return plugin;
-    }
-
-    public static CoreException newCoreException(String msg, Throwable t)
-    {
-        return new CoreException(makeStatus(msg, t, IStatus.ERROR));
-    }
-
-    public static void log(String msg)
-    {
-        DebugPlugin.log(makeStatus(msg, null, IStatus.INFO));
-    }
-
-    public static void error(String msg)
-    {
-        DebugPlugin.log(makeStatus(msg, null, IStatus.ERROR));
-    }
-
-    public static void error(String msg, Throwable t)
-    {
-        DebugPlugin.log(makeStatus(msg, t, IStatus.ERROR));
-    }
-
-    public static void warn(String msg)
-    {
-        DebugPlugin.log(makeStatus(msg, null, IStatus.WARNING));
-    }
-
-    public static void warn(String msg, Throwable t)
-    {
-        DebugPlugin.log(makeStatus(msg, t, IStatus.WARNING));
-    }
-
-    private static IStatus makeStatus(String msg, Throwable t, int status)
-    {
-        if (t instanceof CoreException)
-        {
-            CoreException c = (CoreException) t;
-            return c.getStatus();
-        }
-        else
-        {
-            return new Status(status, SigilCore.PLUGIN_ID, status, msg, t);
-        }
-    }
-
-    public static boolean isSigilProject(IProject resource)
-    {
-        if (resource == null)
-            return false;
-
-        if (resource.isAccessible() && resource instanceof IProject)
-        {
-            IProject project = (IProject) resource;
-            try
-            {
-                return project.hasNature(NATURE_ID);
-            }
-            catch (CoreException e)
-            {
-                error(e.getMessage(), e);
-                return false;
-            }
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public static boolean hasProjectNature(IProject project) throws CoreException
-    {
-        return project.getNature(NATURE_ID) != null;
-    }
-
-    public static ResourceBundle getResourceBundle()
-    {
-        return ResourceBundle.getBundle("resources." + SigilCore.class.getName(),
-            Locale.getDefault(), SigilCore.class.getClassLoader());
-    }
-
-    public static ISigilProjectModel create(IProject project) throws CoreException
-    {
-        return projectManager.getSigilProject(project);
-    }
-
-    /**
-     * The constructor
-     */
-    public SigilCore()
-    {
-        plugin = this;
-    }
-
-    public void earlyStartup()
-    {
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
-     * )
-     */
-    public void start(final BundleContext context) throws Exception
-    {
-        super.start(context);
-
-        RepositoryCache repositoryCache = new RepositoryCache();
-        projectManager = new SigilProjectManager(repositoryCache);
-
-        modelRoot = new SigilModelRoot();
-
-        installs = new OSGiInstallManager();
-
-        repositoryPrefs = new RepositoryPreferences();
-        globalRepositoryManager = new GlobalRepositoryManager(repositoryCache);
-        globalRepositoryManager.initialise();
-
-        registerModelElements(context);
-        registerResourceListeners();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
-     * )
-     */
-    public void stop(BundleContext context) throws Exception
-    {
-        globalRepositoryManager.destroy();
-        globalRepositoryManager = null;
-        
-        projectManager.destroy();
-        projectManager = null;
-
-        plugin = null;
-
-        super.stop(context);
-    }
-
-    public static boolean isBundledPath(String bp) throws CoreException
-    {
-        boolean bundle = JavaHelper.isCachedBundle(bp);
-
-        if (!bundle)
-        {
-            bundle = isProjectPath(bp);
-
-            if (!bundle)
-            {
-                for (IBundleRepository r : getGlobalRepositoryManager().getRepositories())
-                {
-                    bundle = isBundlePath(bp, r);
-                    if (bundle)
-                        break;
-                }
-            }
-        }
-
-        return bundle;
-    }
-
-    private static boolean isBundlePath(final String bp, IBundleRepository r)
-    {
-        final AtomicBoolean flag = new AtomicBoolean();
-
-        IRepositoryVisitor visitor = new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle b)
-            {
-                File path = b.getLocation();
-                if (path != null && path.getAbsolutePath().equals(bp))
-                {
-                    flag.set(true);
-                    return false;
-                }
-                else
-                {
-                    return true;
-                }
-            }
-
-        };
-
-        r.accept(visitor, ResolutionConfig.INDEXED_ONLY | ResolutionConfig.LOCAL_ONLY);
-
-        return flag.get();
-    }
-
-    private static boolean isProjectPath(String bp) throws CoreException
-    {
-        for (ISigilProjectModel p : SigilCore.getRoot().getProjects())
-        {
-            IPath path = p.findOutputLocation();
-
-            if (path.toOSString().equals(bp))
-            {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private void registerResourceListeners()
-    {
-        Job job = new Job("Initialising sigil resource listeners")
-        {
-            @Override
-            protected IStatus run(IProgressMonitor monitor)
-            {
-                ResourcesPlugin.getWorkspace().addResourceChangeListener(
-                    new ProjectResourceListener(projectManager),
-                    ProjectResourceListener.EVENT_MASKS);
-                return Status.OK_STATUS;
-            }
-        };
-        job.setSystem(true);
-        job.schedule();
-    }
-
-    private void registerModelElements(BundleContext context)
-    {
-        // trick to get eclipse to lazy load BldCore for model elements
-        BldCore.getLicenseManager();
-    }
-
-    public static IOSGiInstallManager getInstallManager()
-    {
-        return installs;
-    }
-
-    public static ISigilModelRoot getRoot()
-    {
-        return modelRoot;
-    }
-
-    public static IRepositoryManager getGlobalRepositoryManager()
-    {
-        return globalRepositoryManager;
-    }
-
-    public static IRepositoryManager getRepositoryManager(ISigilProjectModel model)
-    {
-        if ( model == null ) return globalRepositoryManager;
-        try
-        {
-            return projectManager.getRepositoryManager(model);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to read repository config", e);
-            return globalRepositoryManager;
-        }        
-    }
-    
-    /**
-     * @param rep
-     * @return
-     */
-    public static IRepositoryModel getRepositoryModel(IBundleRepository rep)
-    {
-        IEclipseBundleRepository cast = (IEclipseBundleRepository) rep;
-        return cast.getModel();
-    }    
-
-    public static IRepositoryPreferences getRepositoryPreferences()
-    {
-        return repositoryPrefs;
-    }
-
-    public static void rebuildAllBundleDependencies(IProgressMonitor monitor)
-    {
-        Collection<ISigilProjectModel> projects = getRoot().getProjects();
-        
-        if (!projects.isEmpty())
-        {
-            SubMonitor progress = SubMonitor.convert(monitor, projects.size() * 20);
-            for (ISigilProjectModel p : projects)
-            {
-                rebuild(p, progress);
-            }
-        }
-
-        monitor.done();
-    }
-
-    public static void rebuildBundleDependencies(ISigilProjectModel project,
-        Collection<ICapabilityModelElement> caps, IProgressMonitor monitor)
-    {
-        Set<ISigilProjectModel> affected = SigilCore.getRoot().resolveDependentProjects(
-            caps, monitor);
-
-        if (project != null)
-        {
-            affected.remove(project);
-        }
-
-        SubMonitor progress = SubMonitor.convert(monitor, affected.size() * 20);
-        for (ISigilProjectModel dependent : affected)
-        {
-            //dependent.flushDependencyState();
-            rebuild(dependent, progress);
-        }
-    }
-
-    public static void rebuild(ISigilProjectModel dependent, SubMonitor progress)
-    {
-        try
-        {
-            dependent.resetClasspath(progress.newChild(10), false);
-            dependent.getProject().build(IncrementalProjectBuilder.FULL_BUILD,
-                progress.newChild(10));
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to rebuild " + dependent, e);
-        }
-    }
-
-    public IPath findDefaultBundleLocation(ISigilProjectModel m) throws CoreException
-    {
-        IPath loc = m.getProject().getLocation();
-        loc = loc.append(m.getJavaModel().getOutputLocation().removeFirstSegments(1));
-        loc = loc.removeLastSegments(1).append("lib");
-        return loc.append(m.getSymbolicName() + ".jar");
-    }
-
-    public static void makeSigilProject(IProject project, IProgressMonitor monitor)
-        throws CoreException
-    {
-        IProjectDescription description = project.getDescription();
-
-        String[] natures = description.getNatureIds();
-        String[] newNatures = new String[natures.length + 1];
-        System.arraycopy(natures, 0, newNatures, 0, natures.length);
-        newNatures[natures.length] = SigilCore.NATURE_ID;
-        description.setNatureIds(newNatures);
-
-        ICommand sigilBuild = description.newCommand();
-        sigilBuild.setBuilderName(SigilCore.BUILDER_ID);
-
-        ICommand javaBuild = description.newCommand();
-        javaBuild.setBuilderName(JavaCore.BUILDER_ID);
-
-        description.setBuildSpec(new ICommand[] { javaBuild, sigilBuild });
-
-        project.setDescription(description, new SubProgressMonitor(monitor, 2));
-
-        IJavaProject java = JavaCore.create(project);
-        if (java.exists())
-        {
-            IClasspathEntry[] cp = java.getRawClasspath();
-            // check if sigil container is already on classpath - if not add it
-            if (!isSigilOnClasspath(cp))
-            {
-                ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(
-                    Arrays.asList(cp));
-                entries.add(JavaCore.newContainerEntry(new Path(
-                    SigilCore.CLASSPATH_CONTAINER_PATH)));
-                java.setRawClasspath(
-                    entries.toArray(new IClasspathEntry[entries.size()]), monitor);
-            }
-        }
-    }
-
-    /**
-     * @param cp
-     * @return
-     */
-    private static boolean isSigilOnClasspath(IClasspathEntry[] cp)
-    {
-        for (IClasspathEntry e : cp)
-        {
-            if (e.getEntryKind() == IClasspathEntry.CPE_CONTAINER
-                && e.getPath().segment(0).equals(SigilCore.CLASSPATH_CONTAINER_PATH))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public static Image loadImage(URL url) throws IOException
-    {
-        ImageRegistry registry = getDefault().getImageRegistry();
-
-        String key = url.toExternalForm();
-        Image img = registry.get(key);
-
-        if (img == null)
-        {
-            img = openImage(url);
-            registry.put(key, img);
-        }
-
-        return img;
-    }
-
-    private static Image openImage(URL url) throws IOException
-    {
-        Display display = Display.getCurrent();
-        if (display == null)
-        {
-            display = Display.getDefault();
-        }
-
-        InputStream in = null;
-        try
-        {
-            in = url.openStream();
-            return new Image(display, in);
-        }
-        finally
-        {
-            if (in != null)
-            {
-                try
-                {
-                    in.close();
-                }
-                catch (IOException e)
-                {
-                    error("Failed to close stream", e);
-                }
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstall.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstall.java
deleted file mode 100644
index d31cb1f..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstall.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-
-/**
- * Encapsulates all information about a particular OSGi install.
- * 
- * @author dave
- *
- */
-public interface IOSGiInstall
-{
-
-    /**
-     * A unique id which can be used to refer to this install within the eclipse runtime.
-     * @return
-     */
-    String getId();
-
-    /**
-     * Where this install is located
-     * @return
-     */
-    IPath getInstallLocation();
-
-    /**
-     * @return
-     */
-    Map<String, String> getProperties();
-
-    /**
-     * @return
-     */
-    String[] getLaunchArguments();
-
-    /**
-     * @return
-     */
-    IPath getVarDirectory();
-
-    /**
-     * @return
-     */
-    IOSGiInstallType getType();
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallBuilder.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallBuilder.java
deleted file mode 100644
index 2dd5148..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallBuilder.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-public interface IOSGiInstallBuilder
-{
-    IOSGiInstall build(String id, IPath path) throws CoreException;
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallManager.java
deleted file mode 100644
index 2c304b4..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallManager.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-public interface IOSGiInstallManager
-{
-    IOSGiInstall findInstall(String id);
-
-    String[] getInstallIDs();
-
-    IOSGiInstall[] getInstalls();
-
-    IOSGiInstall getDefaultInstall();
-
-    IOSGiInstallType findInstallType(String location);
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallType.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallType.java
deleted file mode 100644
index be117e6..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/IOSGiInstallType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.swt.graphics.Image;
-
-//import org.eclipse.swt.graphics.Image;
-
-public interface IOSGiInstallType
-{
-    /**
-     * @return
-     */
-    String getName();
-
-    /**
-     * 
-     * @return
-     */
-    String getVersion();
-
-    /**
-     * @return
-     */
-    String getMainClass();
-
-    /**
-     * @return
-     */
-    String[] getClassPath();
-
-    /**
-     * @return
-     */
-    IPath getSourceLocation();
-
-    /**
-     * @return
-     */
-    IPath getJavaDocLocation();
-
-    /**
-     * Return the paths of any bundles that are started by default in this OSGi instance.
-     * @return
-     */
-    IPath[] getDefaultBundleLocations();
-
-    String getId();
-
-    Image getIcon();
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstall.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstall.java
deleted file mode 100644
index 7b98c2c..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstall.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-
-public class OSGiInstall implements IOSGiInstall
-{
-
-    private String id;
-    private IPath installLocation;
-    private String[] launchArgs;
-    private Map<String, String> properties;
-    private IPath varDirectory;
-    private IOSGiInstallType type;
-
-    public IPath getVarDirectory()
-    {
-        return varDirectory;
-    }
-
-    public void setVarDirectory(IPath varDirectory)
-    {
-        this.varDirectory = varDirectory;
-    }
-
-    public OSGiInstall(String id)
-    {
-        this.id = id;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public IPath getInstallLocation()
-    {
-        return installLocation;
-    }
-
-    public void setInstallLocation(IPath installLocation)
-    {
-        this.installLocation = installLocation;
-    }
-
-    public String[] getLaunchArguments()
-    {
-        return launchArgs;
-    }
-
-    public void setLaunchArguments(String[] launchArgs)
-    {
-        this.launchArgs = launchArgs;
-    }
-
-    public Map<String, String> getProperties()
-    {
-        return properties;
-    }
-
-    public void setProperties(Map<String, String> properties)
-    {
-        this.properties = properties;
-    }
-
-    public String toString()
-    {
-        return "OSGiInstall[\n" + "id=" + id + "\n" + "type=" + type + "\n"
-            + "installLocation=" + installLocation + "\n" + "launchArgs="
-            + Arrays.asList(launchArgs) + "\n" + "properties=" + properties + "\n" + "]";
-    }
-
-    public IOSGiInstallType getType()
-    {
-        return type;
-    }
-
-    public void setType(IOSGiInstallType type)
-    {
-        this.type = type;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstallType.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstallType.java
deleted file mode 100644
index 63c4ffe..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/install/OSGiInstallType.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.install;
-
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.swt.graphics.Image;
-
-public class OSGiInstallType implements IOSGiInstallType
-{
-
-    private String id;
-    private String name;
-    private String version;
-    private String mainClass;
-    private String[] classPath;
-    private IPath javaDocLocation;
-    private IPath sourceLocation;
-    private IPath[] defaultBundleLocations;
-    private Image icon;
-
-    public Image getIcon()
-    {
-        return icon;
-    }
-
-    public void setIcon(Image icon)
-    {
-        this.icon = icon;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public String[] getClassPath()
-    {
-        return classPath;
-    }
-
-    public IPath[] getDefaultBundleLocations()
-    {
-        return defaultBundleLocations;
-    }
-
-    public IPath getJavaDocLocation()
-    {
-        return javaDocLocation;
-    }
-
-    public String getMainClass()
-    {
-        return mainClass;
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public IPath getSourceLocation()
-    {
-        return sourceLocation;
-    }
-
-    public String getVersion()
-    {
-        return version;
-    }
-
-    public void setId(String id)
-    {
-        this.id = id;
-    }
-
-    public void setName(String name)
-    {
-        this.name = name;
-    }
-
-    public void setVersion(String version)
-    {
-        this.version = version;
-    }
-
-    public void setMainClass(String mainClass)
-    {
-        this.mainClass = mainClass;
-    }
-
-    public void setClassPath(String[] classPath)
-    {
-        this.classPath = classPath;
-    }
-
-    public void setJavaDocLocation(IPath javaDocLocation)
-    {
-        this.javaDocLocation = javaDocLocation;
-    }
-
-    public void setSourceLocation(IPath sourceLocation)
-    {
-        this.sourceLocation = sourceLocation;
-    }
-
-    public void setDefaultBundleLocations(IPath[] defaultBundleLocations)
-    {
-        this.defaultBundleLocations = defaultBundleLocations;
-    }
-
-    public String toString()
-    {
-        return "OSGiInstallType[\n" + "name=" + name + "\n" + "version=" + version + "\n"
-            + "mainClass=" + mainClass + "\n" + "classPath=" + Arrays.asList(classPath)
-            + "\n" + "javaDocLocation=" + javaDocLocation + "\n" + "sourceLocation="
-            + sourceLocation + "\n" + "defaultBundleLocations="
-            + Arrays.asList(defaultBundleLocations) + "\n" + "]";
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/FileAdaptorFactory.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/FileAdaptorFactory.java
deleted file mode 100644
index 283984c..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/FileAdaptorFactory.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.adapter;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-
-/**
- * @author savage
- *
- */
-public class FileAdaptorFactory implements IAdapterFactory
-{
-
-    public FileAdaptorFactory()
-    {
-
-    }
-
-    private Class<?>[] types = new Class<?>[] { ISigilBundle.class };
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-     */
-    @SuppressWarnings("unchecked")
-    public Object getAdapter(Object adaptableObject, Class adapterType)
-    {
-        Object adapted = null;
-
-        IFile file = (IFile) adaptableObject;
-
-        if (ISigilBundle.class.equals(adapterType))
-        {
-            adapted = adaptBundle(file);
-        }
-
-        return adapted;
-    }
-
-    private Object adaptBundle(IFile file)
-    {
-        Object adapted = null;
-        IProject project = file.getProject();
-        try
-        {
-            if (SigilCore.hasProjectNature(project))
-            {
-                ISigilProjectModel sigil = SigilCore.create(project);
-                ISigilBundle bundle = ModelElementFactory.getInstance().newModelElement(
-                    ISigilBundle.class);
-                bundle.setParent(sigil);
-                adapted = bundle;
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to construct bundle", e);
-        }
-        catch (ModelElementFactoryException e)
-        {
-            SigilCore.error("Failed to construct bundle", e);
-        }
-
-        return adapted;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-     */
-    @SuppressWarnings("unchecked")
-    public Class[] getAdapterList()
-    {
-        return types;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/ProjectAdaptorFactory.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/ProjectAdaptorFactory.java
deleted file mode 100644
index ea805cd..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/adapter/ProjectAdaptorFactory.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.adapter;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-
-/**
- * @author savage
- *
- */
-public class ProjectAdaptorFactory implements IAdapterFactory
-{
-
-    private Class<?>[] types = new Class<?>[] { ISigilProjectModel.class };
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-     */
-    @SuppressWarnings("unchecked")
-    public Object getAdapter(Object adaptableObject, Class adapterType)
-    {
-        Object adapted = null;
-
-        IProject project = (IProject) adaptableObject;
-
-        if (ISigilProjectModel.class.equals(adapterType))
-        {
-            adapted = adaptProject(project);
-        }
-
-        return adapted;
-    }
-
-    private Object adaptProject(IProject project)
-    {
-        try
-        {
-            if (SigilCore.isSigilProject(project))
-            {
-                return SigilCore.create(project);
-            }
-        }
-        catch (CoreException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-     */
-    @SuppressWarnings("unchecked")
-    public Class[] getAdapterList()
-    {
-        return types;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/BuildConsole.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/BuildConsole.java
deleted file mode 100644
index 9f3eba0..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/BuildConsole.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.builders;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.console.MessageConsole;
-import org.eclipse.ui.console.MessageConsoleStream;
-
-public class BuildConsole extends MessageConsole
-{
-
-    private static final ImageDescriptor imageDescriptor = null;
-    private MessageConsoleStream stream;
-
-    public BuildConsole()
-    {
-        super("Sigil Build", imageDescriptor, true);
-    }
-
-    public synchronized MessageConsoleStream getMessageStream()
-    {
-        if (stream == null)
-        {
-            stream = newMessageStream();
-        }
-        return stream;
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/SigilIncrementalProjectBuilder.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/SigilIncrementalProjectBuilder.java
deleted file mode 100644
index baf86a0..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/builders/SigilIncrementalProjectBuilder.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.builders;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.bnd.BundleBuilder;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaModelMarker;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.MessageConsoleStream;
-
-public class SigilIncrementalProjectBuilder extends IncrementalProjectBuilder
-{
-    @Override
-    protected IProject[] build(int kind, @SuppressWarnings("unchecked") Map args,
-        IProgressMonitor monitor) throws CoreException
-    {
-        IProject project = getProject();
-
-        if (checkOk(project))
-        {
-            switch (kind)
-            {
-                case CLEAN_BUILD:
-                case FULL_BUILD:
-                    fullBuild(project, monitor);
-                    break;
-                case AUTO_BUILD:
-                case INCREMENTAL_BUILD:
-                    autoBuild(project, monitor);
-                    break;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * @param install
-     * @param project
-     * @param monitor
-     * @throws CoreException 
-     */
-    private void autoBuild(IProject project, IProgressMonitor monitor)
-        throws CoreException
-    {
-        IResourceDelta delta = getDelta(project);
-        final boolean[] changed = new boolean[1];
-        ISigilProjectModel sigil = SigilCore.create(project);
-        final IPath bldRoot = sigil.findBundleLocation().removeLastSegments(1);
-
-        delta.accept(new IResourceDeltaVisitor()
-        {
-            public boolean visit(IResourceDelta delta) throws CoreException
-            {
-                if (!changed[0])
-                {
-                    IResource res = delta.getResource();
-                    if (res.getType() == IResource.FILE)
-                    {
-                        changed[0] = !bldRoot.isPrefixOf(res.getLocation());
-                    }
-                }
-                return !changed[0];
-            }
-        });
-
-        if (changed[0])
-        {
-            doBuild(project, monitor);
-        }
-    }
-
-    /**
-     * @param install
-     * @param project
-     * @param monitor
-     * @throws CoreException 
-     */
-    private void fullBuild(IProject project, IProgressMonitor monitor)
-        throws CoreException
-    {
-        doBuild(project, monitor);
-    }
-
-    private boolean checkOk(IProject project) throws CoreException
-    {
-        IMarker[] markers = project.findMarkers(
-            IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
-
-        for (IMarker m : markers)
-        {
-            Integer s = (Integer) m.getAttribute(IMarker.SEVERITY);
-            if (s != null && s.equals(IMarker.SEVERITY_ERROR))
-            {
-                SigilCore.log("Skipping " + project.getName()
-                    + " build due to unresolved errors");
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    private void doBuild(IProject project, IProgressMonitor monitor) throws CoreException
-    {
-        ISigilProjectModel sigil = SigilCore.create(project);
-        IBldProject bld = sigil.getBldProject();
-
-        File[] classpath = buildClasspath(sigil, monitor);
-
-        String destPattern = buildDestPattern(sigil);
-
-        Properties env = new Properties();
-
-        BundleBuilder bb = new BundleBuilder(bld, classpath, destPattern, env);
-
-        for (IBldProject.IBldBundle bundle : bld.getBundles())
-        {
-            String id = bundle.getId();
-            loginfo("creating bundle: " + id);
-            int nWarn = 0;
-            int nErr = 0;
-            String msg = "";
-
-            try
-            {
-                boolean modified = bb.createBundle(bundle, false, new BundleBuilder.Log()
-                {
-                    public void warn(String msg)
-                    {
-                        logwarn(msg);
-                    }
-
-                    public void verbose(String msg)
-                    {
-                        loginfo(msg);
-                    }
-                });
-                nWarn = bb.warnings().size();
-                if (!modified)
-                {
-                    msg = " (not modified)";
-                }
-            }
-            catch (Exception e)
-            {
-                List<String> errors = bb.errors();
-                if (errors != null)
-                {
-                    nErr = errors.size();
-                    for (String err : errors)
-                    {
-                        logerror(err);
-                    }
-                }
-                // FELIX-1690 - error is already logged no need to throw error as this
-                // results in noisy error dialog box
-                //throw SigilCore.newCoreException( "Failed to create: " + id + ": " + e, e );
-            }
-            finally
-            {
-                loginfo(id + ": " + count(nErr, "error") + ", " + count(nWarn, "warning")
-                    + msg);
-            }
-        }
-    }
-
-    private static void loginfo(String message)
-    {
-        log("INFO: " + message);
-    }
-
-    private static void logwarn(String message)
-    {
-        log("WARN: " + message);
-    }
-
-    private static void logerror(String message)
-    {
-        log("ERROR: " + message);
-    }
-
-    private static void log(final String message)
-    {
-        // do this in background to avoid deadlock with ui 
-        Job job = new Job("log")
-        {
-            @Override
-            protected IStatus run(IProgressMonitor arg0)
-            {
-                BuildConsole console = findConsole();
-                MessageConsoleStream stream = console.getMessageStream();
-                stream.println(message);
-                return Status.OK_STATUS;
-            }
-        };
-        job.schedule();
-    }
-
-    private static BuildConsole findConsole()
-    {
-        BuildConsole console = null;
-
-        IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
-
-        for (IConsole c : manager.getConsoles())
-        {
-            if (c instanceof BuildConsole)
-            {
-                console = (BuildConsole) c;
-                break;
-            }
-        }
-
-        if (console == null)
-        {
-            console = new BuildConsole();
-            manager.addConsoles(new IConsole[] { console });
-        }
-
-        return console;
-    }
-
-    private String buildDestPattern(ISigilProjectModel sigil) throws CoreException
-    {
-        IPath loc = sigil.findBundleLocation().removeLastSegments(1);
-
-        loc.toFile().mkdirs();
-
-        return loc.toOSString() + File.separator + "[name].jar";
-    }
-
-    private File[] buildClasspath(ISigilProjectModel sigil, IProgressMonitor monitor)
-        throws CoreException
-    {
-        LinkedList<File> files = new LinkedList<File>();
-        if (sigil.getBundle().getClasspathEntrys().isEmpty())
-        {
-            IClasspathEntry[] entries = sigil.getJavaModel().getResolvedClasspath(true);
-            for (IClasspathEntry cp : entries)
-            {
-                convert(cp, sigil, files);
-            }
-        }
-        else
-        {
-            buildLocalClasspath(sigil, files);
-            buildExternalClasspath(sigil, files, monitor);
-        }
-        return files.toArray(new File[files.size()]);
-    }
-
-    private void buildExternalClasspath(ISigilProjectModel sigil, List<File> files,
-        IProgressMonitor monitor) throws CoreException
-    {
-        Collection<IClasspathEntry> entries = sigil.findExternalClasspath(monitor);
-
-        for (IClasspathEntry cp : entries)
-        {
-            convert(cp, sigil, files);
-        }
-    }
-
-    private void buildLocalClasspath(ISigilProjectModel sigil, List<File> files)
-        throws CoreException
-    {
-        Collection<IClasspathEntry> entries = JavaHelper.findClasspathEntries(sigil.getBundle());
-        for (IClasspathEntry cp : entries)
-        {
-            convert(cp, sigil, files);
-        }
-    }
-
-    private void convert(IClasspathEntry cp, ISigilProjectModel sigil, List<File> files)
-        throws CoreException
-    {
-        switch (cp.getEntryKind())
-        {
-            case IClasspathEntry.CPE_PROJECT:
-            {
-                convertProject(cp, files);
-                break;
-            }
-            case IClasspathEntry.CPE_SOURCE:
-            {
-                convertSource(sigil, cp, files);
-                break;
-            }
-            case IClasspathEntry.CPE_LIBRARY:
-            {
-                convertLibrary(sigil, cp, files);
-                break;
-            }
-            case IClasspathEntry.CPE_VARIABLE:
-                convertVariable(cp, files);
-                break;
-        }
-    }
-
-    private void convertVariable(IClasspathEntry cp, List<File> files)
-    {
-        cp = JavaCore.getResolvedClasspathEntry(cp);
-        if (cp != null)
-        {
-            IPath p = cp.getPath();
-            files.add(p.toFile());
-        }
-    }
-
-    private void convertLibrary(ISigilProjectModel sigil, IClasspathEntry cp,
-        List<File> files)
-    {
-        IPath p = cp.getPath();
-
-        IProject project = sigil.getProject().getWorkspace().getRoot().getProject(
-            p.segment(0));
-        if (project.exists())
-        {
-            p = project.getLocation().append(p.removeFirstSegments(1));
-        }
-
-        files.add(p.toFile());
-    }
-
-    private void convertSource(ISigilProjectModel sigil, IClasspathEntry cp,
-        List<File> files) throws JavaModelException
-    {
-        IPath path = cp.getOutputLocation() == null ? sigil.getJavaModel().getOutputLocation()
-            : cp.getOutputLocation();
-        IFolder buildFolder = sigil.getProject().getFolder(path.removeFirstSegments(1));
-        if (buildFolder.exists())
-        {
-            files.add(buildFolder.getLocation().toFile());
-        }
-    }
-
-    private void convertProject(IClasspathEntry cp, List<File> files)
-        throws CoreException
-    {
-        IProject p = findProject(cp.getPath());
-        ISigilProjectModel project = SigilCore.create(p);
-        if (project.getBundle().getClasspathEntrys().isEmpty())
-        {
-            // ew this is pretty messy - if a dependent bundle specifies it's dependencies
-            // via package statements vs source directories then we need to add
-            // the classpath path of that bundle
-            for (IClasspathEntry rp : project.getJavaModel().getResolvedClasspath(true))
-            {
-                convert(rp, project, files);
-            }
-        }
-        else
-        {
-            for (String scp : project.getBundle().getClasspathEntrys())
-            {
-                IClasspathEntry jcp = project.getJavaModel().decodeClasspathEntry(scp);
-                convert(jcp, project, files);
-            }
-        }
-    }
-
-    private IProject findProject(IPath path) throws CoreException
-    {
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        for (IProject p : root.getProjects())
-        {
-            IPath projectPath = p.getFullPath();
-            if (projectPath.equals(path))
-            {
-                return p;
-            }
-        }
-
-        throw SigilCore.newCoreException("No such project " + path, null);
-    }
-
-    private String count(int count, String msg)
-    {
-        return count + " " + msg + (count == 1 ? "" : "s");
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/install/OSGiInstallManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/install/OSGiInstallManager.java
deleted file mode 100644
index e50dbf8..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/install/OSGiInstallManager.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.install;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Map;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstall;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstallBuilder;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstallManager;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstallType;
-import org.eclipse.core.runtime.CoreException;
-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.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-public class OSGiInstallManager implements IOSGiInstallManager, IPropertyChangeListener
-{
-    private static final int NORMAL_PRIORITY = 0;
-
-    private LinkedList<IOSGiInstallBuilder> builders = new LinkedList<IOSGiInstallBuilder>();
-
-    private HashMap<IPath, IOSGiInstall> pathToinstall = new HashMap<IPath, IOSGiInstall>();
-    private HashMap<String, IOSGiInstall> idToInstall = new HashMap<String, IOSGiInstall>();
-
-    private String defaultId;
-
-    private boolean initialised;
-
-    public IOSGiInstall findInstall(String id)
-    {
-        init();
-        return idToInstall.get(id);
-    }
-
-    public String[] getInstallIDs()
-    {
-        init();
-        return idToInstall.keySet().toArray(new String[idToInstall.size()]);
-    }
-
-    public IOSGiInstall[] getInstalls()
-    {
-        init();
-        return idToInstall.values().toArray(new IOSGiInstall[idToInstall.size()]);
-    }
-
-    public IOSGiInstall getDefaultInstall()
-    {
-        init();
-        return findInstall(defaultId);
-    }
-
-    public IOSGiInstallType findInstallType(String location)
-    {
-        IOSGiInstallType type = null;
-
-        try
-        {
-            IOSGiInstall install = buildInstall("tmp", new Path(location));
-            type = install == null ? null : install.getType();
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to build install", e);
-        }
-
-        return type;
-    }
-
-    public void propertyChange(PropertyChangeEvent event)
-    {
-        synchronized (this)
-        {
-            if (event.getProperty().equals(SigilCore.OSGI_INSTALLS))
-            {
-                clearInstalls();
-                String val = (String) event.getNewValue();
-                addInstalls(val);
-            }
-            else if (event.getProperty().equals(SigilCore.OSGI_DEFAULT_INSTALL_ID))
-            {
-                defaultId = (String) event.getNewValue();
-            }
-        }
-    }
-
-    private void init()
-    {
-        boolean show = false;
-
-        IPreferenceStore prefs = getPreferenceStore();
-
-        synchronized (this)
-        {
-            if (!initialised)
-            {
-                initialised = true;
-
-                prefs.addPropertyChangeListener(this);
-
-                String val = prefs.getString(SigilCore.OSGI_INSTALLS);
-
-                boolean noAsk = prefs.getBoolean(SigilCore.PREFERENCES_NOASK_OSGI_INSTALL);
-                if (val == null || val.trim().length() == 0)
-                {
-                    show = !noAsk;
-                }
-                else
-                {
-                    addInstalls(val);
-                    defaultId = prefs.getString(SigilCore.OSGI_DEFAULT_INSTALL_ID);
-                }
-            }
-        }
-
-        if (show)
-        {
-            showInstallPrefs(prefs);
-        }
-    }
-
-    private void addInstalls(String prop)
-    {
-        if (prop != null && prop.trim().length() > 0)
-        {
-            IPreferenceStore prefs = getPreferenceStore();
-
-            for (String id : prop.split(","))
-            {
-                String path = prefs.getString(SigilCore.OSGI_INSTALL_PREFIX + id);
-                addInstall(id, new Path(path));
-            }
-        }
-    }
-
-    private IPreferenceStore getPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    private void showInstallPrefs(final IPreferenceStore prefs)
-    {
-        Runnable r = new Runnable()
-        {
-            public void run()
-            {
-                MessageDialogWithToggle questionDialog = MessageDialogWithToggle.openYesNoQuestion(
-                    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
-                    "Sigil Configuration",
-                    "Missing OSGi installation. Open preferences to configure it now?",
-                    "Do not show this message again", false, null, null);
-                prefs.setValue(SigilCore.PREFERENCES_NOASK_OSGI_INSTALL,
-                    questionDialog.getToggleState());
-                if (questionDialog.getReturnCode() == IDialogConstants.YES_ID)
-                {
-                    PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(
-                        null, SigilCore.OSGI_INSTALLS_PREFERENCES_ID, null, null);
-                    dialog.open();
-                }
-            }
-        };
-        Display d = Display.getCurrent();
-        if (d == null)
-        {
-            d = Display.getDefault();
-            d.asyncExec(r);
-        }
-        else
-        {
-            d.syncExec(r);
-        }
-    }
-
-    private IOSGiInstall addInstall(String id, IPath path)
-    {
-        IOSGiInstall install = pathToinstall.get(path);
-
-        if (install == null)
-        {
-            try
-            {
-                install = buildInstall(id, path);
-                if (install != null)
-                {
-                    pathToinstall.put(path, install);
-                    idToInstall.put(install.getId(), install);
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to build install for " + path, e);
-            }
-        }
-
-        return install;
-    }
-
-    private IOSGiInstall buildInstall(String id, IPath path) throws CoreException
-    {
-        initBuilders();
-        IOSGiInstall install = null;
-
-        for (IOSGiInstallBuilder b : builders)
-        {
-            install = b.build(id, path);
-
-            if (install != null)
-            {
-                break;
-            }
-        }
-
-        return install;
-    }
-
-    private void clearInstalls()
-    {
-        idToInstall.clear();
-        pathToinstall.clear();
-    }
-
-    private void initBuilders()
-    {
-        synchronized (builders)
-        {
-            if (builders.isEmpty())
-            {
-                final HashMap<IOSGiInstallBuilder, Integer> tmp = new HashMap<IOSGiInstallBuilder, Integer>();
-
-                IExtensionRegistry registry = Platform.getExtensionRegistry();
-                IExtensionPoint p = registry.getExtensionPoint(SigilCore.INSTALL_BUILDER_EXTENSION_POINT_ID);
-                for (IExtension e : p.getExtensions())
-                {
-                    for (IConfigurationElement c : e.getConfigurationElements())
-                    {
-                        createBuilderFromElement(c, tmp);
-                    }
-                }
-
-                builders = new LinkedList<IOSGiInstallBuilder>(tmp.keySet());
-                Collections.sort(builders, new Comparator<IOSGiInstallBuilder>()
-                {
-                    public int compare(IOSGiInstallBuilder o1, IOSGiInstallBuilder o2)
-                    {
-                        int p1 = tmp.get(o1);
-                        int p2 = tmp.get(o2);
-
-                        if (p1 == p2)
-                        {
-                            return 0;
-                        }
-                        else if (p1 > p2)
-                        {
-                            return -1;
-                        }
-                        else
-                        {
-                            return 1;
-                        }
-                    }
-                });
-            }
-        }
-    }
-
-    private void createBuilderFromElement(IConfigurationElement c,
-        Map<IOSGiInstallBuilder, Integer> builder)
-    {
-        try
-        {
-            IOSGiInstallBuilder b = (IOSGiInstallBuilder) c.createExecutableExtension("class");
-            int priority = parsePriority(c);
-            builder.put(b, priority);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create builder", e);
-        }
-    }
-
-    private int parsePriority(IConfigurationElement c)
-    {
-        String str = c.getAttribute("priority");
-
-        if (str == null)
-        {
-            return NORMAL_PRIORITY;
-        }
-        else
-        {
-            return Integer.parseInt(str);
-        }
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilModelRoot.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilModelRoot.java
deleted file mode 100644
index 97fe428..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilModelRoot.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.project;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.eclipse.ILibraryImport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilModelRoot;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class SigilModelRoot implements ISigilModelRoot
-{
-    public List<ISigilProjectModel> getProjects()
-    {
-        IProject[] all = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        ArrayList<ISigilProjectModel> projects = new ArrayList<ISigilProjectModel>(
-            all.length);
-        for (IProject p : all)
-        {
-            try
-            {
-                if (p.isOpen() && p.hasNature(SigilCore.NATURE_ID))
-                {
-                    ISigilProjectModel n = SigilCore.create(p);
-                    projects.add(n);
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to build model element", e);
-            }
-        }
-
-        return projects;
-    }
-
-    public Set<ISigilProjectModel> resolveDependentProjects(
-        Collection<ICapabilityModelElement> caps, IProgressMonitor monitor)
-    {
-        final HashSet<ISigilProjectModel> dependents = new HashSet<ISigilProjectModel>();
-
-        for (final ISigilProjectModel n : getProjects())
-        {
-            for (final ICapabilityModelElement cap : caps)
-            {
-                final ISigilProjectModel sigil = cap.getAncestor(ISigilProjectModel.class);
-
-                n.visit(new IModelWalker()
-                {
-                    public boolean visit(IModelElement element)
-                    {
-                        if (element instanceof IRequirementModelElement)
-                        {
-                            IRequirementModelElement req = (IRequirementModelElement) element;
-                            if (req.accepts(cap))
-                            {
-                                dependents.add(n);
-                                return false;
-                            }
-                        }
-                        else if (element instanceof ILibraryImport)
-                        {
-                            ILibraryImport l = (ILibraryImport) element;
-                            ILibrary lib = sigil.getRepositoryManager().resolveLibrary(
-                                l);
-
-                            if (lib != null)
-                            {
-                                for (IPackageImport i : lib.getImports())
-                                {
-                                    if (i.accepts(cap))
-                                    {
-                                        dependents.add(n);
-                                    }
-                                }
-                            }
-                            else
-                            {
-                                SigilCore.error("No library found for " + l);
-                            }
-                        }
-                        return true;
-                    }
-                });
-            }
-            //            if ( !sigil.equals( n ) )
-            //            {
-            //                for ( IPackageExport pe : sigil.getBundle().getBundleInfo().getExports() )
-            //                {
-            //                    for ( IPackageImport i : n.getBundle().getBundleInfo().getImports() )
-            //                    {
-            //                        if ( pe.getPackageName().equals( i.getPackageName() )
-            //                            && i.getVersions().contains( pe.getVersion() ) )
-            //                        {
-            //                            dependents.add( n );
-            //                        }
-            //                    }
-            //
-            //                    for ( ILibraryImport l : n.getBundle().getBundleInfo().getLibraryImports() )
-            //                    {
-            //                        ILibrary lib = SigilCore.getRepositoryManager( sigil ).resolveLibrary( l );
-            //
-            //                        if ( lib != null )
-            //                        {
-            //                            for ( IPackageImport i : lib.getImports() )
-            //                            {
-            //                                if ( pe.getPackageName().equals( i.getPackageName() )
-            //                                    && i.getVersions().contains( pe.getVersion() ) )
-            //                                {
-            //                                    dependents.add( n );
-            //                                }
-            //                            }
-            //                        }
-            //                        else
-            //                        {
-            //                            SigilCore.error( "No library found for " + l );
-            //                        }
-            //                    }
-            //                }
-            //
-            //                for ( IRequiredBundle r : n.getBundle().getBundleInfo().getRequiredBundles() )
-            //                {
-            //                    if ( sigil.getSymbolicName().equals( r.getSymbolicName() )
-            //                        && r.getVersions().contains( sigil.getVersion() ) )
-            //                    {
-            //                        dependents.add( n );
-            //                    }
-            //                }
-            //            }
-        }
-
-        return dependents;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
deleted file mode 100644
index b4a759c..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
+++ /dev/null
@@ -1,731 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.project;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.regex.Matcher;
-
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.model.AbstractCompoundModelElement;
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.apache.felix.sigil.eclipse.PathUtil;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.job.ThreadProgressMonitor;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.progress.ProgressAdapter;
-import org.apache.felix.sigil.eclipse.repository.ResolutionMonitorAdapter;
-import org.apache.felix.sigil.utils.GlobCompiler;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.jdt.core.ClasspathContainerInitializer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IParent;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class SigilProject extends AbstractCompoundModelElement implements ISigilProjectModel
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private IFile bldProjectFile;
-    private IProject project;
-    private IBldProject bldProject;
-
-    private ISigilBundle bundle;
-
-    private List<IRequirementModelElement> lastReqs = new LinkedList<IRequirementModelElement>();
-    private List<ICapabilityModelElement> lastCaps = new LinkedList<ICapabilityModelElement>();
-
-    public SigilProject()
-    {
-        super("Sigil Project");
-    }
-
-    public SigilProject(IProject project) throws CoreException
-    {
-        this();
-        this.project = project;
-        bldProjectFile = project.getFile(new Path(SigilCore.SIGIL_PROJECT_FILE));
-    }
-
-    public void save(IProgressMonitor monitor) throws CoreException
-    {
-        save(monitor, true);
-    }
-
-    public void save(IProgressMonitor monitor, boolean rebuildDependencies)
-        throws CoreException
-    {
-        SubMonitor progress = SubMonitor.convert(monitor, 1000);
-
-        if (bldProjectFile.getLocation().toFile().exists())
-        {
-            bldProjectFile.setContents(buildContents(), IFile.KEEP_HISTORY,
-                progress.newChild(10));
-        }
-        else
-        {
-            bldProjectFile.create(buildContents(), true /* force */,
-                progress.newChild(5));
-            project.refreshLocal(IResource.DEPTH_ONE, progress.newChild(5));
-        }
-
-        if (rebuildDependencies)
-        {
-            rebuildDependencies(progress.newChild(900));
-        }
-    }
-
-    public void rebuildDependencies(IProgressMonitor monitor) throws CoreException
-    {
-        SubMonitor progress = SubMonitor.convert(monitor, 1000);
-
-        HashSet<ICapabilityModelElement> changes = new HashSet<ICapabilityModelElement>(
-            lastCaps);
-
-        LinkedList<IRequirementModelElement> reqs = new LinkedList<IRequirementModelElement>();
-        LinkedList<ICapabilityModelElement> caps = new LinkedList<ICapabilityModelElement>();
-
-        checkChanges(progress.newChild(100), reqs, caps);
-
-        boolean reqsChanged;
-        boolean capsChanged;
-
-        synchronized (this)
-        {
-            reqsChanged = isRequirementsChanged(reqs);
-            capsChanged = isCapabilitiesChanged(caps);
-        }
-
-        if (reqsChanged)
-        {
-            processRequirementsChanges(progress.newChild(600));
-            SigilCore.rebuild(this, progress.newChild(50));
-        }
-
-        progress.setWorkRemaining(250);
-
-        if (capsChanged)
-        {
-            changes.addAll(caps);
-            SigilCore.rebuildBundleDependencies(this, changes, progress.newChild(250));
-        }
-    }
-
-    public void flushDependencyState()
-    {
-        synchronized (this)
-        {
-            lastReqs.clear();
-        }
-    }
-
-    private void processRequirementsChanges(IProgressMonitor monitor)
-        throws CoreException
-    {
-        SubMonitor progress = SubMonitor.convert(monitor, 100);
-
-        IRepositoryManager manager = getRepositoryManager();
-        ResolutionConfig config = new ResolutionConfig(ResolutionConfig.INCLUDE_OPTIONAL
-            | ResolutionConfig.IGNORE_ERRORS);
-
-        try
-        {
-            IResolution resolution = manager.getBundleResolver().resolve(this, config,
-                new ResolutionMonitorAdapter(progress.newChild(20)));
-
-            markProblems(resolution);
-
-            // pull remote bundles from repositories to be added to classpath
-            if (!resolution.isSynchronized())
-            {
-                resolution.synchronize(new ProgressAdapter(progress.newChild(80)));
-            }
-        }
-        catch (ResolutionException e)
-        {
-            throw SigilCore.newCoreException("Failed to resolve dependencies", e);
-        }
-    }
-
-    private void markProblems(IResolution resolution)
-    {
-        try
-        {
-            getProject().deleteMarkers(SigilCore.MARKER_UNRESOLVED_DEPENDENCY, true,
-                IResource.DEPTH_ONE);
-
-            // Find missing imports
-            Collection<IPackageImport> imports = getBundle().getBundleInfo().getImports();
-            for (IPackageImport pkgImport : imports)
-            {
-                if (resolution.getProvider(pkgImport) == null)
-                {
-                    markMissingImport(pkgImport, getProject());
-                }
-            }
-
-            // Find missing required bundles
-            Collection<IRequiredBundle> requiredBundles = getBundle().getBundleInfo().getRequiredBundles();
-            for (IRequiredBundle requiredBundle : requiredBundles)
-            {
-                if (resolution.getProvider(requiredBundle) == null)
-                {
-                    markMissingRequiredBundle(requiredBundle, getProject());
-                }
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to update problems", e);
-        }
-    }
-
-    private void checkChanges(IProgressMonitor monitor,
-        final List<IRequirementModelElement> reqs,
-        final List<ICapabilityModelElement> caps)
-    {
-        visit(new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof IRequirementModelElement)
-                {
-                    reqs.add((IRequirementModelElement) element);
-                }
-                else if (element instanceof ICapabilityModelElement)
-                {
-                    // also calculate uses during this pass to save multi pass on model
-                    if (element instanceof IPackageExport)
-                    {
-                        IPackageExport pe = (IPackageExport) element;
-                        try
-                        {
-                            pe.setUses(Arrays.asList(JavaHelper.findUses(
-                                pe.getPackageName(), SigilProject.this)));
-                        }
-                        catch (CoreException e)
-                        {
-                            SigilCore.error("Failed to build uses list for " + pe, e);
-                        }
-                    }
-
-                    caps.add((ICapabilityModelElement) element);
-                }
-                return true;
-            }
-        });
-    }
-
-    private boolean isRequirementsChanged(List<IRequirementModelElement> dependencies)
-    {
-        if (lastReqs.equals(dependencies))
-        {
-            return false;
-        }
-        else
-        {
-            lastReqs = dependencies;
-            return true;
-        }
-    }
-
-    private boolean isCapabilitiesChanged(List<ICapabilityModelElement> capabilites)
-    {
-        if (lastCaps.equals(capabilites))
-        {
-            return false;
-        }
-        else
-        {
-            lastCaps = capabilites;
-            return true;
-        }
-    }
-
-    private static void markMissingImport(IPackageImport pkgImport, IProject project)
-        throws CoreException
-    {
-        IMarker marker = project.getProject().createMarker(
-            SigilCore.MARKER_UNRESOLVED_IMPORT_PACKAGE);
-        marker.setAttribute("element", pkgImport.getPackageName());
-        marker.setAttribute("versionRange", pkgImport.getVersions().toString());
-        marker.setAttribute(IMarker.MESSAGE, "Cannot resolve imported package \""
-            + pkgImport.getPackageName() + "\" with version range "
-            + pkgImport.getVersions());
-        marker.setAttribute(IMarker.SEVERITY,
-            pkgImport.isOptional() ? IMarker.SEVERITY_WARNING : IMarker.SEVERITY_ERROR);
-        marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
-    }
-
-    private static void markMissingRequiredBundle(IRequiredBundle req, IProject project)
-        throws CoreException
-    {
-        IMarker marker = project.getProject().createMarker(
-            SigilCore.MARKER_UNRESOLVED_REQUIRE_BUNDLE);
-        marker.setAttribute("element", req.getSymbolicName());
-        marker.setAttribute("versionRange", req.getVersions().toString());
-        marker.setAttribute(IMarker.MESSAGE, "Cannot resolve required bundle \""
-            + req.getSymbolicName() + "\" with version range " + req.getVersions());
-        marker.setAttribute(IMarker.SEVERITY, req.isOptional() ? IMarker.SEVERITY_WARNING
-            : IMarker.SEVERITY_ERROR);
-        marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
-    }
-
-    public Collection<IClasspathEntry> findExternalClasspath(IProgressMonitor monitor)
-        throws CoreException
-    {
-        return JavaHelper.resolveClasspathEntrys(this, monitor);
-    }
-
-    public Version getVersion()
-    {
-        ISigilBundle bundle = getBundle();
-        return bundle == null ? null : bundle.getBundleInfo() == null ? null
-            : bundle.getBundleInfo().getVersion();
-    }
-
-    public String getSymbolicName()
-    {
-        ISigilBundle bundle = getBundle();
-        return bundle == null ? null : bundle.getBundleInfo() == null ? null
-            : bundle.getBundleInfo().getSymbolicName();
-    }
-
-    public IProject getProject()
-    {
-        return project;
-    }
-
-    public ISigilBundle getBundle()
-    {
-        ISigilBundle b = null;
-
-        try
-        {
-            synchronized (bldProjectFile)
-            {
-                if (bundle == null)
-                {                   
-                    IPath loc = bldProjectFile.getLocation();
-                    if (loc == null) {
-                        // callers can protect against this by using 
-                        // checking exists()
-                        throw new IllegalStateException("Sigil project does not exist");
-                    }
-                    else if (loc.toFile().exists())
-                    {
-                        bundle = parseContents(bldProjectFile);
-                    }
-                    else
-                    {
-                        bundle = setupDefaults();
-                    }
-                }
-
-                b = bundle;
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to build bundle", e);
-        }
-
-        return b;
-    }
-
-    public void setBundle(ISigilBundle bundle)
-    {
-        synchronized (bldProjectFile)
-        {
-            this.bundle = bundle;
-        }
-    }
-
-    public IJavaProject getJavaModel()
-    {
-        return JavaCore.create(project);
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (obj == null)
-            return false;
-
-        if (obj == this)
-            return true;
-
-        try
-        {
-            SigilProject p = (SigilProject) obj;
-            return getSymbolicName().equals(p.getSymbolicName())
-                && (getVersion() == null ? p.getVersion() == null : getVersion().equals(
-                    p.getVersion()));
-        }
-        catch (ClassCastException e)
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        String bsn = getSymbolicName();
-        int hc = bsn == null ? 1 : bsn.hashCode();
-        if (getVersion() != null)
-        {
-            hc *= getVersion().hashCode();
-        }
-        hc *= 7;
-        return hc;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "SigilProject[" + getSymbolicName() + ":" + getVersion() + "]";
-    }
-
-    public void resetClasspath(IProgressMonitor monitor, boolean forceResolve) throws CoreException
-    {
-        if (forceResolve) {
-            processRequirementsChanges(monitor);
-        }
-        
-        Path containerPath = new Path(SigilCore.CLASSPATH_CONTAINER_PATH);
-        IJavaProject java = getJavaModel();
-        ClasspathContainerInitializer init = JavaCore.getClasspathContainerInitializer(SigilCore.CLASSPATH_CONTAINER_PATH);
-        ThreadProgressMonitor.setProgressMonitor(monitor);
-        try
-        {
-            init.requestClasspathContainerUpdate(containerPath, java, null);
-        }
-        finally
-        {
-            ThreadProgressMonitor.setProgressMonitor(null);
-        }
-    }
-
-    public IPath findBundleLocation() throws CoreException
-    {
-        IPath p = PathUtil.newPathIfExists(getBundle().getLocation());
-        if (p == null)
-        {
-            p = SigilCore.getDefault().findDefaultBundleLocation(this);
-        }
-        return p;
-    }
-
-    public IModelElement findImport(final String packageName,
-        final IProgressMonitor monitor)
-    {
-        final IModelElement[] found = new IModelElement[1];
-
-        visit(new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof IPackageImport)
-                {
-                    IPackageImport pi = (IPackageImport) element;
-                    if (pi.getPackageName().equals(packageName))
-                    {
-                        found[0] = pi;
-                        return false;
-                    }
-                }
-                else if (element instanceof IRequiredBundle)
-                {
-                    IRequiredBundle rb = (IRequiredBundle) element;
-                    try
-                    {
-                        IRepositoryManager manager = SigilProject.this.getRepositoryManager();
-                        ResolutionConfig config = new ResolutionConfig(
-                            ResolutionConfig.IGNORE_ERRORS);
-                        IResolution res = manager.getBundleResolver().resolve(rb, config,
-                            new ResolutionMonitorAdapter(monitor));
-                        ISigilBundle b = res.getProvider(rb);
-                        for (IPackageExport pe : b.getBundleInfo().getExports())
-                        {
-                            if (pe.getPackageName().equals(packageName))
-                            {
-                                found[0] = rb;
-                                return false;
-                            }
-                        }
-                    }
-                    catch (ResolutionException e)
-                    {
-                        SigilCore.error("Failed to resolve " + rb, e);
-                    }
-                }
-                return true;
-            }
-
-        });
-
-        return found[0];
-    }
-
-    public boolean isInClasspath(String packageName, IProgressMonitor monitor)
-        throws CoreException
-    {
-        if (findImport(packageName, monitor) != null)
-        {
-            return true;
-        }
-
-        for (String path : getBundle().getClasspathEntrys())
-        {
-            IClasspathEntry cp = getJavaModel().decodeClasspathEntry(path);
-            for (IPackageFragmentRoot root : getJavaModel().findPackageFragmentRoots(cp))
-            {
-                if (findPackage(packageName, root))
-                {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    public boolean isInClasspath(ISigilBundle bundle)
-    {
-        for (String path : getBundle().getClasspathEntrys())
-        {
-            IClasspathEntry cp = getJavaModel().decodeClasspathEntry(path);
-            switch (cp.getEntryKind())
-            {
-                case IClasspathEntry.CPE_PROJECT:
-                    ISigilProjectModel p = bundle.getAncestor(ISigilProjectModel.class);
-                    return p != null && cp.getPath().equals(p.getProject().getFullPath());
-                case IClasspathEntry.CPE_LIBRARY:
-                    return cp.getPath().equals(bundle.getLocation());
-            }
-        }
-
-        return false;
-    }
-
-    private boolean findPackage(String packageName, IParent parent)
-        throws JavaModelException
-    {
-        for (IJavaElement e : parent.getChildren())
-        {
-            if (e.getElementType() == IJavaElement.PACKAGE_FRAGMENT)
-            {
-                return e.getElementName().equals(packageName);
-            }
-
-            if (e instanceof IParent)
-            {
-                if (findPackage(packageName, (IParent) e))
-                {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-    private ISigilBundle setupDefaults()
-    {
-        ISigilBundle bundle = ModelElementFactory.getInstance().newModelElement(
-            ISigilBundle.class);
-        IBundleModelElement info = ModelElementFactory.getInstance().newModelElement(
-            IBundleModelElement.class);
-        bundle.setBundleInfo(info);
-        bundle.setParent(this);
-        return bundle;
-    }
-
-    private ISigilBundle parseContents(IFile projectFile) throws CoreException
-    {
-        if (projectFile.getName().equals(SigilCore.SIGIL_PROJECT_FILE))
-        {
-            return parseBldContents(projectFile.getLocationURI());
-        }
-        else
-        {
-            throw SigilCore.newCoreException("Unexpected project file: "
-                + projectFile.getName(), null);
-        }
-    }
-
-    private ISigilBundle parseBldContents(URI uri) throws CoreException
-    {
-        try
-        {
-            bldProject = BldFactory.getProject(uri, true);
-            ISigilBundle bundle = bldProject.getDefaultBundle();
-
-            if (bundle == null)
-            {
-                throw SigilCore.newCoreException("No default bundle", null);
-            }
-
-            bundle.setParent(this);
-            return bundle;
-        }
-        catch (IOException e)
-        {
-            throw SigilCore.newCoreException("Failed to parse " + uri, e);
-        }
-    }
-
-    private InputStream buildContents() throws CoreException
-    {
-        ByteArrayOutputStream buf = new ByteArrayOutputStream();
-        try
-        {
-            if (bldProject == null)
-            {
-                bldProject = BldFactory.newProject(bldProjectFile.getLocationURI(), null);
-            }
-            bldProject.setDefaultBundle(getBundle());
-            bldProject.saveTo(buf);
-        }
-        catch (IOException e)
-        {
-            throw SigilCore.newCoreException("Failed to save project file", e);
-        }
-        return new ByteArrayInputStream(buf.toByteArray());
-    }
-
-    public String getName()
-    {
-        return getProject().getName();
-    }
-
-    public IPath findOutputLocation() throws CoreException
-    {
-        return getProject().getLocation().append(
-            getJavaModel().getOutputLocation().removeFirstSegments(1));
-    }
-
-    public IBldProject getBldProject() throws CoreException
-    {
-        try
-        {
-            return BldFactory.getProject(project.getFile(IBldProject.PROJECT_FILE).getLocationURI());
-        }
-        catch (IOException e)
-        {
-            throw SigilCore.newCoreException("Failed to get project file: ", e);
-        }
-    }
-
-    public IRepositoryConfig getRepositoryConfig() throws CoreException
-    {
-        try
-        {
-            return BldFactory.getConfig(project.getFile(IBldProject.PROJECT_FILE).getLocationURI());
-        }
-        catch (IOException e)
-        {
-            throw SigilCore.newCoreException("Failed to get project file: ", e);
-        }
-    }
-    
-    public boolean isInBundleClasspath(IPackageFragment root) throws JavaModelException
-    {
-        if (getBundle().getClasspathEntrys().isEmpty())
-        {
-            for (String p : getBundle().getPackages())
-            {
-                SigilCore.log("Checking " + p + "->" + root.getElementName());
-                Matcher m = GlobCompiler.compile(p).matcher(root.getElementName());
-                if (m.matches())
-                {
-                    return true;
-                }
-            }
-            return false;
-        }
-        else
-        {
-            IPackageFragmentRoot parent = (IPackageFragmentRoot) root.getParent();
-            String enc = getJavaModel().encodeClasspathEntry(
-                parent.getRawClasspathEntry());
-            return getBundle().getClasspathEntrys().contains(enc.trim());
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel#getRepositoryManager()
-     */
-    public IRepositoryManager getRepositoryManager()
-    {
-        return SigilCore.getRepositoryManager(this);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel#exists()
-     */
-    public boolean exists()
-    {
-        return project.exists() && project.getFile(IBldProject.PROJECT_FILE).exists();
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/ExtensionUtils.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/ExtensionUtils.java
deleted file mode 100644
index 5d1cd0b..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/ExtensionUtils.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.repository;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-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.Platform;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.Bundle;
-
-/**
- * @author dave
- *
- */
-public class ExtensionUtils
-{
-    public static List<IRepositoryType> loadRepositoryTypes()
-    {
-        List<IRepositoryType> repositories = new ArrayList<IRepositoryType>();
-
-        IExtensionRegistry registry = Platform.getExtensionRegistry();
-
-        IExtensionPoint p = registry.getExtensionPoint(SigilCore.REPOSITORY_PROVIDER_EXTENSION_POINT_ID);
-
-        for (IExtension e : p.getExtensions())
-        {
-            for (IConfigurationElement c : e.getConfigurationElements())
-            {
-                repositories.add(toRepositoryType(e, c));
-            }
-        }
-
-        return repositories;
-    }
-    
-    /**
-     * @param ext 
-     * @param conf
-     * @return
-     */
-    public static IRepositoryType toRepositoryType(IExtension ext, IConfigurationElement conf)
-    {
-        String id = conf.getAttribute("id");
-        String type = conf.getAttribute("type");
-        boolean dynamic = Boolean.valueOf(conf.getAttribute("dynamic"));
-        String icon = conf.getAttribute("icon");
-        String provider = conf.getAttribute("alias");                
-        Image image = (icon == null || icon.trim().length() == 0) ? null
-            : loadImage(ext, icon);
-        return new RepositoryType(id, provider, type, dynamic, image);
-    }
-    
-    @SuppressWarnings("unchecked")
-    private static Image loadImage(IExtension ext, String icon)
-    {
-        int i = icon.lastIndexOf("/");
-        String path = i == -1 ? "/" : icon.substring(0, i);
-        String name = i == -1 ? icon : icon.substring(i + 1);
-
-        Bundle b = Platform.getBundle(ext.getContributor().getName());
-
-        Enumeration<URL> en = b.findEntries(path, name, false);
-        Image image = null;
-
-        if (en.hasMoreElements())
-        {
-            try
-            {
-                image = SigilCore.loadImage(en.nextElement());
-            }
-            catch (IOException e)
-            {
-                SigilCore.error("Failed to load image", e);
-            }
-        }
-        else
-        {
-            SigilCore.error("No such image " + icon + " in bundle " + b.getSymbolicName());
-        }
-
-        return image;
-    }
-    
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryModel.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryModel.java
deleted file mode 100644
index 45888c1..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryModel.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.repository;
-
-import java.util.Properties;
-
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-
-public class RepositoryModel implements IRepositoryModel
-{
-    public static final String NAME = "name";
-
-    private String id;
-
-    private IRepositoryType type;
-
-    private Properties properties = new Properties();
-    
-    private Throwable throwable;
-
-    public RepositoryModel(String id, IRepositoryType type)
-    {
-        this.id = id;
-        this.type = type;
-    }
-
-    /**
-     * @param exception 
-     * @param id2
-     * @param type2
-     * @param properties2
-     */
-    public RepositoryModel(String id, IRepositoryType type, Properties properties, Exception exception)
-    {
-        this.id = id;
-        this.type = type;
-        this.properties = properties;
-        this.throwable = exception;
-    }
-
-    public Properties getProperties()
-    {
-        return properties;
-    }
-
-    public IRepositoryType getType()
-    {
-        return type;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public String getName()
-    {
-        if ( getType().isDynamic() ) {
-            String name = properties.getProperty(NAME);
-            if ( name == null ) {
-                name = id;
-            }
-            return name;
-        }
-        else {
-            return getType().getName();
-        }
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        try
-        {
-            RepositoryModel e = (RepositoryModel) obj;
-            return id.equals(e.id);
-        }
-        catch (ClassCastException e)
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return id.hashCode();
-    }
-
-    public String toString()
-    {
-        return type.getId() + ":" + id + ":" + getName();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel#getProblem()
-     */
-    public Throwable getProblem()
-    {
-        return throwable;
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryPreferences.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryPreferences.java
deleted file mode 100644
index 46e0899..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryPreferences.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.repository;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.UUID;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryPreferences;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-import org.apache.felix.sigil.eclipse.preferences.PrefsUtils;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-public class RepositoryPreferences implements IRepositoryPreferences
-{
-
-    private static final String REPOSITORY = "repository.";
-    private static final String REPOSITORY_ORDER = REPOSITORY + "order";
-    private static final String INSTANCES = ".instances";
-    private static final String NAME = ".name";
-    private static final String LOC = ".loc";
-    private static final String TIMESTAMP = ".timestamp";
-
-    public List<IRepositoryModel> loadRepositories()
-    {
-        IPreferenceStore prefs = SigilCore.getDefault().getPreferenceStore();
-
-        ArrayList<IRepositoryModel> repositories = new ArrayList<IRepositoryModel>();
-
-        for (IRepositoryType type : loadRepositoryTypes())
-        {
-            String typeID = type.getId();
-
-            if (type.isDynamic())
-            {
-                String instances = prefs.getString(REPOSITORY + typeID + INSTANCES);
-                if (instances.trim().length() > 0)
-                {
-                    for (String instance : instances.split(","))
-                    {
-                        String key = REPOSITORY + typeID + "." + instance;
-                        repositories.add(loadRepository(instance, key, type, prefs));
-                    }
-                }
-            }
-            else
-            {
-                String key = REPOSITORY + typeID;
-                repositories.add(loadRepository(typeID, key, type, prefs));
-            }
-
-        }
-        
-        final List<String> order = PrefsUtils.stringToList(prefs.getString(REPOSITORY_ORDER));
-        
-        Collections.sort(repositories, new Comparator<IRepositoryModel>() {
-            public int compare(IRepositoryModel o1, IRepositoryModel o2)
-            {
-                int i1 = order.indexOf(o1.getId());
-                int i2 = order.indexOf(o2.getId());
-                
-                if ( i1 < i2 ) {
-                    return -1;
-                }
-                else if ( i1 > i2 ) {
-                    return 1;
-                }
-                else {
-                    return 0;
-                }
-            }
-            
-        });
-
-        return repositories;
-    }
-
-    public IRepositoryModel findRepository(String id)
-    {
-        for (IRepositoryModel model : loadRepositories())
-        {
-            if (model.getId().equals(id))
-            {
-                return model;
-            }
-        }
-        return null;
-    }
-
-    public void saveRepositories(List<IRepositoryModel> repositories)
-        throws CoreException
-    {
-        IPreferenceStore prefs = getPreferences();
-
-        HashMap<IRepositoryType, List<IRepositoryModel>> mapped = new HashMap<IRepositoryType, List<IRepositoryModel>>(
-            repositories.size());
-
-        saveRepositoryPreferences(repositories, mapped);
-        createNewEntries(mapped, prefs);
-        deleteOldEntries(repositories, prefs);
-        // do this last as it is a signal to preferences
-        // listeners to read repo config
-        setRepositoryOrder(repositories, prefs);
-    }
-
-    /**
-     * @param repositories
-     * @param prefs
-     */
-    private void setRepositoryOrder(List<IRepositoryModel> repositories,
-        IPreferenceStore prefs)
-    {        
-        ArrayList<String> ids = new ArrayList<String>();
-        for(IRepositoryModel model : repositories) {
-            ids.add(model.getId());
-        }
-        prefs.setValue(REPOSITORY_ORDER, PrefsUtils.listToString(ids));
-    }
-    
-
-    public IRepositoryModel newRepositoryElement(IRepositoryType type)
-    {
-        String id = UUID.randomUUID().toString();
-        RepositoryModel element = new RepositoryModel(id, type);
-        element.getProperties().setProperty("id", id);
-        return element;
-    }
-
-    private IPreferenceStore getPreferences()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    private void deleteOldEntries(List<IRepositoryModel> repositories,
-        IPreferenceStore prefs)
-    {
-        for (IRepositoryModel e : loadRepositories())
-        {
-            if (!repositories.contains(e))
-            {
-                new File(makeFileName(e)).delete();
-                String key = makeKey(e);
-                prefs.setToDefault(key + LOC);
-                prefs.setToDefault(key + NAME);
-            }
-        }
-
-        for (IRepositoryType type : loadRepositoryTypes())
-        {
-            boolean found = false;
-            for (IRepositoryModel e : repositories)
-            {
-                if (e.getType().equals(type))
-                {
-                    found = true;
-                    break;
-                }
-            }
-
-            if (!found)
-            {
-                prefs.setToDefault(REPOSITORY + type.getId() + INSTANCES);
-            }
-        }
-    }
-
-    private static void createNewEntries(
-        HashMap<IRepositoryType, List<IRepositoryModel>> mapped, IPreferenceStore prefs)
-    {
-        for (Map.Entry<IRepositoryType, List<IRepositoryModel>> entry : mapped.entrySet())
-        {
-            IRepositoryType type = entry.getKey();
-            if (type.isDynamic())
-            {
-                StringBuffer buf = new StringBuffer();
-
-                for (IRepositoryModel element : entry.getValue())
-                {
-                    if (buf.length() > 0)
-                    {
-                        buf.append(",");
-                    }
-                    buf.append(element.getId());
-                    saveRepository(element, prefs);
-                }
-
-                prefs.setValue(REPOSITORY + type.getId() + INSTANCES, buf.toString());
-            }
-            else
-            {
-                IRepositoryModel element = entry.getValue().get(0);
-                saveRepository(element, prefs);
-            }
-        }
-    }
-
-    private void saveRepositoryPreferences(List<IRepositoryModel> repositories,
-        HashMap<IRepositoryType, List<IRepositoryModel>> mapped) throws CoreException
-    {
-        for (IRepositoryModel rep : repositories)
-        {
-            try
-            {
-                createDir(makeFileName(rep));
-                toPreferenceStore(rep).save();
-                List<IRepositoryModel> list = mapped.get(rep.getType());
-                if (list == null)
-                {
-                    list = new ArrayList<IRepositoryModel>(1);
-                    mapped.put(rep.getType(), list);
-                }
-                list.add(rep);
-            }
-            catch (IOException e)
-            {
-                throw SigilCore.newCoreException("Failed to save repository preferences",
-                    e);
-            }
-        }
-    }
-
-    private static void createDir(String fileName)
-    {
-        File file = new File(fileName);
-        file.getParentFile().mkdirs();
-    }
-
-    private static void saveRepository(IRepositoryModel element, IPreferenceStore prefs)
-    {
-        String key = makeKey(element);
-        prefs.setValue(key + LOC, makeFileName(element));
-        prefs.setValue(key + TIMESTAMP, now());
-    }
-
-    private static long now()
-    {
-        return System.currentTimeMillis();
-    }
-
-    private static String makeKey(IRepositoryModel element)
-    {
-        IRepositoryType type = element.getType();
-
-        String key = REPOSITORY + type.getId();
-        if (type.isDynamic())
-            key = key + "." + element.getId();
-
-        return key;
-    }
-
-    private static String makeFileName(IRepositoryModel element)
-    {
-        IPath path = SigilCore.getDefault().getStateLocation();
-        path = path.append("repository");
-        path = path.append(element.getType().getId());
-        path = path.append(element.getId());
-        return path.toOSString();
-    }
-
-    private RepositoryModel loadRepository(String id, String key,
-        IRepositoryType type, IPreferenceStore prefs)
-    {
-        RepositoryModel element = new RepositoryModel(id, type);
-
-        Properties props = element.getProperties();
-        if ( type.isDynamic()) {
-            String loc = prefs.getString(key + LOC);
-
-            if (loc == null || loc.trim().length() == 0)
-            {
-                loc = makeFileName(element);
-            }
-
-            if (new File(loc).exists())
-            {
-                FileInputStream in = null; 
-                try
-                {
-                    in = new FileInputStream(loc);
-                    props.load(in);
-                    
-                    if (type.isDynamic() && !props.containsKey(RepositoryModel.NAME)) {
-                        String name = prefs.getString(key + NAME);
-                        props.setProperty(RepositoryModel.NAME, name);
-                    }
-                    
-                }
-                catch (IOException e)
-                {
-                    SigilCore.error("Failed to load properties for repository " + key, e);
-                }
-                finally {
-                    if ( in != null ) {
-                        try
-                        {
-                            in.close();
-                        }
-                        catch (IOException e)
-                        {
-                            SigilCore.error("Failed to close properties file " + loc, e);
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!props.containsKey(IRepositoryConfig.REPOSITORY_PROVIDER)) {
-            props.setProperty(IRepositoryConfig.REPOSITORY_PROVIDER, type.getProvider());
-        }
-
-        props.setProperty("id", id);
-
-        return element;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.model.repository.IRepositoryPreferences#loadRepositoryTypes()
-     */
-    public List<IRepositoryType> loadRepositoryTypes()
-    {
-        return ExtensionUtils.loadRepositoryTypes();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.model.repository.IRepositoryPreferences#getPreferenceStore(org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel)
-     */
-    public PreferenceStore toPreferenceStore(final IRepositoryModel model)
-    {
-        PreferenceStore store = new PreferenceStore();
-        store.setFilename(makeFileName(model));
-        
-        for (Map.Entry<Object, Object> e : model.getProperties().entrySet()) {
-            store.setValue((String) e.getKey(), (String) e.getValue());
-        }
-        
-        store.setValue("provider", model.getType().getProvider());
-
-        store.addPropertyChangeListener(new IPropertyChangeListener()
-        {            
-            public void propertyChange(PropertyChangeEvent event)
-            {
-                model.getProperties().setProperty(event.getProperty(), event.getNewValue().toString());
-            }
-        });
-        
-        return store;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryType.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryType.java
deleted file mode 100644
index 1630699..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/repository/RepositoryType.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.model.repository;
-
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-import org.eclipse.swt.graphics.Image;
-
-public class RepositoryType implements IRepositoryType
-{
-    private final String type;
-    private final String id;
-    private final String provider;
-    private final Image icon;
-    private final boolean dynamic;
-
-    public RepositoryType(String id, String provider, String type, boolean dynamic, Image icon)
-    {
-        this.id = id;
-        this.type = type;
-        this.dynamic = dynamic;
-        this.provider = provider;
-        this.icon = icon;
-    }
-
-    public String getName()
-    {
-        return type;
-    }
-    
-    public String getProvider() {
-        return provider;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public Image getIcon()
-    {
-        return icon;
-    }
-
-    public boolean isDynamic()
-    {
-        return dynamic;
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        try
-        {
-            RepositoryType t = (RepositoryType) obj;
-            return t.id.equals(id);
-        }
-        catch (ClassCastException e)
-        {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return id.hashCode();
-    }
-
-    @Override
-    public String toString()
-    {
-        return type;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/preferences/SigilPreferencesInitializer.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/preferences/SigilPreferencesInitializer.java
deleted file mode 100644
index f0fdaca..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/preferences/SigilPreferencesInitializer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.preferences;
-
-import org.apache.felix.sigil.common.osgi.VersionRangeBoundingRule;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.preferences.PrefsUtils;
-import org.apache.felix.sigil.eclipse.preferences.PromptablePreference;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-public class SigilPreferencesInitializer extends AbstractPreferenceInitializer
-{
-
-    public static final String[] EXCLUDED_RESOURCES = new String[] { ".project",
-            ".classpath", ".settings" };
-
-    @Override
-    public void initializeDefaultPreferences()
-    {
-        IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
-        setUpDefaults(store);
-        migrateOldPreferences(store);
-    }
-
-    /**
-     * @param store
-     */
-    private void setUpDefaults(IPreferenceStore store)
-    {
-        store.setDefault(SigilCore.OSGI_INSTALL_CHECK_PREFERENCE, true);
-
-        store.setDefault(SigilCore.DEFAULT_VERSION_LOWER_BOUND,
-            VersionRangeBoundingRule.Micro.name());
-        store.setDefault(SigilCore.DEFAULT_VERSION_UPPER_BOUND,
-            VersionRangeBoundingRule.Any.name());
-
-        store.setDefault(SigilCore.DEFAULT_EXCLUDED_RESOURCES,
-            PrefsUtils.arrayToString(EXCLUDED_RESOURCES));
-
-        store.setDefault(SigilCore.PREFERENCES_NOASK_OSGI_INSTALL, false);
-
-        store.setDefault(SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT,
-            PromptablePreference.Prompt.name());
-
-        store.setDefault(SigilCore.PREFERENCES_REBUILD_PROJECTS,
-            PromptablePreference.Prompt.name());
-
-        store.setDefault("repository.order",
-            "org.apache.felix.sigil.core.workspaceprovider");
-    }
-    
-    /**
-     * @param store
-     */
-    private void migrateOldPreferences(IPreferenceStore store)
-    {
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/property/SigilPropertyTester.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/property/SigilPropertyTester.java
deleted file mode 100644
index dff4319..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/property/SigilPropertyTester.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.property;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-
-public class SigilPropertyTester extends PropertyTester
-{
-
-    public SigilPropertyTester()
-    {
-    }
-
-    public boolean test(Object receiver, String property, Object[] args,
-        Object expectedValue)
-    {
-        IResource resource = (IResource) receiver;
-        if ("isSigilProject".equals(property))
-        {
-            return expectedValue.equals(isSigilProjectLikeResource(resource));
-        }
-        return false;
-    }
-
-    /**
-     * @param resource
-     * @return
-     */
-    private static boolean isSigilProjectLikeResource(IResource resource)
-    {
-        if (resource instanceof IProject)
-        {
-            IProject p = (IProject) resource;
-            return SigilCore.isSigilProject(p);
-        }
-        else
-        {
-            return resource.getName().equals(SigilCore.SIGIL_PROJECT_FILE);
-        }
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepository.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepository.java
deleted file mode 100644
index c479fa2..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepository.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.jar.JarFile;
-
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.util.ManifestUtil;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstall;
-import org.eclipse.core.runtime.IPath;
-
-public class OSGiInstallRepository extends AbstractBundleRepository
-{
-
-    private Map<String, List<ISigilBundle>> bundles;
-
-    public OSGiInstallRepository(String id)
-    {
-        super(id);
-    }
-
-    public void refresh()
-    {
-        synchronized (this)
-        {
-            bundles = null;
-        }
-
-        notifyChange();
-    }
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        IOSGiInstall install = SigilCore.getInstallManager().getDefaultInstall();
-
-        if (install != null)
-        {
-            List<ISigilBundle> found = null;
-
-            synchronized (this)
-            {
-                found = bundles == null ? null : bundles.get(install.getId());
-            }
-
-            if (found == null)
-            {
-                found = new ArrayList<ISigilBundle>();
-                IPath source = install.getType().getSourceLocation();
-
-                for (IPath p : install.getType().getDefaultBundleLocations())
-                {
-                    loadBundle(p, found, source);
-                }
-
-                synchronized (this)
-                {
-                    bundles = new HashMap<String, List<ISigilBundle>>();
-                    bundles.put(install.getId(), found);
-                }
-            }
-
-            for (ISigilBundle b : found)
-            {
-                if (!visitor.visit(b))
-                {
-                    break;
-                }
-            }
-        }
-    }
-
-    private void loadBundle(IPath p, List<ISigilBundle> bundles, IPath source)
-    {
-        File f = p.toFile();
-        JarFile jar = null;
-        try
-        {
-            jar = new JarFile(f, false);
-            ISigilBundle bundle = buildBundle(jar, f);
-            if (bundle != null)
-            {
-                bundle.setLocation(f);
-                bundle.setSourcePathLocation(source.toFile());
-                // XXX hard coded src location
-                bundle.setSourceRootPath("src");
-                bundles.add(bundle);
-            }
-        }
-        catch (IOException e)
-        {
-            BldCore.error("Failed to read jar file " + f, e);
-        }
-        catch (ModelElementFactoryException e)
-        {
-            BldCore.error("Failed to build bundle " + f, e);
-        }
-        catch (RuntimeException e)
-        {
-            BldCore.error("Failed to build bundle " + f, e);
-        }
-        finally
-        {
-            if (jar != null)
-            {
-                try
-                {
-                    jar.close();
-                }
-                catch (IOException e)
-                {
-                    BldCore.error("Failed to close jar file", e);
-                }
-            }
-        }
-    }
-
-    private ISigilBundle buildBundle(JarFile jar, File f) throws IOException
-    {
-        IBundleModelElement info = ManifestUtil.buildBundleModelElement(jar);
-
-        ISigilBundle bundle = null;
-
-        if (info != null)
-        {
-            bundle = ModelElementFactory.getInstance().newModelElement(ISigilBundle.class);
-            bundle.addChild(info);
-            bundle.setLocation(f);
-        }
-
-        return bundle;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepositoryProvider.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepositoryProvider.java
deleted file mode 100644
index 77591e1..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/OSGiInstallRepositoryProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.eclipse;
-
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-
-public class OSGiInstallRepositoryProvider implements IRepositoryProvider
-{
-    public IBundleRepository createRepository(String id, Properties preferences)
-    {
-        return new OSGiInstallRepository(id);
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepository.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepository.java
deleted file mode 100644
index 85a6eac..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepository.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.eclipse;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.JavaCore;
-
-public class WorkspaceRepository extends AbstractBundleRepository implements IResourceChangeListener
-{
-
-    private static final int UPDATE_MASK = IResourceDelta.CONTENT | IResourceDelta.OPEN;
-
-    static final int EVENT_MASKS = IResourceChangeEvent.PRE_DELETE
-        | IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_REFRESH;
-
-    public WorkspaceRepository(String id)
-    {
-        super(id);
-    }
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        List<ISigilProjectModel> models = SigilCore.getRoot().getProjects();
-        for (ISigilProjectModel project : models)
-        {
-            ISigilBundle b = project.getBundle();
-            if (b == null)
-            {
-                SigilCore.error("No bundle found for project "
-                    + project.getProject().getName());
-            }
-            else
-            {
-                if ((options & ResolutionConfig.COMPILE_TIME) != 0)
-                {
-                    b = compileTimeFilter(project, b);
-                }
-                visitor.visit(b);
-            }
-        }
-    }
-
-    private ISigilBundle compileTimeFilter(ISigilProjectModel project, ISigilBundle bundle)
-    {
-        bundle = (ISigilBundle) bundle.clone();
-
-        Collection<String> packages = findPackages(project);
-
-        for (IPackageExport pe : bundle.getBundleInfo().getExports())
-        {
-            final String packagePath = pe.getPackageName();
-            if (!packages.contains(packagePath))
-            {
-                bundle.getBundleInfo().removeExport(pe);
-            }
-        }
-
-        return bundle;
-    }
-
-    private Collection<String> findPackages(ISigilProjectModel project)
-    {
-        final IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
-        final IContentType javaContentType = contentTypeManager.getContentType("org.eclipse.jdt.core.javaSource");
-        final HashSet<String> packages = new HashSet<String>();
-
-        try
-        {
-            project.getProject().accept(new IResourceVisitor()
-            {
-                public boolean visit(IResource resource) throws CoreException
-                {
-                    if (resource instanceof IFile)
-                    {
-                        IFile f = (IFile) resource;
-                        IContentType ct = contentTypeManager.findContentTypeFor(f.getName());
-                        if (ct != null && ct.isKindOf(javaContentType))
-                        {
-                            ICompilationUnit cu = (ICompilationUnit) JavaCore.create(f);
-                            IPackageFragment pf = (IPackageFragment) cu.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
-                            packages.add(pf.getElementName());
-                        }
-                    }
-
-                    return true;
-                }
-            });
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to read packages for "
-                + project.getProject().getName());
-        }
-
-        return packages;
-    }
-
-    public void refresh()
-    {
-        // no action
-        // TODO this method is used to prompt repository to update caches - 
-        // however caches are complex to maintain in this workspace as the bundle is actively being developed...
-        // potential performance improvement in future?
-    }
-
-    public void resourceChanged(IResourceChangeEvent event)
-    {
-        try
-        {
-            switch (event.getType())
-            {
-                case IResourceChangeEvent.PRE_DELETE:
-                    handleDelete(event);
-                    break;
-                case IResourceChangeEvent.PRE_REFRESH:
-                    handleRefresh(event);
-                    break;
-                case IResourceChangeEvent.POST_CHANGE:
-                    handleChange(event);
-                    break;
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Workspace repository update failed", e);
-        }
-    }
-
-    private HashSet<IProject> deleted = new HashSet<IProject>();
-
-    private void handleDelete(IResourceChangeEvent event)
-    {
-        if (event.getResource() instanceof IProject)
-        {
-            IProject project = (IProject) event.getResource();
-            if (isSigilProject(project))
-            {
-                deleted.add(project);
-            }
-        }
-    }
-
-    private void handleRefresh(IResourceChangeEvent event)
-    {
-        if (event.getResource() instanceof IProject)
-        {
-            IProject project = (IProject) event.getResource();
-            if (isSigilProject(project))
-            {
-                SigilCore.log("Refreshing workspace repository");
-                notifyChange();
-            }
-        }
-    }
-
-    private void handleChange(IResourceChangeEvent event) throws CoreException
-    {
-        final boolean[] notify = new boolean[1];
-
-        event.getDelta().accept(new IResourceDeltaVisitor()
-        {
-            public boolean visit(IResourceDelta delta) throws CoreException
-            {
-                boolean checkMembers = true;
-
-                IResource resource = delta.getResource();
-                if (resource instanceof IProject)
-                {
-                    IProject project = (IProject) resource;
-                    if (isSigilProject(project))
-                    {
-                        switch (delta.getKind())
-                        {
-                            case IResourceDelta.CHANGED:
-                                int flag = delta.getFlags();
-                                if ((flag & UPDATE_MASK) == 0)
-                                {
-                                    break;
-                                }
-                                // else 
-                                // fall through on purpose
-                            case IResourceDelta.ADDED: // fall through on purpose
-                            case IResourceDelta.REMOVED: // fall through on purpose
-                                notify[0] = true;
-                                break;
-                        }
-                        checkMembers = true;
-                    }
-                    else
-                    {
-                        checkMembers = false;
-                    }
-                }
-                else if (resource.getName().equals(SigilCore.SIGIL_PROJECT_FILE))
-                {
-                    switch (delta.getKind())
-                    {
-                        case IResourceDelta.CHANGED:
-                        case IResourceDelta.ADDED:
-                        case IResourceDelta.REMOVED:
-                            notify[0] = true;
-                    }
-                    checkMembers = false;
-                }
-                return checkMembers && !notify[0];
-            }
-        });
-
-        if (notify[0])
-        {
-            notifyChange();
-        }
-    }
-
-    private boolean isSigilProject(IProject project)
-    {
-        return SigilCore.isSigilProject(project) || deleted.remove(project);
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepositoryProvider.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepositoryProvider.java
deleted file mode 100644
index 0562ebf..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/eclipse/WorkspaceRepositoryProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.eclipse;
-
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-public class WorkspaceRepositoryProvider implements IRepositoryProvider
-{
-    private static WorkspaceRepository repository;
-
-    public static WorkspaceRepository getWorkspaceRepository()
-    {
-        return repository;
-    }
-
-    public IBundleRepository createRepository(String id, Properties preferences)
-    {
-        if (repository == null)
-        {
-            repository = new WorkspaceRepository(id);
-            ResourcesPlugin.getWorkspace().addResourceChangeListener(repository,
-                WorkspaceRepository.EVENT_MASKS);
-        }
-        return repository;
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryConfig.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryConfig.java
deleted file mode 100644
index 72fdd56..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryConfig.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.internal.model.repository.RepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-
-/**
- * @author dave
- *
- */
-public abstract class AbstractEclipseRepositoryConfig implements IRepositoryConfig
-{
-
-    protected abstract IRepositoryConfig[] getConfigs();
-    
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getAllRepositories()
-     */
-    public List<String> getAllRepositories()
-    {
-        ArrayList<String> list = new ArrayList<String>();
-        for (IRepositoryConfig c : getConfigs()) {
-            list.addAll(c.getAllRepositories());
-        }
-        list.addAll(readRepositoryNames());
-        return list;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getRepositoryConfig(java.lang.String)
-     */
-    public Properties getRepositoryConfig(String name)
-    {
-        Properties props = null;
-        for(IRepositoryConfig c : getConfigs()) {
-            props = c.getRepositoryConfig(name);
-            if ( props != null ) {
-                if ( !props.containsKey(RepositoryModel.NAME)) {
-                    props.setProperty(RepositoryModel.NAME, name);
-                }
-                break;
-            }
-        }
-        if ( props == null ) {
-            props = readRepositoryConfig(name);
-        }
-        return props;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getRepositoryDefinition(java.lang.String)
-     */
-    public URI getRepositoryDefinition(String name)
-    {
-        URI def = null;
-        for(IRepositoryConfig c : getConfigs()) {
-            def = c.getRepositoryDefinition(name);
-            if ( def != null ) {
-                break;
-            }
-        }
-        if ( def == null ) {
-            if ( readRepositoryNames().contains(name) ) {
-                def = URI.create("sigil:eclipse:preferences");
-            }
-        }
-        return def;
-    }
-
-    /**
-     * @return
-     */
-    static List<String> readRepositoryNames()
-    {
-        List<IRepositoryModel> models = findRepositories();
-        ArrayList<String> repos = new ArrayList<String>(models.size());
-        for (IRepositoryModel repo : models)
-        {
-            String id = repo.getId();
-            repos.add(id);
-        }
-        
-        return repos;
-    }
-
-    static Properties readRepositoryConfig(String name) {
-        for (IRepositoryModel repo : findRepositories())
-        {
-            String id = repo.getId();
-            if ( name.equals(id) ) {
-                return repo.getProperties();
-            }
-        }
-        
-        // ok not found
-        return null;
-    }
-    
-    private static final List<IRepositoryModel> findRepositories()
-    {
-        return SigilCore.getRepositoryPreferences().loadRepositories();
-    }    
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryManager.java
deleted file mode 100644
index 42bb193..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/AbstractEclipseRepositoryManager.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.repository.AbstractRepositoryManager;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.EclipseRepositoryFactory.EclipseRepositoryProviderWrapper;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * @author dave
- *
- */
-public abstract class AbstractEclipseRepositoryManager extends AbstractRepositoryManager implements IPropertyChangeListener
-{
-    private final IRepositoryConfig config;
-    private final IRepositoryCache repositoryCache;
-    
-    public AbstractEclipseRepositoryManager(IRepositoryConfig config, IRepositoryCache repositoryMap)
-    {
-        super(config);
-        this.config = config;
-        this.repositoryCache = repositoryMap;
-    }
-    
-    public IRepositoryConfig getConfig() {
-        return config;
-    }
-    
-    @Override
-    public void initialise()
-    {
-        super.initialise();
-        SigilCore.getDefault().getPreferenceStore().addPropertyChangeListener(this);
-    }
-
-    public void destroy()
-    {
-        IPreferenceStore prefs = SigilCore.getDefault().getPreferenceStore();
-        if (prefs != null)
-        {
-            prefs.removePropertyChangeListener(this);
-        }
-    }    
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.repository.AbstractRepositoryManager#loadRepositories()
-     */
-    @Override
-    protected void loadRepositories()
-    {
-        List<IBundleRepository> list = new ArrayList<IBundleRepository>();
-        scanRepositories(config.getRepositoryPath(), list);
-        setRepositories(list.toArray(new IBundleRepository[list.size()]));
-    }
-    
-    /**
-     * @param list 
-     * @param config2
-     * @param i
-     */
-    private void scanRepositories(List<String> path, List<IBundleRepository> list)
-    {
-        for (String name : path)
-        {
-            if ( IRepositoryConfig.WILD_CARD.equals(name) ) {
-                HashSet<String> defined = new HashSet<String>();
-                for (String n : path) {
-                    if (!IRepositoryConfig.WILD_CARD.equals(n)) {
-                        defined.add(n);
-                    }
-                }
-                List<String> subpath = new LinkedList<String>();
-                for (String key : config.getAllRepositories()) {
-                    if (!defined.contains(key))
-                    {
-                        subpath.add(key);
-                    }
-                }
-                scanRepositories(subpath, list);
-            }
-            else {
-                Properties props = config.getRepositoryConfig(name);
-                if (props != null) {
-                    String def = config.getRepositoryDefinition(name).toString();
-                    IBundleRepository repo = buildRepository(def, name, props);
-                    if ( repo != null ) {
-                        // filter singletons but maintain order
-                        if ( !list.contains(repo) ) {
-                            list.add(repo);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * @param repo
-     * @return 
-     */
-    private IBundleRepository buildRepository(String def, String name, Properties repo)
-    {
-        String disabled = repo.getProperty("disabled", "false");
-        if (Boolean.parseBoolean(disabled.trim())) return null;
-        
-        String optStr = repo.getProperty("optional", "false");
-        boolean optional = Boolean.parseBoolean(optStr.trim());
-
-        String alias = repo.getProperty(IRepositoryConfig.REPOSITORY_PROVIDER);
-        if (alias == null)
-        {
-            String msg = "provider not specified for repository: " + def + "->" + name;
-            
-            if (optional)            
-                SigilCore.log(msg);
-            else
-                SigilCore.warn(msg);
-            
-            return null;
-        }
-
-        try
-        {
-            EclipseRepositoryProviderWrapper wrapper = EclipseRepositoryFactory.getProvider(alias);
-            String uid = wrapper.getType().isDynamic() ? def + "#" + name : wrapper.getType().getId();
-            IBundleRepository repository = repositoryCache.getRepository(uid, repo, wrapper);
-            return repository;
-        }
-        catch (Exception e)
-        {
-            String msg = "failed to create repository: ";
-            
-            if (optional)            
-                SigilCore.log(msg + e);
-            else
-                SigilCore.warn(msg, e);
-        }
-        
-        return null;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-     */
-    public void propertyChange(PropertyChangeEvent event)
-    {
-        if (event.getProperty().equals("repository.order"))
-        {
-            loadRepositories();
-        }
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseBundleRepository.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseBundleRepository.java
deleted file mode 100644
index 68f9263..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseBundleRepository.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.HashSet;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IBundleRepositoryListener;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.eclipse.internal.model.repository.RepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-
-/**
- * @author dave
- *
- */
-public class EclipseBundleRepository extends AbstractBundleRepository implements IEclipseBundleRepository
-{
-    
-    private final IRepositoryProvider provider;
-    private final Properties properties;
-    private final IRepositoryType type;
-    
-    private final HashSet<IBundleRepositoryListener> listeners = new HashSet<IBundleRepositoryListener>();
-    
-    private Exception exception;
-    private IBundleRepository delegate;
-
-    /**
-     * @param provider
-     * @param type 
-     * @param id
-     * @param properties
-     */
-    public EclipseBundleRepository(IRepositoryProvider provider, IRepositoryType type, String id, Properties properties)
-    {
-        super(id);
-        this.provider = provider;
-        this.type = type;
-        this.properties = properties;
-    }
-    
-    private synchronized IBundleRepository getDelegate() {
-        if (delegate == null && exception == null) {
-            try
-            {
-                delegate = provider.createRepository(getId(), properties);
-                for (IBundleRepositoryListener listener : listeners) {
-                    delegate.addBundleRepositoryListener(listener);
-                }
-                exception = null;
-            }
-            catch (Exception e)
-            {
-                delegate = null;
-                exception = e;
-            }
-        }
-        
-        return delegate;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.repository.IBundleRepository#accept(org.apache.felix.sigil.common.repository.IRepositoryVisitor, int)
-     */
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        IBundleRepository delegate = getDelegate();
-        if ( delegate != null ) {
-            delegate.accept(visitor, options);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.repository.IBundleRepository#addBundleRepositoryListener(org.apache.felix.sigil.common.repository.IBundleRepositoryListener)
-     */
-    public synchronized void addBundleRepositoryListener(IBundleRepositoryListener listener)
-    {
-        IBundleRepository delegate = getDelegate();
-        if ( delegate != null ) {
-            delegate.addBundleRepositoryListener(listener);
-        }
-        else {
-            listeners.add(listener);
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.repository.IBundleRepository#removeBundleRepositoryListener(org.apache.felix.sigil.common.repository.IBundleRepositoryListener)
-     */
-    public synchronized void removeBundleRepositoryListener(IBundleRepositoryListener listener)
-    {
-        IBundleRepository delegate = getDelegate();
-        if ( delegate != null ) {
-            delegate.removeBundleRepositoryListener(listener);
-        }
-        else {
-            listeners.remove(listener);
-        }
-    }    
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.repository.IBundleRepository#refresh()
-     */
-    public void refresh()
-    {
-        IBundleRepository delegate = getDelegate();
-        if ( delegate == null ) {
-            exception = null;
-            getDelegate();
-        }
-        else {
-            delegate.refresh();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.internal.repository.manager.IEclipseBundleRepository#getModel()
-     */
-    public IRepositoryModel getModel()
-    {
-        return new RepositoryModel(getId(), type, properties, exception);
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseRepositoryFactory.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseRepositoryFactory.java
deleted file mode 100644
index 65f65c8..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/EclipseRepositoryFactory.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.internal.model.repository.ExtensionUtils;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-import org.eclipse.core.runtime.CoreException;
-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.Platform;
-
-/**
- * @author dave
- *
- */
-public class EclipseRepositoryFactory
-{
-
-    static class EclipseRepositoryProviderWrapper implements IRepositoryProvider {
-        private final IRepositoryProvider delegate;
-        private final IRepositoryType type;
-
-        /**
-         * @param provider
-         * @param type 
-         */
-        public EclipseRepositoryProviderWrapper(IRepositoryProvider provider, IRepositoryType type)
-        {
-            this.delegate = provider;
-            this.type = type;
-        }
-
-        /* (non-Javadoc)
-         * @see org.apache.felix.sigil.common.repository.IRepositoryProvider#createRepository(java.lang.String, java.util.Properties)
-         */
-        public IBundleRepository createRepository(String id, Properties properties)
-        {
-            return new EclipseBundleRepository(delegate, type, id, properties);
-        }
-        
-        public IRepositoryType getType() {
-            return type;
-        }
-    }
-    /**
-     * @param alias
-     * @return
-     */
-    public static EclipseRepositoryProviderWrapper getProvider(String alias)
-    throws CoreException
-    {
-        IExtensionRegistry registry = Platform.getExtensionRegistry();
-        IExtensionPoint p = registry.getExtensionPoint(SigilCore.REPOSITORY_PROVIDER_EXTENSION_POINT_ID);
-
-        for (IExtension e : p.getExtensions())
-        {
-            for (IConfigurationElement c : e.getConfigurationElements())
-            {
-                if (alias.equals(c.getAttribute("alias")))
-                {
-                    IRepositoryProvider provider = (IRepositoryProvider) c.createExecutableExtension("class");
-                    IRepositoryType type = ExtensionUtils.toRepositoryType(e, c);
-                    return new EclipseRepositoryProviderWrapper(provider, type);
-                }
-            }
-        }
-
-        return null;
-    }
-    
-    
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryConfig.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryConfig.java
deleted file mode 100644
index b5ed778..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryConfig.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author dave
- *
- */
-public class GlobalRepositoryConfig extends AbstractEclipseRepositoryConfig
-{
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getRepositoryPath()
-     */
-    public List<String> getRepositoryPath()
-    {
-        return Collections.singletonList(IRepositoryConfig.WILD_CARD);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.internal.repository.manager.AbstractEclipseRepositoryConfig#getConfigs()
-     */
-    @Override
-    protected IRepositoryConfig[] getConfigs()
-    {
-        ArrayList<IRepositoryConfig> list = new ArrayList<IRepositoryConfig>(); 
-        for (ISigilProjectModel p : SigilCore.getRoot().getProjects() ) {
-            try
-            {
-                IRepositoryConfig c = p.getRepositoryConfig();
-                list.add( c );
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to read repository config", e);
-            }            
-        }
-        return list.toArray( new IRepositoryConfig[list.size()] );
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryManager.java
deleted file mode 100644
index 1aa8110..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/GlobalRepositoryManager.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-/**
- * @author dave
- *
- */
-public class GlobalRepositoryManager extends AbstractEclipseRepositoryManager
-{
-
-    /**
-     * @param repositoryMap
-     */
-    public GlobalRepositoryManager(IRepositoryCache repositoryMap)
-    {
-        super(new GlobalRepositoryConfig(), repositoryMap);
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IEclipseBundleRepository.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IEclipseBundleRepository.java
deleted file mode 100644
index e33dc9e..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IEclipseBundleRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-
-/**
- * @author dave
- *
- */
-public interface IEclipseBundleRepository extends IBundleRepository
-{
-    IRepositoryModel getModel();
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IRepositoryCache.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IRepositoryCache.java
deleted file mode 100644
index dadf8d1..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/IRepositoryCache.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.Collection;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-/**
- * @author dave
- *
- */
-public interface IRepositoryCache
-{
-    /**
-     * @param sponsor
-     * @param uid
-     * @param props
-     * @param instance
-     * @return
-     * @throws RepositoryException
-     */
-    IBundleRepository getRepository(String uid, Properties props,
-        IRepositoryProvider instance) throws RepositoryException;
-
-    /**
-     * @param flush
-     */
-    void discard(Collection<String> ids);
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryConfig.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryConfig.java
deleted file mode 100644
index 3cdfc8e..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryConfig.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.List;
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-
-/**
- * @author dave
- *
- */
-public class ProjectRepositoryConfig extends AbstractEclipseRepositoryConfig
-{
-
-    private final IRepositoryConfig projectConfig;
-    
-    public ProjectRepositoryConfig(IRepositoryConfig projectConfig) {
-        this.projectConfig = projectConfig;
-    }
-    
-    protected IRepositoryConfig[] getConfigs() {
-        return new IRepositoryConfig[] { projectConfig };
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.config.IRepositoryConfig#getRepositoryPath()
-     */
-    public List<String> getRepositoryPath()
-    {
-        return projectConfig.getRepositoryPath();
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryManager.java
deleted file mode 100644
index 895617b..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/ProjectRepositoryManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author dave
- *
- */
-public class ProjectRepositoryManager extends AbstractEclipseRepositoryManager
-{
-    /**
-     * @param model
-     * @param repositoryMap2 
-     * @throws CoreException 
-     */
-    public ProjectRepositoryManager(ISigilProjectModel model, IRepositoryCache repositoryMap) throws CoreException
-    {
-        super(new ProjectRepositoryConfig(model.getRepositoryConfig()), repositoryMap);
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/RepositoryCache.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/RepositoryCache.java
deleted file mode 100644
index 895eaba..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/repository/manager/RepositoryCache.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.internal.repository.manager;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-public class RepositoryCache implements IRepositoryCache
-{
-    public static class RepositoryStore
-    {
-        public final Properties pref;
-        public final IBundleRepository repo;
-
-        public RepositoryStore(Properties pref, IBundleRepository repo)
-        {
-            this.pref = pref;
-            this.repo = repo;
-        }
-    }
-
-    private HashMap<String, RepositoryStore> cachedRepositories = new HashMap<String, RepositoryStore>();
-
-    public synchronized void retainAll(Collection<String> ids)
-    {
-        for (Iterator<String> i = cachedRepositories.keySet().iterator(); i.hasNext();)
-        {
-            if (!ids.contains(i.next()))
-            {
-                i.remove();
-            }
-        }
-    }
-
-    public IBundleRepository getRepository(String uid, Properties pref,
-        IRepositoryProvider provider) throws RepositoryException
-    {
-        try
-        {
-            if (pref == null)
-            {
-                pref = new Properties();
-            }
-
-            RepositoryStore cache = get(uid);
-
-            if (cache == null || !cache.pref.equals(pref))
-            {
-                IBundleRepository repo = provider.createRepository(uid, pref);
-                cache = new RepositoryStore(pref, repo);
-                put(uid, cache);
-            }
-
-            return cache.repo;
-        }
-        catch (RuntimeException e)
-        {
-            throw new RepositoryException("Failed to build repositories", e);
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.eclipse.internal.repository.manager.IRepositoryCache#discard(java.util.Collection)
-     */
-    public void discard(Collection<String> ids)
-    {
-        cachedRepositories.keySet().removeAll(ids);
-    }
-    
-
-    private RepositoryStore get(String id)
-    {
-        return cachedRepositories.get(id);
-    }
-
-    private void put(String id, RepositoryStore cache)
-    {
-        cachedRepositories.put(id, cache);
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/ProjectResourceListener.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/ProjectResourceListener.java
deleted file mode 100644
index 340d560..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/ProjectResourceListener.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.eclipse.internal.resources;
-
-import java.util.LinkedList;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.job.ResolveProjectsJob;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-public class ProjectResourceListener implements IResourceChangeListener
-{
-    public static final int EVENT_MASKS = IResourceChangeEvent.PRE_DELETE
-        | IResourceChangeEvent.POST_CHANGE;
-    private final SigilProjectManager projectManager;
-
-    public ProjectResourceListener(SigilProjectManager projectManager)
-    {
-        this.projectManager = projectManager;
-    }
-
-    public void resourceChanged(IResourceChangeEvent event)
-    {
-        try
-        {
-            switch (event.getType())
-            {
-                case IResourceChangeEvent.PRE_REFRESH:
-                    handleRefresh(event);
-                    break;
-                case IResourceChangeEvent.PRE_DELETE:
-                    handlePreDelete(event);
-                    break;
-                case IResourceChangeEvent.POST_CHANGE:
-                    handlePostChange(event);
-                    break;
-            }
-
-            handleUpdate();
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to process resource change", e);
-        }
-    }
-
-    private void handleUpdate()
-    {
-        if (capabilities.size() > 0)
-        {
-            final LinkedList<ICapabilityModelElement> changes = new LinkedList<ICapabilityModelElement>(
-                capabilities);
-            capabilities.clear();
-
-            ResolveProjectsJob job = new ResolveProjectsJob(
-                ResourcesPlugin.getWorkspace(), changes);
-            job.schedule();
-        }
-    }
-
-    private void handleRefresh(IResourceChangeEvent event) throws CoreException
-    {
-        IResourceDelta delta = event.getDelta();
-        if (delta != null)
-        {
-            delta.accept(new IResourceDeltaVisitor()
-            {
-                public boolean visit(IResourceDelta delta) throws CoreException
-                {
-                    IResource resource = delta.getResource();
-                    if (resource instanceof IProject)
-                    {
-                        IProject project = (IProject) resource;
-                        if (SigilCore.isSigilProject(project))
-                        {
-                            readCapabilities(project);
-                        }
-                        // Recurse no more
-                        return false;
-                    }
-                    return true;
-                }
-            });
-        }
-    }
-
-    private LinkedList<ICapabilityModelElement> capabilities = new LinkedList<ICapabilityModelElement>();
-
-    private void handlePostChange(IResourceChangeEvent event) throws CoreException
-    {
-        IResourceDelta delta = event.getDelta();
-        if (delta != null)
-        {
-            delta.accept(new IResourceDeltaVisitor()
-            {
-                public boolean visit(IResourceDelta delta) throws CoreException
-                {
-                    IResource resource = delta.getResource();
-                    if (resource instanceof IProject)
-                    {
-                        IProject project = (IProject) resource;
-                        if (SigilCore.isSigilProject(project))
-                        {
-                            switch (delta.getKind())
-                            {
-                                case IResourceDelta.REMOVED:
-                                case IResourceDelta.ADDED:
-                                    readCapabilities(project);
-                                    break;
-                            }
-                        }
-                        // Recurse no more
-                        return false;
-                    }
-                    return true;
-                }
-            });
-        }
-    }
-
-    protected void handlePreDelete(IResourceChangeEvent event) throws CoreException
-    {
-        IResource resource = event.getResource();
-        if (resource instanceof IProject)
-        {
-            IProject project = (IProject) resource;
-            if (SigilCore.isSigilProject(project))
-            {
-                readCapabilities(project);
-                projectManager.flushSigilProject(project);
-            }
-        }
-    }
-
-    private void readCapabilities(IProject project) throws CoreException
-    {
-        ISigilProjectModel sigil = SigilCore.create(project);
-        sigil.visit(new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof ICapabilityModelElement)
-                {
-                    capabilities.add((ICapabilityModelElement) element);
-                }
-                return true;
-            }
-        });
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/SigilProjectManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/SigilProjectManager.java
deleted file mode 100644
index 9af30af..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/resources/SigilProjectManager.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.eclipse.internal.resources;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.internal.model.project.SigilProject;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.ProjectRepositoryManager;
-import org.apache.felix.sigil.eclipse.internal.repository.manager.IRepositoryCache;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-
-public class SigilProjectManager
-{
-    private final HashMap<IProject, ISigilProjectModel> projects = new HashMap<IProject, ISigilProjectModel>();
-    private final HashMap<ISigilProjectModel, ProjectRepositoryManager> repositoryManagers = new HashMap<ISigilProjectModel, ProjectRepositoryManager>();    
-    private final IRepositoryCache repositoryCache;
-    
-    public SigilProjectManager(IRepositoryCache repositoryCache) {
-        this.repositoryCache = repositoryCache;
-    }
-
-    public ISigilProjectModel getSigilProject(IProject project) throws CoreException
-    {
-        if (project.hasNature(SigilCore.NATURE_ID))
-        {
-            ISigilProjectModel p = null;
-            synchronized (projects)
-            {
-                p = projects.get(project);
-                if (p == null)
-                {
-                    p = new SigilProject(project);
-                    projects.put(project, p);
-                }
-            }
-            return p;
-        }
-        else
-        {
-            throw SigilCore.newCoreException("Project " + project.getName()
-                + " is not a sigil project", null);
-        }
-    }
-
-    public void flushSigilProject(IProject project)
-    {
-        synchronized (projects)
-        {
-            ISigilProjectModel model = projects.remove(project);
-            ArrayList<String> flush = new ArrayList<String>();
-            if ( model != null ) {
-                ProjectRepositoryManager manager = repositoryManagers.remove(model);
-                manager.destroy();
-                for(IBundleRepository rep : manager.getRepositories()) {
-                    flush.add(rep.getId());
-                }
-            }
-            
-            for (ProjectRepositoryManager manager : repositoryManagers.values()) {
-                for(IBundleRepository rep : manager.getRepositories()) {
-                    flush.remove(rep.getId());
-                }
-            }
-            
-            repositoryCache.discard(flush);
-        }
-    }
-
-    /**
-     * @param model
-     * @param repositoryCache 
-     * @throws CoreException 
-     */
-    public IRepositoryManager getRepositoryManager(ISigilProjectModel model) throws CoreException
-    {
-        synchronized( projects ) {
-            ProjectRepositoryManager manager = repositoryManagers.get(model);
-            
-            if ( manager == null ) {
-                manager = new ProjectRepositoryManager(model, repositoryCache);                
-                repositoryManagers.put(model, manager);
-            }
-            
-            return manager;
-        }
-    }
-
-    /**
-     * 
-     */
-    public synchronized void destroy()
-    {
-        for(ProjectRepositoryManager man : repositoryManagers.values()) {
-            man.destroy();
-        }
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ResolveProjectsJob.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ResolveProjectsJob.java
deleted file mode 100644
index fcec425..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ResolveProjectsJob.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.job;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-
-public class ResolveProjectsJob extends WorkspaceJob
-{
-    private final Collection<ISigilProjectModel> sigilProjects;
-    private final LinkedList<ICapabilityModelElement> capabilities;
-
-    public ResolveProjectsJob(IWorkspace workspace)
-    {
-        super("Resolving Sigil projects");
-        setRule(workspace.getRoot());
-        sigilProjects = SigilCore.getRoot().getProjects();
-        capabilities = null;
-    }
-
-    public ResolveProjectsJob(IWorkspace workspace, LinkedList<ICapabilityModelElement> capabilities)
-    {
-        super("Resolving Sigil projects");
-        this.capabilities = capabilities;
-        setRule(workspace.getRoot());
-        sigilProjects = SigilCore.getRoot().getProjects();
-    }
-
-    public ResolveProjectsJob(ISigilProjectModel project)
-    {
-        super("Resolving Sigil project");
-        setRule(project.getProject().getWorkspace().getRoot());
-        sigilProjects = Collections.singleton(project);
-        capabilities = null;
-    }
-
-    @Override
-    public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException
-    {
-        MultiStatus status = new MultiStatus(SigilCore.PLUGIN_ID, 0,
-            "Error resolving Sigil projects", null);
-
-        boolean flush = sigilProjects.size() > 0;
-
-        for (ISigilProjectModel sigilProject : sigilProjects)
-        {
-            try
-            {
-                if (isDependent(sigilProject))
-                {
-                    if (flush)
-                        sigilProject.flushDependencyState();
-                    sigilProject.rebuildDependencies(monitor);
-                }
-            }
-            catch (CoreException e)
-            {
-                status.add(e.getStatus());
-            }
-        }
-
-        return status;
-    }
-
-    private boolean isDependent(ISigilProjectModel sigilProject)
-    {
-        // fix for FELIX-2574
-        if (!sigilProject.exists()) return false;
-        
-        if (capabilities == null)
-        {
-            return true;
-        }
-        else
-        {
-            ISigilBundle b = sigilProject.getBundle();
-            if (b == null)
-            {
-                // sigil project deleted can't be a dependent
-                return false;
-            }
-            else
-            {
-                final boolean[] dep = new boolean[1];
-
-                b.visit(new IModelWalker()
-                {
-                    public boolean visit(IModelElement element)
-                    {
-                        if (element instanceof IRequirementModelElement)
-                        {
-                            IRequirementModelElement r = (IRequirementModelElement) element;
-
-                            for (ICapabilityModelElement c : capabilities)
-                            {
-                                if (r.accepts(c))
-                                {
-                                    dep[0] = true;
-                                    break;
-                                }
-                            }
-                        }
-                        // found a dependency stop walking
-                        return !dep[0];
-                    }
-                });
-
-                return dep[0];
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ThreadProgressMonitor.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ThreadProgressMonitor.java
deleted file mode 100644
index 033ba92..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/job/ThreadProgressMonitor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.job;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class ThreadProgressMonitor
-{
-    private static ThreadLocal<IProgressMonitor> local = new ThreadLocal<IProgressMonitor>();
-
-    public static void setProgressMonitor(IProgressMonitor monitor)
-    {
-        local.set(monitor);
-    }
-
-    public static IProgressMonitor getProgressMonitor()
-    {
-        return local.get();
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilModelRoot.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilModelRoot.java
deleted file mode 100644
index 6d262aa..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilModelRoot.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.project;
-
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public interface ISigilModelRoot
-{
-    List<ISigilProjectModel> getProjects();
-
-    Set<ISigilProjectModel> resolveDependentProjects(
-        Collection<ICapabilityModelElement> caps, IProgressMonitor monitor);
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
deleted file mode 100644
index a57f098..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.project;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.JavaModelException;
-import org.osgi.framework.Version;
-
-/**
- * Represents a sigil project. To get a reference to a ISigilProjectModel you can use the 
- * helper method {@link BldCore#create(IProject)}.
- * 
- * @author dave
- *
- */
-public interface ISigilProjectModel extends ICompoundModelElement
-{
-
-    /**
-     * @return
-     */
-    IProject getProject();
-
-    // shortcut to getProject().getName()
-    String getName();
-
-    /**
-     * 
-     * @param monitor
-     *            The progress monitor to use for reporting progress to the
-     *            user. It is the caller's responsibility to call done() on the
-     *            given monitor. Accepts null, indicating that no progress
-     *            should be reported and that the operation cannot be cancelled
-     * @throws CoreException
-     */
-    void save(IProgressMonitor monitor) throws CoreException;
-
-    /**
-     * Save the project and optionally rebuildDependencies
-     * @param monitor
-     * @param rebuildDependencies
-     * @throws CoreException
-     */
-    void save(IProgressMonitor monitor, boolean rebuildDependencies) throws CoreException;
-
-    void rebuildDependencies(IProgressMonitor monitor) throws CoreException;
-
-    void flushDependencyState();
-
-    /**
-     * @return
-     */
-    Version getVersion();
-
-    String getSymbolicName();
-
-    ISigilBundle getBundle();
-
-    void setBundle(ISigilBundle bundle);
-
-    /**
-     * @return
-     */
-    IJavaProject getJavaModel();
-
-    void resetClasspath(IProgressMonitor monitor, boolean forceResolve) throws CoreException;
-
-    IPath findBundleLocation() throws CoreException;
-
-    IModelElement findImport(String packageName, IProgressMonitor monitor);
-
-    boolean isInClasspath(String packageName, IProgressMonitor monitor)
-        throws CoreException;
-
-    boolean isInClasspath(ISigilBundle bundle);
-
-    boolean isInBundleClasspath(IPackageFragment root) throws JavaModelException;
-
-    IPath findOutputLocation() throws CoreException;
-
-    IBldProject getBldProject() throws CoreException;
-
-    /**
-     * @return
-     */
-    IRepositoryConfig getRepositoryConfig() throws CoreException;
-    
-    Collection<IClasspathEntry> findExternalClasspath(IProgressMonitor monitor)
-        throws CoreException;
-
-    /**
-     * @return
-     * @throws CoreException 
-     */
-    IRepositoryManager getRepositoryManager();
-
-    /**
-     * @return
-     */
-    boolean exists();
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryModel.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryModel.java
deleted file mode 100644
index 27d9723..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryModel.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.repository;
-
-import java.util.Properties;
-
-public interface IRepositoryModel
-{
-    String getId();
-
-    String getName();
-
-    Properties getProperties();
-
-    IRepositoryType getType();
-    
-    Throwable getProblem();
-}
\ No newline at end of file
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryPreferences.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryPreferences.java
deleted file mode 100644
index de40e56..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryPreferences.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.repository;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-public interface IRepositoryPreferences
-{
-    List<IRepositoryModel> loadRepositories();
-
-    void saveRepositories(List<IRepositoryModel> repositories) throws CoreException;
-
-    List<IRepositoryType> loadRepositoryTypes();
-    
-    IPreferenceStore toPreferenceStore(IRepositoryModel model);
-
-    IRepositoryModel newRepositoryElement(IRepositoryType type);
-}
\ No newline at end of file
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryType.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryType.java
deleted file mode 100644
index e1e4987..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/repository/IRepositoryType.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.repository;
-
-import org.eclipse.swt.graphics.Image;
-
-public interface IRepositoryType
-{
-
-    String getName();
-
-    String getId();
-
-    Image getIcon();
-
-    boolean isDynamic();
-
-    String getProvider();
-}
\ No newline at end of file
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/Grep.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/Grep.java
deleted file mode 100644
index 01faa5c..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/Grep.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.util;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.nio.CharBuffer;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-public class Grep
-{
-
-    // Pattern used to parse lines
-    private static Pattern linePattern = Pattern.compile(".*\r?\n");
-
-    // The input pattern that we're looking for
-    private Pattern pattern;
-
-    private CharBuffer cb;
-
-    private FileChannel fc;
-
-    private Grep(IFile f, Pattern pattern) throws IOException, CoreException
-    {
-        this.pattern = pattern;
-        cb = openBuffer(f);
-    }
-
-    private CharBuffer openBuffer(IFile f) throws IOException, CoreException
-    {
-        Charset charset = Charset.forName(f.getCharset());
-        CharsetDecoder decoder = charset.newDecoder();
-        // Open the file and then get a channel from the stream
-        FileInputStream fis = new FileInputStream(f.getLocation().toFile());
-        fc = fis.getChannel();
-
-        // Get the file's size and then map it into memory
-        int sz = (int) fc.size();
-        MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sz);
-
-        // Decode the file into a char buffer
-        return decoder.decode(bb);
-    }
-
-    public static String[] grep(Pattern pattern, IFile... files) throws CoreException
-    {
-        LinkedList<String> matches = new LinkedList<String>();
-        for (IFile f : files)
-        {
-            try
-            {
-                Grep g = new Grep(f, pattern);
-                g.grep(matches);
-                g.close();
-            }
-            catch (IOException e)
-            {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-        }
-        return matches.toArray(new String[matches.size()]);
-    }
-
-    private void close() throws IOException
-    {
-        fc.close();
-    }
-
-    // Use the linePattern to break the given CharBuffer into lines, applying
-    // the input pattern to each line to see if we have a match
-    //
-    private void grep(List<String> matches)
-    {
-        Matcher lm = linePattern.matcher(cb); // Line matcher
-        Matcher pm = null; // Pattern matcher
-        int lines = 0;
-        while (lm.find())
-        {
-            lines++;
-            CharSequence cs = lm.group(); // The current line
-            if (pm == null)
-                pm = pattern.matcher(cs);
-            else
-                pm.reset(cs);
-            if (pm.find())
-                matches.add(pm.group());
-            if (lm.end() == cb.limit())
-                break;
-        }
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/JavaHelper.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/JavaHelper.java
deleted file mode 100644
index ba1b938..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/JavaHelper.java
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.common.config.Resource;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.apache.felix.sigil.eclipse.PathUtil;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.progress.ProgressAdapter;
-import org.apache.felix.sigil.eclipse.repository.ResolutionMonitorAdapter;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.IAccessRule;
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.IClassFile;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IImportDeclaration;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.ILocalVariable;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IParent;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.ITypeRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.Signature;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class JavaHelper
-{
-
-    public static final IAccessRule DENY_RULE = JavaCore.newAccessRule(new Path("**"),
-        IAccessRule.K_NON_ACCESSIBLE | IAccessRule.IGNORE_IF_BETTER);
-
-    public static final IAccessRule ALLOW_ALL_RULE = JavaCore.newAccessRule(
-        new Path("**"), IAccessRule.K_ACCESSIBLE);
-
-    private static Map<String, Collection<IClasspathEntry>> entryCache = new HashMap<String, Collection<IClasspathEntry>>();
-
-    public static Collection<IClasspathEntry> findClasspathEntries(ISigilBundle bundle)
-    {
-        LinkedList<IClasspathEntry> cp = new LinkedList<IClasspathEntry>();
-
-        ISigilProjectModel sp = bundle.getAncestor(ISigilProjectModel.class);
-
-        if (sp != null)
-        {
-            IJavaProject p = sp.getJavaModel();
-
-            for (String enc : bundle.getClasspathEntrys())
-            {
-                IClasspathEntry e = p.decodeClasspathEntry(enc);
-                if (e != null)
-                {
-                    cp.add(e);
-                }
-            }
-        }
-
-        return cp;
-    }
-
-    public static Collection<ICompilationUnit> findCompilationUnits(
-        ISigilProjectModel project) throws JavaModelException
-    {
-        LinkedList<ICompilationUnit> ret = new LinkedList<ICompilationUnit>();
-
-        IJavaProject java = project.getJavaModel();
-        for (IClasspathEntry cp : findClasspathEntries(project.getBundle()))
-        {
-            IPackageFragmentRoot[] roots = java.findPackageFragmentRoots(cp);
-            for (IPackageFragmentRoot rt : roots)
-            {
-                for (IJavaElement j : rt.getChildren())
-                {
-                    IPackageFragment p = (IPackageFragment) j;
-                    ICompilationUnit[] units = p.getCompilationUnits();
-                    for (ICompilationUnit u : units)
-                    {
-                        ret.add(u);
-                    }
-                }
-            }
-        }
-
-        return ret;
-    }
-
-    /**
-     * @param project 
-     * @param packageName
-     * @return
-     */
-    public static Collection<IPackageExport> findExportsForPackage(
-        ISigilProjectModel project, final String packageName)
-    {
-        final LinkedList<IPackageExport> results = new LinkedList<IPackageExport>();
-
-        project.getRepositoryManager().visit(new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof IPackageExport)
-                {
-                    IPackageExport e = (IPackageExport) element;
-                    if (e.getPackageName().equals(packageName))
-                    {
-                        results.add(e);
-                    }
-                }
-                return true;
-            }
-        });
-
-        return results;
-    }
-
-    public static String[] findUses(String packageName, ISigilProjectModel projectModel)
-        throws CoreException
-    {
-        ArrayList<String> uses = new ArrayList<String>();
-
-        for (final String dependency : findPackageDependencies(packageName, projectModel))
-        {
-            if (!dependency.equals(packageName))
-            {
-                final boolean[] found = new boolean[1];
-
-                projectModel.visit(new IModelWalker()
-                {
-
-                    public boolean visit(IModelElement element)
-                    {
-                        if (element instanceof IPackageImport)
-                        {
-                            IPackageImport pi = (IPackageImport) element;
-                            if (pi.getPackageName().equals(dependency))
-                            {
-                                found[0] = true;
-                            }
-                        }
-                        return !found[0];
-                    }
-                });
-
-                if (found[0])
-                {
-                    uses.add(dependency);
-                }
-            }
-        }
-
-        return uses.toArray(new String[uses.size()]);
-    }
-
-    private static String[] findPackageDependencies(String packageName,
-        ISigilProjectModel projectModel) throws CoreException
-    {
-        HashSet<String> imports = new HashSet<String>();
-
-        IPackageFragment p = (IPackageFragment) projectModel.getJavaModel().findElement(
-            new Path(packageName.replace('.', '/')));
-
-        if (p == null)
-        {
-            throw SigilCore.newCoreException("Unknown package " + packageName, null);
-        }
-        for (ICompilationUnit cu : p.getCompilationUnits())
-        {
-            scanImports(cu, imports);
-        }
-        for (IClassFile cf : p.getClassFiles())
-        {
-            scanImports(cf, imports);
-        }
-
-        return imports.toArray(new String[imports.size()]);
-    }
-
-    /**
-     * @param project
-     * @param monitor
-     * @return
-     */
-    public static List<IPackageImport> findRequiredImports(ISigilProjectModel project,
-        IProgressMonitor monitor)
-    {
-        LinkedList<IPackageImport> imports = new LinkedList<IPackageImport>();
-        Set<String> names = findJavaImports(project, monitor);
-        if ( !monitor.isCanceled() ) {
-            for (String packageName : names)
-            {
-                if (!ProfileManager.isBootDelegate(project, packageName))
-                { // these must come from boot classloader
-                    try
-                    {
-                        if (!project.isInClasspath(packageName, monitor))
-                        {
-                            Collection<IPackageExport> exports = findExportsForPackage(
-                                project, packageName);
-                            if (!exports.isEmpty())
-                            {
-                                imports.add(select(exports));
-                            }
-                        }
-                    }
-                    catch (CoreException e)
-                    {
-                        SigilCore.error("Failed to check classpath", e);
-                    }
-                }
-            }
-        }
-        return imports;
-    }
-
-    /**
-     * @param project
-     * @param monitor
-     * @return
-     */
-    public static Collection<IModelElement> findUnusedReferences(
-        final ISigilProjectModel project, final IProgressMonitor monitor)
-    {
-        final LinkedList<IModelElement> unused = new LinkedList<IModelElement>();
-
-        final Set<String> packages = findJavaImports(project, monitor);
-
-        if (!monitor.isCanceled()) {
-            project.visit(new IModelWalker()
-            {
-                public boolean visit(IModelElement element)
-                {
-                    if (element instanceof IPackageImport)
-                    {
-                        IPackageImport pi = (IPackageImport) element;
-                        if (!packages.contains(pi.getPackageName()))
-                        {
-                            unused.add(pi);
-                        }
-                    }
-                    else if (element instanceof IRequiredBundle)
-                    {
-                        IRequiredBundle rb = (IRequiredBundle) element;
-                        IRepositoryManager manager = project.getRepositoryManager();
-                        ResolutionConfig config = new ResolutionConfig(
-                            ResolutionConfig.INCLUDE_OPTIONAL
-                                | ResolutionConfig.IGNORE_ERRORS);
-                        try
-                        {
-                            IResolution r = manager.getBundleResolver().resolve(rb, config,
-                                new ResolutionMonitorAdapter(monitor));
-                            ISigilBundle bundle = r.getProvider(rb);
-                            boolean found = false;
-                            for (IPackageExport pe : bundle.getBundleInfo().getExports())
-                            {
-                                if (packages.contains(pe.getPackageName()))
-                                {
-                                    found = true;
-                                    break;
-                                }
-                            }
-
-                            if (!found)
-                            {
-                                unused.add(rb);
-                            }
-                        }
-                        catch (ResolutionException e)
-                        {
-                            SigilCore.error("Failed to resolve " + rb, e);
-                        }
-                    }
-                    return !monitor.isCanceled();
-                }
-            });
-        }
-
-        return unused;
-    }
-
-    public static Collection<IClasspathEntry> resolveClasspathEntrys(
-        ISigilProjectModel sigil, IProgressMonitor monitor) throws CoreException
-    {
-        if (monitor == null)
-        {
-            monitor = Job.getJobManager().createProgressGroup();
-            monitor.beginTask("Resolving classpath for " + sigil.getSymbolicName(), 2);
-        }
-
-        ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-
-        ResolutionConfig config = new ResolutionConfig(ResolutionConfig.INCLUDE_OPTIONAL
-            | ResolutionConfig.IGNORE_ERRORS | ResolutionConfig.INDEXED_ONLY
-            | ResolutionConfig.LOCAL_ONLY | ResolutionConfig.COMPILE_TIME);
-
-        IResolution resolution;
-        try
-        {
-            resolution = sigil.getRepositoryManager().getBundleResolver().resolve(
-                sigil, config, new ResolutionMonitorAdapter(monitor));
-        }
-        catch (ResolutionException e)
-        {
-            throw SigilCore.newCoreException("Failed to resolve dependencies", e);
-        }
-
-        monitor.worked(1);
-
-        Set<ISigilBundle> bundles = resolution.getBundles();
-        for (ISigilBundle bundle : bundles)
-        {
-            if (!sigil.getSymbolicName().equals(bundle.getBundleInfo().getSymbolicName()))
-            { // discard self reference...
-                List<IModelElement> matched = resolution.getMatchedRequirements(bundle);
-                for (IClasspathEntry cpe : buildClassPathEntry(sigil, bundle, bundles,
-                    matched, monitor))
-                {
-                    entries.add(cpe);
-                }
-            }
-        }
-
-        Collections.sort(entries, new Comparator<IClasspathEntry>()
-        {
-            public int compare(IClasspathEntry o1, IClasspathEntry o2)
-            {
-                return o1.toString().compareTo(o2.toString());
-            }
-        });
-
-        monitor.worked(1);
-        monitor.done();
-
-        return entries;
-    }
-
-    private static Collection<IClasspathEntry> buildClassPathEntry(
-        ISigilProjectModel project, ISigilBundle provider, Set<ISigilBundle> all,
-        List<IModelElement> requirements, IProgressMonitor monitor) throws CoreException
-    {
-        IAccessRule[] rules = buildAccessRules(project, provider, all, requirements);
-        IClasspathAttribute[] attrs = new IClasspathAttribute[0];
-
-        ISigilProjectModel other = provider.getAncestor(ISigilProjectModel.class);
-
-        try
-        {
-            if (other == null)
-            {
-                provider.synchronize(new ProgressAdapter(monitor));
-                return newBundleEntry(provider, rules, attrs, false);
-            }
-            else
-            {
-                return newProjectEntry(other, rules, attrs, false);
-            }
-        }
-        catch (IOException e)
-        {
-            throw SigilCore.newCoreException("Failed to synchronize " + provider, e);
-        }
-    }
-
-    private static Collection<IClasspathEntry> newProjectEntry(ISigilProjectModel n,
-        IAccessRule[] rules, IClasspathAttribute[] attributes, boolean export)
-        throws CoreException
-    {
-        ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-        entries.add(JavaCore.newProjectEntry(n.getProject().getFullPath(), rules, false,
-            attributes, export));
-        for (IClasspathEntry e : n.getJavaModel().getRawClasspath())
-        {
-            String encoded = n.getJavaModel().encodeClasspathEntry(e);
-            if ( n.getBundle().getClasspathEntrys().contains(encoded) ) {
-                switch (e.getEntryKind())
-                {
-                    case IClasspathEntry.CPE_LIBRARY:
-                        entries.add(JavaCore.newLibraryEntry(e.getPath(),
-                            e.getSourceAttachmentPath(), e.getSourceAttachmentRootPath(),
-                            rules, attributes, export));
-                        break;
-                    case IClasspathEntry.CPE_VARIABLE:
-                        IPath path = JavaCore.getResolvedVariablePath(e.getPath());
-                        if (path != null)
-                        {
-                            IPath spath = e.getSourceAttachmentPath();
-                            if (spath != null) {
-                                spath = JavaCore.getResolvedVariablePath(spath);
-                            }
-                            
-                            entries.add(JavaCore.newLibraryEntry(path,
-                                spath, e.getSourceAttachmentRootPath(),
-                                rules, attributes, export));
-                        }
-                        break;
-                }
-            }
-        }
-
-        return entries;
-    }
-
-    private static Collection<IClasspathEntry> newBundleEntry(ISigilBundle bundle,
-        IAccessRule[] rules, IClasspathAttribute[] attributes, boolean exported)
-        throws CoreException
-    {
-        String name = bundle.getBundleInfo().getSymbolicName();
-
-        if (bundle.getBundleInfo().getVersion() != null)
-        {
-            name += "_version_" + bundle.getBundleInfo().getVersion();
-        }
-
-        String cacheName = name + rules.toString();
-
-        Collection<IClasspathEntry> entries = null;
-
-        synchronized (entryCache)
-        {
-            entries = entryCache.get(cacheName);
-
-            if (entries == null)
-            {
-                IPath path = PathUtil.newPathIfExists(bundle.getLocation());
-
-                if (path == null)
-                {
-                    SigilCore.error("Found null path for " + bundle.getSymbolicName());
-                    entries = Collections.emptyList();
-                }
-                else
-                {
-                    entries = buildEntries(path, name, bundle, rules, attributes,
-                        exported);
-                }
-
-                entryCache.put(cacheName, entries);
-            }
-        }
-
-        return entries;
-    }
-
-    private static IPath bundleCache = SigilCore.getDefault().getStateLocation().append(
-        "bundle-cache");
-
-    public static boolean isCachedBundle(String bp)
-    {
-        return bp.startsWith(bundleCache.toOSString());
-    }
-
-    private static Collection<IClasspathEntry> buildEntries(IPath path, String name,
-        ISigilBundle bundle, IAccessRule[] rules, IClasspathAttribute[] attributes,
-        boolean exported) throws CoreException
-    {
-        if (path.toFile().isDirectory())
-        {
-            throw SigilCore.newCoreException("Bundle location cannot be a directory",
-                null);
-        }
-        else
-        {
-            // ok it's a jar could contain libs etc
-            try
-            {
-                IPath cache = bundleCache.append(name);
-                Collection<String> classpath = bundle.getBundleInfo().getClasspaths();
-                ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(
-                    classpath.size());
-                IPath source = PathUtil.newPathIfExists(bundle.getSourcePathLocation());
-                IPath rootPath = PathUtil.newPathIfNotNull(bundle.getSourceRootPath());
-
-                if (source != null && !source.toFile().exists())
-                {
-                    source = null;
-                }
-
-                if (!classpath.isEmpty())
-                {
-                    unpack(cache, bundle, classpath);
-                    for (String cp : classpath)
-                    {
-                        IPath p = ".".equals(cp) ? path : cache.append(cp);
-                        if (p.toFile().exists())
-                        {
-                            IClasspathEntry e = JavaCore.newLibraryEntry(p, source,
-                                rootPath, rules, attributes, exported);
-                            entries.add(e);
-                        }
-                    }
-                }
-                else
-                { // default classpath is .
-                    IClasspathEntry e = JavaCore.newLibraryEntry(path, source, rootPath,
-                        rules, attributes, exported);
-                    entries.add(e);
-                }
-                return entries;
-            }
-            catch (IOException e)
-            {
-                throw SigilCore.newCoreException("Failed to unpack bundle", e);
-            }
-        }
-    }
-
-    private static HashMap<IPath, Collection<String>> unpacked = new HashMap<IPath, Collection<String>>();
-
-    private static synchronized void unpack(IPath cache, ISigilBundle bundle,
-        Collection<String> classpath) throws IOException
-    {
-        Collection<String> check = unpacked.get(cache);
-
-        if (check == null || !check.equals(classpath))
-        {
-            if (classpath.size() == 1 && classpath.contains("."))
-            {
-                unpacked.put(cache, classpath);
-            }
-            else
-            {
-                // trim . from path to avoid check later in inClasspath
-                check = new HashSet<String>(classpath);
-                check.remove(".");
-
-                File dir = createEmptyDir(cache);
-                FileInputStream fin = null;
-                try
-                {
-                    fin = new FileInputStream(bundle.getLocation());
-                    JarInputStream in = new JarInputStream(fin);
-                    JarEntry entry;
-                    while ((entry = in.getNextJarEntry()) != null)
-                    {
-                        if (inClasspath(check, entry))
-                        {
-                            File f = new File(dir, entry.getName());
-                            if (entry.isDirectory())
-                            {
-                                createDir(f);
-                            }
-                            else
-                            {
-                                try
-                                {
-                                    File p = f.getParentFile();
-                                    createDir(p);
-                                    streamTo(in, f);
-                                }
-                                catch (RuntimeException e)
-                                {
-                                    SigilCore.error("Failed to unpack " + entry, e);
-                                }
-                            }
-                        }
-                    }
-                    unpacked.put(cache, classpath);
-                }
-                finally
-                {
-                    if (fin != null)
-                    {
-                        fin.close();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * @param classpath
-     * @param entry
-     * @return
-     */
-    private static boolean inClasspath(Collection<String> classpath, JarEntry entry)
-    {
-        for (String s : classpath)
-        {
-            if (entry.getName().startsWith(s))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private static void createDir(File p) throws IOException
-    {
-        if (!p.exists())
-        {
-            if (!p.mkdirs())
-                throw new IOException("Failed to create directory " + p);
-        }
-    }
-
-    private static void streamTo(InputStream in, File f) throws IOException
-    {
-        FileOutputStream fos = new FileOutputStream(f);
-        try
-        {
-            byte[] buf = new byte[1024];
-            for (;;)
-            {
-                int r = in.read(buf);
-
-                if (r == -1)
-                    break;
-
-                fos.write(buf, 0, r);
-            }
-
-            fos.flush();
-        }
-        finally
-        {
-            try
-            {
-                fos.close();
-            }
-            catch (IOException e)
-            {
-                SigilCore.error("Failed to close stream", e);
-            }
-        }
-    }
-
-    private static File createEmptyDir(IPath cache)
-    {
-        File dir = cache.toFile();
-        if (dir.exists())
-        {
-            deleteAll(dir);
-        }
-
-        dir.mkdirs();
-        return dir;
-    }
-
-    private static void deleteAll(File file)
-    {
-        File[] sub = file.listFiles();
-        if (sub != null)
-        {
-            for (File f : sub)
-            {
-                deleteAll(f);
-            }
-        }
-        file.delete();
-    }
-
-    private static IAccessRule[] buildAccessRules(ISigilProjectModel project,
-        ISigilBundle bundle, Set<ISigilBundle> all, List<IModelElement> requirements)
-        throws JavaModelException
-    {
-        ArrayList<IAccessRule> rules = new ArrayList<IAccessRule>();
-
-        for (IModelElement e : requirements)
-        {
-            if (e instanceof IRequiredBundle)
-            {
-                IRequiredBundle host = project.getBundle().getBundleInfo().getFragmentHost();
-                if (host != null)
-                {
-                    if (host.equals(e))
-                    {
-                        return new IAccessRule[] { ALLOW_ALL_RULE };
-                    }
-                    else
-                    {
-                        return buildExportRules(bundle, all, requirements);
-                    }
-                }
-                else
-                {
-                    return buildExportRules(bundle, all, requirements);
-                }
-            }
-            else if (e instanceof IPackageImport)
-            {
-                IPackageImport pi = (IPackageImport) e;
-                String pckg = pi.getPackageName();
-                HashSet<String> pckgs = new HashSet<String>();
-                pckgs.add(pckg);
-                //findIndirectReferences(pckgs, pckg, project.getJavaModel(), project.getJavaModel());
-
-                for (String p : pckgs)
-                {
-                    rules.add(newPackageAccess(p));
-                }
-            }
-        }
-
-        rules.add(DENY_RULE);
-
-        return rules.toArray(new IAccessRule[rules.size()]);
-    }
-
-    private static IAccessRule[] buildExportRules(ISigilBundle bundle,
-        Set<ISigilBundle> all, List<IModelElement> requirements)
-    {
-        Set<IPackageExport> ex = mergeExports(bundle, all, requirements);
-
-        IAccessRule[] rules = new IAccessRule[ex.size() + 1];
-
-        Iterator<IPackageExport> iter = ex.iterator();
-        for (int i = 0; i < rules.length - 1; i++)
-        {
-            IPackageExport p = iter.next();
-            rules[i] = JavaCore.newAccessRule(new Path(p.getPackageName().replace('.',
-                '/')).append("*"), IAccessRule.K_ACCESSIBLE);
-        }
-
-        rules[rules.length - 1] = DENY_RULE;
-
-        return rules;
-    }
-
-    private static Set<IPackageExport> mergeExports(ISigilBundle bundle,
-        Set<ISigilBundle> all, List<IModelElement> requirements)
-    {
-        IBundleModelElement headers = bundle.getBundleInfo();
-        // FIXME treeset as PackageExport does not implement equals/hashCode
-        TreeSet<IPackageExport> exports = new TreeSet<IPackageExport>(
-            headers.getExports());
-        IRequiredBundle host = headers.getFragmentHost();
-        if (host != null)
-        {
-            for (ISigilBundle b : all)
-            {
-                if (host.accepts(b.getBundleCapability()))
-                {
-                    exports.addAll(b.getBundleInfo().getExports());
-                    break;
-                }
-            }
-        }
-        return exports;
-    }
-
-    /*
-     * Searches for C (and D, E, etc) in case:
-     * A extends B extends C where A, B and C are in different packages and A is in this bundle
-     * and B and C are in one or more external bundles
-     */
-    private static void findIndirectReferences(Set<String> indirect, String pckg,
-        IParent parent, IJavaProject p) throws JavaModelException
-    {
-        for (IJavaElement e : parent.getChildren())
-        {
-            boolean skip = false;
-            switch (e.getElementType())
-            {
-                case IJavaElement.PACKAGE_FRAGMENT_ROOT:
-                    IPackageFragmentRoot rt = (IPackageFragmentRoot) e;
-                    IClasspathEntry ce = rt.getRawClasspathEntry();
-                    IPath path = ce.getPath();
-                    skip = "org.eclipse.jdt.launching.JRE_CONTAINER".equals(path.toString());
-                    break;
-                case IJavaElement.CLASS_FILE:
-                    IClassFile cf = (IClassFile) e;
-                    if (cf.getElementName().startsWith(pckg))
-                    {
-                        findIndirectReferences(indirect,
-                            findPackage(cf.getType().getSuperclassName()), p, p);
-                    }
-                    break;
-                case IJavaElement.COMPILATION_UNIT:
-                    ICompilationUnit cu = (ICompilationUnit) e;
-                    break;
-            }
-
-            if (!skip && e instanceof IParent)
-            {
-                IParent newParent = (IParent) e;
-                findIndirectReferences(indirect, pckg, newParent, p);
-            }
-        }
-    }
-
-    private static IAccessRule newPackageAccess(String packageName)
-    {
-        return JavaCore.newAccessRule(
-            new Path(packageName.replace('.', '/')).append("*"), IAccessRule.K_ACCESSIBLE);
-    }
-
-    private static Set<String> findJavaImports(ISigilProjectModel project,
-        IProgressMonitor monitor)
-    {
-        Set<String> imports = new HashSet<String>();
-
-        findJavaModelImports(project, imports, monitor);
-        if ( !monitor.isCanceled() ) {
-            findTextImports(project, imports, monitor);
-        }
-
-        return imports;
-    }
-
-    private static void findTextImports(ISigilProjectModel project, Set<String> imports,
-        IProgressMonitor monitor)
-    {
-        IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
-        IContentType txt = contentTypeManager.getContentType("org.eclipse.core.runtime.text");
-        for (Resource p : project.getBundle().getSourcePaths())
-        {
-            IFile f = project.getProject().getFile(p.getLocalFile());
-            if (f.exists())
-            {
-                try
-                {
-                    IContentDescription desc = f.getContentDescription();
-                    if (desc != null)
-                    {
-                        IContentType type = desc.getContentType();
-                        if (type != null)
-                        {
-                            if (type.isKindOf(txt))
-                            {
-                                parseText(f, imports);
-                            }
-                        }
-                    }
-                }
-                catch (CoreException e)
-                {
-                    SigilCore.error("Failed to parse text file " + f, e);
-                }
-            }
-        }
-    }
-
-    private static void findJavaModelImports(ISigilProjectModel project,
-        Set<String> imports, IProgressMonitor monitor)
-    {
-        try
-        {
-            for (IPackageFragment root : project.getJavaModel().getPackageFragments())
-            {
-                if ( monitor.isCanceled() ) {
-                    return;
-                }
-                
-                IPackageFragmentRoot rt = (IPackageFragmentRoot) root.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
-
-                if (isInClassPath(project, rt))
-                {
-                    for (ICompilationUnit cu : root.getCompilationUnits())
-                    {
-                        scanImports(cu, imports);
-                    }
-
-                    for (IClassFile cf : root.getClassFiles())
-                    {
-                        scanImports(cf, imports);
-                    }
-                }
-            }
-        }
-        catch (JavaModelException e)
-        {
-            SigilCore.error("Failed to parse java model", e);
-        }
-    }
-
-    // matches word.word.word.word.Word
-    private static final Pattern JAVA_CLASS_PATTERN = Pattern.compile("((\\w*\\.\\w*)+?)\\.[A-Z]\\w*");
-
-    private static void parseText(IFile f, Set<String> imports) throws CoreException
-    {
-        for (String result : Grep.grep(JAVA_CLASS_PATTERN, f))
-        {
-            findImport(result, imports);
-        }
-    }
-
-    private static boolean isInClassPath(ISigilProjectModel project,
-        IPackageFragmentRoot rt) throws JavaModelException
-    {
-        String path = encode(project, rt.getRawClasspathEntry());
-        return project.getBundle().getClasspathEntrys().contains(path);
-    }
-
-    private static String encode(ISigilProjectModel project, IClasspathEntry cp)
-    {
-        return project.getJavaModel().encodeClasspathEntry(cp).trim();
-    }
-
-    private static void scanImports(IParent parent, Set<String> imports)
-        throws JavaModelException
-    {
-        for (IJavaElement e : parent.getChildren())
-        {
-            switch (e.getElementType())
-            {
-                case IJavaElement.TYPE:
-                    handleType((IType) e, imports);
-                    break;
-                case IJavaElement.IMPORT_DECLARATION:
-                    handleImport((IImportDeclaration) e, imports);
-                    break;
-                case IJavaElement.FIELD:
-                    handleField((IField) e, imports);
-                    break;
-                case IJavaElement.LOCAL_VARIABLE:
-                    handleLocalVariable((ILocalVariable) e, imports);
-                    break;
-                case IJavaElement.ANNOTATION:
-                    handleAnnotation((IAnnotation) e, imports);
-                    break;
-                case IJavaElement.METHOD:
-                    handleMethod((IMethod) e, imports);
-                    break;
-                default:
-                    // no action
-                    break;
-            }
-
-            if (e instanceof IParent)
-            {
-                scanImports((IParent) e, imports);
-            }
-        }
-    }
-
-    private static void handleType(IType e, Set<String> imports)
-        throws JavaModelException
-    {
-        findImportFromType(e.getSuperclassTypeSignature(), imports);
-        for (String sig : e.getSuperInterfaceTypeSignatures())
-        {
-            findImportFromType(sig, imports);
-        }
-        //findImportsForSuperTypes(e, imports);
-    }
-
-    /*private static void findImportsForSuperTypes(IType e, Set<String> imports) throws JavaModelException {
-    	IJavaProject project = (IJavaProject) e.getAncestor(IJavaModel.JAVA_PROJECT);
-    	LinkedList<String> types = new LinkedList<String>();
-    	types.add( decodeSignature(e.getSuperclassTypeSignature()) );
-    	for ( String sig : e.getSuperInterfaceTypeSignatures() ) {
-    		types.add( decodeSignature(sig) );
-    	}
-    	
-    	for ( IPackageFragmentRoot root : project.getPackageFragmentRoots() ) {
-    		// only need to search binary files for inheritance as source will automatically be searched
-    		if ( root.getKind() == IPackageFragmentRoot.K_BINARY ) {
-    			for ( String t : types ) {
-    				String pac = findPackage(t);
-    				if ( pac != null ) {
-    					IPackageFragment fragment = root.getPackageFragment(pac);
-    					if ( fragment != null ) {
-    						IClassFile c = fragment.getClassFile(findClass(t));
-    						if ( c != null ) {
-    							findImportsForSuperTypes(c.getType(), imports);
-    						}
-    					}
-    				}
-    			}
-    		}
-    	}
-    } */
-
-    private static void handleMethod(IMethod e, Set<String> imports)
-        throws JavaModelException
-    {
-        findImportFromType(e.getReturnType(), imports);
-
-        for (String param : e.getParameterTypes())
-        {
-            findImportFromType(param, imports);
-        }
-
-        for (String ex : e.getExceptionTypes())
-        {
-            findImportFromType(ex, imports);
-        }
-    }
-
-    private static void handleAnnotation(IAnnotation e, Set<String> imports)
-    {
-        findImport(e.getElementName(), imports);
-    }
-
-    private static void handleLocalVariable(ILocalVariable e, Set<String> imports)
-    {
-        findImportFromType(e.getTypeSignature(), imports);
-    }
-
-    private static void handleField(IField e, Set<String> imports)
-        throws IllegalArgumentException, JavaModelException
-    {
-        findImportFromType(Signature.getElementType(e.getTypeSignature()), imports);
-    }
-
-    private static void handleImport(IImportDeclaration id, Set<String> imports)
-    {
-        findImport(id.getElementName(), imports);
-    }
-
-    private static void findImportFromType(String type, Set<String> imports)
-    {
-        String element = decodeSignature(type);
-        findImport(element, imports);
-    }
-
-    private static String decodeSignature(String type)
-    {
-        return decodeSignature(type, false);
-    }
-
-    private static String decodeSignature(String type, boolean resolve)
-    {
-        if (type == null)
-        {
-            return null;
-        }
-
-        if (type.length() > 0)
-        {
-            switch (type.charAt(0))
-            {
-                case Signature.C_ARRAY:
-                    return decodeSignature(type.substring(1));
-                case Signature.C_UNRESOLVED:
-                    return resolve ? resolve(type.substring(1, type.length() - 1)) : null;
-                case Signature.C_RESOLVED:
-                    return type.substring(1);
-            }
-        }
-        return type;
-    }
-
-    private static String resolve(String substring)
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    private static void findImport(String clazz, Set<String> imports)
-    {
-        String packageName = findPackage(clazz);
-        if (packageName != null)
-        {
-            imports.add(packageName);
-        }
-    }
-
-    private static String findPackage(String clazz)
-    {
-        if (clazz == null)
-            return null;
-        int pos = clazz.lastIndexOf('.');
-        return pos == -1 ? null : clazz.substring(0, pos);
-    }
-
-    private static String findClass(String clazz)
-    {
-        if (clazz == null)
-            return null;
-        int pos = clazz.lastIndexOf('.');
-        return pos == -1 ? null : clazz.substring(pos + 1);
-    }
-
-    private static IPackageImport select(Collection<IPackageExport> proposals)
-    {
-        IPackageExport pe = null;
-
-        for (IPackageExport check : proposals)
-        {
-            if (pe == null || check.getVersion().compareTo(pe.getVersion()) > 0)
-            {
-                pe = check;
-            }
-        }
-
-        String packageName = pe.getPackageName();
-
-        Version version = pe.getVersion();
-        VersionRange versions = ModelHelper.getDefaultRange(version);
-
-        IPackageImport pi = ModelElementFactory.getInstance().newModelElement(
-            IPackageImport.class);
-        pi.setPackageName(packageName);
-        pi.setVersions(versions);
-
-        return pi;
-    }
-
-    public static Iterable<IJavaElement> findTypes(IParent parent, int... type)
-        throws JavaModelException
-    {
-        LinkedList<IJavaElement> found = new LinkedList<IJavaElement>();
-        scanForElement(parent, type, found, false);
-        return found;
-    }
-
-    public static IJavaElement findType(IParent parent, int... type)
-        throws JavaModelException
-    {
-        LinkedList<IJavaElement> found = new LinkedList<IJavaElement>();
-        scanForElement(parent, type, found, true);
-        return found.isEmpty() ? null : found.getFirst();
-    }
-
-    private static void scanForElement(IParent parent, int[] type,
-        List<IJavaElement> roots, boolean thereCanBeOnlyOne) throws JavaModelException
-    {
-        for (IJavaElement e : parent.getChildren())
-        {
-            if (isType(type, e))
-            {
-                roots.add(e);
-                if (thereCanBeOnlyOne)
-                {
-                    break;
-                }
-            }
-            else if (e instanceof IParent)
-            {
-                scanForElement((IParent) e, type, roots, thereCanBeOnlyOne);
-            }
-        }
-    }
-
-    private static boolean isType(int[] type, IJavaElement e)
-    {
-        for (int i : type)
-        {
-            if (i == e.getElementType())
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public static boolean isAssignableTo(String ifaceOrParentClass, IType type)
-        throws JavaModelException
-    {
-        if (ifaceOrParentClass == null)
-            return true;
-
-        ITypeHierarchy h = type.newSupertypeHierarchy(null);
-
-        for (IType superType : h.getAllClasses())
-        {
-            String name = superType.getFullyQualifiedName();
-            if (name.equals(ifaceOrParentClass))
-            {
-                return true;
-            }
-        }
-        for (IType ifaceType : h.getAllInterfaces())
-        {
-            String name = ifaceType.getFullyQualifiedName();
-            if (name.equals(ifaceOrParentClass))
-            {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private static IType findType(ITypeRoot root) throws JavaModelException
-    {
-        // TODO Auto-generated method stub
-        for (IJavaElement child : root.getChildren())
-        {
-            if (child.getElementType() == IJavaElement.TYPE)
-            {
-                return (IType) child;
-            }
-        }
-
-        throw new JavaModelException(
-            new IllegalStateException("Missing type for " + root), IStatus.ERROR);
-    }
-
-    public static Set<String> findLocalPackageDependencies(ISigilProjectModel project,
-        String packageName, IProgressMonitor monitor) throws JavaModelException
-    {
-        Set<String> imports = findJavaImports(project, monitor);
-        imports.remove(packageName);
-        return imports;
-    }
-
-    public static Set<String> findLocalPackageUsers(ISigilProjectModel project,
-        String packageName, IProgressMonitor monitor) throws JavaModelException
-    {
-        Set<String> imports = new HashSet<String>();
-        Set<String> check = new HashSet<String>();
-        for (IPackageFragment root : project.getJavaModel().getPackageFragments())
-        {
-            IPackageFragmentRoot rt = (IPackageFragmentRoot) root.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
-
-            if (isInClassPath(project, rt))
-            {
-                for (ICompilationUnit cu : root.getCompilationUnits())
-                {
-                    IPackageFragment pack = (IPackageFragment) cu.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
-                    if (!pack.getElementName().equals(packageName))
-                    {
-                        scanImports(cu, check);
-                        if (check.contains(packageName))
-                        {
-                            imports.add(pack.getElementName());
-                        }
-                    }
-                    check.clear();
-                }
-
-                for (IClassFile cf : root.getClassFiles())
-                {
-                    IPackageFragment pack = (IPackageFragment) cf.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
-                    if (!pack.getElementName().equals(packageName))
-                    {
-                        scanImports(cf, check);
-                        if (check.contains(packageName))
-                        {
-                            imports.add(pack.getElementName());
-                        }
-                    }
-                    check.clear();
-                }
-            }
-        }
-
-        return imports;
-    }
-}
\ No newline at end of file
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ModelHelper.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ModelHelper.java
deleted file mode 100644
index d05a47b..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ModelHelper.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.util;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.ICapabilityModelElement;
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.IRequirementModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionRangeBoundingRule;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.osgi.framework.Version;
-
-public class ModelHelper
-{
-    public static List<IModelElement> findUsers(IModelElement e)
-    {
-        LinkedList<IModelElement> users = new LinkedList<IModelElement>();
-
-        findUsers(e, users);
-
-        return users;
-    }
-
-    private static void findUsers(IModelElement e, final LinkedList<IModelElement> users)
-    {
-        if (e instanceof ICapabilityModelElement)
-        {
-            final ICapabilityModelElement cap = (ICapabilityModelElement) e;
-            SigilCore.getGlobalRepositoryManager().visit(new IModelWalker()
-            {
-                public boolean visit(IModelElement element)
-                {
-                    if (element instanceof IRequirementModelElement)
-                    {
-                        IRequirementModelElement req = (IRequirementModelElement) element;
-                        if (req.accepts(cap))
-                        {
-                            users.add(req);
-                        }
-                        return false;
-                    }
-
-                    return true;
-                }
-            });
-        }
-
-        if (e instanceof ICompoundModelElement)
-        {
-            ICompoundModelElement c = (ICompoundModelElement) e;
-            IModelElement[] ch = c.children();
-            for (IModelElement ee : ch)
-            {
-                findUsers(ee, users);
-            }
-        }
-    }
-
-    public static VersionRange getDefaultRange(Version version)
-    {
-        IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
-
-        VersionRangeBoundingRule lowerBoundRule = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_LOWER_BOUND));
-        VersionRangeBoundingRule upperBoundRule = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_UPPER_BOUND));
-
-        VersionRange selectedVersions = VersionRange.newInstance(version, lowerBoundRule,
-            upperBoundRule);
-        return selectedVersions;
-    }
-
-    public static IPackageExport findExport(ISigilProjectModel sigil,
-        final String packageName)
-    {
-        final ArrayList<IPackageExport> found = new ArrayList<IPackageExport>(1);
-        sigil.visit(new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof IPackageExport)
-                {
-                    IPackageExport pe = (IPackageExport) element;
-                    if (pe.getPackageName().equals(packageName))
-                    {
-                        found.add(pe);
-                    }
-                }
-                return found.isEmpty();
-            }
-        });
-        return found.isEmpty() ? null : found.get(0);
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ProfileManager.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ProfileManager.java
deleted file mode 100644
index 8c2455f..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/util/ProfileManager.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.model.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.utils.GlobCompiler;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-class ProfileManager
-{
-    private static final Pattern[] BOOT_DELEGATION_PATTERNS = new Pattern[] {
-            GlobCompiler.compile("org.ietf.jgss"), GlobCompiler.compile("org.omg.*"),
-            GlobCompiler.compile("org.w3c.*"), GlobCompiler.compile("org.xml.*"),
-            GlobCompiler.compile("sun.*"), GlobCompiler.compile("com.sun.*"), };
-
-    private static HashMap<String, Properties> profiles;
-
-    static boolean isBootDelegate(ISigilProjectModel project, String packageName)
-    {
-        if (packageName.startsWith("java."))
-        {
-            return true;
-        }
-
-        for (Pattern p : BOOT_DELEGATION_PATTERNS)
-        {
-            if (p.matcher(packageName).matches())
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    static Properties findProfileForVersion(String javaVersion)
-    {
-        Map<String, Properties> profiles = loadProfiles();
-
-        if ("1.5.0".equals(javaVersion))
-        {
-            return profiles.get("J2SE-1.5");
-        }
-        else if ("1.6.0".equals(javaVersion))
-        {
-            return profiles.get("J2SE-1.6");
-        }
-
-        return null;
-    }
-
-    private synchronized static Map<String, Properties> loadProfiles()
-    {
-        if (profiles == null)
-        {
-            profiles = new HashMap<String, Properties>();
-
-            Bundle b = Platform.getBundle("org.eclipse.osgi");
-
-            for (String profile : loadProfiles(b))
-            {
-                if (profile.trim().length() > 0)
-                {
-                    URL url = findURL(profile, b);
-                    if (url != null)
-                    {
-                        try
-                        {
-                            Properties p = loadProperties(url);
-                            String name = p.getProperty("osgi.java.profile.name");
-                            if (name != null)
-                            {
-                                profiles.put(name, p);
-                            }
-                            else
-                            {
-                                SigilCore.error("Invalid profile definition, no name specified: "
-                                    + url);
-                            }
-                        }
-                        catch (IOException e)
-                        {
-                            SigilCore.error("Failed to load java profile", e);
-                        }
-                    }
-                    else
-                    {
-                        SigilCore.error("Unknown profile **" + profile + "**");
-                    }
-                }
-                // else ignore empty values
-            }
-        }
-        return profiles;
-    }
-
-    private static String[] loadProfiles(Bundle b)
-    {
-        URL url = findURL("profile.list", b);
-
-        if (url != null)
-        {
-            try
-            {
-                Properties p = loadProperties(url);
-                String s = p.getProperty("java.profiles");
-                return s == null ? new String[] {} : s.split(",");
-            }
-            catch (IOException e)
-            {
-                SigilCore.error("Failed to load java profile list", e);
-            }
-        }
-        else
-        {
-            SigilCore.error("Failed to find java profile list");
-        }
-
-        // fine no properties found
-        return new String[] {};
-    }
-
-    @SuppressWarnings("unchecked")
-    private static URL findURL(String file, Bundle b)
-    {
-        Enumeration e = b.findEntries("/", file, false);
-        return e == null ? null : (URL) (e.hasMoreElements() ? e.nextElement() : null);
-    }
-
-    private static Properties loadProperties(URL url) throws IOException
-    {
-        Properties p = new Properties();
-
-        InputStream in = null;
-
-        try
-        {
-            in = url.openStream();
-            p.load(in);
-        }
-        finally
-        {
-            if (in != null)
-            {
-                try
-                {
-                    in.close();
-                }
-                catch (IOException e)
-                {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        }
-
-        return p;
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/nature/SigilProjectNature.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/nature/SigilProjectNature.java
deleted file mode 100644
index fb3ef0f..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/nature/SigilProjectNature.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.nature;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-
-public class SigilProjectNature implements IProjectNature
-{
-
-    private IProject project;
-
-    public void configure() throws CoreException
-    {
-        // TODO configure project builder
-
-    }
-
-    public void deconfigure() throws CoreException
-    {
-    }
-
-    public IProject getProject()
-    {
-        return project;
-    }
-
-    public void setProject(IProject project)
-    {
-        this.project = project;
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PrefsUtils.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PrefsUtils.java
deleted file mode 100644
index 14e7d57..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PrefsUtils.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.preferences;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.text.StrTokenizer;
-
-public class PrefsUtils
-{
-
-    private PrefsUtils()
-    {
-    }
-
-    public static final String arrayToString(String[] array)
-    {
-        StringBuilder builder = new StringBuilder();
-
-        for (int i = 0; i < array.length; i++)
-        {
-            if (i > 0)
-                builder.append(',');
-            builder.append(StringEscapeUtils.escapeCsv(array[i]));
-        }
-
-        return builder.toString();
-    }
-
-    public static final String[] stringToArray(String string)
-    {
-        StrTokenizer tokenizer = new StrTokenizer(string, ',', '"');
-        String[] array = new String[tokenizer.size()];
-
-        for (int i = 0; i < array.length; i++)
-        {
-            array[i] = tokenizer.nextToken();
-        }
-
-        return array;
-    }
-
-    public static String listToString(List<String> names)
-    {
-        return arrayToString(names.toArray(new String[names.size()]));
-    }
-
-    public static List<String> stringToList(String string)
-    {
-        return new ArrayList<String>(Arrays.asList(stringToArray(string)));
-    }
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PromptablePreference.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PromptablePreference.java
deleted file mode 100644
index e904bdc..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/PromptablePreference.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.preferences;
-
-public enum PromptablePreference
-{
-    Always, Prompt, Never
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/progress/ProgressAdapter.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/progress/ProgressAdapter.java
deleted file mode 100644
index 06216d0..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/progress/ProgressAdapter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.progress;
-
-import org.apache.felix.sigil.common.progress.IProgress;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubMonitor;
-
-/**
- * @author dave
- *
- */
-public class ProgressAdapter implements IProgress
-{
-    
-    private final IProgressMonitor monitor;
-    private final SubMonitor sub;
-
-    public ProgressAdapter(IProgressMonitor monitor) {
-        this.monitor = monitor;
-        sub = SubMonitor.convert(monitor);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#done()
-     */
-    public void done()
-    {
-        monitor.done();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#isCanceled()
-     */
-    public boolean isCanceled()
-    {
-        return monitor.isCanceled();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#newChild(int)
-     */
-    public IProgress newChild(int totalWork)
-    {
-        return new ProgressAdapter(sub.newChild(totalWork));
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#newTask(int)
-     */
-    public IProgress newTask(int totalWork)
-    {
-        SubMonitor sub = SubMonitor.convert(monitor);
-        return new ProgressAdapter(sub);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#worked(int)
-     */
-    public void worked(int work)
-    {
-        monitor.worked(work);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.felix.sigil.common.progress.IProgress#report(java.lang.String)
-     */
-    public void report(String msg)
-    {
-        sub.subTask(msg);
-    }
-
-}
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/repository/ResolutionMonitorAdapter.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/repository/ResolutionMonitorAdapter.java
deleted file mode 100644
index 0164e5a..0000000
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/repository/ResolutionMonitorAdapter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.repository;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IResolutionMonitor;
-
-public class ResolutionMonitorAdapter implements IResolutionMonitor
-{
-
-    private IProgressMonitor monitor;
-
-    public ResolutionMonitorAdapter() {
-        this.monitor = new NullProgressMonitor();
-    }
-    
-    public ResolutionMonitorAdapter(IProgressMonitor monitor)
-    {
-        this.monitor = monitor;
-    }
-
-    public boolean isCanceled()
-    {
-        return monitor.isCanceled();
-    }
-
-    public void startResolution(IModelElement requirement)
-    {
-        monitor.subTask("Resolving " + requirement);
-    }
-
-    public void endResolution(IModelElement requirement, ISigilBundle provider)
-    {
-        monitor.subTask((provider == null ? "Failed to resolve " : "Resolved ")
-            + requirement);
-    }
-
-}
diff --git a/sigil/eclipse/help/.classpath b/sigil/eclipse/help/.classpath
deleted file mode 100644
index 41d4818..0000000
--- a/sigil/eclipse/help/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.swt.carbon.macosx.jar"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/help/.project b/sigil/eclipse/help/.project
deleted file mode 100644
index 2688c0c..0000000
--- a/sigil/eclipse/help/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.help</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/help/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/help/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 35ef172..0000000
--- a/sigil/eclipse/help/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:09:23 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/help/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/help/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e354248..0000000
--- a/sigil/eclipse/help/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:09:24 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/help/DEPENDENCIES b/sigil/eclipse/help/DEPENDENCIES
deleted file mode 100644
index 2691511..0000000
--- a/sigil/eclipse/help/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse Help
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/help/NOTICE b/sigil/eclipse/help/NOTICE
deleted file mode 100644
index 64a02ed..0000000
--- a/sigil/eclipse/help/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse Help
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/help/build.xml b/sigil/eclipse/help/build.xml
deleted file mode 100644
index 01507c3..0000000
--- a/sigil/eclipse/help/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.help" default="build"
-	  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-  <target name="init">
-    <ivy:retrieve organisation="org.eclipse" module="org.eclipse.swt.carbon.macosx" revision="3.4.1.v3452b" inline="true" pattern="lib/[artifact].[ext]" transitive="false"/>
-  </target>
-</project>
diff --git a/sigil/eclipse/help/cheatsheets/HelloWorld.xml b/sigil/eclipse/help/cheatsheets/HelloWorld.xml
deleted file mode 100644
index 94ce68d..0000000
--- a/sigil/eclipse/help/cheatsheets/HelloWorld.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<cheatsheet title="Create a Hello World composite application">
-	<intro>
-		<description>This cheat sheet shows you how to create a simple hello world composite application using Sigil.</description>
-	</intro>
-	
-	<item title="Create an empty Newton project" href="/org.cauldron.sigil.help/html/tasks/new_project.html" dialog="true" skip="true">
-		<description>
-		First, you must create a new &quot;org.example.helloworld&quot; empty Newton project to house the java classes and SCA composites.
-		</description>
-
-		<subitem label="Select &quot;File &gt;New &gt;Project...&quot;. Expand &quot;Sigil&quot;, select &quot;Newton Project&quot; and click &quot;Next&quot;." skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.OpenEmptyNewtonProjectWizardAction"
-				param1="org.example.helloworld"  
-				translate="" />
-		</subitem>
-
-		<subitem label="Enter &quot;org.example.helloworld&quot; as the &quot;Project name&quot;, then click &quot;Finish&quot;." skip="false" />
-	</item>
-	
-	<item title="Create The Java Interfaces and Classes" skip="true">
-		<description>
-		Create a new &quot;org.example.helloworld.api&quot; package and add a HelloWorld interface to this package. 
-		Then create a new &quot;org.example.helloworld.impl&quot; package and add a HelloWorldImpl class which implements HelloWorld to the impl package.
-		Finally create a new &quot;org.example.helloworld.cli&quot; package and add a HelloWorldCli class which references the HelloWorld api to the cli package.
-		</description>
-
-		<subitem label="Create the HelloWorld API" skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.CopyResourceFromPlugin"
-				param1="org.example.helloworld"  
-				param2="src/org/example/helloworld/api"
-				param3="org.cauldron.sigil.help"
-				param4="archive/java/HelloWorld.java"
-				param5="org.eclipse.jdt.ui.CompilationUnitEditor"
-				translate="" />
-		</subitem>
-		<subitem label="Create the HelloWorld Impl" skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.CopyResourceFromPlugin"
-				param1="org.example.helloworld"  
-				param2="src/org/example/helloworld/impl"
-				param3="org.cauldron.sigil.help"
-				param4="archive/java/HelloWorldImpl.java"   
-				param5="org.eclipse.jdt.ui.CompilationUnitEditor"
-				translate="" />
-		</subitem>
-		<subitem label="Create the HelloWorld CLI" skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.CopyResourceFromPlugin"
-				param1="org.example.helloworld"  
-				param2="src/org/example/helloworld/cli"
-				param3="org.cauldron.sigil.help"
-				param4="archive/java/HelloWorldCli.java"   
-				param5="org.eclipse.jdt.ui.CompilationUnitEditor"
-				translate="" />
-		</subitem>
-	</item>
-   <item
-         title="Add OSGi Package Imports To The HelloWorld Project">
-      <description>
-         The HelloWorldCli class references classes which are exported from other OSGi bundles. In order to satisfy the OSGi classloading rules the HelloWorld project must import the required packages.
-      </description>
-      <subitem
-            label="Open the &quot;org.example.helloworld&quot; project editor by double-clicking on the &quot;sigil.properties&quot; file in the project directory."
-            skip="false">
-      </subitem>
-      <subitem
-            label="Select the &quot;Overview&quot; tab.">
-      </subitem>
-      <subitem
-            label="Click on the &quot;Resolve missing dependencies&quot; link in the &quot;Tools&quot; section.">
-      </subitem>
-      <subitem
-            label="Wait for the background task to complete. When the &quot;Review New Imports&quot; dialog appears, click &quot;OK&quot;.">
-      </subitem>
-   </item>
-  
-	
-	<item title="Create The SCA Composites That Describe The Java Resources" skip="true">
-		<description>
-		Create a new HelloWorld service composite that exports the HelloWorldImpl class using the HelloWorld interface. 
-		Then create a new HelloWorld cli composite that imports the HelloWorld interface and exports a ConsoleCommandHandler 
-		service to allow user interaction via the command handler.
-		</description>
-
-		<subitem label="Create the HelloWorld Service" skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.CopyResourceFromPlugin"
-				param1="org.example.helloworld"
-				param2="sca"
-				param3="org.cauldron.sigil.help"
-				param4="archive/sca/org.example.helloworld.service.composite"
-				param5="org.cauldron.sigil.editors.SCACompositeEditor"   
-				translate="" />
-		</subitem>
-		<subitem label="Create the HelloWorld Command Line" skip="true">
-			<action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.CopyResourceFromPlugin"
-				param1="org.example.helloworld"
-				param2="sca"
-				param3="org.cauldron.sigil.help"
-				param4="archive/sca/org.example.helloworld.cli.composite"   
-				param5="org.cauldron.sigil.editors.SCACompositeEditor"   
-				translate="" />
-		</subitem>
-	</item>
-	
-   <item
-         title="Add The SCA Composites To The HelloWorld Bundle">
-      <description>
-         In order to load a composite in a Newton container it needs to be associated with an OSGi bundle that will act as the classpath for that bundle.
-      </description>
-      <subitem
-            label="Open the &quot;org.example.helloworld&quot; project editor by double-clicking on the &quot;sigil.properties&quot; file in the project directory.">
-      </subitem>
-      <subitem
-            label="Select the &quot;Exports&quot; tab.">
-      </subitem>
-      <subitem
-            label="Click on the &quot;Add&quot; button in the Composites section.">
-      </subitem>
-      <subitem
-            label="Add the &quot;org.example.helloworld.service&quot; and &quot;org.example.helloworld.cli&quot; composites to the OSGi bundle.">
-      </subitem>
-      <subitem
-            label="Save the &quot;org.example.helloworld&quot; project editor.">
-      </subitem>
-   </item>
-	
- <item
-       title="Launch A Newton Container">
-    <description>
-       Launch a Newton enabled JVM in which to host the SCA composites you have just created.
-    </description>
-    <subitem
-          label="Make sure that the the &quot;org.example.helloworld&quot; project editor is open.">
-    </subitem>
-    <subitem
-          label="Select the &quot;Overview&quot; tab.">
-    </subitem>
-    <subitem
-          label="Click on the &quot;Launch a newton container&quot; link in the &quot;Testing&quot; section.">
-    </subitem>
-    <subitem
-          label="Wait for the newton container to finish launching. This is signified by the console message: &quot;Boot complete&quot;">
-    </subitem>
- </item>
-
- <item
-       title="Install The HelloWorld Composites In The Newton Container">
-    <description>
-       We will now install the two composites in the Newton container we just launched using the short-cut menu items in the eclipse navigation bar.
-    </description>
-    <subitem
-          label="Open the &quot;org.example.helloworld.service.composite&quot; document using the Sigil &quot;SCA Composite Editor&quot;.">
-    </subitem>
-    <subitem
-          label="Click on the &quot;Install Composite&quot; short-cut menu item in the navigation bar.">
-    </subitem>
-    <subitem
-          label="Select the &quot;org.example.helloworld&quot; instance and click ok">
-    </subitem>
-    <subitem
-          label="Open the &quot;org.example.helloworld.cli.composite&quot; document using the Sigil &quot;SCA Composite Editor&quot;.">
-    </subitem>
-    <subitem
-          label="Again, click on the &quot;Install Composite&quot; short-cut menu item in the navigation bar and install into the &quot;org.example.helloworld&quot; Newton instance.">
-    </subitem>
- </item>
-	
-	<item title="Type &quot;sayhello&quot; on the Newton console" skip="false">
-		<description>
-		
-		</description>
-  <subitem
-        label="Select the Newton console.">
-        <action
-				pluginId="org.cauldron.sigil.help"
-				class="org.cauldron.sigil.cheatsheets.actions.ShowViewAction"
-				param1="org.eclipse.ui.console.ConsoleView"
-				translate="" />
-        
-  </subitem>
-  <subitem
-        label="Type &quot;sayhello&quot;. You should see the response:&lt;br/&gt;Hello World">
-  </subitem>	
-	</item>	
-	
-	<onCompletion>Congratulations you have created your first composite application using Sigil.</onCompletion>
-	
-	
-</cheatsheet>
diff --git a/sigil/eclipse/help/html/book.html b/sigil/eclipse/help/html/book.html
deleted file mode 100644
index a9fc420..0000000
--- a/sigil/eclipse/help/html/book.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<header>
-<title>Sigil - Newton Development Plugin</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Sigil - Newton Development Plugin</h1></td><td align="right"><img src="images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<p>Sigil is an eclipse plugin that helps developers build and test code to be deployed on the Newton platform</p>
-
-<p>Features:<br/>
-<ul>
-    <li>New (Newton Project, Composite, System)</li>
-    <li>Syntax highlighting and code completion for SCA/System docs</li>
-    <li>Launch Newton in Debug/Standard vm from Eclipse</li>
-    <li>Full debug support - break points/source code/step through etc</li>
-    <li>Install Composites into running newton from Eclipse</li>
-    <li>Log integration</li>
-</ul>
-</p>
-
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr>
-</table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/container_log.html b/sigil/eclipse/help/html/tasks/container_log.html
deleted file mode 100644
index 9b8808f..0000000
--- a/sigil/eclipse/help/html/tasks/container_log.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<header>
-<title>Viewing The Newton Log</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Viewing The Newton Log</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/debug_composite.html b/sigil/eclipse/help/html/tasks/debug_composite.html
deleted file mode 100644
index 43db6da..0000000
--- a/sigil/eclipse/help/html/tasks/debug_composite.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<html>
-<header>
-<title>Debugging A Composite</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Debugging A Composite</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<p>In order to debug composite applications using the Newton Eclipse
-      plugin, use the runtime configuration you created in above, and start it
-      using a debug session. This will launch a newton container as a separate
-      process to the Eclipse IDE environment but which can be controlled from
-      the IDE</p>
-
-      
-<div align="center">
-<img class="figure" alt="Debug" src="my-images/debug.png"></div>
-      
-<p>Install your composite into this container using the Newton context
-      menu in the package view as documented above. In this example we have
-      installed the gui.composite component from the fractal render demo into
-      a Newton debug container.</p>
-
-      
-<div align="center">
-<img class="figure" alt="Fractal GUI Debug" src="my-images/demo-gui.png"></div>      
-
-<p>You can now add break points within your code to allow you to get a
-      better idea of what is going on within your application. In this example
-      we have added a break point to the FractalViewFrame of the fractal
-      render demo to break out into an interactive debug session when any of
-      the buttons <em>draw</em>, <em>save</em>, <em>cancel</em> are pressed on
-      the gui window.</p>
-
-      
-<div align="center">
-<img class="figure" alt="Add a breakpoint" src="my-images/breakpoint.png"></div>
-      
-<p>You can then inspect variable values in top-right-hand corner as per
-      normal debugging in the Eclipse IDE.</p>
-      
-<div align="center">
-<img class="figure" alt="Debug breakpoint" src="my-images/debug-breakpoint.png"></div>
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/install_composite.html b/sigil/eclipse/help/html/tasks/install_composite.html
deleted file mode 100644
index e20d472..0000000
--- a/sigil/eclipse/help/html/tasks/install_composite.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<html>
-<header>
-<title>Installing A Composite</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Installing A Composite</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<p>To install a composite into a Infiniflow Service Fabric container, you require a running
-      container instance on your machine. This can either be an external
-      process which you have launched using the bin/container script or the
-      container can be launched via an Eclipse runtime configuration as per
-      the instructions <a href="launch_newton.html" alt="Launching Newton">here</a>.</p> 
-      
-<p>You can then select your .composite file in the
-      package view and select Newton-&gt;Install Composite using the context
-      menu.</p>
-
-      
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2008 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/launch_newton.html b/sigil/eclipse/help/html/tasks/launch_newton.html
deleted file mode 100644
index 6a2edc4..0000000
--- a/sigil/eclipse/help/html/tasks/launch_newton.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-<header>
-<title>Launching Newton</title>
-</header>
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Launching Newton</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-	<h2>Runtime Configuration</h2>
-	<p>To run a Infiniflow Service Fabric container within Eclipse you first need to configure
-      its runtime options in the IDE.</p>
-      
-	<p>Open the Run configuration dialog by selecting the Run &rarr; Run&hellip; option
-      from the menu bar.</p>
-
-	<div align="center"><img class="figure" alt="Run Menu" src="my-images/run-menu.png"></div>
-
-	<p>Create a new Newton configuration by right-clicking on the Newton
-      configuration group and selecting <em>New</em>. Type in a name for your
-      configuration, the other default options should be sufficient for most
-      users.</p>
-
-      
-	<div align="center"><img class="figure" alt="Run Dialog" src="my-images/run.png"></div>
-
-	<h2>Launch Newton</h2>      
-	<p>Click the <em>Run</em> button to start the container, you will see
-      the container output appear in the console tab. Wait until the <em>Boot
-      Complete</em> line appears, as below.</p>
-
-      
-	<div align="center"><img class="figure" alt="Boot Complete" src="my-images/run-complete.png"></div>
-        
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/new_composite.html b/sigil/eclipse/help/html/tasks/new_composite.html
deleted file mode 100644
index 58d9541..0000000
--- a/sigil/eclipse/help/html/tasks/new_composite.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<html>
-<header>
-<title>Creating SCA Composites</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Creating SCA Composites</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-	<p>
-	Create a new sca composite document using the <em>New->Other</em> menu option.<br/>
-	Page 1:<br/>
-	<img src="../images/new_composite_page1.png" alt="New Composite Page 1" /><br/>
-	Page 2:<br/>
-	<img src="../images/new_composite_page2.png" alt="New Composite Page 2" />
-	</p>
-	<p>There is basic support for context sensitive text completion in sca documents. Press <em>Ctrl+Space</em> to see a list of valid elements at the current cursor location.<br/>
-	<img src="../images/composite_suggest_text.png" alt="New Composite Page 2" />
-	</p>
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/new_project.html b/sigil/eclipse/help/html/tasks/new_project.html
deleted file mode 100644
index 90e14e7..0000000
--- a/sigil/eclipse/help/html/tasks/new_project.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<header>
-<title>Creating A Newton Project</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Creating A Newton Project</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/new_system.html b/sigil/eclipse/help/html/tasks/new_system.html
deleted file mode 100644
index a0cc7ae..0000000
--- a/sigil/eclipse/help/html/tasks/new_system.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<header>
-<title>Creating Newton Systems</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Creating Newton Systems</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</td></tr></table>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/html/tasks/sigil_config.html b/sigil/eclipse/help/html/tasks/sigil_config.html
deleted file mode 100644
index 8334f70..0000000
--- a/sigil/eclipse/help/html/tasks/sigil_config.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<html>
-<header>
-<title>Configuring Sigil</title>
-</header>
-<body bgcolor="#ffffff">
-<table width="100%">
-	<tr>
-		<td valign="bottom"><h1>Configuring Sigil</h1></td><td align="right"><img src="../images/sigil.gif" /></td>
-	</tr>
-	<tr><td colspan="2">
-<p>After having installed sigil, the preferences dialog should appear and ask you to specify the location of a valid newton install directory.</p>
-<div id="footer">
-<table cellpadding="4" cellspacing="0" border="0">
-<tr>
-<td><a href="http://www.paremus.com/License">
-          Copyright &copy; 2003-2007 Paremus Limited.</a>
-      All rights reserved.
-            <br>
-
-<script type="text/javascript" language="JavaScript"><!--
-              document.write(" - "+"Last Published: " + document.lastModified);
-              //  --></script>
-<div id="feedback">
-    Send feedback about the website to:
-  <a id="feedbackto" href="mailto:webmaster@paremus.com?subject=Feedback%C2%A0common/eclipse/UsingEclipsePlugin.html">webmaster@paremus.com</a>
-</div>
-</td><td nowrap class="footerLogos"></td>
-</tr>
-</table>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/sigil/eclipse/help/ivy.xml b/sigil/eclipse/help/ivy.xml
deleted file mode 100644
index de4c472..0000000
--- a/sigil/eclipse/help/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.help"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.help" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/help/plugin.xml b/sigil/eclipse/help/plugin.xml
deleted file mode 100644
index b2cc3ec..0000000
--- a/sigil/eclipse/help/plugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.cheatsheets.cheatSheetContent">
-      <category
-            id="org.apache.felix.sigil.help.category"
-            name="Sigil">
-      </category>
-      <cheatsheet
-            category="org.apache.felix.sigil.help.category"
-            composite="false"
-            contentFile="cheatsheets/HelloWorld.xml"
-            id="org.apache.felix.sigil.help.createProjectCheatSheet"
-            name="Create a Hello World composite application">
-      </cheatsheet>
-   </extension>
-</plugin>
diff --git a/sigil/eclipse/help/sigil.properties b/sigil/eclipse/help/sigil.properties
deleted file mode 100644
index e528ef8..0000000
--- a/sigil/eclipse/help/sigil.properties
+++ /dev/null
@@ -1,66 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.eclipse.help.Activator
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.help, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	cheatsheets, \
-	cheatsheets/HelloWorld.xml, \
-	html, \
-	html/book.html, \
-	html/concepts, \
-	html/images, \
-	html/refs, \
-	html/tasks, \
-	html/tasks/container_log.html, \
-	html/tasks/debug_composite.html, \
-	html/tasks/install_composite.html, \
-	html/tasks/launch_newton.html, \
-	html/tasks/new_composite.html, \
-	html/tasks/new_project.html, \
-	html/tasks/new_system.html, \
-	html/tasks/sigil_config.html, \
-	plugin.xml, \
-	toc.xml, \
-
--sourcedirs: \
-	src, \
-
--imports: \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.ui.actions, \
-	org.apache.felix.sigil.eclipse.ui.wizard.project, \
-	org.eclipse.core.resources, \
-	org.eclipse.core.runtime.jobs, \
-	org.eclipse.jface.action, \
-	org.eclipse.jface.dialogs, \
-	org.eclipse.jface.viewers, \
-	org.eclipse.jface.window, \
-	org.eclipse.jface.wizard, \
-	org.eclipse.ui, \
-	org.eclipse.ui.actions, \
-	org.eclipse.ui.cheatsheets, \
-	org.eclipse.ui.part, \
-	org.eclipse.ui.plugin, \
-	org.osgi.framework, \
-
--requires: \
-	org.eclipse.core.commands;version=3.4.0, \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.equinox.registry;version=3.4.0, \
-	org.eclipse.swt;version=3.4.2, \
-	org.eclipse.ui.ide;version=3.4.2, \
-	org.eclipse.ui.workbench;version=3.4.1, \
-
-header;Bundle-ActivationPolicy: lazy	
-
-# end
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/AbstractNewWizardAction.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/AbstractNewWizardAction.java
deleted file mode 100644
index 56609de..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/AbstractNewWizardAction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.cheatsheets.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public abstract class AbstractNewWizardAction extends Action
-{
-
-    @Override
-    public void run()
-    {
-        Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-
-        try
-        {
-            INewWizard wizard = createWizard();
-            wizard.init(PlatformUI.getWorkbench(), getSelection());
-            WizardDialog dialog = new WizardDialog(shell, wizard);
-            int res = dialog.open();
-            notifyResult(res == Window.OK);
-        }
-        catch (CoreException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    protected abstract INewWizard createWizard() throws CoreException;
-
-    private IStructuredSelection getSelection()
-    {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        if (window != null)
-        {
-            ISelection selection = window.getSelectionService().getSelection();
-            if (selection instanceof IStructuredSelection)
-            {
-                return (IStructuredSelection) selection;
-            }
-        }
-        return StructuredSelection.EMPTY;
-    }
-}
\ No newline at end of file
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/CopyResourceFromPlugin.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/CopyResourceFromPlugin.java
deleted file mode 100644
index 14491de..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/CopyResourceFromPlugin.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.cheatsheets.actions;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-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.jface.action.Action;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.cheatsheets.ICheatSheetAction;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-import org.eclipse.ui.part.FileEditorInput;
-import org.osgi.framework.Bundle;
-
-public class CopyResourceFromPlugin extends Action implements ICheatSheetAction
-{
-
-    private String targetProject;
-    private String targetFolder;
-    private String sourceBundle;
-    private String sourcePath;
-    private String editorID;
-
-    public void run(String[] params, ICheatSheetManager manager)
-    {
-        if (params != null && params.length > 4)
-        {
-            targetProject = params[0];
-            targetFolder = params[1];
-            sourceBundle = params[2];
-            sourcePath = params[3];
-            editorID = params[4];
-        }
-
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-        {
-            @Override
-            protected void execute(IProgressMonitor monitor) throws CoreException
-            {
-                try
-                {
-                    Bundle b = Platform.getBundle(sourceBundle);
-
-                    IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-                    IProject project = workspaceRoot.getProject(targetProject);
-                    IPath path = new Path(targetFolder).append(sourcePath.substring(sourcePath.lastIndexOf('/')));
-                    IFile file = project.getFile(path);
-
-                    if (!file.exists())
-                    {
-                        mkdirs((IFolder) file.getParent(), monitor);
-
-                        InputStream in = FileLocator.openStream(b, new Path(sourcePath),
-                            false);
-                        file.create(in, true, monitor);
-                    }
-
-                    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                    FileEditorInput input = new FileEditorInput(file);
-                    window.getActivePage().openEditor(input, editorID);
-                }
-                catch (IOException e)
-                {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        };
-
-        try
-        {
-            new ProgressMonitorDialog(Display.getCurrent().getActiveShell()).run(false,
-                false, op);
-        }
-        catch (InvocationTargetException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        catch (InterruptedException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    private void mkdirs(IFolder folder, IProgressMonitor monitor) throws CoreException
-    {
-        IContainer parent = folder.getParent();
-        if (!parent.exists())
-        {
-            mkdirs((IFolder) parent, monitor);
-        }
-
-        if (!folder.exists())
-        {
-            folder.create(true, true, monitor);
-        }
-
-    }
-}
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/OpenEmptySigilProjectWizardAction.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/OpenEmptySigilProjectWizardAction.java
deleted file mode 100644
index ef869b3..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/OpenEmptySigilProjectWizardAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.cheatsheets.actions;
-
-import org.apache.felix.sigil.eclipse.ui.wizard.project.SigilProjectWizard;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.cheatsheets.ICheatSheetAction;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-public class OpenEmptySigilProjectWizardAction extends AbstractNewWizardAction implements ICheatSheetAction
-{
-
-    private String name;
-
-    public void run(String[] params, ICheatSheetManager manager)
-    {
-        if (params != null && params.length > 0)
-        {
-            name = params[0];
-        }
-
-        run();
-    }
-
-    @Override
-    protected INewWizard createWizard() throws CoreException
-    {
-        SigilProjectWizard wizard = new SigilProjectWizard();
-        wizard.setName(name);
-        return wizard;
-    }
-}
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ResolveProjectDependencies.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ResolveProjectDependencies.java
deleted file mode 100644
index cebdfc4..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ResolveProjectDependencies.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.cheatsheets.actions;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.actions.ResolveProjectDependenciesAction;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.cheatsheets.ICheatSheetAction;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-public class ResolveProjectDependencies extends Action implements ICheatSheetAction
-{
-
-    private String targetProject;
-
-    public void run(String[] params, ICheatSheetManager manager)
-    {
-        if (params != null && params.length > 3)
-        {
-            targetProject = params[0];
-        }
-
-        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-        IProject project = workspaceRoot.getProject(targetProject);
-
-        try
-        {
-            ISigilProjectModel sigil = SigilCore.create(project);
-            new ResolveProjectDependenciesAction(sigil, false).run();
-        }
-        catch (CoreException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ShowViewAction.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ShowViewAction.java
deleted file mode 100644
index 9e9af4a..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/cheatsheets/actions/ShowViewAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.cheatsheets.actions;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.cheatsheets.ICheatSheetAction;
-import org.eclipse.ui.cheatsheets.ICheatSheetManager;
-
-public class ShowViewAction extends Action implements ICheatSheetAction
-{
-
-    public void run(String[] params, ICheatSheetManager manager)
-    {
-        if (params != null && params.length > 0)
-        {
-            IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-            IWorkbenchPage page = window.getActivePage();
-            try
-            {
-                page.showView(params[0]);
-            }
-            catch (PartInitException e)
-            {
-                SigilCore.error("Failed to show view", e);
-            }
-        }
-
-    }
-}
diff --git a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/help/Activator.java b/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/help/Activator.java
deleted file mode 100644
index 99429cc..0000000
--- a/sigil/eclipse/help/src/org/apache/felix/sigil/eclipse/help/Activator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.help;
-
-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.apache.felix.sigil.eclipse.help";
-
-    // 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;
-    }
-
-}
diff --git a/sigil/eclipse/help/toc.xml b/sigil/eclipse/help/toc.xml
deleted file mode 100644
index 191daf4..0000000
--- a/sigil/eclipse/help/toc.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<toc label="Sigil - Newton Development Plugin" topic="html/book.html">
-	<topic label="Configuring Sigil" href="html/tasks/sigil_config.html"/>
-	<topic label="Creating A Newton Project" href="html/tasks/new_project.html"/> 
-	<topic label="Creating SCA Composites" href="html/tasks/new_composite.html"/>
-	<topic label="Creating Newton Systems" href="html/tasks/new_system.html"/>
-	<topic label="Launching Newton" href="html/tasks/launch_newton.html"/>
-	<topic label="Viewing The Newton Log" href="html/tasks/container_log.html"/>
-	<topic label="Installing Your Composites" href="html/tasks/install_composite.html"/>	
-	<topic label="Debugging Your Composites" href="html/tasks/debug_composite.html"/>	
-</toc>
diff --git a/sigil/eclipse/obr.feature/.classpath b/sigil/eclipse/obr.feature/.classpath
deleted file mode 100644
index dd6ef05..0000000
--- a/sigil/eclipse/obr.feature/.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="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/obr.feature/.project b/sigil/eclipse/obr.feature/.project
deleted file mode 100644
index 536e3a1..0000000
--- a/sigil/eclipse/obr.feature/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.obr.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-        <buildSpec>
-                <buildCommand>
-                        <name>org.eclipse.jdt.core.javabuilder</name>
-                        <arguments>
-                        </arguments>
-                </buildCommand>
-                <buildCommand>
-                        <name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-                        <arguments>
-                        </arguments>
-                </buildCommand>
-        </buildSpec>
-        <natures>
-                <nature>org.apache.felix.sigil.sigilnature</nature>
-                <nature>org.eclipse.jdt.core.javanature</nature>
-        </natures>
-</projectDescription>
diff --git a/sigil/eclipse/obr.feature/build.properties b/sigil/eclipse/obr.feature/build.properties
deleted file mode 100644
index 64f93a9..0000000
--- a/sigil/eclipse/obr.feature/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-bin.includes = feature.xml
diff --git a/sigil/eclipse/obr.feature/build.xml b/sigil/eclipse/obr.feature/build.xml
deleted file mode 100644
index bec9912..0000000
--- a/sigil/eclipse/obr.feature/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.obr.feature" default="build">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/eclipse/obr.feature/feature.xml b/sigil/eclipse/obr.feature/feature.xml
deleted file mode 100644
index b607bf1..0000000
--- a/sigil/eclipse/obr.feature/feature.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<feature
-      id="org.apache.felix.sigil.eclipse.obr.feature"
-      label="Sigil OBR"
-      version="${version}"
-      provider-name="Apache Software Foundation">
-
-   <description>
-      Sigil OBR plugin, allows Sigil to use OSGi Bundle Repositories to download OSGi bundles into the Eclipse workspace.
-   </description>
-
-   <license url="http://www.apache.org/licenses/LICENSE-2.0">
-      Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-or implied.
-See the License for the specific language governing permissions
-and
-limitations under the License.
-   </license>
-
-   <!--url>
-      <update url="${update-site}"/>
-   </url-->
-
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.apache.felix.sigil.eclipse.core" version="${version}" match="greaterOrEqual"/>
-      <import plugin="org.apache.felix.sigil.eclipse.ui" version="${version}" match="greaterOrEqual"/>
-      <import plugin="org.apache.felix.sigil.common.core" version="${version}" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.osgi"/>
-      <import plugin="org.eclipse.equinox.common" version="3.4.0" match="greaterOrEqual"/>
-   </requires>
-
-   <plugin
-         id="org.apache.felix.sigil.common.obr"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.felix.sigil.eclipse.obr"
-         download-size="0"
-         install-size="0"
-         version="${version}"
-         unpack="false"/>
-
-</feature>
diff --git a/sigil/eclipse/obr.feature/ivy.xml b/sigil/eclipse/obr.feature/ivy.xml
deleted file mode 100644
index 565d1a9..0000000
--- a/sigil/eclipse/obr.feature/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.obr.feature"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.obr.feature" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/obr.feature/sigil.properties b/sigil/eclipse/obr.feature/sigil.properties
deleted file mode 100644
index 5ebdd18..0000000
--- a/sigil/eclipse/obr.feature/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.eclipse.obr.feature, \
-
--resources: \
-	{feature.xml}, \
-
-# end
diff --git a/sigil/eclipse/obr/.classpath b/sigil/eclipse/obr/.classpath
deleted file mode 100644
index aee728a..0000000
--- a/sigil/eclipse/obr/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.swt.carbon.macosx.jar"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/obr/.project b/sigil/eclipse/obr/.project
deleted file mode 100644
index f534dee..0000000
--- a/sigil/eclipse/obr/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.obr</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/obr/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/obr/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 412f292..0000000
--- a/sigil/eclipse/obr/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:10:07 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/obr/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/obr/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0158086..0000000
--- a/sigil/eclipse/obr/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:10:07 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/obr/DEPENDENCIES b/sigil/eclipse/obr/DEPENDENCIES
deleted file mode 100644
index ccf383e..0000000
--- a/sigil/eclipse/obr/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse OBR
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/obr/NOTICE b/sigil/eclipse/obr/NOTICE
deleted file mode 100644
index 20c985b..0000000
--- a/sigil/eclipse/obr/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse OBR
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/obr/build.xml b/sigil/eclipse/obr/build.xml
deleted file mode 100644
index 9d56d59..0000000
--- a/sigil/eclipse/obr/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.obr" default="build"
-	  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-  <target name="init">
-    <ivy:retrieve organisation="org.eclipse" module="org.eclipse.swt.carbon.macosx" revision="3.4.1.v3452b" inline="true" pattern="lib/[artifact].[ext]" transitive="false"/>
-  </target>
-</project>
diff --git a/sigil/eclipse/obr/ivy.xml b/sigil/eclipse/obr/ivy.xml
deleted file mode 100644
index dd47d0c..0000000
--- a/sigil/eclipse/obr/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.obr"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.obr" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/obr/plugin.xml b/sigil/eclipse/obr/plugin.xml
deleted file mode 100644
index 206ad09..0000000
--- a/sigil/eclipse/obr/plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.apache.felix.sigil.repositoryprovider">
-      <provider
-            class="org.apache.felix.sigil.obr.eclipse.EclipseOBRRepositoryProvider"
-            dynamic="true"
-            id="org.apache.felix.sigil.obr.provider"
-            alias="obr"
-            type="OSGi Bundle Repository (OBR)">
-      </provider>
-   </extension>
-   <extension
-         point="org.apache.felix.sigil.ui.repositorywizard">
-      <wizard
-            class="org.apache.felix.sigil.obr.eclipse.OBRRepositoryWizard"
-            repository="org.apache.felix.sigil.obr.provider">
-      </wizard>
-   </extension>
-
-</plugin>
diff --git a/sigil/eclipse/obr/sigil.properties b/sigil/eclipse/obr/sigil.properties
deleted file mode 100644
index e1923a5..0000000
--- a/sigil/eclipse/obr/sigil.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.obr.eclipse.Activator
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.obr, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	plugin.xml, \
-
--sourcedirs: \
-	src, \
-
--imports: \
-	org.apache.felix.sigil.common.obr, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.eclipse.model.repository, \
-	org.apache.felix.sigil.eclipse.ui.wizard.repository, \
-	org.eclipse.jface.preference, \
-	org.eclipse.jface.wizard, \
-	org.eclipse.ui.plugin, \
-	org.osgi.framework, \
-
--requires: \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.swt;version=3.4.2, \
-
-header;Bundle-ActivationPolicy: lazy	
-
-option;addMissingImports: false
-
-# end
diff --git a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/Activator.java b/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/Activator.java
deleted file mode 100644
index 051484d..0000000
--- a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/Activator.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.obr.eclipse;
-
-
-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.apache.felix.sigil.eclipse.obr";
-
-    // 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;
-    }
-
-}
diff --git a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/EclipseOBRRepositoryProvider.java b/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/EclipseOBRRepositoryProvider.java
deleted file mode 100644
index d372184..0000000
--- a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/EclipseOBRRepositoryProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.obr.eclipse;
-
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.obr.OBRRepositoryProvider;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * @author dave
- *
- */
-public class EclipseOBRRepositoryProvider extends OBRRepositoryProvider
-{
-
-    @Override
-    public IBundleRepository createRepository(String id, Properties preferences)
-        throws RepositoryException
-    {
-        Properties props = new Properties(preferences);
-        
-        if ( !preferences.containsKey(INDEX_CACHE_FILE) ) {
-            String index = newStatePath(id, "index.obr");
-            props.put(INDEX_CACHE_FILE, index);
-        }
-        
-        if ( !preferences.containsKey(CACHE_DIRECTORY) ) {
-            String dir = newStatePath(id, "dir");
-            props.put(CACHE_DIRECTORY, dir);
-        }
-        
-        return super.createRepository(id, props);
-    }
-
-    /**
-     * @param id
-     * @param string
-     * @return
-     */
-    private String newStatePath(String id, String string)
-    {
-        IPath state = Activator.getDefault().getStateLocation();
-        state.append("cache").append(id).append(string);
-        return state.toOSString();
-    }
-
-}
diff --git a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizard.java b/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizard.java
deleted file mode 100644
index ae5c245..0000000
--- a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizard.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.obr.eclipse;
-
-
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-
-
-public class OBRRepositoryWizard extends RepositoryWizard
-{
-
-    @Override
-    public void addPages()
-    {
-        addPage( new OBRRepositoryWizardPage( this ) );
-    }
-}
diff --git a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizardPage.java b/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizardPage.java
deleted file mode 100644
index cd1856a..0000000
--- a/sigil/eclipse/obr/src/org/apache/felix/sigil/obr/eclipse/OBRRepositoryWizardPage.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.obr.eclipse;
-
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizardPage;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.DirectoryFieldEditor;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-
-
-public class OBRRepositoryWizardPage extends RepositoryWizardPage implements IWizardPage
-{
-
-    private StringFieldEditor urlEditor;
-    private StringFieldEditor cacheEditor;
-
-
-    protected OBRRepositoryWizardPage( RepositoryWizard parent )
-    {
-        super( "OSGi Bundle Repository", parent );
-    }
-
-
-    @Override
-    public void createFieldEditors()
-    {
-        createField( urlEditor = new StringFieldEditor( "url", "URL:", getFieldEditorParent() ) );
-        createField( cacheEditor = new DirectoryFieldEditor( "cache", "Cache:", getFieldEditorParent() ) );
-        addField( new BooleanFieldEditor( "inmemory", "In Memory:", getFieldEditorParent() ) );
-    }
-
-
-    private void createField( StringFieldEditor editor )
-    {
-        editor.getTextControl( getFieldEditorParent() ).addModifyListener( new ModifyListener()
-        {
-            public void modifyText( ModifyEvent e )
-            {
-                checkPageComplete();
-            }
-        } );
-        addField( editor );
-    }
-
-
-    @Override
-    protected void checkPageComplete()
-    {
-        super.checkPageComplete();
-        if ( isPageComplete() && checkURLComplete() )
-        {
-            checkCacheComplete();
-        }
-    }
-
-
-    private boolean checkCacheComplete()
-    {
-        setPageComplete( cacheEditor.getStringValue().length() > 0 );
-
-        if ( isPageComplete() )
-        {
-            if ( new File( cacheEditor.getStringValue() ).isDirectory() )
-            {
-                setErrorMessage( null );
-            }
-            else
-            {
-                setErrorMessage( "Invalid cache directory" );
-                setPageComplete( false );
-            }
-        }
-
-        return isPageComplete();
-    }
-
-
-    private boolean checkURLComplete()
-    {
-        setPageComplete( urlEditor.getStringValue().length() > 0 );
-
-        if ( isPageComplete() )
-        {
-            try
-            {
-                new URL( urlEditor.getStringValue() );
-                setErrorMessage( null );
-            }
-            catch ( MalformedURLException e )
-            {
-                if ( !new File( urlEditor.getStringValue() ).isFile() )
-                {
-                    setErrorMessage( "Invalid repository url: " + e.getMessage() );
-                    setPageComplete( false );
-                }
-            }
-        }
-
-        return isPageComplete();
-    }
-
-
-    @Override
-    public void storeFields()
-    {
-        super.storeFields();
-        IPath dir = Activator.getDefault().getStateLocation();
-        getModel().getProperties().setProperty( "index", dir.append( getModel().getId() + ".obr" ).toOSString() );
-    }
-
-}
diff --git a/sigil/eclipse/runtime/.classpath b/sigil/eclipse/runtime/.classpath
deleted file mode 100644
index fce9fdb..0000000
--- a/sigil/eclipse/runtime/.classpath
+++ /dev/null
@@ -1,8 +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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.swt.carbon.macosx.jar"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/runtime/.project b/sigil/eclipse/runtime/.project
deleted file mode 100644
index 7145f7e..0000000
--- a/sigil/eclipse/runtime/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.runtime</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/runtime/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/runtime/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9d341cf..0000000
--- a/sigil/eclipse/runtime/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:10:24 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/runtime/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/runtime/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 128334d..0000000
--- a/sigil/eclipse/runtime/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:10:24 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/runtime/DEPENDENCIES b/sigil/eclipse/runtime/DEPENDENCIES
deleted file mode 100644
index 0159f80..0000000
--- a/sigil/eclipse/runtime/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse Runtime
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/runtime/NOTICE b/sigil/eclipse/runtime/NOTICE
deleted file mode 100644
index b6758b9..0000000
--- a/sigil/eclipse/runtime/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse Runtime
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/runtime/build.xml b/sigil/eclipse/runtime/build.xml
deleted file mode 100644
index c5435a0..0000000
--- a/sigil/eclipse/runtime/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.runtime" default="build"
-	  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-  <target name="init">
-    <ivy:retrieve organisation="org.eclipse" module="org.eclipse.swt.carbon.macosx" revision="3.4.1.v3452b" inline="true" pattern="lib/[artifact].[ext]" transitive="false"/>
-  </target>
-</project>
diff --git a/sigil/eclipse/runtime/icons/logo16x16.gif b/sigil/eclipse/runtime/icons/logo16x16.gif
deleted file mode 100644
index 0c344d8..0000000
--- a/sigil/eclipse/runtime/icons/logo16x16.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/runtime/ivy.xml b/sigil/eclipse/runtime/ivy.xml
deleted file mode 100644
index a428817..0000000
--- a/sigil/eclipse/runtime/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.runtime"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.runtime" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/runtime/plugin.xml b/sigil/eclipse/runtime/plugin.xml
deleted file mode 100644
index c1b4a27..0000000
--- a/sigil/eclipse/runtime/plugin.xml
+++ /dev/null
@@ -1,534 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension point = "org.eclipse.debug.core.launchConfigurationTypes">
-	   <launchConfigurationType
-	   	   id="org.apache.felix.sigil.eclipse.runtime.OSGi"
-		   name="OSGi Application"
-		   delegate="org.apache.felix.sigil.eclipse.runtime.OSGiLauncher"
-		   modes= "run, debug"
-		   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
-	       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
-		</launchConfigurationType>
-	</extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
-      <launchConfigurationTabGroup
-            class="org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationTabGroup"
-            id="org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationTabGroup"
-            type="org.apache.felix.sigil.eclipse.runtime.OSGi"/>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchShortcuts">
-      <shortcut
-            class="org.apache.felix.sigil.eclipse.runtime.shortcut.OSGiLaunchShortCut"
-            icon="/icons/logo16x16.gif"
-            id="org.apache.felix.sigil.eclipse.runtime.shortcut"
-            label="OSGi Application"
-            modes="run,debug">
-         <contextualLaunch>
-            <enablement>
-               <with variable="selection">
-                  <count value="1"/>
-                  <iterate>
-                     <or>
-	                     <instanceof value="org.eclipse.jdt.core.IJavaProject"/>
-                         <test
-                               property="org.apache.felix.sigil.isSigilProject"
-                               value="true"/>
-	                 </or>
-                  </iterate>
-               </with>
-            </enablement>
-         </contextualLaunch>
-      </shortcut>
-   </extension>
-   <extension
-         point="org.eclipse.jdt.launching.classpathProviders">
-      <classpathProvider
-            class="org.apache.felix.sigil.eclipse.runtime.source.SigilSourcePathProvider"
-            id="org.apache.felix.sigil.classpath.Provider"/>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
-      <launchConfigurationTypeImage
-            configTypeID="org.apache.felix.sigil.eclipse.runtime.OSGi"
-            icon="icons/logo16x16.gif"
-            id="org.apache.felix.sigil.eclipse.runtime.OSGi">
-      </launchConfigurationTypeImage>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.apache.felix.sigil.runtime.commands.installProject"
-            name="%commandInstallProject">
-      </command>
-      <command
-            id="org.apache.felix.sigil.runtime.commands.uninstallProject"
-            name="%commandUninstallProject">
-      </command>
-      <command
-            id="org.apache.felix.sigil.runtime.commands.reinstallProject"
-            name="%commandReinstallProject">
-      </command>
-      <command
-            id="org.apache.felix.sigil.runtime.commands.startProject"
-            name="%commandStartProject">
-      </command>
-      <command
-            id="org.apache.felix.sigil.runtime.commands.stopProject"
-            name="%commandStopProject">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.apache.felix.sigil.runtime.commands.installProject"
-            icon="etc/images/installBundle.png">
-      </image>
-      <image
-            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
-            icon="etc/images/uninstallBundle.png">
-      </image>
-      <image
-            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
-            icon="etc/images/refreshBundle.png">
-      </image>
-      <image
-            commandId="org.apache.felix.sigil.runtime.commands.startProject"
-            icon="etc/images/startBundle.png">
-      </image>
-      <image
-            commandId="org.apache.felix.sigil.runtime.commands.stopProject"
-            icon="etc/images/stopBundle.png">
-      </image>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:install"
-            commandId="org.apache.felix.sigil.runtime.commands.installProject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="or">
-                  <and>
-                     <or>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IFile">
-	                     </instanceof>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                     </instanceof>
-	                 </or>
-                     <test
-                           property="org.cauldron.sigil.isSigilProject"
-                           value="true">
-                     </test>
-                  </and>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:start"
-            commandId="org.apache.felix.sigil.runtime.commands.startProject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="or">
-                  <and>
-                     <or>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IFile">
-	                     </instanceof>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                     </instanceof>
-	                 </or>
-                     <test
-                           property="org.cauldron.sigil.isSigilProject"
-                           value="true">
-                     </test>
-                  </and>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>  
-                <handler
-            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:stop"
-            commandId="org.apache.felix.sigil.runtime.commands.stopProject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="or">
-                  <and>
-                     <or>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IFile">
-	                     </instanceof>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                     </instanceof>
-	                 </or>
-                     <test
-                           property="org.cauldron.sigil.isSigilProject"
-                           value="true">
-                     </test>
-                  </and>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:uninstall"
-            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="or">
-                  <and>
-                     <or>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IFile">
-	                     </instanceof>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                     </instanceof>
-	                 </or>
-                     <test
-                           property="org.cauldron.sigil.isSigilProject"
-                           value="true">
-                     </test>
-                  </and>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:reinstall"
-            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="or">
-                  <and>
-                     <or>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IFile">
-	                     </instanceof>
-	                     <instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                     </instanceof>
-	                 </or>
-                     <test
-                           property="org.cauldron.sigil.isSigilProject"
-                           value="true">
-                     </test>
-                  </and>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:install"
-            commandId="org.apache.felix.sigil.runtime.commands.installProject">
-         <activeWhen>
-            <with
-                  variable="activePartId">
-               <equals
-                     value="org.cauldron.sigil.editors.SigilProjectEditor">
-               </equals>
-            </with>
-         </activeWhen>
-      </handler>
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:uninstall"
-            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject">
-         <activeWhen>
-            <with
-                  variable="activePartId">
-               <equals
-                     value="org.cauldron.sigil.editors.SigilProjectEditor">
-               </equals>
-            </with>
-         </activeWhen>
-      </handler>
-      <handler
-            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:reinstall"
-            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject">
-         <activeWhen>
-            <with
-                  variable="activePartId">
-               <equals
-                     value="org.cauldron.sigil.editors.SigilProjectEditor">
-               </equals>
-            </with>
-         </activeWhen>
-      </handler>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any">
-         <separator
-               name="org.cauldron.sigil.runtime.separator"
-               visible="true">
-         </separator>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.installProject"
-                  label="Install Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
-                  label="Uninstall Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
-                  label="Reinstall Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.startProject"
-                  label="Start Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.stopProject"
-                  label="Stop Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar">
-         <toolbar
-               id="org.cauldron.sigil.runtime.toolbar1">
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.installProject"
-                  label="Install Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="org.cauldron.sigil.editors.SigilProjectEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
-                  label="Uninstall Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="org.cauldron.sigil.editors.SigilProjectEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
-                  label="Re Install Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="org.cauldron.sigil.editors.SigilProjectEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.startProject"
-                  label="Start Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="org.cauldron.sigil.editors.SigilProjectEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="org.apache.felix.sigil.runtime.commands.stopProject"
-                  label="Stop Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="org.cauldron.sigil.editors.SigilProjectEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </command>
-         </toolbar>
-      </menuContribution>
-   </extension>
-   <!-- extension
-         point="org.eclipse.ui.contexts">
-      <context
-            id="org.cauldron.sigil.runtime.contexts.compositeEditor"
-            name="Composite Editor"
-            parentId="org.eclipse.ui.textEditorScope">
-      </context>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.apache.felix.sigil.runtime.commands.installComposite"
-            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+I">
-      </key>
-      <key
-            commandId="org.apache.felix.sigil.runtime.commands.uninstallComposite"
-            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+U">
-      </key>
-      <key
-            commandId="org.apache.felix.sigil.runtime.commands.reinstallComposite"
-            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+M2+I">
-      </key>
-   </extension -->
-   <!-- extension
-         point="org.eclipse.ui.views">
-      <view
-            category="org.cauldron.sigil.ui.views"
-            class="org.cauldron.sigil.runtime.views.NewtonInstancesView"
-            icon="etc/images/newton.png"
-            id="org.cauldron.sigil.runtime.newtonInstancesView"
-            name="Newton Instances"
-            restorable="true">
-      </view>
-   </extension -->
-   <!-- extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory
-            adaptableType="org.cauldron.sigil.runtime.registry.INewtonRegistry"
-            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
-         <adapter
-               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
-         </adapter>
-      </factory>
-      <factory
-            adaptableType="org.cauldron.sigil.runtime.registry.INewtonInstance"
-            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
-         <adapter
-               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
-         </adapter>
-      </factory>
-      <factory
-            adaptableType="org.cauldron.sigil.runtime.model.IBundleState"
-            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
-         <adapter
-               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
-         </adapter>
-      </factory>
-   </extension -->
-   <!-- extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.cauldron.sigil.ui.perspective1">
-         <viewShortcut
-               id="org.cauldron.sigil.runtime.newtonInstancesView">
-         </viewShortcut>
-      </perspectiveExtension>
-   </extension -->
-   <!-- extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.cauldron.sigil.runtime.prefs.PreferenceInitializer">
-      </initializer>
-   </extension -->
-   <!-- extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            category="org.cauldron.sigil.ui.preferences.SigilPreferencePage"
-            class="org.cauldron.sigil.runtime.prefs.RuntimePreferencesPage"
-            id="org.cauldron.sigil.runtime.preferences.RuntimePreferencesPage"
-            name="Runtime">
-      </page>
-   </extension -->
-   <!-- extension
-         point="org.cauldron.sigil.installbuilder">
-      <builder
-            class="org.cauldron.sigil.runtime.install.NewtonV1_2InstallBuilder">
-      </builder>
-      <builder
-            class="org.cauldron.sigil.runtime.install.NewtonV1_3InstallBuilder">
-      </builder>
-      <builder
-            class="org.cauldron.sigil.runtime.install.NewtonV1_4InstallBuilder">
-      </builder>
-   </extension -->
-   <!-- extension
-         point="org.cauldron.sigil.repositoryprovider">
-      <provider
-            class="org.cauldron.sigil.runtime.repository.PlatformRepositoryProvider"
-            defaultLevel="-2"
-            dynamic="false"
-            id="org.cauldron.sigil.runtime.provider"
-            type="OSGi Platform Repository">
-      </provider>
-   </extension -->
-</plugin>
diff --git a/sigil/eclipse/runtime/sigil.properties b/sigil/eclipse/runtime/sigil.properties
deleted file mode 100644
index dc85abf..0000000
--- a/sigil/eclipse/runtime/sigil.properties
+++ /dev/null
@@ -1,54 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.runtime, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	icons, \
-	plugin.xml, \
-
--sourcedirs: \
-	src, \
-
--imports: \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.common.runtime, \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.install, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.ui, \
-	org.apache.felix.sigil.eclipse.ui.util, \
-	org.eclipse.core.commands.common;resolve=compile, \
-	org.eclipse.core.resources, \
-	org.eclipse.core.runtime, \
-	org.eclipse.jdt.core, \
-	org.eclipse.jdt.debug.ui.launchConfigurations, \
-	org.eclipse.jface.dialogs, \
-	org.eclipse.jface.viewers, \
-	org.eclipse.jface.window, \
-	org.eclipse.swt.widgets, \
-	org.osgi.framework, \
-
--requires: \
-	org.eclipse.core.jobs;version=3.4.1, \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.debug.core;version=3.4.1, \
-	org.eclipse.debug.ui;version=3.4.2, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.jdt.launching;version=3.4.1, \
-	org.eclipse.swt;version=3.4.2, \
-	org.eclipse.ui.ide;version=3.4.2, \
-	org.eclipse.ui.workbench;version=3.4.2, \
-
-option;addMissingImports: false
-
-# end
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java
deleted file mode 100644
index b2deb73..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.runtime;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.runtime.BundleForm;
-import org.apache.felix.sigil.common.runtime.Runtime;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstall;
-import org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationConstants;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-public class LaunchHelper
-{
-
-    public static IOSGiInstall getInstall(ILaunchConfiguration config)
-    {
-        return null;
-    }
-
-    public static int getRetries(ILaunchConfiguration config)
-    {
-        return 5;
-    }
-
-    public static Properties buildClientProps(ILaunchConfiguration config)
-    {
-        Properties props = new Properties();
-        props.put(Runtime.ADDRESS_PROPERTY, "localhost");
-        props.put(Runtime.PORT_PROPERTY, "9090");
-        return props;
-    }
-
-    public static String[] getProgramArgs(ILaunchConfiguration config)
-    {
-        return new String[] { "-p", "9090", "-a", "localhost", "-c" };
-    }
-
-    public static long getBackoff(ILaunchConfiguration config)
-    {
-        return 1000;
-    }
-
-    public static URL toURL(String loc) throws MalformedURLException
-    {
-        URL url = null;
-        try
-        {
-            url = new URL(loc);
-        }
-        catch (MalformedURLException e)
-        {
-            IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(loc));
-            if (f.exists())
-            {
-                url = f.getLocation().toFile().toURL();
-            }
-            else
-            {
-                throw new MalformedURLException("Unknown file " + loc);
-            }
-        }
-        return url;
-    }
-
-    public static BundleForm getBundleForm(ILaunchConfiguration config)
-        throws CoreException
-    {
-        String loc = config.getAttribute(
-            OSGiLaunchConfigurationConstants.FORM_FILE_LOCATION, (String) null);
-        try
-        {
-            URL url = toURL(loc);
-            SigilCore.log("Resolving " + url);
-            return BundleForm.create(url);
-        }
-        catch (Exception e)
-        {
-            throw SigilCore.newCoreException("Failed to parse bundle form file", e);
-        }
-    }
-
-    public static String getRepositoryManagerName(ILaunchConfiguration config)
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java
deleted file mode 100644
index d95e2e2..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.runtime;
-
-import java.io.IOException;
-
-import java.net.ConnectException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.runtime.BundleForm;
-import org.apache.felix.sigil.common.runtime.Client;
-import org.apache.felix.sigil.common.runtime.Main;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstall;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate2;
-import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
-
-public class OSGiLauncher extends AbstractJavaLaunchConfigurationDelegate implements ILaunchConfigurationDelegate, ILaunchConfigurationDelegate2
-{
-
-    public void launch(ILaunchConfiguration config, String mode, ILaunch launch,
-        IProgressMonitor monitor) throws CoreException
-    {
-        IOSGiInstall osgi = LaunchHelper.getInstall(config);
-
-        VMRunnerConfiguration vmconfig = new VMRunnerConfiguration(Main.class.getName(),
-            buildClasspath(osgi, config));
-
-        String vm = getVMArguments(config);
-        if (vm != null && vm.trim().length() > 0)
-            vmconfig.setVMArguments(vm.split(" "));
-
-        IPath path = getWorkingDirectoryPath(config);
-        vmconfig.setWorkingDirectory(path == null ? null : path.toOSString());
-
-        vmconfig.setBootClassPath(getBootpath(config));
-        vmconfig.setEnvironment(getEnvironment(config));
-        vmconfig.setProgramArguments(LaunchHelper.getProgramArgs(config));
-
-        IVMInstall install = getVMInstall(config);
-
-        IVMRunner runner = install.getVMRunner(mode);
-
-        setDefaultSourceLocator(launch, config);
-
-        SigilCore.log("VM=" + install.getName());
-        SigilCore.log("Main=" + vmconfig.getClassToLaunch());
-        SigilCore.log("VMArgs=" + Arrays.asList(vmconfig.getVMArguments()));
-        SigilCore.log("Boot Classpath=" + Arrays.asList(vmconfig.getBootClassPath()));
-        SigilCore.log("Classpath=" + Arrays.asList(vmconfig.getClassPath()));
-        SigilCore.log("Args=" + Arrays.asList(vmconfig.getProgramArguments()));
-        SigilCore.log("Working Dir=" + vmconfig.getWorkingDirectory());
-
-        runner.run(vmconfig, launch, monitor);
-
-        Client client = connect(config);
-
-        BundleForm form = LaunchHelper.getBundleForm(config);
-
-        try
-        {
-            // TODO need to figure out a sensible repository manager for launch configs
-            IRepositoryManager manager = SigilCore.getGlobalRepositoryManager();
-            client.apply(form.resolve(new RuntimeBundleResolver(manager, config)));
-        }
-        catch (Exception e)
-        {
-            throw SigilCore.newCoreException("Failed to apply bundle form", e);
-        }
-
-        SigilCore.log("Connected " + client.isConnected());
-    }
-
-    private Client connect(ILaunchConfiguration config) throws CoreException
-    {
-        Properties props = LaunchHelper.buildClientProps(config);
-
-        int retry = LaunchHelper.getRetries(config);
-
-        Client client = null;
-
-        for (int i = 0; i < retry; i++)
-        {
-            client = new Client();
-            try
-            {
-                client.connect(props);
-                break;
-            }
-            catch (ConnectException e)
-            {
-                SigilCore.log("Failed to connect to client: " + e.getMessage());
-            }
-            catch (IOException e)
-            {
-                throw SigilCore.newCoreException("Failed to connect client", e);
-            }
-
-            try
-            {
-                Thread.sleep(LaunchHelper.getBackoff(config));
-            }
-            catch (InterruptedException e)
-            {
-                SigilCore.log("Interrupted during backoff");
-            }
-        }
-
-        if (client == null)
-        {
-            throw SigilCore.newCoreException(
-                "Failed to connect client after retries, check error log for details",
-                null);
-        }
-
-        return client;
-    }
-
-    public String[] getBootpath(ILaunchConfiguration configuration) throws CoreException
-    {
-        String[] bootpath = super.getBootpath(configuration);
-
-        ArrayList<String> filtered = new ArrayList<String>();
-
-        if (bootpath != null)
-        {
-            for (String bp : bootpath)
-            {
-                if (!SigilCore.isBundledPath(bp))
-                {
-                    filtered.add(bp);
-                }
-            }
-        }
-
-        return filtered.toArray(new String[filtered.size()]);
-    }
-
-    private String[] buildClasspath(IOSGiInstall osgi, ILaunchConfiguration config)
-        throws CoreException
-    {
-        ArrayList<String> cp = new ArrayList<String>();
-
-        cp.add(Main.class.getProtectionDomain().getCodeSource().getLocation().getFile());
-
-        for (String c : getClasspath(config))
-        {
-            cp.add(c);
-        }
-
-        if (osgi != null)
-        {
-            for (String c : osgi.getType().getClassPath())
-            {
-                cp.add(c);
-            }
-        }
-
-        return cp.toArray(new String[cp.size()]);
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java
deleted file mode 100644
index bbb1b50..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.apache.felix.sigil.eclipse.runtime;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.repository.IBundleResolver;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.apache.felix.sigil.common.runtime.BundleForm.ResolutionContext;
-import org.apache.felix.sigil.common.runtime.BundleForm.Resolver;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.runtime.source.SigilSourcePathProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.osgi.framework.Version;
-
-public class RuntimeBundleResolver implements ResolutionContext
-{
-
-    public class SigilBundleResolver implements Resolver
-    {
-        public URI[] resolve(URI base) throws URISyntaxException
-        {
-            ArrayList<URI> uris = new ArrayList<URI>(1);
-
-            IBundleResolver resolver = manager.getBundleResolver();
-            IRequiredBundle element = ModelElementFactory.getInstance().newModelElement(
-                IRequiredBundle.class);
-            String[] parts = base.getSchemeSpecificPart().split(":");
-            switch (parts.length)
-            {
-                case 2:
-                    Version v = Version.parseVersion(parts[1]);
-                    element.setVersions(new VersionRange(false, v, v, false));
-                    // fall through on purpose
-                case 1:
-                    element.setSymbolicName(parts[0]);
-                    break;
-                default:
-                    throw new URISyntaxException(base.toString(),
-                        "Unexpected number of parts: " + parts.length);
-            }
-            try
-            {
-                ResolutionConfig config = new ResolutionConfig(
-                    ResolutionConfig.IGNORE_ERRORS);
-                IResolution resolution = resolver.resolve(element, config, null);
-                if (resolution.getBundles().isEmpty())
-                {
-                    SigilCore.error("Failed to resolve bundle for " + base);
-                }
-                for (ISigilBundle b : resolution.getBundles())
-                {
-                    ISigilProjectModel p = b.getAncestor(ISigilProjectModel.class);
-                    if (p != null)
-                    {
-                        uris.add(p.findBundleLocation().toFile().toURI());
-                        SigilCore.log("Adding project source to source path "
-                            + p.getName());
-                        SigilSourcePathProvider.addProjectSource(launchConfig, p);
-                    }
-                    else
-                    {
-                        b.synchronize(null);
-                        uris.add(b.getLocation().toURI());
-                    }
-                }
-            }
-            catch (ResolutionException e)
-            {
-                SigilCore.error("Failed to resolve " + base, e);
-            }
-            catch (IOException e)
-            {
-                SigilCore.error("Failed to synchronize " + base, e);
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to access " + base, e);
-            }
-            SigilCore.log("Resolved " + uris);
-            return uris.toArray(new URI[uris.size()]);
-        }
-    }
-
-    private final IRepositoryManager manager;
-    private final ILaunchConfiguration launchConfig;
-
-    public RuntimeBundleResolver(IRepositoryManager manager, ILaunchConfiguration launchConfig)
-    {
-        this.manager = manager;
-        this.launchConfig = launchConfig;
-    }
-
-    public Resolver findResolver(URI uri)
-    {
-        SigilCore.log("Finding resolver for " + uri.getScheme());
-        if ("sigil".equals(uri.getScheme()))
-        {
-            SigilCore.log("Found resolver for " + uri.getScheme());
-            return new SigilBundleResolver();
-        }
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FilteredModelView.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FilteredModelView.java
deleted file mode 100644
index ecfba3d..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FilteredModelView.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.apache.felix.sigil.eclipse.runtime.config;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultLabelProvider;
-import org.apache.felix.sigil.eclipse.ui.util.IElementDescriptor;
-import org.apache.felix.sigil.eclipse.ui.util.IFilter;
-import org.apache.felix.sigil.eclipse.ui.util.UIHelper;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-public class FilteredModelView<T> extends Composite
-{
-    private ArrayList<T> selected = new ArrayList<T>();
-    private ArrayList<T> elements = new ArrayList<T>();
-    private IElementDescriptor<T> elementDescriptor = UIHelper.getDefaultElementDescriptor();
-    private IFilter<T> filter = UIHelper.getDefaultFilter();
-    private StructuredViewer viewer;
-    private String txt = "";
-
-    public FilteredModelView(Composite parent, int style)
-    {
-        super(parent, style);
-        initLayout();
-    }
-
-    public List<T> getSelectedElements()
-    {
-        return selected;
-    }
-
-    public List<T> getElements()
-    {
-        return elements;
-    }
-
-    public void addElement(T element)
-    {
-        elements.add(element);
-        refresh();
-    }
-
-    public void addElements(Collection<T> elements)
-    {
-        this.elements.addAll(elements);
-        refresh();
-    }
-
-    public void removeElement(T element)
-    {
-        elements.remove(element);
-        refresh();
-    }
-
-    public void removeElements(Collection<T> elements)
-    {
-        this.elements.removeAll(elements);
-        refresh();
-    }
-
-    public void refresh()
-    {
-        SigilUI.runInUI(new Runnable()
-        {
-
-            public void run()
-            {
-                viewer.refresh();
-            }
-        });
-    }
-
-    private void initLayout()
-    {
-        Text bundleTxt = createSelectionBox(this);
-
-        Control view = createViewBox(this);
-
-        // layout
-        bundleTxt.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        view.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        setLayout(new GridLayout(1, false));
-    }
-
-    private Control createViewBox(Composite parent)
-    {
-        Table table = new Table(this, SWT.MULTI);
-
-        viewer = createViewer(table);
-
-        viewer.setContentProvider(new ArrayContentProvider());
-
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            @SuppressWarnings("unchecked")
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                if (event.getSelection().isEmpty())
-                {
-                    selected.clear();
-                }
-                else
-                {
-                    IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-                    selected.addAll(sel.toList());
-                }
-            }
-        });
-
-        viewer.setInput(elements);
-
-        viewer.setFilters(new ViewerFilter[] { new ViewerFilter()
-        {
-            @SuppressWarnings("unchecked")
-            @Override
-            public boolean select(Viewer viewer, Object parentElement, Object element)
-            {
-                if (filter.select((T) element))
-                {
-                    String name = elementDescriptor.getName((T) element);
-                    return name.startsWith(txt);
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        } });
-
-        return table;
-    }
-
-    protected StructuredViewer createViewer(Table table)
-    {
-        TableViewer tableViewer = new TableViewer(table);
-
-        tableViewer.setLabelProvider(new DefaultLabelProvider()
-        {
-
-            public Image getImage(Object arg0)
-            {
-                return null;
-            }
-
-            @SuppressWarnings("unchecked")
-            public String getText(Object element)
-            {
-                return elementDescriptor.getLabel((T) element);
-            }
-
-        });
-
-        return tableViewer;
-    }
-
-    private Text createSelectionBox(Composite parent)
-    {
-        final Text txtSelection = new Text(parent, SWT.SEARCH);
-
-        txtSelection.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                txt = txtSelection.getText();
-                refresh();
-            }
-        });
-        return txtSelection;
-    }
-
-    /*
-     *         ControlDecoration selectionDecor = new ControlDecoration( txtSelection, SWT.LEFT | SWT.TOP );
-        FieldDecoration proposalDecor = FieldDecorationRegistry.getDefault().getFieldDecoration(
-            FieldDecorationRegistry.DEC_CONTENT_PROPOSAL );
-        selectionDecor.setImage( proposalDecor.getImage() );
-        selectionDecor.setDescriptionText( proposalDecor.getDescription() );
-
-        ExclusionContentProposalProvider<T> proposalProvider = new ExclusionContentProposalProvider<T>(
-            elements, filter, elementDescriptor );
-
-        ContentProposalAdapter proposalAdapter = new ContentProposalAdapter( txtSelection, new TextContentAdapter(),
-            proposalProvider, null, null );
-        
-        proposalAdapter.addContentProposalListener( new IContentProposalListener() {
-            public void proposalAccepted( IContentProposal proposal )
-            {
-                WrappedContentProposal<T> valueProposal = (org.apache.felix.sigil.ui.eclipse.ui.util.WrappedContentProposal<T> ) proposal;
-                T selected = valueProposal.getElement();
-                selection = new ArrayList<E>( 1 );
-                selection.add( selected );
-            }            
-        });
-        
-        proposalAdapter.setProposalAcceptanceStyle( ContentProposalAdapter.PROPOSAL_REPLACE );
-
-     */
-
-    public void setElementDescriptor(IElementDescriptor<T> elementDescriptor)
-    {
-        if (elementDescriptor == null)
-        {
-            elementDescriptor = UIHelper.getDefaultElementDescriptor();
-        }
-        this.elementDescriptor = elementDescriptor;
-    }
-
-    public IElementDescriptor<T> getElementDescriptor()
-    {
-        return elementDescriptor;
-    }
-
-    public void setFilter(IFilter<T> filter)
-    {
-        if (filter == null)
-        {
-            filter = UIHelper.getDefaultFilter();
-        }
-        this.filter = filter;
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FormSelectionDialog.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FormSelectionDialog.java
deleted file mode 100644
index 001a16d..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/FormSelectionDialog.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.apache.felix.sigil.eclipse.runtime.config;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.model.BaseWorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class FormSelectionDialog extends Dialog
-{
-    private IFile formFile;
-
-    public FormSelectionDialog(Shell parent)
-    {
-        super(parent);
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        Composite composite = (Composite) super.createDialogArea(parent);
-        new Label(composite, SWT.NONE).setText("Select bundle form file from workspace:");
-        Tree tree = new Tree(composite, SWT.SINGLE);
-
-        TreeViewer viewer = new TreeViewer(tree);
-        viewer.setContentProvider(new BaseWorkbenchContentProvider());
-        viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent evt)
-            {
-                if (evt.getSelection().isEmpty())
-                {
-                    updateFile(null);
-                }
-                else
-                {
-                    StructuredSelection sel = (StructuredSelection) evt.getSelection();
-                    IResource r = (IResource) sel.getFirstElement();
-                    if (r instanceof IFile)
-                    {
-                        IFile f = (IFile) r;
-                        updateFile(f);
-                    }
-                    else
-                    {
-                        updateFile(null);
-                    }
-                }
-            }
-        });
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-
-        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        return composite;
-    }
-
-    public IFile getFormFile()
-    {
-        return formFile;
-    }
-
-    protected void updateFile(IFile file)
-    {
-        formFile = file;
-
-        if (file == null)
-        {
-            getButton(Window.OK).setEnabled(false);
-        }
-        else
-        {
-            getButton(Window.OK).setEnabled(true);
-        }
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java
deleted file mode 100644
index 47a3d36..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.apache.felix.sigil.eclipse.runtime.config;
-
-public interface OSGiLaunchConfigurationConstants
-{
-
-    String FORM_FILE_LOCATION = "org.apache.felix.sigil.form.location";
-    String AUTOMATIC_ADD = "org.apache.felix.sigil.automatic.add";
-    String CLASSPATH_PROVIDER = "org.apache.felix.sigil.classpath.Provider";
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java
deleted file mode 100644
index 668fed3..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.runtime.config;
-
-import java.net.URL;
-
-import org.apache.felix.sigil.common.runtime.BundleForm;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.runtime.LaunchHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-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;
-
-/**
- * @author dave
- *
- */
-public class OSGiLaunchConfigurationTab extends AbstractLaunchConfigurationTab
-{
-
-    private Text formText;
-    private String formLocation;
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-     */
-    public String getName()
-    {
-        return "OSGi";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createControl(Composite parent)
-    {
-        Composite configurationView = new Composite(parent, SWT.NONE);
-        new Label(configurationView, SWT.NONE).setText("Form");
-
-        // components
-        formText = new Text(configurationView, SWT.BORDER);
-
-        // layout
-        formText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-        formText.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                updateLocation();
-            }
-        });
-
-        Button browse = new Button(configurationView, SWT.PUSH);
-        browse.setText("Browse");
-
-        browse.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                FormSelectionDialog dialog = new FormSelectionDialog(getShell());
-                if (dialog.open() == Window.OK)
-                {
-                    formLocation = dialog.getFormFile().getFullPath().toOSString();
-                    formText.setText(formLocation);
-                    updateLocation();
-                }
-            }
-        });
-
-        configurationView.setLayout(new GridLayout(3, false));
-
-        setControl(configurationView);
-    }
-
-    private void updateLocation()
-    {
-        String loc = formText.getText();
-        if (loc.trim().length() > 0)
-        {
-            try
-            {
-                URL url = LaunchHelper.toURL(loc);
-                SigilCore.log("Resolving " + url);
-                BundleForm.create(url);
-                setErrorMessage(null);
-                setDirty(true);
-            }
-            catch (Exception e)
-            {
-                SigilCore.warn("Failed to resolve bundle form", e);
-                setErrorMessage("Invalid form file " + e.getMessage());
-            }
-        }
-        else
-        {
-            setErrorMessage("Missing form file");
-        }
-        updateLaunchConfigurationDialog();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-     */
-    public void initializeFrom(ILaunchConfiguration config)
-    {
-        try
-        {
-            formLocation = config.getAttribute(
-                OSGiLaunchConfigurationConstants.FORM_FILE_LOCATION, "");
-            formText.setText(formLocation);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to initialise launch configuration view", e);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-     */
-    public void performApply(ILaunchConfigurationWorkingCopy config)
-    {
-        config.setAttribute(OSGiLaunchConfigurationConstants.FORM_FILE_LOCATION,
-            formLocation);
-        config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER,
-            OSGiLaunchConfigurationConstants.CLASSPATH_PROVIDER);
-        config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER,
-            OSGiLaunchConfigurationConstants.CLASSPATH_PROVIDER);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-     */
-    public void setDefaults(ILaunchConfigurationWorkingCopy config)
-    {
-        config.setAttribute(OSGiLaunchConfigurationConstants.FORM_FILE_LOCATION,
-            (String) null);
-    }
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTabGroup.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTabGroup.java
deleted file mode 100644
index 1acaa4e..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTabGroup.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.runtime.config;
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.EnvironmentTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab;
-
-/**
- * @author dave
- *
- */
-public class OSGiLaunchConfigurationTabGroup extends AbstractLaunchConfigurationTabGroup
-{
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-     */
-    public void createTabs(ILaunchConfigurationDialog arg0, String arg1)
-    {
-        ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {
-                new OSGiLaunchConfigurationTab(), new CommonTab(),
-                new JavaArgumentsTab(), new JavaClasspathTab(), new EnvironmentTab() };
-        setTabs(tabs);
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/shortcut/OSGiLaunchShortCut.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/shortcut/OSGiLaunchShortCut.java
deleted file mode 100644
index 7e2f426..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/shortcut/OSGiLaunchShortCut.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.runtime.shortcut;
-
-import org.eclipse.debug.ui.ILaunchShortcut;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author dave
- *
- */
-public class OSGiLaunchShortCut implements ILaunchShortcut
-{
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.jface.viewers.ISelection, java.lang.String)
-     */
-    public void launch(ISelection arg0, String arg1)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.ui.IEditorPart, java.lang.String)
-     */
-    public void launch(IEditorPart arg0, String arg1)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java
deleted file mode 100644
index 31c6091..0000000
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.apache.felix.sigil.eclipse.runtime.source;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationConstants;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jdt.launching.StandardSourcePathProvider;
-
-public class SigilSourcePathProvider extends StandardSourcePathProvider
-{
-    private static HashMap<ILaunchConfiguration, Set<IRuntimeClasspathEntry>> dynamicRuntime = new HashMap<ILaunchConfiguration, Set<IRuntimeClasspathEntry>>();
-
-    public IRuntimeClasspathEntry[] resolveClasspath(IRuntimeClasspathEntry[] entries,
-        ILaunchConfiguration configuration) throws CoreException
-    {
-        ArrayList<IRuntimeClasspathEntry> all = new ArrayList<IRuntimeClasspathEntry>(
-            entries.length);
-
-        all.addAll(workbenchSourcePath(entries, configuration));
-        //        all.addAll( launchOverridePath( configuration ) );
-        //        all.addAll( newtonSourcePath( configuration ) );
-        Set<IRuntimeClasspathEntry> dynamic = dynamicRuntime.get(configuration);
-        if (dynamic != null)
-        {
-            all.addAll(dynamic);
-        }
-
-        return (IRuntimeClasspathEntry[]) all.toArray(new IRuntimeClasspathEntry[all.size()]);
-    }
-
-    private List<IRuntimeClasspathEntry> workbenchSourcePath(
-        IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration)
-        throws CoreException
-    {
-        return Arrays.asList(super.resolveClasspath(entries, configuration));
-    }
-
-    private Collection<IRuntimeClasspathEntry> launchOverridePath(
-        ILaunchConfiguration configuration) throws CoreException
-    {
-        ArrayList<IRuntimeClasspathEntry> overrides = new ArrayList<IRuntimeClasspathEntry>();
-
-        if (configuration.getAttribute(OSGiLaunchConfigurationConstants.AUTOMATIC_ADD,
-            true))
-        {
-            for (ISigilProjectModel n : SigilCore.getRoot().getProjects())
-            {
-                overrides.add(JavaRuntime.newProjectRuntimeClasspathEntry(n.getJavaModel()));
-            }
-        }
-
-        return overrides;
-    }
-
-    public static void addProjectSource(ILaunchConfiguration config,
-        ISigilProjectModel project)
-    {
-        Set<IRuntimeClasspathEntry> dynamic = dynamicRuntime.get(config);
-
-        if (dynamic == null)
-        {
-            dynamic = new HashSet<IRuntimeClasspathEntry>();
-            dynamicRuntime.put(config, dynamic);
-        }
-
-        IJavaProject javaProject = project.getJavaModel();
-        IRuntimeClasspathEntry cp = JavaRuntime.newProjectRuntimeClasspathEntry(javaProject);
-
-        dynamic.add(cp);
-    }
-
-    //    private List<IRuntimeClasspathEntry> newtonSourcePath( ILaunchConfiguration configuration ) throws CoreException {
-    //        List<IRuntimeClasspathEntry> all = new ArrayList<IRuntimeClasspathEntry>();
-    //        
-    ////        Collection<IPath> jars = findNewtonJars( configuration );
-    //        
-    ////        IPath source = findSourcePath( configuration );
-    //        
-    ////        for ( IPath jar : jars ) {
-    ////            IRuntimeClasspathEntry cp = JavaRuntime.newArchiveRuntimeClasspathEntry(jar);
-    ////            
-    ////            if ( source != null ) {
-    ////                cp.setSourceAttachmentPath( source );
-    ////                cp.setSourceAttachmentRootPath( findSrcDir( source ) );
-    ////            }
-    ////            cp.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-    ////            
-    ////            all.add( cp );
-    ////        }
-    //                
-    //        return all;
-    //    }
-
-    //    @SuppressWarnings("unchecked")
-    //    private IPath findSrcDir( IPath sourceZip ) throws CoreException {
-    //        ZipFile zip = null;
-    //        
-    //        IPath path = null;
-    //        
-    //        try {
-    //            File file = sourceZip.toFile();
-    //            if (file.exists() && file.isFile() ) {
-    //                zip = new ZipFile(file);
-    //                
-    //                for ( Enumeration e = zip.entries(); e.hasMoreElements(); ) {
-    //                    ZipEntry entry = (ZipEntry) e.nextElement();
-    //                    if ( entry.getName().endsWith( "src/" ) ); {
-    //                        path = new Path( entry.getName() );
-    //                        break;
-    //                    }
-    //                }
-    //            } // else return null;
-    //        }
-    //        catch (ZipException e) {
-    //            throw SigilCore.newCoreException("Failed to open source zip:" + sourceZip.toFile(), e);
-    //        }
-    //        catch (IOException e) {
-    //            throw SigilCore.newCoreException("Failed to open source zip" + sourceZip.toFile(), e);
-    //        }
-    //        finally {
-    //            if ( zip != null ) {
-    //                try {
-    //                    zip.close();
-    //                }
-    //                catch (IOException e) {
-    //                    SigilCore.error( "Failed to close src zip", e);
-    //                }
-    //            }
-    //        }
-    //        
-    //        return path;
-    //    }
-
-    //    private Collection<IPath> findNewtonJars( ILaunchConfiguration configuration ) throws CoreException {
-    //        ArrayList<IPath> paths = new ArrayList<IPath>();
-    //        
-    //        INewtonInstall install = NewtonLaunchConfigurationHelper.getNewtonInstall(configuration);
-    //        
-    //        for ( IPath path : install.getType().getDefaultBundleLocations() ) {
-    //            paths.add(path);
-    //        }
-    //        
-    //        return paths;
-    //    }       
-
-    //    private IPath findSourcePath( ILaunchConfiguration configuration ) throws CoreException {
-    //        INewtonInstall install = NewtonLaunchConfigurationHelper.getNewtonInstall(configuration);
-    //        return install.getType().getSourceLocation();
-    //    }    
-}
diff --git a/sigil/eclipse/search/.classpath b/sigil/eclipse/search/.classpath
deleted file mode 100644
index 735b84e..0000000
--- a/sigil/eclipse/search/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="lib" path="lib/bcel.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/search/.project b/sigil/eclipse/search/.project
deleted file mode 100644
index bbe43a8..0000000
--- a/sigil/eclipse/search/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.search</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/search/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/search/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b75ebb9..0000000
--- a/sigil/eclipse/search/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:10:46 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/search/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/search/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 2563a2b..0000000
--- a/sigil/eclipse/search/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:10:46 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/search/DEPENDENCIES b/sigil/eclipse/search/DEPENDENCIES
deleted file mode 100644
index 54f2b58..0000000
--- a/sigil/eclipse/search/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse Search
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/search/NOTICE b/sigil/eclipse/search/NOTICE
deleted file mode 100644
index bdd75e9..0000000
--- a/sigil/eclipse/search/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse Search
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/search/build.xml b/sigil/eclipse/search/build.xml
deleted file mode 100644
index a0d8ad5..0000000
--- a/sigil/eclipse/search/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.search" default="build"
-   xmlns:ivy="antlib:org.apache.ivy.ant">
-      <import file="../build.xml"/>
-      <target name="init">
-        <ivy:retrieve organisation="org.apache" module="bcel" revision="5.2" inline="true" pattern="lib/[artifact].[ext]"/>
-      </target>
-</project>
diff --git a/sigil/eclipse/search/ivy.xml b/sigil/eclipse/search/ivy.xml
deleted file mode 100644
index e0b5e6d..0000000
--- a/sigil/eclipse/search/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.search"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.search" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/search/sigil.properties b/sigil/eclipse/search/sigil.properties
deleted file mode 100644
index 52d803d..0000000
--- a/sigil/eclipse/search/sigil.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.search.SigilSearch
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.search, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.search, \
-
--imports: \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.model.util, \
-	org.apache.felix.sigil.search, \
-	org.eclipse.jdt.core, \
-	org.eclipse.ui.plugin, \
-	org.osgi.framework, \
-
--libs: \
-	lib/bcel.jar;kind=classpath, \
-
--requires: \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-
-header;Bundle-ActivationPolicy: lazy	
-
-# end
diff --git a/sigil/eclipse/search/src/org/apache/felix/sigil/search/ISearchResult.java b/sigil/eclipse/search/src/org/apache/felix/sigil/search/ISearchResult.java
deleted file mode 100644
index 568ada8..0000000
--- a/sigil/eclipse/search/src/org/apache/felix/sigil/search/ISearchResult.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.search;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-
-public interface ISearchResult
-{
-    ISigilBundle getProvider();
-
-    IPackageExport getExport();
-
-    String getPackageName();
-
-    String getClassName();
-}
diff --git a/sigil/eclipse/search/src/org/apache/felix/sigil/search/SigilSearch.java b/sigil/eclipse/search/src/org/apache/felix/sigil/search/SigilSearch.java
deleted file mode 100644
index ba587a1..0000000
--- a/sigil/eclipse/search/src/org/apache/felix/sigil/search/SigilSearch.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.search;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.regex.Pattern;
-
-import org.apache.bcel.classfile.ClassParser;
-import org.apache.bcel.classfile.JavaClass;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryChangeListener;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.repository.RepositoryChangeEvent;
-import org.apache.felix.sigil.eclipse.PathUtil;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.search.index.Index;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class SigilSearch extends AbstractUIPlugin
-{
-
-    // The plug-in ID
-    public static final String PLUGIN_ID = "org.apache.felix.sigil.eclipse.search";
-
-    private static final String CLASS_EXTENSION = ".class";
-
-    // The shared instance
-    private static SigilSearch plugin;
-    private static Index index;
-
-    /**
-     * The constructor
-     */
-    public SigilSearch()
-    {
-    }
-
-    public static List<ISearchResult> findProviders(String fullyQualifiedName,
-        ISigilProjectModel sigil, IProgressMonitor monitor)
-    {
-        listen(sigil);
-        return index.findProviders(fullyQualifiedName, monitor);
-    }
-
-    public static List<ISearchResult> findProviders(Pattern namePattern,
-        ISigilProjectModel sigil, IProgressMonitor monitor)
-    {
-        listen(sigil);
-        return index.findProviders(namePattern, monitor);
-    }
-
-    /*
-     * (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 SigilSearch getDefault()
-    {
-        return plugin;
-    }
-
-    private static void listen(ISigilProjectModel sigil)
-    {
-        synchronized (plugin)
-        {
-            if (index == null)
-            {
-                index = new Index();
-                for (IBundleRepository rep : sigil.getRepositoryManager().getRepositories())
-                {
-                    index(index, rep);
-                }
-
-                sigil.getRepositoryManager().addRepositoryChangeListener(
-                    new IRepositoryChangeListener()
-                    {
-                        public void repositoryChanged(RepositoryChangeEvent event)
-                        {
-                            index(index, event.getRepository());
-                        }
-                    });
-            }
-        }
-    }
-
-    private static void index(final Index index, final IBundleRepository rep)
-    {
-        index.delete(rep);
-        rep.accept(new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle bundle)
-            {
-                ISigilProjectModel p = bundle.getAncestor(ISigilProjectModel.class);
-                if (p == null)
-                {
-                    if (bundle.isSynchronized())
-                    {
-                        IPath loc = PathUtil.newPathIfExists(bundle.getLocation());
-                        if (loc == null)
-                        {
-                            SigilCore.error("Location is null for " + bundle);
-                        }
-                        else
-                        {
-                            if (loc.isAbsolute())
-                            {
-                                indexJar(rep, bundle, loc);
-                            }
-                        }
-                    }
-                }
-                else
-                {
-                    indexProject(rep, p);
-                }
-                return true;
-            }
-        });
-    }
-
-    private static void indexProject(IBundleRepository rep, ISigilProjectModel sigil)
-    {
-        try
-        {
-            for (ICompilationUnit unit : JavaHelper.findCompilationUnits(sigil))
-            {
-                IPackageFragment p = (IPackageFragment) unit.getParent();
-                ISigilBundle b = sigil.getBundle();
-                IPackageExport export = b.findExport(p.getElementName());
-                index.addEntry(unit, rep, b, export != null);
-            }
-        }
-        catch (JavaModelException e)
-        {
-            SigilCore.error("Failed to index project", e);
-        }
-    }
-
-    private static void indexJar(IBundleRepository rep, ISigilBundle bundle, IPath loc)
-    {
-        JarFile jar = null;
-        try
-        {
-            jar = new JarFile(loc.toOSString());
-            for (Map.Entry<JarEntry, IPackageExport> export : findExportedClasses(bundle,
-                jar).entrySet())
-            {
-                JarEntry entry = export.getKey();
-                InputStream in = null;
-                try
-                {
-                    in = jar.getInputStream(entry);
-                    ClassParser parser = new ClassParser(in, entry.getName());
-                    JavaClass c = parser.parse();
-                    index.addEntry(c, rep, bundle, true);
-                }
-                finally
-                {
-                    if (in != null)
-                    {
-                        in.close();
-                    }
-                }
-            }
-        }
-        catch (IOException e)
-        {
-            SigilCore.error("Failed to read jar " + loc, e);
-        }
-        finally
-        {
-            if (jar != null)
-            {
-                try
-                {
-                    jar.close();
-                }
-                catch (IOException e)
-                {
-                    SigilCore.error("Failed to close jar " + loc, e);
-                }
-            }
-        }
-    }
-
-    private static Map<JarEntry, IPackageExport> findExportedClasses(ISigilBundle bundle,
-        JarFile jar)
-    {
-        HashMap<JarEntry, IPackageExport> found = new HashMap<JarEntry, IPackageExport>();
-
-        IPackageExport[] exports = bundle.getBundleInfo().childrenOfType(
-            IPackageExport.class);
-        if (exports.length > 0)
-        {
-            Arrays.sort(exports, new Comparator<IPackageExport>()
-            {
-                public int compare(IPackageExport o1, IPackageExport o2)
-                {
-                    return -1 * o1.compareTo(o2);
-                }
-            });
-            for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();)
-            {
-                JarEntry entry = e.nextElement();
-                String className = toClassName(entry);
-                if (className != null)
-                {
-                    IPackageExport ex = findExport(className, exports);
-
-                    if (found != null)
-                    {
-                        found.put(entry, ex);
-                    }
-                }
-            }
-        }
-
-        return found;
-    }
-
-    private static IPackageExport findExport(String className, IPackageExport[] exports)
-    {
-        for (IPackageExport e : exports)
-        {
-            if (className.startsWith(e.getPackageName()))
-            {
-                return e;
-            }
-        }
-        return null;
-    }
-
-    private static String toClassName(JarEntry entry)
-    {
-        String name = entry.getName();
-        if (name.endsWith(CLASS_EXTENSION))
-        {
-            name = name.substring(0, name.length() - CLASS_EXTENSION.length());
-            name = name.replace('/', '.');
-            return name;
-        }
-        else
-        {
-            return null;
-        }
-    }
-}
diff --git a/sigil/eclipse/search/src/org/apache/felix/sigil/search/index/Index.java b/sigil/eclipse/search/src/org/apache/felix/sigil/search/index/Index.java
deleted file mode 100644
index 8d20b27..0000000
--- a/sigil/eclipse/search/src/org/apache/felix/sigil/search/index/Index.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.search.index;
-
-import java.lang.ref.SoftReference;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.regex.Pattern;
-
-import org.apache.bcel.classfile.JavaClass;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.search.ISearchResult;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.osgi.framework.Version;
-
-public class Index
-{
-    private HashMap<String, ClassData> primary = new HashMap<String, ClassData>();
-    private HashMap<IBundleRepository, HashSet<String>> secondary = new HashMap<IBundleRepository, HashSet<String>>();
-
-    private final ReadWriteLock lock = new ReentrantReadWriteLock();
-
-    static class ClassData
-    {
-        HashMap<IBundleRepository, Set<ISearchResult>> provided = new HashMap<IBundleRepository, Set<ISearchResult>>();
-
-        void add(IBundleRepository rep, ISearchResult export)
-        {
-            Set<ISearchResult> exports = provided.get(rep);
-
-            if (exports == null)
-            {
-                exports = new HashSet<ISearchResult>();
-                provided.put(rep, exports);
-            }
-
-            exports.add(export);
-        }
-
-        List<ISearchResult> getResults()
-        {
-            LinkedList<ISearchResult> exports = new LinkedList<ISearchResult>();
-            for (Set<ISearchResult> p : provided.values())
-            {
-                exports.addAll(p);
-            }
-            return exports;
-        }
-
-        void remove(IBundleRepository rep)
-        {
-            provided.remove(rep);
-        }
-
-        boolean isEmpty()
-        {
-            return provided.isEmpty();
-        }
-    }
-
-    static class SearchResult implements ISearchResult
-    {
-        private final String className;
-        private final String packageName;
-        private final IBundleRepository rep;
-        private final String bundleSymbolicName;
-        private final Version version;
-        private final boolean exported;
-
-        private SoftReference<ISigilBundle> bundleReference;
-        private SoftReference<IPackageExport> exportReference;
-
-        public SearchResult(String className, IBundleRepository rep, ISigilBundle bundle, String packageName, boolean exported)
-        {
-            this.className = className;
-            this.rep = rep;
-            this.exported = exported;
-            this.bundleSymbolicName = bundle.getBundleInfo().getSymbolicName();
-            this.version = bundle.getVersion();
-            this.packageName = packageName;
-        }
-
-        public String getClassName()
-        {
-            return className;
-        }
-
-        public String getPackageName()
-        {
-            return packageName;
-        }
-
-        public IPackageExport getExport()
-        {
-            IPackageExport ipe = null;
-            if (exported)
-            {
-                ipe = exportReference == null ? null : exportReference.get();
-                if (ipe == null)
-                {
-                    ipe = getProvider().findExport(packageName);
-                    exportReference = new SoftReference<IPackageExport>(ipe);
-                }
-            }
-            return ipe;
-        }
-
-        public ISigilBundle getProvider()
-        {
-            ISigilBundle b = bundleReference == null ? null : bundleReference.get();
-            if (b == null)
-            {
-                IRequiredBundle rb = ModelElementFactory.getInstance().newModelElement(
-                    IRequiredBundle.class);
-                rb.setSymbolicName(bundleSymbolicName);
-                VersionRange versions = new VersionRange(false, version, version, false);
-                rb.setVersions(versions);
-                b = rep.findProvider(rb, 0);
-                bundleReference = new SoftReference<ISigilBundle>(b);
-            }
-            return b;
-        }
-
-    }
-
-    public void addEntry(JavaClass c, IBundleRepository rep, ISigilBundle bundle,
-        boolean exported)
-    {
-        addEntry(c.getClassName(), rep, bundle, c.getPackageName(), exported);
-    }
-
-    public void addEntry(ICompilationUnit unit, IBundleRepository rep,
-        ISigilBundle bundle, boolean exported)
-    {
-        String name = unit.getElementName();
-        if (name.endsWith(".java"))
-        {
-            name = name.substring(0, name.length() - 5);
-        }
-        IPackageFragment p = (IPackageFragment) unit.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
-        addEntry(p.getElementName() + "." + name, rep, bundle, p.getElementName(),
-            exported);
-    }
-
-    private void addEntry(String className, IBundleRepository rep, ISigilBundle bundle,
-        String packageName, boolean exported)
-    {
-        List<String> keys = genKeys(className);
-        lock.writeLock().lock();
-        try
-        {
-            for (String key : keys)
-            {
-                ClassData data = primary.get(key);
-
-                if (data == null)
-                {
-                    data = new ClassData();
-                    primary.put(key, data);
-                }
-
-                SearchResult result = new SearchResult(className, rep, bundle,
-                    packageName, exported);
-                data.add(rep, result);
-            }
-
-            HashSet<String> all = secondary.get(rep);
-            if (all == null)
-            {
-                all = new HashSet<String>();
-                secondary.put(rep, all);
-            }
-            all.addAll(keys);
-        }
-        finally
-        {
-            lock.writeLock().unlock();
-        }
-    }
-
-    public List<ISearchResult> findProviders(String className, IProgressMonitor monitor)
-    {
-        lock.readLock().lock();
-        try
-        {
-            ClassData data = primary.get(className);
-            return data == null ? Collections.<ISearchResult> emptyList()
-                : data.getResults();
-        }
-        finally
-        {
-            lock.readLock().unlock();
-        }
-    }
-
-    public List<ISearchResult> findProviders(Pattern className, IProgressMonitor monitor)
-    {
-        lock.readLock().lock();
-        try
-        {
-            ClassData data = primary.get(className);
-            return data == null ? Collections.<ISearchResult> emptyList()
-                : data.getResults();
-        }
-        finally
-        {
-            lock.readLock().unlock();
-        }
-    }
-
-    public void delete(IBundleRepository rep)
-    {
-        lock.writeLock().lock();
-        try
-        {
-            Set<String> keys = secondary.remove(rep);
-            if (keys != null)
-            {
-                for (String key : keys)
-                {
-                    ClassData data = primary.get(key);
-                    data.remove(rep);
-                    if (data.isEmpty())
-                    {
-                        primary.remove(key);
-                    }
-                }
-            }
-        }
-        finally
-        {
-            lock.writeLock().unlock();
-        }
-    }
-
-    private List<String> genKeys(String className)
-    {
-        LinkedList<String> keys = new LinkedList<String>();
-        keys.add(className);
-        int i = className.lastIndexOf('.');
-        if (i != -1)
-        {
-            String name = className.substring(i + 1);
-            keys.add(name);
-        }
-        return keys;
-    }
-
-}
diff --git a/sigil/eclipse/sigil-defaults.properties b/sigil/eclipse/sigil-defaults.properties
deleted file mode 100644
index bfc9d0d..0000000
--- a/sigil/eclipse/sigil-defaults.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# sigil common default properties
--defaults: ${BLDCOMMON:-../bldcommon}/sigil-defaults.properties
diff --git a/sigil/eclipse/ui/.classpath b/sigil/eclipse/ui/.classpath
deleted file mode 100644
index fce9fdb..0000000
--- a/sigil/eclipse/ui/.classpath
+++ /dev/null
@@ -1,8 +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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.swt.carbon.macosx.jar"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/ui/.project b/sigil/eclipse/ui/.project
deleted file mode 100644
index 35b56c2..0000000
--- a/sigil/eclipse/ui/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/ui/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 922196c..0000000
--- a/sigil/eclipse/ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:11:02 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/ui/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index cd2a7ac..0000000
--- a/sigil/eclipse/ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:11:02 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/ui/DEPENDENCIES b/sigil/eclipse/ui/DEPENDENCIES
deleted file mode 100644
index a3ed667..0000000
--- a/sigil/eclipse/ui/DEPENDENCIES
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache Felix Sigil Eclipse UI
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/ui/NOTICE b/sigil/eclipse/ui/NOTICE
deleted file mode 100644
index 6328fd0..0000000
--- a/sigil/eclipse/ui/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse UI
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/ui/build.xml b/sigil/eclipse/ui/build.xml
deleted file mode 100644
index 6822885..0000000
--- a/sigil/eclipse/ui/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.ui" default="build"
-	  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-  <target name="init">
-    <ivy:retrieve organisation="org.eclipse" module="org.eclipse.swt.carbon.macosx" revision="3.4.1.v3452b" inline="true" pattern="lib/[artifact].[ext]" transitive="false"/>
-  </target>
-</project>
diff --git a/sigil/eclipse/ui/icons/active.gif b/sigil/eclipse/ui/icons/active.gif
deleted file mode 100644
index fb90cb1..0000000
--- a/sigil/eclipse/ui/icons/active.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/bundle-graph.gif b/sigil/eclipse/ui/icons/bundle-graph.gif
deleted file mode 100644
index d4c878b..0000000
--- a/sigil/eclipse/ui/icons/bundle-graph.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/bundle-refresh.gif b/sigil/eclipse/ui/icons/bundle-refresh.gif
deleted file mode 100644
index 705222b..0000000
--- a/sigil/eclipse/ui/icons/bundle-refresh.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/bundle.gif b/sigil/eclipse/ui/icons/bundle.gif
deleted file mode 100644
index fb90cb1..0000000
--- a/sigil/eclipse/ui/icons/bundle.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/export-package.gif b/sigil/eclipse/ui/icons/export-package.gif
deleted file mode 100644
index 4fc70c3..0000000
--- a/sigil/eclipse/ui/icons/export-package.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/fragment.gif b/sigil/eclipse/ui/icons/fragment.gif
deleted file mode 100644
index a0ab0d1..0000000
--- a/sigil/eclipse/ui/icons/fragment.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/host.gif b/sigil/eclipse/ui/icons/host.gif
deleted file mode 100644
index 14b0dd3..0000000
--- a/sigil/eclipse/ui/icons/host.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/import-package-error.gif b/sigil/eclipse/ui/icons/import-package-error.gif
deleted file mode 100644
index 57a64be..0000000
--- a/sigil/eclipse/ui/icons/import-package-error.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/import-package-optional-error.gif b/sigil/eclipse/ui/icons/import-package-optional-error.gif
deleted file mode 100644
index dcd9507..0000000
--- a/sigil/eclipse/ui/icons/import-package-optional-error.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/import-package-optional.gif b/sigil/eclipse/ui/icons/import-package-optional.gif
deleted file mode 100644
index 2ab3ff8..0000000
--- a/sigil/eclipse/ui/icons/import-package-optional.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/import-package.gif b/sigil/eclipse/ui/icons/import-package.gif
deleted file mode 100644
index 30a5199..0000000
--- a/sigil/eclipse/ui/icons/import-package.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/importing-bundle.gif b/sigil/eclipse/ui/icons/importing-bundle.gif
deleted file mode 100644
index 430252c..0000000
--- a/sigil/eclipse/ui/icons/importing-bundle.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/installed.gif b/sigil/eclipse/ui/icons/installed.gif
deleted file mode 100644
index 5e43705..0000000
--- a/sigil/eclipse/ui/icons/installed.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/inuse.gif b/sigil/eclipse/ui/icons/inuse.gif
deleted file mode 100644
index 4cbdf38..0000000
--- a/sigil/eclipse/ui/icons/inuse.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/logo16x16.gif b/sigil/eclipse/ui/icons/logo16x16.gif
deleted file mode 100644
index 0c344d8..0000000
--- a/sigil/eclipse/ui/icons/logo16x16.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/logo32x32.gif b/sigil/eclipse/ui/icons/logo32x32.gif
deleted file mode 100644
index 1b4d9f2..0000000
--- a/sigil/eclipse/ui/icons/logo32x32.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/logo64x64.gif b/sigil/eclipse/ui/icons/logo64x64.gif
deleted file mode 100644
index cb4ac5d..0000000
--- a/sigil/eclipse/ui/icons/logo64x64.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/mini-logo.gif b/sigil/eclipse/ui/icons/mini-logo.gif
deleted file mode 100644
index f4151fb..0000000
--- a/sigil/eclipse/ui/icons/mini-logo.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/module.gif b/sigil/eclipse/ui/icons/module.gif
deleted file mode 100644
index 88edb7b..0000000
--- a/sigil/eclipse/ui/icons/module.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/package.gif b/sigil/eclipse/ui/icons/package.gif
deleted file mode 100644
index d281d2c..0000000
--- a/sigil/eclipse/ui/icons/package.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/property.gif b/sigil/eclipse/ui/icons/property.gif
deleted file mode 100644
index 270bdac..0000000
--- a/sigil/eclipse/ui/icons/property.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/registered.gif b/sigil/eclipse/ui/icons/registered.gif
deleted file mode 100644
index e41f6ce..0000000
--- a/sigil/eclipse/ui/icons/registered.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/repository.gif b/sigil/eclipse/ui/icons/repository.gif
deleted file mode 100644
index 2d1f8be..0000000
--- a/sigil/eclipse/ui/icons/repository.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/require-bundle-error.gif b/sigil/eclipse/ui/icons/require-bundle-error.gif
deleted file mode 100644
index b6d6e31..0000000
--- a/sigil/eclipse/ui/icons/require-bundle-error.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/require-bundle-optional-error.gif b/sigil/eclipse/ui/icons/require-bundle-optional-error.gif
deleted file mode 100644
index ec0adbd..0000000
--- a/sigil/eclipse/ui/icons/require-bundle-optional-error.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/require-bundle-optional.gif b/sigil/eclipse/ui/icons/require-bundle-optional.gif
deleted file mode 100644
index d1fec08..0000000
--- a/sigil/eclipse/ui/icons/require-bundle-optional.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/require-bundle.gif b/sigil/eclipse/ui/icons/require-bundle.gif
deleted file mode 100644
index 3d2d8dc..0000000
--- a/sigil/eclipse/ui/icons/require-bundle.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/resolved.gif b/sigil/eclipse/ui/icons/resolved.gif
deleted file mode 100644
index d3ace48..0000000
--- a/sigil/eclipse/ui/icons/resolved.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/run.gif b/sigil/eclipse/ui/icons/run.gif
deleted file mode 100644
index 442c299..0000000
--- a/sigil/eclipse/ui/icons/run.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/test.gif b/sigil/eclipse/ui/icons/test.gif
deleted file mode 100644
index d91cc67..0000000
--- a/sigil/eclipse/ui/icons/test.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/icons/unknown.gif b/sigil/eclipse/ui/icons/unknown.gif
deleted file mode 100644
index 62903bf..0000000
--- a/sigil/eclipse/ui/icons/unknown.gif
+++ /dev/null
Binary files differ
diff --git a/sigil/eclipse/ui/ivy.xml b/sigil/eclipse/ui/ivy.xml
deleted file mode 100644
index 10a4d8b..0000000
--- a/sigil/eclipse/ui/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.ui"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.ui" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/ui/plugin.properties b/sigil/eclipse/ui/plugin.properties
deleted file mode 100644
index 4b96436..0000000
--- a/sigil/eclipse/ui/plugin.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-repositoriesPrefPage=Repositories
-newtonRepoPrefs=Newton Repository
-librariesPrefsPage=OSGi Libraries
-commandConvertProject=Convert Project To Sigil Project
-commandRefreshClasspath=Refresh bundle classpath
-RenameActivatorPackageParticipant.name=Rename Activator Package Participant
-RenameActivatorParticipant.name=Rename Activator Participant
-RenamePackageParticipant.name=Rename Package Participant
-MoveActivatorParticipant.name=Move Activator Participant
-MovePackageParticipant.name=Move Package Participant
\ No newline at end of file
diff --git a/sigil/eclipse/ui/plugin.xml b/sigil/eclipse/ui/plugin.xml
deleted file mode 100644
index 8ca3bb2..0000000
--- a/sigil/eclipse/ui/plugin.xml
+++ /dev/null
@@ -1,334 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="org.apache.felix.sigil.ui.repositorywizard" name="Repository Wizard" schema="schema/org.apache.felix.sigil.ui.repositorywizard.exsd"/>
-      <extension
-         point="org.eclipse.ui.startup">
-      <startup class="org.apache.felix.sigil.eclipse.ui.internal.startup.SigilStartup"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            id="org.apache.felix.sigil.newWizardCategory"
-            name="Sigil"/>
-      <wizard
-            category="org.apache.felix.sigil.newWizardCategory"
-            class="org.apache.felix.sigil.eclipse.ui.wizard.project.SigilProjectWizard"
-            finalPerspective="org.apache.felix.sigil.ui.perspective"
-            icon="icons/logo16x16.gif"
-            id="org.apache.felix.sigil.editors.newProjectWizard"
-            name="Sigil Project"
-            project="true"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.apache.felix.sigil.eclipse.ui.internal.preferences.SigilPreferencePage"
-            id="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            name="Sigil"/>
-      <!--page
-            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            class="org.apache.felix.sigil.ui.preferences.LibraryPreferencePage"
-            id="org.apache.felix.sigil.ui.libraryPreferences"
-            name="%librariesPrefsPage" >
-      </page-->
-      <page
-            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            class="org.apache.felix.sigil.eclipse.ui.internal.preferences.repository.RepositoriesPreferencePage"
-            id="org.apache.felix.sigil.ui.preferences.repositoriesPreferencePage"
-            name="%repositoriesPrefPage">
-      </page>
-      <page
-            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            class="org.apache.felix.sigil.eclipse.ui.internal.preferences.ExcludedResourcesPrefsPage"
-            id="org.apache.felix.sigil.ui.preferences.excludedResources"
-            name="Excluded Resources">
-      </page>
-      <page
-            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            class="org.apache.felix.sigil.eclipse.ui.internal.preferences.VersionsPreferencePage"
-            id="org.apache.felix.sigil.ui.preferences.VersionsPreferencePage"
-            name="Version Handling">
-      </page>
-      <page
-            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
-            class="org.apache.felix.sigil.eclipse.ui.internal.preferences.installs.OSGiInstallsPreferencePage"
-            id="org.apache.felix.sigil.ui.preferences.osgiInstalls"
-            name="OSGi Installs">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            class="org.apache.felix.sigil.eclipse.ui.internal.editors.project.SigilProjectEditorPart"
-            default="true"
-            filenames="sigil.properties"
-            icon="icons/logo16x16.gif"
-            id="org.apache.felix.sigil.editors.SigilProjectEditor"
-            name="Sigil Project Editor"/>
-   </extension>
-   <extension
-         point="org.eclipse.jdt.core.classpathContainerInitializer">
-      <classpathContainerInitializer
-            class="org.apache.felix.sigil.eclipse.ui.internal.classpath.SigilClasspathContainerInitializer"
-            id="org.apache.felix.sigil.classpathContainer"/>
-   </extension>
-   <extension
-         point="org.eclipse.jdt.ui.classpathContainerPage">
-      <classpathContainerPage
-            class="org.apache.felix.sigil.eclipse.ui.internal.classpath.SigilLibraryPage"        id="org.apache.felix.sigil.classpathContainer"
-            name="Sigil Library"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.apache.felix.sigil.eclipse.ui.internal.perspective.SigilPerspectiveFactory"
-            icon="icons/logo16x16.gif"
-            id="org.apache.felix.sigil.ui.perspective"
-            name="Sigil">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.jdt.ui.quickFixProcessors">
-      <quickFixProcessor
-            class="org.apache.felix.sigil.eclipse.ui.internal.quickfix.ImportQuickFixProcessor"
-            id="org.apache.felix.sigil.ui.importQuickFixProcessor">
-      </quickFixProcessor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            allowMultiple="false"
-            category="org.apache.felix.sigil.ui.views"
-            class="org.apache.felix.sigil.eclipse.ui.internal.views.resolution.BundleResolverView"
-            icon="icons/bundle-graph.gif"
-            id="org.apache.felix.sigil.ui.bundleDependencyView"
-            name="Bundle Dependency View"
-            restorable="true">
-      </view>
-      <view
-            allowMultiple="false"
-            category="org.apache.felix.sigil.ui.views"
-            class="org.apache.felix.sigil.eclipse.ui.internal.views.RepositoryViewPart"
-            icon="icons/repository.gif"
-            id="org.apache.felix.sigil.ui.repositoryBrowser"
-            name="Repository Browser"
-            restorable="true">
-      </view>
-      <category
-            id="org.apache.felix.sigil.ui.views"
-            name="Sigil">
-      </category>
-   </extension>
-   <extension
-         point="org.apache.felix.sigil.ui.repositorywizard">
-      <wizard
-            class="org.apache.felix.sigil.eclipse.ui.internal.repository.FileSystemRepositoryWizard"
-            repository="org.apache.felix.sigil.core.file">
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any">
-         <menu
-               icon="etc/images/newton.png"
-               label="Sigil">
-            <command
-                  commandId="org.apache.felix.sigil.ui.convertproject"
-                  label="Convert Project"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-         </menu>
-         <separator
-               name="org.apache.felix.sigil.ui.separator"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.apache.felix.sigil.ui.refreshclasspath"
-               icon="icons/refreshBundle.png"
-               label="Refresh bundle classpath"
-               style="push">
-               <visibleWhen
-                     checkEnabled="true">
-               </visibleWhen>
-            </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.apache.felix.sigil.ui.convertproject"
-            name="%commandConvertProject">
-      </command>
-      <command
-            id="org.apache.felix.sigil.ui.refreshclasspath"
-            name="%commandRefreshClasspath">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.apache.felix.sigil.ui.convertproject"
-            icon="icons/logo16x16.gif">
-      </image>
-      <image
-            commandId="org.apache.felix.sigil.ui.refreshclasspath"
-            icon="icons/repository.gif">
-      </image>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.apache.felix.sigil.eclipse.ui.internal.handlers.project.ConvertProjectHandler"
-            commandId="org.apache.felix.sigil.ui.convertproject">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="and">
-					<instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                </instanceof>
-		            <test
-						property="org.apache.felix.sigil.isSigilProject"
-						value="false">
-					</test>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-      <handler
-            class="org.apache.felix.sigil.eclipse.ui.internal.handlers.project.RefreshSigilClasspathHandler"
-            commandId="org.apache.felix.sigil.ui.refreshclasspath">
-         <activeWhen>
-            <with
-                  variable="selection">
-               <iterate
-                     ifEmpty="false"
-                     operator="and">
-					<instanceof
-	                           value="org.eclipse.core.resources.IProject">
-	                </instanceof>
-		            <test
-						property="org.apache.felix.sigil.isSigilProject"
-						value="true">
-					</test>
-               </iterate>
-            </with>
-         </activeWhen>
-      </handler>      
-   </extension>
-   <extension point="org.eclipse.ltk.core.refactoring.renameParticipants">
-     <renameParticipant
-        id="org.apache.felix.sigil.renamePackageParticipant"
-        name="%RenamePackageParticipant.name" 
-        class="org.apache.felix.sigil.eclipse.ui.internal.refactor.RenamePackageParticipant">
-       <enablement>
-         <with variable="affectedNatures">
-           <iterate operator="or">
-             <equals value="org.apache.felix.sigil.sigilnature"/>
-           </iterate>
-         </with>
-         <with variable="element">
-           <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
-         </with>
-       </enablement>
-     </renameParticipant>
-     <renameParticipant
-        id="org.apache.felix.sigil.renameActivatorParticipant"
-        name="%RenameActivatorParticipant.name" 
-        class="org.apache.felix.sigil.eclipse.ui.internal.refactor.RenameActivatorParticipant">
-       <enablement>
-         <with variable="affectedNatures">
-           <iterate operator="or">
-             <equals value="org.apache.felix.sigil.sigilnature"/>
-           </iterate>
-         </with>
-         <with variable="element">
-           <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>
-         </with>
-       </enablement>
-     </renameParticipant>
-     <renameParticipant
-        id="org.apache.felix.sigil.movePackageParticipant"
-        name="%RenameActivatorPackageParticipant.name" 
-        class="org.apache.felix.sigil.eclipse.ui.internal.refactor.RenameActivatorPackageParticipant">
-       <enablement>
-         <with variable="affectedNatures">
-           <iterate operator="or">
-             <equals value="org.apache.felix.sigil.sigilnature"/>
-           </iterate>
-         </with>
-         <with variable="element">
-           <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
-         </with>
-       </enablement>
-     </renameParticipant>
-   </extension>  
-   <extension point="org.eclipse.ltk.core.refactoring.moveParticipants">
-     <moveParticipant
-        id="org.apache.felix.sigil.movePackageParticipant"
-        name="%MovePackageParticipant.name" 
-        class="org.apache.felix.sigil.eclipse.ui.internal.refactor.MovePackageParticipant">
-       <enablement>
-         <with variable="affectedNatures">
-           <iterate operator="or">
-             <equals value="org.apache.felix.sigil.sigilnature"/>
-           </iterate>
-         </with>
-         <with variable="element">
-           <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
-         </with>
-       </enablement>
-     </moveParticipant>
-     <moveParticipant
-        id="org.apache.felix.sigil.moveActivatorParticipant"
-        name="%MoveActivatorParticipant.name" 
-        class="org.apache.felix.sigil.eclipse.ui.internal.refactor.MoveActivatorParticipant">
-       <enablement>
-         <with variable="affectedNatures">
-           <iterate operator="or">
-             <equals value="org.apache.felix.sigil.sigilnature"/>
-           </iterate>
-         </with>
-         <with variable="element">
-           <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>
-         </with>
-       </enablement>
-     </moveParticipant>
-   </extension>  
-   
-   <!--extension point="org.eclipse.ltk.ui.refactoring.changePreviewViewers">
-      <changePreviewViewer
-            class="org.apache.felix.sigil.eclipse.ui.internal.refactor.ExportChangePreviewViewer"
-            id="org.apache.felix.sigil.eclipse.ui.refactor.exportChangePreviewViewer">
-         <enablement>
-            <instanceof value="org.apache.felix.sigil.eclipse.ui.internal.refactor.ExportPackageChange"/>
-         </enablement>
-      </changePreviewViewer>
-   </extension-->
-</plugin>
diff --git a/sigil/eclipse/ui/resources/org/cauldron/sigil/ui/SigilUI.properties b/sigil/eclipse/ui/resources/org/cauldron/sigil/ui/SigilUI.properties
deleted file mode 100644
index e69de29..0000000
--- a/sigil/eclipse/ui/resources/org/cauldron/sigil/ui/SigilUI.properties
+++ /dev/null
diff --git a/sigil/eclipse/ui/schema/org.apache.felix.sigil.ui.repositorywizard.exsd b/sigil/eclipse/ui/schema/org.apache.felix.sigil.ui.repositorywizard.exsd
deleted file mode 100644
index 58869ac..0000000
--- a/sigil/eclipse/ui/schema/org.apache.felix.sigil.ui.repositorywizard.exsd
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.apache.felix.sigil.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.apache.felix.sigil.eclipse.ui" id="org.apache.felix.sigil.eclipse.ui.repositorywizard" name="Repository Wizard"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="wizard"/>
-         </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="wizard">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.apache.felix.sigil.ui.eclipse.ui.wizard.repository.RepositoryWizard:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="repository" 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>
-
-
-</schema>
diff --git a/sigil/eclipse/ui/sigil.properties b/sigil/eclipse/ui/sigil.properties
deleted file mode 100644
index 7de9304..0000000
--- a/sigil/eclipse/ui/sigil.properties
+++ /dev/null
@@ -1,118 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.eclipse.ui.SigilUI
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.ui, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	icons, \
-	plugin.properties, \
-	plugin.xml, \
-	schema, \
-	schema/org.apache.felix.sigil.ui.repositorywizard.exsd, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.eclipse.ui, \
-	org.apache.felix.sigil.eclipse.ui.actions, \
-	org.apache.felix.sigil.eclipse.ui.util, \
-	org.apache.felix.sigil.eclipse.ui.wizard.project, \
-	org.apache.felix.sigil.eclipse.ui.wizard.repository, \
-
--imports: \
-	org.apache.felix.sigil.common.config, \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.felix.sigil.eclipse, \
-	org.apache.felix.sigil.eclipse.install, \
-	org.apache.felix.sigil.eclipse.job, \
-	org.apache.felix.sigil.eclipse.model.project, \
-	org.apache.felix.sigil.eclipse.model.repository, \
-	org.apache.felix.sigil.eclipse.model.util, \
-	org.apache.felix.sigil.eclipse.preferences, \
-	org.apache.felix.sigil.eclipse.repository, \
-	org.apache.felix.sigil.eclipse.ui, \
-	org.apache.felix.sigil.eclipse.ui.actions, \
-	org.apache.felix.sigil.eclipse.ui.util, \
-	org.apache.felix.sigil.eclipse.ui.wizard.project, \
-	org.apache.felix.sigil.eclipse.ui.wizard.repository, \
-	org.apache.felix.sigil.search, \
-	org.apache.felix.sigil.utils, \
-	org.eclipse.core.commands, \
-	org.eclipse.core.commands.common, \
-	org.eclipse.core.resources, \
-	org.eclipse.core.resources.mapping, \
-	org.eclipse.debug.core, \
-	org.eclipse.debug.ui, \
-	org.eclipse.draw2d, \
-	org.eclipse.jdt.core, \
-	org.eclipse.jdt.core.compiler, \
-	org.eclipse.jdt.core.dom, \
-	org.eclipse.jdt.core.dom.rewrite, \
-	org.eclipse.jdt.internal.corext.dom, \
-	org.eclipse.jdt.internal.corext.util, \
-	org.eclipse.jdt.internal.ui, \
-	org.eclipse.jdt.internal.ui.propertiesfileeditor, \
-	org.eclipse.jdt.ui, \
-	org.eclipse.jdt.ui.text, \
-	org.eclipse.jdt.ui.text.java, \
-	org.eclipse.jdt.ui.wizards, \
-	org.eclipse.jface.action, \
-	org.eclipse.jface.dialogs, \
-	org.eclipse.jface.fieldassist, \
-	org.eclipse.jface.layout, \
-	org.eclipse.jface.operation, \
-	org.eclipse.jface.preference, \
-	org.eclipse.jface.resource, \
-	org.eclipse.jface.util, \
-	org.eclipse.jface.viewers, \
-	org.eclipse.jface.window, \
-	org.eclipse.jface.wizard, \
-	org.eclipse.ltk.core.refactoring, \
-	org.eclipse.ltk.core.refactoring.participants, \
-	org.eclipse.ltk.ui.refactoring, \
-	org.eclipse.ui.editors.text, \
-	org.eclipse.ui.forms, \
-	org.eclipse.ui.forms.editor, \
-	org.eclipse.ui.forms.events, \
-	org.eclipse.ui.forms.widgets, \
-	org.eclipse.ui.plugin, \
-	org.eclipse.ui.progress, \
-	org.eclipse.ui.texteditor, \
-	org.eclipse.zest.core.viewers, \
-	org.eclipse.zest.core.widgets, \
-	org.eclipse.zest.layouts, \
-	org.eclipse.zest.layouts.algorithms, \
-	org.osgi.framework, \
-	org.osgi.service.prefs, \
-
--requires: \
-	org.eclipse.core.jobs;version=3.4.1, \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.equinox.registry;version=3.4.0, \
-	org.eclipse.jface.text;version=3.4.2, \
-	org.eclipse.swt;version=3.4.2, \
-	org.eclipse.text;version=3.4.0, \
-	org.eclipse.ui.ide;version=3.4.2, \
-	org.eclipse.ui.workbench;version=3.4.1, \
-	org.eclipse.ui.workbench.texteditor;version=3.4.1, \
-
-header;Bundle-Localization: plugin
-
-header;Bundle-ActivationPolicy: lazy
-
-option;addMissingImports: false
-
-# end
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
deleted file mode 100644
index a34c71b..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui;
-
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.concurrent.Callable;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class SigilUI extends AbstractUIPlugin
-{
-
-    // The plug-in ID
-    public static final String PLUGIN_ID = "org.apache.felix.sigil.eclipse.ui";
-
-    public static final String REPOSITORY_WIZARD_EXTENSION_POINT_ID = "org.apache.felix.sigil.ui.repositorywizard";
-
-    public static final String PREF_NOPROMPT_INSTALL_COMPOSITE_WITH_ERRORS = "nopromptInstallCompositeError";
-    public static final String PREF_INSTALL_COMPOSITE_WITH_ERRORS_ANSWER = "answerInstallCompositeError";
-
-    public static final String ID_REPOSITORY_VIEW = "org.apache.felix.sigil.ui.repositoryBrowser";
-    public static final String ID_DEPENDENCY_VIEW = "org.apache.felix.sigil.ui.bundleDependencyView";
-
-    public static final String WORKSPACE_REPOSITORY_ID = "org.apache.felix.sigil.core.workspaceprovider";
-
-    // The shared instance
-    private static SigilUI plugin;
-
-    /**
-     * The constructor
-     */
-    public SigilUI()
-    {
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-     */
-    public void start(BundleContext context) throws Exception
-    {
-        super.start(context);
-        SigilCore.getDefault();
-        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 SigilUI getDefault()
-    {
-        return plugin;
-    }
-
-    public static ResourceBundle getResourceBundle()
-    {
-        return ResourceBundle.getBundle("resources." + SigilUI.class.getName(),
-            Locale.getDefault(), SigilUI.class.getClassLoader());
-    }
-
-    public static void runWorkspaceOperation(IRunnableWithProgress op, Shell shell)
-    {
-        if (shell == null)
-        {
-            shell = getActiveWorkbenchShell();
-        }
-        try
-        {
-            new ProgressMonitorDialog(shell).run(true, true, op);
-        }
-        catch (InvocationTargetException e)
-        {
-            SigilCore.error("Workspace operation failed", e);
-        }
-        catch (InterruptedException e1)
-        {
-            SigilCore.log("Workspace operation interrupted");
-        }
-    }
-
-    public static void runWorkspaceOperationSync(IRunnableWithProgress op, Shell shell) throws CoreException
-    {
-        if (shell == null)
-        {
-            shell = getActiveWorkbenchShell();
-        }
-        try
-        {
-            new ProgressMonitorDialog(shell).run(false, true, op);
-        }
-        catch (InvocationTargetException e)
-        {
-            if (e.getCause() instanceof CoreException) {
-                throw (CoreException) e.getCause();
-            }
-            else {
-                throw SigilCore.newCoreException("Failed to execute task", e.getCause());
-            }
-        }
-        catch (InterruptedException e1)
-        {
-            SigilCore.log("Workspace operation interrupted");
-        }
-    }
-
-    public static void runWorkspaceOperationSync(IRunnableWithProgress op) throws CoreException
-    {
-        try
-        {
-            PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(false, true, op);
-        }
-        catch (InvocationTargetException e)
-        {
-            if (e.getCause() instanceof CoreException) {
-                throw (CoreException) e.getCause();
-            }
-            else {
-                throw SigilCore.newCoreException("Failed to execute task", e.getCause());
-            }
-        }
-        catch (InterruptedException e1)
-        {
-            SigilCore.log("Workspace operation interrupted");
-        }
-    }
-    
-    public static IWorkbenchWindow getActiveWorkbenchWindow()
-    {
-        return getDefault().getWorkbench().getActiveWorkbenchWindow();
-    }
-
-    public static Shell getActiveWorkbenchShell()
-    {
-        final Shell[] shell = new Shell[1];
-        runInUISync(new Runnable()
-        {
-            public void run()
-            {
-                shell[0] = getActiveDisplay().getActiveShell();
-            }
-        });
-        return shell[0];
-    }
-
-    public static Display getActiveDisplay()
-    {
-        Display d = Display.getCurrent();
-
-        if (d == null)
-        {
-            d = Display.getDefault();
-        }
-
-        return d;
-    }
-
-    public static void runInUI(Runnable runnable)
-    {
-        getActiveDisplay().asyncExec(runnable);
-    }
-
-    @SuppressWarnings("unchecked")
-    public static <T> T runInUISync(final Callable<T> callable) throws Exception
-    {
-        final Object[] result = new Object[1];
-        final Exception[] exception = new Exception[1];
-        runInUISync(new Runnable()
-        {
-            public void run()
-            {
-                try
-                {
-                    result[0] = callable.call();
-                }
-                catch (Exception e)
-                {
-                    exception[0] = e;
-                }
-            }
-
-        });
-        if (exception[0] == null)
-        {
-            return (T) result[0];
-        }
-        else
-        {
-            throw exception[0];
-        }
-    }
-
-    public static void runInUISync(Runnable runnable)
-    {
-        getActiveDisplay().syncExec(runnable);
-    }
-
-    public static Image cacheImage(String path, ClassLoader classLoader)
-    {
-        ImageRegistry registry = SigilUI.getDefault().getImageRegistry();
-
-        Image image = registry.get(path);
-
-        if (image == null)
-        {
-            image = loadImage(path, classLoader);
-            // XXX-FIXME-XXX add null image
-            if (image != null)
-            {
-                registry.put(path, image);
-            }
-        }
-
-        return image;
-    }
-
-    private static Image loadImage(String resource, ClassLoader loader)
-    {
-        InputStream in = loader.getResourceAsStream(resource);
-        if (in != null)
-        {
-            ImageData data = new ImageData(in);
-            return new Image(SigilUI.getActiveDisplay(), data);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/DisplayAction.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/DisplayAction.java
deleted file mode 100644
index e40b86d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/DisplayAction.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public abstract class DisplayAction extends Action
-{
-
-    public DisplayAction()
-    {
-        super();
-    }
-
-    public DisplayAction(String text)
-    {
-        super(text);
-    }
-
-    public DisplayAction(String text, ImageDescriptor image)
-    {
-        super(text, image);
-    }
-
-    public DisplayAction(String text, int style)
-    {
-        super(text, style);
-    }
-
-    protected Display findDisplay()
-    {
-        Display d = Display.getCurrent();
-
-        if (d == null)
-        {
-            d = Display.getDefault();
-        }
-
-        return d;
-    }
-
-    protected void runInUI(final Shell shell, final WorkspaceModifyOperation op)
-    {
-    }
-
-    protected void info(final Shell shell, final String msg)
-    {
-        shell.getDisplay().asyncExec(new Runnable()
-        {
-            public void run()
-            {
-                MessageDialog.openInformation(shell, "Information", msg);
-            }
-        });
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/PruneProjectDependenciesAction.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/PruneProjectDependenciesAction.java
deleted file mode 100644
index 1b44d7d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/PruneProjectDependenciesAction.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.actions;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.util.ResourceReviewDialog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.progress.IProgressService;
-
-public class PruneProjectDependenciesAction extends DisplayAction
-{
-
-    private ISigilProjectModel project;
-
-    public PruneProjectDependenciesAction(ISigilProjectModel project)
-    {
-        this.project = project;
-    }
-
-    @Override
-    public void run()
-    {
-        final Shell shell = findDisplay().getActiveShell();
-
-        Job job = new Job("Resolving imports")
-        {
-
-            @Override
-            protected IStatus run(IProgressMonitor monitor)
-            {
-                Collection<IModelElement> unused = JavaHelper.findUnusedReferences(
-                    project, monitor);
-
-                if (monitor.isCanceled()) return Status.CANCEL_STATUS;
-                
-                if (unused.isEmpty())
-                {
-                    info(shell, "No unused references found");
-                }
-                else
-                {
-                    final ResourceReviewDialog<IModelElement> dialog = new ResourceReviewDialog<IModelElement>(
-                        shell, "Review Unused Imports", unused);
-
-                    shell.getDisplay().asyncExec(new Runnable()
-                    {
-                        public void run()
-                        {
-                            if (dialog.open() == Window.OK)
-                            {
-                                WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-                                {
-                                    @Override
-                                    protected void execute(IProgressMonitor monitor)
-                                        throws CoreException
-                                    {
-                                        for (IModelElement e : dialog.getResources())
-                                        {
-                                            if (!project.getBundle().getBundleInfo().removeChild(
-                                                e))
-                                            {
-                                                SigilCore.error("Failed to remove " + e);
-                                            }
-                                        }
-
-                                        project.save(monitor);
-                                    }
-                                };
-
-                                SigilUI.runWorkspaceOperation(op, shell);
-                            }
-                        }
-                    });
-                }
-
-                return Status.OK_STATUS;
-            }
-        };
-
-        job.schedule();
-
-        IProgressService p = PlatformUI.getWorkbench().getProgressService();
-        p.showInDialog(shell, job);
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/RefreshRepositoryAction.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/RefreshRepositoryAction.java
deleted file mode 100644
index 5e241e5..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/RefreshRepositoryAction.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class RefreshRepositoryAction extends DisplayAction
-{
-    private final List<IBundleRepository> repositories;
-
-    public RefreshRepositoryAction(IBundleRepository...repositories) {
-        this.repositories = Arrays.asList(repositories);
-        
-    }
-    public RefreshRepositoryAction(IRepositoryModel... model)
-    {
-        super("Refresh repository");
-        ArrayList<IBundleRepository> reps = new ArrayList<IBundleRepository>(model.length);
-        for (IBundleRepository b : SigilCore.getGlobalRepositoryManager().getRepositories())
-        {
-            for (IRepositoryModel m : model)
-            {
-                if (b.getId().equals(m.getId()))
-                {
-                    reps.add(b);
-                }
-            }
-        }
-        this.repositories = reps;
-    }
-
-    @Override
-    public void run()
-    {
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-        {
-            @Override
-            protected void execute(IProgressMonitor monitor) throws CoreException,
-                InvocationTargetException, InterruptedException
-            {
-                if ( !repositories.isEmpty() ) {
-                    for (IBundleRepository rep : repositories ) {
-                        rep.refresh();                        
-                    }
-                    
-                    List<ISigilProjectModel> projects = SigilCore.getRoot().getProjects();
-                    SubMonitor sub = SubMonitor.convert(monitor, projects.size() * 10);
-                    for (ISigilProjectModel p : projects)
-                    {
-                        p.resetClasspath(sub.newChild(10), false);
-                    }
-                }
-            }
-        };
-
-        SigilUI.runWorkspaceOperation(op, null);
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/ResolveProjectDependenciesAction.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/ResolveProjectDependenciesAction.java
deleted file mode 100644
index 6cd4b88..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/actions/ResolveProjectDependenciesAction.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.actions;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.util.ResourceReviewDialog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.progress.IProgressService;
-
-public class ResolveProjectDependenciesAction extends DisplayAction
-{
-
-    private ISigilProjectModel project;
-    private boolean review;
-
-    public ResolveProjectDependenciesAction(ISigilProjectModel project, boolean review)
-    {
-        this.project = project;
-        this.review = review;
-    }
-
-    public void run()
-    {
-        final Shell shell = findDisplay().getActiveShell();
-
-        Job job = new Job("Resolving dependencies")
-        {
-            @Override
-            protected IStatus run(IProgressMonitor monitor)
-            {
-                monitor.beginTask("", IProgressMonitor.UNKNOWN);
-
-                List<IPackageImport> imports = JavaHelper.findRequiredImports(project,
-                    monitor);
-
-                if (monitor.isCanceled()) {
-                    return Status.CANCEL_STATUS;
-                }
-                
-                if (imports.isEmpty())
-                {
-                    info(shell, "No new dependencies found");
-                }
-                else
-                {
-                    Collections.sort(imports, new Comparator<IPackageImport>()
-                    {
-                        public int compare(IPackageImport o1, IPackageImport o2)
-                        {
-                            int i = o1.getPackageName().compareTo(o2.getPackageName());
-
-                            // shouldn't get more than one import for same package
-                            // but may as well sort if do...
-                            if (i == 0)
-                            {
-                                i = o1.getVersions().getFloor().compareTo(
-                                    o2.getVersions().getFloor());
-                            }
-
-                            return i;
-                        }
-                    });
-
-                    final ResourceReviewDialog<IPackageImport> dialog = new ResourceReviewDialog<IPackageImport>(
-                        shell, "Review New Dependencies", imports);
-                    shell.getDisplay().asyncExec(new Runnable()
-                    {
-                        public void run()
-                        {
-                            if (!review || dialog.open() == Window.OK)
-                            {
-                                WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-                                {
-                                    @Override
-                                    protected void execute(IProgressMonitor monitor)
-                                        throws CoreException
-                                    {
-                                        for (IPackageImport pi : dialog.getResources())
-                                        {
-                                            project.getBundle().getBundleInfo().addImport(
-                                                pi);
-                                        }
-
-                                        project.save(monitor);
-                                    }
-                                };
-
-                                SigilUI.runWorkspaceOperation(op, shell);
-                            }
-                        }
-                    });
-                }
-
-                return Status.OK_STATUS;
-            }
-        };
-
-        job.schedule();
-
-        IProgressService p = PlatformUI.getWorkbench().getProgressService();
-        p.showInDialog(shell, job);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClassPathContainer.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClassPathContainer.java
deleted file mode 100644
index baf9cea..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClassPathContainer.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.classpath;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.job.ThreadProgressMonitor;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-
-/**
- * @author dave
- *
- */
-public class SigilClassPathContainer implements IClasspathContainer
-{
-
-    private static final String CLASSPATH = "classpath";
-    private static final String EMPTY = "empty";
-
-    private IClasspathEntry[] entries;
-    
-    private final ISigilProjectModel sigil;
-    
-    public SigilClassPathContainer(ISigilProjectModel sigil)
-    {
-        this.sigil = sigil;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
-     */
-    public IClasspathEntry[] getClasspathEntries()
-    {
-        if (entries == null)
-        {
-            buildClassPathEntries();
-        }
-
-        return entries;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jdt.core.IClasspathContainer#getDescription()
-     */
-    public String getDescription()
-    {
-        return "Bundle Context Classpath";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jdt.core.IClasspathContainer#getKind()
-     */
-    public int getKind()
-    {
-        return K_SYSTEM;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jdt.core.IClasspathContainer#getPath()
-     */
-    public IPath getPath()
-    {
-        return new Path(SigilCore.CLASSPATH_CONTAINER_PATH);
-    }
-
-    /**
-     * @return
-     * @throws CoreException 
-     * @throws CoreException 
-     */
-    private void buildClassPathEntries()
-    {
-        try
-        {
-            if (sigil.exists()) {
-                entries = getCachedClassPath(sigil);
-                
-                if ( entries == null ) {
-                    IProgressMonitor monitor = ThreadProgressMonitor.getProgressMonitor();
-                    entries = sigil.findExternalClasspath(monitor).toArray(new IClasspathEntry[0]);
-                    
-                    cacheClassPath(sigil, entries);
-                }
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to build classpath entries", e);
-        }
-        finally
-        {
-            if (entries == null)
-            {
-                entries = new IClasspathEntry[] {};
-            }
-        }
-    }
-    
-    static IClasspathEntry[] getCachedClassPath(ISigilProjectModel project) {
-        File f = getClassPathDir(project);
-        if ( f == null || !f.exists() ) return null;
-        
-        File[] entries = f.listFiles();
-        if ( entries == null || entries.length == 0 ) return null;
-        
-        ArrayList<IClasspathEntry> list = new ArrayList<IClasspathEntry>(entries.length);
-        for(File entry : entries ) {
-            if ( EMPTY.equals(entry.getName() ) ) {
-                list.clear();
-                break;
-            }
-            else {
-                try
-                {
-                    list.add(readClassPath(project.getJavaModel(), entry));
-                }
-                catch (IOException e)
-                {
-                    SigilCore.warn("Failed to read classpath entry " + entry, e);
-                }
-            }
-        }
-        return list.toArray(new IClasspathEntry[list.size()]);
-    }
-
-    private static File getClassPathDir(ISigilProjectModel project)
-    {
-        IPath loc = project.getProject().getWorkingLocation(SigilUI.PLUGIN_ID);
-        
-        if ( loc == null ) return null;
-        
-        loc = loc.append(CLASSPATH);
-        
-        return new File(loc.toOSString());
-    }
-
-    static void cacheClassPath(ISigilProjectModel project, IClasspathEntry[] entries)
-    {
-        File f = getClassPathDir(project);
-        
-        if ( f == null ) return;
-        
-        if ( !f.exists() ) {
-            if (!f.mkdirs()) {
-                SigilCore.warn("Failed to create temp working directory " + f);
-                return;
-            }
-        }
-        
-        try
-        {
-            if (entries.length == 0)
-            {
-                File empty = new File(f, EMPTY);
-                empty.createNewFile();
-            }
-            else {
-                int i = 0;
-                for(IClasspathEntry e : entries) {
-                    File entry = new File(f, Integer.toString(i++));
-                    writeClassPath(project.getJavaModel(), entry, e);
-                }
-            }
-        }
-        catch (IOException e)
-        {
-            SigilCore.warn("Failed to read write classpath entries", e);
-        }
-    }
-
-    /**
-     * @param sigil
-     */
-    static void flushCachedClassPath(ISigilProjectModel project)
-    {
-        File f = getClassPathDir(project);
-        
-        if ( f == null || !f.exists() ) return;
-        
-        File[] files = f.listFiles();
-        if ( files == null ) return;
-        
-        for (File entry : files) {
-            entry.delete();
-        }
-    }
-    
-    private static IClasspathEntry readClassPath(IJavaProject javaModel, File entry) throws IOException
-    {
-        FileInputStream in = new FileInputStream(entry);
-        
-        try
-        {
-            ByteArrayOutputStream buf = new ByteArrayOutputStream();
-            
-            byte[] b = new byte[1024];
-            
-            for(;;) {
-                int r = in.read(b);
-                if ( r == -1 ) break;
-                buf.write(b, 0, r);
-            }
-            
-            String enc = buf.toString();
-            return javaModel.decodeClasspathEntry(enc);
-        }
-        finally
-        {
-            try
-            {
-                in.close();
-            }
-            catch (IOException e)
-            {
-                SigilCore.warn("Failed to close stream to " + entry, e);
-            }
-        }
-    }
-
-    private static void writeClassPath(IJavaProject javaModel, File file, IClasspathEntry entry) throws IOException 
-    {
-        String enc = javaModel.encodeClasspathEntry(entry);
-        FileOutputStream out = new FileOutputStream(file);
-        try {
-            out.write(enc.getBytes());
-            out.flush();
-        }
-        finally {
-            try
-            {
-                out.close();
-            }
-            catch (IOException e)
-            {
-                SigilCore.warn("Failed to close stream to " + entry, e);
-            }            
-        }
-    }
-    
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClasspathContainerInitializer.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClasspathContainerInitializer.java
deleted file mode 100644
index 2216efa..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilClasspathContainerInitializer.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.classpath;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.job.*;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.ClasspathContainerInitializer;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-public class SigilClasspathContainerInitializer extends ClasspathContainerInitializer
-{
-
-    @Override
-    public boolean canUpdateClasspathContainer(IPath containerPath, IJavaProject project)
-    {
-        return true;
-    }
-
-    @Override
-    public void requestClasspathContainerUpdate(IPath containerPath,
-        IJavaProject project, IClasspathContainer containerSuggestion)
-        throws CoreException
-    {
-        ISigilProjectModel sigil = SigilCore.create(project.getProject());
-        
-        SigilClassPathContainer.flushCachedClassPath(sigil);
-
-        IClasspathContainer sigilContainer = new SigilClassPathContainer(sigil);
-
-        IJavaProject[] affectedProjects = new IJavaProject[] { project };
-
-        IClasspathContainer[] respectiveContainers = new IClasspathContainer[] { sigilContainer };
-
-        
-        JavaCore.setClasspathContainer(containerPath, affectedProjects,
-            respectiveContainers, getMonitor());
-    }
-
-    /**
-     * @return
-     */
-    private IProgressMonitor getMonitor()
-    {
-        IProgressMonitor monitor = ThreadProgressMonitor.getProgressMonitor();
-
-        if (monitor == null)
-        {
-            monitor = Job.getJobManager().createProgressGroup();
-        }
-        
-        return monitor;
-    }
-
-    @Override
-    public void initialize(IPath containerPath, IJavaProject project)
-        throws CoreException
-    {
-        ISigilProjectModel sigil = SigilCore.create(project.getProject());
-
-        IClasspathContainer sigilContainer = new SigilClassPathContainer(sigil);
-
-        IJavaProject[] affectedProjects = new IJavaProject[] { project };
-
-        IClasspathContainer[] respectiveContainers = new IClasspathContainer[] { sigilContainer };
-
-        JavaCore.setClasspathContainer(containerPath, affectedProjects,
-            respectiveContainers, getMonitor());
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilLibraryPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilLibraryPage.java
deleted file mode 100644
index 1fa13fd..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/classpath/SigilLibraryPage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.classpath;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.wizards.IClasspathContainerPage;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-public class SigilLibraryPage extends WizardPage implements IClasspathContainerPage
-{
-
-    private IClasspathEntry classpathEntry;
-
-    public SigilLibraryPage()
-    {
-        super("Sigil");
-    }
-
-    public void createControl(Composite parent)
-    {
-        setTitle("Sigil Library");
-
-        Label label = new Label(parent, SWT.NONE);
-        label.setText("Press Finish to add the Sigil Library");
-        label.setFont(parent.getFont());
-
-        setControl(label);
-    }
-
-    public boolean finish()
-    {
-        classpathEntry = JavaCore.newContainerEntry(new Path(
-            SigilCore.CLASSPATH_CONTAINER_PATH));
-        return true;
-    }
-
-    public boolean isPageComplete()
-    {
-        return true;
-    }
-
-    public IClasspathEntry getSelection()
-    {
-        return classpathEntry;
-    }
-
-    public void setSelection(IClasspathEntry containerEntry)
-    {
-        this.classpathEntry = containerEntry;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/completion/CompletionProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/completion/CompletionProposal.java
deleted file mode 100644
index b74ea93..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/completion/CompletionProposal.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.completion;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-class CompletionProposal implements ICompletionProposal
-{
-
-    private int fReplacementOffset;
-    private int fReplacementLength;
-    private int fCursorPosition;
-    private String fReplacementString;
-    private String fAdditionalProposalInfo;
-    private IContextInformation fContextInformation;
-    private String fDisplayString;
-    private Image fImage;
-
-    /**
-     * Creates a new completion proposal based on the provided information. The replacement string is
-     * considered being the display string too. All remaining fields are set to <code>null</code>.
-     *
-     * @param replacementString the actual string to be inserted into the document
-     * @param replacementOffset the offset of the text to be replaced
-     * @param replacementLength the length of the text to be replaced
-     * @param cursorPosition the position of the cursor following the insert relative to replacementOffset
-     */
-    public CompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition)
-    {
-        this(replacementString, replacementOffset, replacementLength, cursorPosition,
-            null, null, null, null);
-    }
-
-    /**
-     * Creates a new completion proposal. All fields are initialized based on the provided information.
-     *
-     * @param replacementString the actual string to be inserted into the document
-     * @param replacementOffset the offset of the text to be replaced
-     * @param replacementLength the length of the text to be replaced
-     * @param cursorPosition the position of the cursor following the insert relative to replacementOffset
-     * @param image the image to display for this proposal
-     * @param displayString the string to be displayed for the proposal
-     * @param contextInformation the context information associated with this proposal
-     * @param additionalProposalInfo the additional information associated with this proposal
-     */
-    public CompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo)
-    {
-        fReplacementString = replacementString;
-        fReplacementOffset = replacementOffset;
-        fReplacementLength = replacementLength;
-        fCursorPosition = cursorPosition;
-        fImage = image;
-        fDisplayString = displayString;
-        fContextInformation = contextInformation;
-        fAdditionalProposalInfo = additionalProposalInfo;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
-     */
-    public void apply(IDocument document)
-    {
-        try
-        {
-            document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
-        }
-        catch (BadLocationException x)
-        {
-            // ignore
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-     */
-    public String getAdditionalProposalInfo()
-    {
-        return fAdditionalProposalInfo;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
-     */
-    public IContextInformation getContextInformation()
-    {
-        return fContextInformation;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-     */
-    public String getDisplayString()
-    {
-        if (fDisplayString != null)
-            return fDisplayString;
-        return fReplacementString;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-     */
-    public Image getImage()
-    {
-        return fImage;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
-     */
-    public Point getSelection(IDocument document)
-    {
-        return new Point(fReplacementOffset + fCursorPosition, 0);
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/AbstractResourceSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/AbstractResourceSection.java
deleted file mode 100644
index 6fb8ee1..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/AbstractResourceSection.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.io.File;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.forms.IManagedForm;
-
-public abstract class AbstractResourceSection extends SigilSection implements IResourceChangeListener, ICheckStateListener
-{
-
-    protected static final Object[] EMPTY = new Object[] {};
-    protected Tree tree;
-    protected CheckboxTreeViewer viewer;
-    private IWorkspace workspace;
-
-    public AbstractResourceSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    public void initialize(IManagedForm form)
-    {
-        super.initialize(form);
-        viewer.setAllChecked(false);
-        viewer.setGrayedElements(EMPTY);
-        refreshSelections();
-        viewer.refresh();
-    }
-
-    @Override
-    public void refresh()
-    {
-        refreshSelections();
-        super.refresh();
-    }
-
-    public void checkStateChanged(CheckStateChangedEvent event)
-    {
-        handleStateChanged((IResource) event.getElement(), event.getChecked(), true, true);
-    }
-
-    public void resourceChanged(IResourceChangeEvent event)
-    {
-        if (!getSection().getDisplay().isDisposed())
-        {
-            getSection().getDisplay().asyncExec(new Runnable()
-            {
-                public void run()
-                {
-                    if (getSection().isVisible())
-                    {
-                        viewer.refresh();
-                    }
-                }
-            });
-        }
-    }
-
-    protected void startWorkspaceListener(IWorkspace workspace)
-    {
-        this.workspace = workspace;
-        workspace.addResourceChangeListener(this);
-    }
-
-    @Override
-    public void dispose()
-    {
-        workspace.removeResourceChangeListener(this);
-    }
-
-    protected abstract void refreshSelections();
-
-    protected abstract void syncResourceModel(IResource element, boolean checked);
-
-    protected IResource findResource(IPath path)
-    {
-        IProject project2 = getProjectModel().getProject();
-        File f = project2.getLocation().append(path).toFile();
-
-        if (f.exists())
-        {
-            try
-            {
-                if (f.isFile())
-                {
-                    return project2.getFile(path);
-                }
-                else
-                {
-                    return project2.getFolder(path);
-                }
-            }
-            catch (IllegalArgumentException e)
-            {
-                SigilCore.error("Unknown path " + path);
-                return null;
-            }
-        }
-        else
-        {
-            SigilCore.error("Unknown file " + f);
-            return null;
-        }
-    }
-
-    protected void handleStateChanged(IResource element, boolean checked,
-        boolean recurse, boolean sync)
-    {
-        if (element instanceof IContainer)
-        {
-            setParentsGrayChecked(element, checked);
-            if (recurse)
-            {
-                recursiveCheck((IContainer) element, checked, sync);
-            }
-        }
-        else
-        {
-            setParentsGrayChecked(element, checked);
-        }
-
-        if (sync)
-        {
-            syncResourceModel(element, checked);
-        }
-    }
-
-    private void recursiveCheck(IContainer element, final boolean checked,
-        final boolean sync)
-    {
-        try
-        {
-            element.accept(new IResourceVisitor()
-            {
-                public boolean visit(IResource resource) throws CoreException
-                {
-                    viewer.setChecked(resource, checked);
-                    if (sync)
-                    {
-                        syncResourceModel(resource, checked);
-                    }
-                    return true;
-                }
-            });
-        }
-        catch (CoreException e)
-        {
-            DebugPlugin.log(e.getStatus());
-        }
-    }
-
-    private void setParentsGrayChecked(IResource r, boolean checked)
-    {
-        while (r.getParent() != null)
-        {
-            r = r.getParent();
-            if ((viewer.getGrayed(r) && viewer.getChecked(r)) == checked)
-            {
-                break;
-            }
-            if (viewer.getChecked(r) == checked)
-            {
-                viewer.setGrayed(r, !checked);
-            }
-            else
-            {
-                viewer.setGrayChecked(r, checked);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/BundleDependencySection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/BundleDependencySection.java
deleted file mode 100644
index 76e298a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/BundleDependencySection.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-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.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public abstract class BundleDependencySection extends SigilSection
-{
-
-    protected ProjectTableViewer viewer;
-    private Button add;
-    private Button edit;
-    private Button remove;
-
-    public BundleDependencySection(SigilPage page, Composite parent, ISigilProjectModel project, Set<IModelElement> unresolvedElements) throws CoreException
-    {
-        super(page, parent, project);
-        viewer.setUnresolvedElements(unresolvedElements);
-    }
-
-    public BundleDependencySection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        this(page, parent, project, null);
-    }
-
-    protected abstract String getTitle();
-
-    protected abstract Label createLabel(Composite parent, FormToolkit toolkit);
-
-    protected abstract IContentProvider getContentProvider();
-
-    protected abstract void handleAdd();
-
-    protected abstract void handleEdit();
-
-    protected abstract void handleRemoved();
-
-    @Override
-    public void refresh()
-    {
-        super.refresh();
-        viewer.refresh();
-    }
-
-    protected ISelection getSelection()
-    {
-        return viewer.getSelection();
-    }
-
-    @Override
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle(getTitle());
-
-        Composite body = createGridBody(2, false, toolkit);
-
-        Label label = createLabel(body, toolkit);
-
-        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 2, 1));
-
-        Table bundleTable = toolkit.createTable(body, SWT.MULTI | SWT.FULL_SELECTION
-            | SWT.VIRTUAL | SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.heightHint = 600;
-        bundleTable.setLayoutData(data);
-        bundleTable.setLinesVisible(false);
-        createButtons(body, toolkit);
-        createViewer(bundleTable);
-    }
-
-    protected void createButtons(Composite body, FormToolkit toolkit)
-    {
-        Composite buttons = toolkit.createComposite(body);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.numColumns = 1;
-        layout.topMargin = 0;
-        layout.leftMargin = 0;
-        layout.rightMargin = 0;
-        layout.bottomMargin = 0;
-        buttons.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = SWT.TOP;
-        buttons.setLayoutData(data);
-
-        add = toolkit.createButton(buttons, "Add", SWT.NULL);
-        add.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleAdd();
-            }
-        });
-
-        edit = toolkit.createButton(buttons, "Edit", SWT.NULL);
-        edit.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        edit.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleEdit();
-            }
-        });
-
-        remove = toolkit.createButton(buttons, "Remove", SWT.NULL);
-        remove.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemoved();
-            }
-        });
-
-        setSelected(false);
-    }
-
-    protected void createViewer(Table bundleTable)
-    {
-        viewer = new ProjectTableViewer(bundleTable);
-        viewer.setContentProvider(getContentProvider());
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                setSelected(!event.getSelection().isEmpty());
-            }
-        });
-    }
-
-    private void setSelected(boolean selected)
-    {
-        edit.setEnabled(selected);
-        remove.setEnabled(selected);
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ClasspathSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ClasspathSection.java
deleted file mode 100644
index 6261f21..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ClasspathSection.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.apache.felix.sigil.eclipse.ui.util.BackgroundLoadingSelectionDialog;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.IElementDescriptor;
-import org.apache.felix.sigil.eclipse.ui.util.IFilter;
-import org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.window.Window;
-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.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class ClasspathSection extends SigilSection
-{
-
-    private ProjectTableViewer viewer;
-    private final Comparator<IClasspathEntry> CLASSPATH_COMPARATOR = new Comparator<IClasspathEntry>()
-    {
-        public int compare(IClasspathEntry o1, IClasspathEntry o2)
-        {
-            return compareClasspaths(o1, o2);
-        }
-    };
-
-    public ClasspathSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Classpath");
-
-        Composite body = createGridBody(2, false, toolkit);
-
-        Label label = toolkit.createLabel(body,
-            "Specify the internal classpath of this bundle.");
-        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 2, 1));
-
-        Table bundleTable = toolkit.createTable(body, SWT.MULTI | SWT.FULL_SELECTION
-            | SWT.VIRTUAL | SWT.BORDER);
-        GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-        tableLayoutData.heightHint = 150;
-        bundleTable.setLayoutData(tableLayoutData);
-
-        createButtons(body, toolkit);
-        createViewer(bundleTable);
-    }
-
-    private void createButtons(Composite body, FormToolkit toolkit)
-    {
-        Composite buttons = toolkit.createComposite(body);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.numColumns = 1;
-        layout.topMargin = 0;
-        layout.leftMargin = 0;
-        layout.rightMargin = 0;
-        layout.bottomMargin = 0;
-        buttons.setLayout(layout);
-
-        Button add = toolkit.createButton(buttons, "Add", SWT.NULL);
-        add.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleAdd();
-            }
-        });
-
-        Button remove = toolkit.createButton(buttons, "Remove", SWT.NULL);
-        remove.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemoved();
-            }
-        });
-    }
-
-    private void createViewer(Table bundleTable)
-    {
-        viewer = new ProjectTableViewer(bundleTable);
-        viewer.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                ArrayList<IClasspathEntry> cp = new ArrayList<IClasspathEntry>();
-                for (IClasspathEntry cpe : JavaHelper.findClasspathEntries(getBundle()))
-                {
-                    cp.add(cpe);
-                }
-
-                Collections.sort(cp, new Comparator<IClasspathEntry>()
-                {
-                    public int compare(IClasspathEntry o1, IClasspathEntry o2)
-                    {
-                        return o1.toString().compareTo(o2.toString());
-                    }
-                });
-                return cp.toArray();
-            }
-        });
-        viewer.setComparator(new ViewerComparator()
-        {
-            @Override
-            public int category(Object element)
-            {
-                return index((IClasspathEntry) element);
-            }
-        });
-    }
-
-    protected ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-
-    private void handleAdd()
-    {
-        try
-        {
-            BackgroundLoadingSelectionDialog<IClasspathEntry> dialog = new BackgroundLoadingSelectionDialog<IClasspathEntry>(
-                getSection().getShell(), "Classpath Entry:", true);
-
-            dialog.setDescriptor(new IElementDescriptor<IClasspathEntry>()
-            {
-                public String getName(IClasspathEntry element)
-                {
-                    return element.getPath().toString();
-                }
-
-                public String getLabel(IClasspathEntry element)
-                {
-                    return getName(element);
-                }
-            });
-
-            dialog.setLabelProvider(new ModelLabelProvider());
-
-            dialog.setFilter(new IFilter<IClasspathEntry>()
-            {
-                public boolean select(IClasspathEntry cp)
-                {
-                    switch (cp.getEntryKind())
-                    {
-                        case IClasspathEntry.CPE_LIBRARY:
-                        case IClasspathEntry.CPE_VARIABLE:
-                        case IClasspathEntry.CPE_SOURCE:
-                            return !getBundle().getClasspathEntrys().contains(encode(cp));
-                        default:
-                            return false;
-                    }
-                }
-            });
-
-            dialog.setComparator(CLASSPATH_COMPARATOR);
-
-            IClasspathEntry[] classpath = getProjectModel().getJavaModel().getRawClasspath();
-            dialog.addElements(Arrays.asList(classpath));
-            if (dialog.open() == Window.OK)
-            {
-                List<IClasspathEntry> selectedElements = dialog.getSelectedElements();
-
-                Object[] added = selectedElements.toArray();
-                for (IClasspathEntry entry : selectedElements)
-                {
-                    getBundle().addClasspathEntry(encode(entry));
-                }
-                viewer.add(added);
-                viewer.refresh();
-                markDirty();
-            }
-        }
-        catch (JavaModelException e)
-        {
-            ErrorDialog.openError(getSection().getShell(), "Error", null, e.getStatus());
-        }
-    }
-
-    private int compareClasspaths(IClasspathEntry o1, IClasspathEntry o2)
-    {
-        if (o1.getEntryKind() == o2.getEntryKind())
-        {
-            ModelLabelProvider mlp = viewer.getLabelProvider();
-            return mlp.getText(o1).compareTo(mlp.getText(o2));
-        }
-        else
-        {
-            int i1 = index(o1);
-            int i2 = index(o2);
-
-            if (i1 < i2)
-            {
-                return -1;
-            }
-            else
-            {
-                return 1;
-            }
-        }
-    }
-
-    private static int index(IClasspathEntry o1)
-    {
-        switch (o1.getEntryKind())
-        {
-            case IClasspathEntry.CPE_SOURCE:
-                return 0;
-            case IClasspathEntry.CPE_PROJECT:
-                return 1;
-            case IClasspathEntry.CPE_LIBRARY:
-                return 2;
-            case IClasspathEntry.CPE_VARIABLE:
-                return 3;
-            case IClasspathEntry.CPE_CONTAINER:
-                return 4;
-            default:
-                throw new IllegalStateException("Unknown classpath entry type " + o1);
-        }
-    }
-
-    private String encode(IClasspathEntry cp)
-    {
-        return getProjectModel().getJavaModel().encodeClasspathEntry(cp).trim();
-    }
-
-    @SuppressWarnings("unchecked")
-    private void handleRemoved()
-    {
-        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IClasspathEntry> i = selection.iterator(); i.hasNext();)
-            {
-                getBundle().removeClasspathEntry(
-                    getProjectModel().getJavaModel().encodeClasspathEntry(i.next()).trim());
-            }
-            viewer.remove(selection.toArray());
-            markDirty();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentSummarySection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentSummarySection.java
deleted file mode 100644
index f0eedf4..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentSummarySection.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-public class ContentSummarySection extends SigilSection
-{
-
-    public ContentSummarySection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Project Content");
-
-        Composite body = createTableWrapBody(2, toolkit);
-        Hyperlink link = toolkit.createHyperlink(body, "Contents:", SWT.NONE);
-        link.setHref(ContentsForm.PAGE_ID);
-        link.addHyperlinkListener(this);
-        toolkit.createLabel(body, "Manage the content that this bundle provides.");
-
-        link = toolkit.createHyperlink(body, "Dependencies:", SWT.NONE);
-        link.setHref(DependenciesForm.PAGE_ID);
-        link.addHyperlinkListener(this);
-        toolkit.createLabel(body,
-            "Manage the dependencies that this bundle needs to run.");
-
-        link = toolkit.createHyperlink(body, "Exports:", SWT.NONE);
-        link.setHref(ExportsForm.PAGE_ID);
-        link.addHyperlinkListener(this);
-        toolkit.createLabel(body, "Manage the resources that this bundle exports.");
-    }
-
-    @Override
-    public void linkActivated(HyperlinkEvent e)
-    {
-        getPage().getEditor().setActivePage((String) e.getHref());
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentsForm.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentsForm.java
deleted file mode 100644
index 0271305..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ContentsForm.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class ContentsForm extends SigilPage
-{
-
-    public static final String PAGE_ID = "contents";
-
-    private ISigilProjectModel project;
-
-    public ContentsForm(FormEditor editor, ISigilProjectModel project)
-    {
-        super(editor, PAGE_ID, "Contents");
-        this.project = project;
-    }
-
-    @Override
-    protected void createFormContent(IManagedForm managedForm)
-    {
-        FormToolkit toolkit = managedForm.getToolkit();
-
-        ScrolledForm form = managedForm.getForm();
-        form.setText("Contents");
-
-        Composite body = form.getBody();
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.bottomMargin = 10;
-        layout.topMargin = 5;
-        layout.leftMargin = 10;
-        layout.rightMargin = 10;
-        layout.numColumns = 1;
-        layout.horizontalSpacing = 10;
-        body.setLayout(layout);
-        body.setLayoutData(new TableWrapData(TableWrapData.FILL));
-
-        Composite top = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        top.setLayout(layout);
-        TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB);
-        //data.colspan = 2;
-        top.setLayoutData(data);
-
-        Composite bottom = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        bottom.setLayout(layout);
-        bottom.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        try
-        {
-            ClasspathSection classpath = new ClasspathSection(this, top, project);
-            managedForm.addPart(classpath);
-
-            ResourceBuildSection runtimeBuild = new ResourceBuildSection(this, bottom,
-                project);
-            managedForm.addPart(runtimeBuild);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create contents form", e);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependenciesForm.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependenciesForm.java
deleted file mode 100644
index abb94ea..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependenciesForm.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class DependenciesForm extends SigilPage
-{
-
-    public static final String PAGE_ID = "dependencies";
-
-    private final ISigilProjectModel project;
-    private final Set<IModelElement> unresolvedElements;
-
-    private ImportPackagesSection importPackages;
-    private RequiresBundleSection requiresSection;
-
-    public DependenciesForm(FormEditor editor, ISigilProjectModel project, Set<IModelElement> unresolved)
-    {
-        super(editor, PAGE_ID, "Dependencies");
-        this.project = project;
-        this.unresolvedElements = unresolved;
-    }
-
-    @Override
-    public boolean canLeaveThePage()
-    {
-        return !isDirty();
-    }
-
-    @Override
-    protected void createFormContent(IManagedForm managedForm)
-    {
-        FormToolkit toolkit = managedForm.getToolkit();
-
-        ScrolledForm form = managedForm.getForm();
-        form.setText("Dependencies");
-
-        Composite body = form.getBody();
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.bottomMargin = 10;
-        layout.topMargin = 5;
-        layout.leftMargin = 10;
-        layout.rightMargin = 10;
-        layout.numColumns = 2;
-        layout.horizontalSpacing = 10;
-        body.setLayout(layout);
-        body.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        Composite left = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        left.setLayout(layout);
-        TableWrapData layoutData = new TableWrapData(TableWrapData.FILL_GRAB);
-        layoutData.rowspan = 2;
-        left.setLayoutData(layoutData);
-
-        Composite right = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        right.setLayout(layout);
-        right.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        Composite bottom = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        bottom.setLayout(layout);
-        bottom.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        try
-        {
-            importPackages = new ImportPackagesSection(this, left, project,
-                unresolvedElements);
-            managedForm.addPart(importPackages);
-
-            requiresSection = new RequiresBundleSection(this, right, project,
-                unresolvedElements);
-            managedForm.addPart(requiresSection);
-
-            DependencyManagementSection depMgmt = new DependencyManagementSection(this,
-                bottom, project);
-            managedForm.addPart(depMgmt);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create dependencies form", e);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependencyManagementSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependencyManagementSection.java
deleted file mode 100644
index f8fd0ef..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/DependencyManagementSection.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.apache.felix.sigil.eclipse.ui.util.AccumulatorAdapter;
-import org.apache.felix.sigil.eclipse.ui.util.ExportedPackageFinder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IImportDeclaration;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-public class DependencyManagementSection extends SigilSection
-{
-
-    private Hyperlink hypConvertRBtoIP;
-
-    public DependencyManagementSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    protected void createSection(Section section, FormToolkit toolkit)
-        throws CoreException
-    {
-        setTitle("Dependency Management");
-
-        Composite body = createGridBody(1, false, toolkit);
-
-        hypConvertRBtoIP = toolkit.createHyperlink(body,
-            "Convert Required Bundles to Imported Packages", SWT.NONE);
-        hypConvertRBtoIP.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-        hypConvertRBtoIP.addHyperlinkListener(new HyperlinkAdapter()
-        {
-            public void linkActivated(HyperlinkEvent e)
-            {
-                run();
-            }
-        });
-    }
-
-    protected void run()
-    {
-        final Map<String, IPackageExport> exports = new HashMap<String, IPackageExport>();
-        final Set<String> imports = new HashSet<String>();
-
-        // Find all exports
-        final ExportedPackageFinder exportFinder = new ExportedPackageFinder(
-            getProjectModel(), new AccumulatorAdapter<IPackageExport>()
-            {
-                public void addElements(Collection<? extends IPackageExport> elements)
-                {
-                    for (IPackageExport export : elements)
-                    {
-                        exports.put(export.getPackageName(), export);
-                    }
-                }
-            });
-        Job findExportsJob = new Job("Find exports")
-        {
-            protected IStatus run(IProgressMonitor monitor)
-            {
-                return exportFinder.run(monitor);
-            }
-        };
-        findExportsJob.setUser(true);
-        findExportsJob.schedule();
-
-        // Find imports from Java source
-        Job findImportsJob = new Job("Find imports")
-        {
-            protected IStatus run(IProgressMonitor monitor)
-            {
-                IJavaProject javaProject = getProjectModel().getJavaModel();
-                try
-                {
-                    IPackageFragment[] packages = javaProject.getPackageFragments();
-                    for (IPackageFragment pkg : packages)
-                    {
-                        ICompilationUnit[] compilationUnits = pkg.getCompilationUnits();
-                        for (ICompilationUnit compilationUnit : compilationUnits)
-                        {
-                            IImportDeclaration[] importDecls = compilationUnit.getImports();
-                            for (IImportDeclaration importDecl : importDecls)
-                            {
-                                imports.add(getPackageName(importDecl));
-                            }
-                        }
-                    }
-                    return Status.OK_STATUS;
-                }
-                catch (JavaModelException e)
-                {
-                    return new Status(IStatus.ERROR, SigilUI.PLUGIN_ID, 0,
-                        "Error finding imports", e);
-                }
-            }
-        };
-        findImportsJob.setUser(true);
-        findImportsJob.schedule();
-
-        // Wait for both jobs to complete
-        try
-        {
-            findImportsJob.join();
-            findExportsJob.join();
-        }
-        catch (InterruptedException e)
-        {
-            // Aborted, just do nothing
-            return;
-        }
-
-        // Get the existing imports for the bundle
-        IBundleModelElement bundleInfo = getProjectModel().getBundle().getBundleInfo();
-        Collection<IPackageImport> existingImports = bundleInfo.getImports();
-        Map<String, IPackageImport> existingImportsMap = new HashMap<String, IPackageImport>();
-        for (IPackageImport existingImport : existingImports)
-        {
-            existingImportsMap.put(existingImport.getPackageName(), existingImport);
-        }
-
-        // Add imports to the bundle
-        ModelElementFactory elementFactory = ModelElementFactory.getInstance();
-        int count = 0;
-        for (String pkgImport : imports)
-        {
-            IPackageExport export = exports.get(pkgImport);
-            if (export != null && !existingImportsMap.containsKey(pkgImport))
-            {
-                VersionRange versionRange = ModelHelper.getDefaultRange(export.getVersion());
-                IPackageImport newImport = elementFactory.newModelElement(IPackageImport.class);
-                newImport.setPackageName(pkgImport);
-                newImport.setVersions(versionRange);
-                newImport.setOptional(false);
-
-                bundleInfo.addImport(newImport);
-                count++;
-            }
-        }
-
-        // Remove required bundles
-        Collection<IRequiredBundle> requiredBundles = bundleInfo.getRequiredBundles();
-        int requiredBundlesSize = requiredBundles.size();
-        for (IRequiredBundle requiredBundle : requiredBundles)
-        {
-            bundleInfo.removeRequiredBundle(requiredBundle);
-        }
-
-        // Update the editor
-        if (count + requiredBundlesSize > 0)
-        {
-            IFormPart[] parts = getPage().getManagedForm().getParts();
-            for (IFormPart formPart : parts)
-            {
-                formPart.refresh();
-                ((AbstractFormPart) formPart).markDirty();
-            }
-        }
-
-        MessageDialog.openInformation(getManagedForm().getForm().getShell(),
-            "Dependency Management", "Removed " + requiredBundlesSize
-                + " required bundle(s) and added " + count + " imported package(s).");
-    }
-
-    private static String getPackageName(IImportDeclaration decl)
-    {
-        String name = decl.getElementName();
-        int lastDot = name.lastIndexOf('.');
-        return name.substring(0, lastDot);
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExcludedResourcesFilter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExcludedResourcesFilter.java
deleted file mode 100644
index 4a94341..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExcludedResourcesFilter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.preferences.PrefsUtils;
-import org.apache.felix.sigil.utils.GlobCompiler;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-public class ExcludedResourcesFilter extends ViewerFilter
-{
-
-    private final Set<Pattern> exclusionSet = new HashSet<Pattern>();
-
-    public ExcludedResourcesFilter()
-    {
-        loadExclusions();
-    }
-
-    public final synchronized void loadExclusions()
-    {
-        exclusionSet.clear();
-        IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
-        String[] exclusions = PrefsUtils.stringToArray(store.getString(SigilCore.DEFAULT_EXCLUDED_RESOURCES));
-        for (String exclusion : exclusions)
-        {
-            exclusionSet.add(GlobCompiler.compile(exclusion));
-        }
-    }
-
-    @Override
-    public synchronized boolean select(Viewer viewer, Object parentElement, Object element)
-    {
-        IResource file = (IResource) element;
-        String path = file.getName();
-        for (Pattern p : exclusionSet)
-        {
-            if (p.matcher(path).matches())
-            {
-                return false;
-            }
-        }
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportPackagesSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportPackagesSection.java
deleted file mode 100644
index 74daa93..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportPackagesSection.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.preferences.OptionalPrompt;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.osgi.framework.Version;
-
-public class ExportPackagesSection extends BundleDependencySection
-{
-
-    public ExportPackagesSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    protected String getTitle()
-    {
-        return "Export Packages";
-    }
-
-    @Override
-    protected Label createLabel(Composite parent, FormToolkit toolkit)
-    {
-        return toolkit.createLabel(parent,
-            "Specify which packages this bundle shares with other bundles.");
-    }
-
-    @Override
-    protected IContentProvider getContentProvider()
-    {
-        return new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return getBundle().getBundleInfo().getExports().toArray();
-            }
-        };
-    }
-
-    @Override
-    protected void handleAdd()
-    {
-        NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog(
-            getSection().getShell(), "Add Exported Package", null, getProjectModel(),
-            true);
-
-        if (dialog.open() == Window.OK)
-        {
-            try
-            {
-                // Add selected exports
-                boolean exportsAdded = false;
-
-                List<IPackageFragment> newPkgFragments = dialog.getSelectedElements();
-                for (IPackageFragment pkgFragment : newPkgFragments)
-                {
-                    IPackageExport pkgExport = ModelElementFactory.getInstance().newModelElement(
-                        IPackageExport.class);
-                    pkgExport.setPackageName(pkgFragment.getElementName());
-                    pkgExport.setVersion(dialog.getVersion());
-                    getBundle().getBundleInfo().addExport(pkgExport);
-
-                    exportsAdded = true;
-                }
-
-                // Add corresponding imports (maybe)
-                boolean importsAdded = false;
-
-                boolean shouldAddImports = OptionalPrompt.optionallyPrompt(
-                    SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT, "Add Exports",
-                    "Should corresponding imports be added?", getSection().getShell());
-                if (shouldAddImports)
-                {
-                    for (IPackageFragment pkgFragment : newPkgFragments)
-                    {
-                        IPackageImport pkgImport = ModelElementFactory.getInstance().newModelElement(
-                            IPackageImport.class);
-                        pkgImport.setPackageName(pkgFragment.getElementName());
-                        Version version = dialog.getVersion();
-                        if (version == null)
-                        {
-                            version = getBundle().getVersion();
-                        }
-                        VersionRange versionRange = ModelHelper.getDefaultRange(version);
-                        pkgImport.setVersions(versionRange);
-
-                        getBundle().getBundleInfo().addImport(pkgImport);
-
-                        importsAdded = true;
-                    }
-                }
-
-                if (importsAdded)
-                {
-                    refreshAllPages();
-                    markDirty();
-                }
-                else if (exportsAdded)
-                {
-                    refresh();
-                    markDirty();
-                }
-            }
-            catch (ModelElementFactoryException e)
-            {
-                SigilCore.error("Failed to buiild model element for package export", e);
-            }
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleEdit()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        boolean changed = false;
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IPackageExport> i = selection.iterator(); i.hasNext();)
-            {
-                IPackageExport packageExport = i.next();
-                NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog(
-                    getSection().getShell(), "Edit Imported Package", packageExport,
-                    getProjectModel(), false);
-                if (dialog.open() == Window.OK)
-                {
-                    changed = true;
-                    IPackageFragment pkgFragment = dialog.getSelectedElement();
-                    packageExport.setPackageName(pkgFragment.getElementName());
-                    packageExport.setVersion(dialog.getVersion());
-                }
-            }
-        }
-
-        if (changed)
-        {
-            refresh();
-            markDirty();
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleRemoved()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        if (!selection.isEmpty())
-        {
-            boolean importsRemoved = false;
-
-            boolean shouldRemoveImports = OptionalPrompt.optionallyPrompt(
-                SigilCore.PREFERENCES_REMOVE_IMPORT_FOR_EXPORT, "Remove Exports",
-                "Should corresponding imports be removed?", getSection().getShell());
-
-            // TODO should also prompt to remove corresponding imports from other
-            // projects in workspace??
-            
-            IBundleModelElement info = getBundle().getBundleInfo();
-
-            for (Iterator<IPackageExport> i = selection.iterator(); i.hasNext();)
-            {
-                IPackageExport pe = i.next();
-                info.removeExport(pe);
-
-                // Remove corresponding imports (maybe)
-                if (shouldRemoveImports)
-                {
-                    for (IPackageImport pi : info.getImports())
-                    {
-                        if (pi.getPackageName().equals(pe.getPackageName()))
-                        {
-                            importsRemoved = true;
-                            info.removeImport(pi);
-                        }
-                    }
-                }
-            }
-
-            if (importsRemoved)
-            {
-                refreshAllPages();
-            }
-            else
-            {
-                refresh();
-            }
-
-            markDirty();
-        }
-    }
-
-    /**
-     * 
-     */
-    private void refreshAllPages()
-    {
-        ((SigilProjectEditorPart) getPage().getEditor()).refreshAllPages();
-    }
-
-    private ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportsForm.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportsForm.java
deleted file mode 100644
index 9537ff6..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ExportsForm.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class ExportsForm extends SigilPage
-{
-
-    public static final String PAGE_ID = "exports";
-
-    private ISigilProjectModel project;
-
-    public ExportsForm(FormEditor editor, ISigilProjectModel project)
-    {
-        super(editor, PAGE_ID, "Exports");
-        this.project = project;
-    }
-
-    @Override
-    protected void createFormContent(IManagedForm managedForm)
-    {
-        ScrolledForm form = managedForm.getForm();
-        form.setText("Exports");
-
-        Composite body = form.getBody();
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.bottomMargin = 10;
-        layout.topMargin = 5;
-        layout.leftMargin = 10;
-        layout.rightMargin = 10;
-        layout.numColumns = 1;
-        layout.horizontalSpacing = 10;
-        layout.verticalSpacing = 20;
-        body.setLayout(layout);
-        body.setLayoutData(new TableWrapData(TableWrapData.FILL));
-
-        try
-        {
-            ExportPackagesSection exportPackages = new ExportPackagesSection(this, body,
-                project);
-            managedForm.addPart(exportPackages);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create contents form", e);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/GeneralInfoSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/GeneralInfoSection.java
deleted file mode 100644
index 850a9e4..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/GeneralInfoSection.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.IFormValueConverter;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilFormEntry;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilFormEntryAdapter;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.apache.felix.sigil.eclipse.ui.util.BackgroundLoadingSelectionDialog;
-import org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class GeneralInfoSection extends SigilSection
-{
-
-    private String name;
-    private String symbolicName;
-    private Version version;
-    private String description;
-    private String provider;
-    private String activator;
-    private IRequiredBundle fragmentHost;
-
-    private SigilFormEntry nameEntry;
-    private SigilFormEntry symbolicNameEntry;
-    private SigilFormEntry versionEntry;
-    private SigilFormEntry descriptionEntry;
-    private SigilFormEntry providerEntry;
-    private SigilFormEntry activatorEntry;
-    private SigilFormEntry fragmentHostEntry;
-
-    /**
-     * @param parent
-     * @param toolkit
-     * @param style
-     * @throws CoreException 
-     */
-    public GeneralInfoSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("General Information");
-
-        Composite body = createGridBody(3, false, toolkit);
-
-        Label label = toolkit.createLabel(body,
-            "This section describes general information about this project.");
-        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 3, 1));
-
-        symbolicNameEntry = new SigilFormEntry(body, toolkit, "Symbolic Name");
-        symbolicNameEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                symbolicName = nullIfEmpty((String) form.getValue());
-                checkDirty();
-            }
-        });
-
-        nameEntry = new SigilFormEntry(body, toolkit, "Name");
-        nameEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                name = nullIfEmpty((String) form.getValue());
-                checkDirty();
-            }
-        });
-
-        descriptionEntry = new SigilFormEntry(body, toolkit, "Description");
-        descriptionEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                description = nullIfEmpty((String) form.getValue());
-                checkDirty();
-            }
-        });
-
-        IFormValueConverter converter = new IFormValueConverter()
-        {
-            public String getLabel(Object value)
-            {
-                Version v = (Version) value;
-                return v.toString();
-            }
-
-            public Object getValue(String label)
-            {
-                return VersionTable.getVersion(label);
-            }
-        };
-
-        versionEntry = new SigilFormEntry(body, toolkit, "Version", null, converter);
-        versionEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                version = (Version) form.getValue();
-                checkDirty();
-            }
-        });
-
-        providerEntry = new SigilFormEntry(body, toolkit, "Provider");
-        providerEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                provider = nullIfEmpty((String) form.getValue());
-                checkDirty();
-            }
-        });
-
-        activatorEntry = new SigilFormEntry(body, toolkit, "Bundle Activator",
-            "Browse...", null);
-        activatorEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                activator = (String) form.getValue();
-                checkDirty();
-            }
-
-            @Override
-            public void browseButtonSelected(SigilFormEntry form)
-            {
-                BackgroundLoadingSelectionDialog<String> dialog = ResourcesDialogHelper.createClassSelectDialog(
-                    getShell(), "Add Bundle Activator", getProjectModel(), activator,
-                    BundleActivator.class.getName());
-
-                if (dialog.open() == Window.OK)
-                {
-                    form.setValue(dialog.getSelectedElement());
-                }
-            }
-        });
-
-        converter = new IFormValueConverter()
-        {
-            public String getLabel(Object value)
-            {
-                IRequiredBundle b = (IRequiredBundle) value;
-                return b == null ? null : b.getSymbolicName() + " " + b.getVersions();
-            }
-
-            public Object getValue(String label)
-            {
-                return null;
-            }
-        };
-
-        fragmentHostEntry = new SigilFormEntry(body, toolkit, "Fragment Host",
-            "Browse...", converter);
-        fragmentHostEntry.setFormEntryListener(new SigilFormEntryAdapter()
-        {
-            @Override
-            public void textValueChanged(SigilFormEntry form)
-            {
-                fragmentHost = (IRequiredBundle) form.getValue();
-                checkDirty();
-            }
-
-            @Override
-            public void browseButtonSelected(SigilFormEntry form)
-            {
-                NewResourceSelectionDialog<IBundleModelElement> dialog = ResourcesDialogHelper.createRequiredBundleDialog(
-                    getSection().getShell(), "Add Required Bundle", getProjectModel(),
-                    null, getBundle().getBundleInfo().getRequiredBundles());
-
-                if (dialog.open() == Window.OK)
-                {
-                    IRequiredBundle required = ModelElementFactory.getInstance().newModelElement(
-                        IRequiredBundle.class);
-                    required.setSymbolicName(dialog.getSelectedName());
-                    required.setVersions(dialog.getSelectedVersions());
-                    form.setValue(required);
-                }
-            }
-        });
-        fragmentHostEntry.setFreeText(false);
-    }
-
-    private static String nullIfEmpty(String value)
-    {
-        if (value.trim().length() == 0)
-        {
-            return null;
-        }
-        return value;
-    }
-
-    private Shell getShell()
-    {
-        return getSection().getShell();
-    }
-
-    @Override
-    public void commit(boolean onSave)
-    {
-        getBundle().getBundleInfo().setSymbolicName(symbolicName);
-        getBundle().getBundleInfo().setName(name);
-        getBundle().getBundleInfo().setVersion(version);
-        getBundle().getBundleInfo().setDescription(description);
-        getBundle().getBundleInfo().setVendor(provider);
-        getBundle().getBundleInfo().setFragmentHost(fragmentHost);
-        getBundle().getBundleInfo().setActivator(activator);
-
-        super.commit(onSave);
-    }
-
-    @Override
-    public void refresh()
-    {
-        symbolicName = getProjectModel().getBundle().getBundleInfo().getSymbolicName();
-        name = getProjectModel().getBundle().getBundleInfo().getName();
-        description = getProjectModel().getBundle().getBundleInfo().getDescription();
-        version = getProjectModel().getBundle().getBundleInfo().getVersion();
-        provider = getProjectModel().getBundle().getBundleInfo().getVendor();
-        fragmentHost = getProjectModel().getBundle().getBundleInfo().getFragmentHost();
-        activator = getProjectModel().getBundle().getBundleInfo().getActivator();
-
-        nameEntry.setValue(name);
-        symbolicNameEntry.setValue(symbolicName);
-        versionEntry.setValue(version);
-        descriptionEntry.setValue(description);
-        providerEntry.setValue(provider);
-        fragmentHostEntry.setValue(fragmentHost);
-        activatorEntry.setValue(activator);
-
-        super.refresh();
-    }
-
-    private void checkDirty()
-    {
-        boolean dirty = different(symbolicName,
-            getProjectModel().getBundle().getBundleInfo().getSymbolicName())
-            || different(name, getProjectModel().getBundle().getBundleInfo().getName())
-            || different(version,
-                getProjectModel().getBundle().getBundleInfo().getVersion())
-            || different(description,
-                getProjectModel().getBundle().getBundleInfo().getDescription())
-            || different(provider,
-                getProjectModel().getBundle().getBundleInfo().getVendor())
-            || different(fragmentHost,
-                getProjectModel().getBundle().getBundleInfo().getFragmentHost())
-            || different(activator,
-                getProjectModel().getBundle().getBundleInfo().getActivator());
-
-        if (dirty)
-            markDirty();
-    }
-
-    private boolean different(Object val1, Object val2)
-    {
-        return val1 == null ? val2 != null : !val1.equals(val2);
-    }
-
-    private ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/IDependencyChecker.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/IDependencyChecker.java
deleted file mode 100644
index e78c0df..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/IDependencyChecker.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-
-public interface IDependencyChecker
-{
-    boolean isSatisfied(IPackageImport packageImport);
-
-    boolean isSatisfied(IRequiredBundle requiredBundle);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ImportPackagesSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ImportPackagesSection.java
deleted file mode 100644
index 993a406..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ImportPackagesSection.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IPackageModelElement;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class ImportPackagesSection extends BundleDependencySection
-{
-
-    public ImportPackagesSection(SigilPage page, Composite parent, ISigilProjectModel project, Set<IModelElement> unresolvedPackages) throws CoreException
-    {
-        super(page, parent, project, unresolvedPackages);
-    }
-
-    @Override
-    protected String getTitle()
-    {
-        return "Import Packages";
-    }
-
-    @Override
-    protected Label createLabel(Composite parent, FormToolkit toolkit)
-    {
-        return toolkit.createLabel(parent,
-            "Specify which packages this bundle imports from other bundles.");
-    }
-
-    @Override
-    protected IContentProvider getContentProvider()
-    {
-        return new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                ArrayList<IPackageImport> imports = new ArrayList<IPackageImport>(
-                    getBundle().getBundleInfo().getImports());
-                Collections.sort(imports, new Comparator<IPackageImport>()
-                {
-                    public int compare(IPackageImport o1, IPackageImport o2)
-                    {
-                        return o1.getPackageName().compareTo(o2.getPackageName());
-                    }
-                });
-                return imports.toArray();
-            }
-        };
-    }
-
-    protected ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-
-    @Override
-    protected void handleAdd()
-    {
-        NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper.createImportDialog(
-            getSection().getShell(), "Add Imported Package", getProjectModel(), null,
-            getBundle().getBundleInfo().getImports());
-
-        if (dialog.open() == Window.OK)
-        {
-            IPackageImport pi = ModelElementFactory.getInstance().newModelElement(
-                IPackageImport.class);
-            pi.setPackageName(dialog.getSelectedName());
-            pi.setVersions(dialog.getSelectedVersions());
-            pi.setOptional(dialog.isOptional());
-
-            getBundle().getBundleInfo().addImport(pi);
-            refresh();
-            markDirty();
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleRemoved()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IPackageImport> i = selection.iterator(); i.hasNext();)
-            {
-                getBundle().getBundleInfo().removeImport(i.next());
-            }
-
-            refresh();
-            markDirty();
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleEdit()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        boolean changed = false;
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IPackageImport> i = selection.iterator(); i.hasNext();)
-            {
-                IPackageImport packageImport = i.next();
-                NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper.createImportDialog(
-                    getSection().getShell(), "Edit Imported Package", getProjectModel(),
-                    packageImport, getBundle().getBundleInfo().getImports());
-                if (dialog.open() == Window.OK)
-                {
-                    changed = true;
-                    IPackageImport newImport = ModelElementFactory.getInstance().newModelElement(
-                        IPackageImport.class);
-                    newImport.setPackageName(dialog.getSelectedName());
-                    newImport.setVersions(dialog.getSelectedVersions());
-                    newImport.setOptional(dialog.isOptional());
-
-                    getBundle().getBundleInfo().removeImport(packageImport);
-                    getBundle().getBundleInfo().addImport(newImport);
-                }
-            }
-        }
-
-        if (changed)
-        {
-            refresh();
-            markDirty();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewPackageExportDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewPackageExportDialog.java
deleted file mode 100644
index b6aeb1d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewPackageExportDialog.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Comparator;
-
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.eclipse.ui.util.BackgroundLoadingSelectionDialog;
-import org.apache.felix.sigil.eclipse.ui.util.IElementDescriptor;
-import org.eclipse.jdt.core.IPackageFragment;
-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.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.osgi.framework.Version;
-
-public class NewPackageExportDialog extends BackgroundLoadingSelectionDialog<IPackageFragment>
-{
-
-    private static final IElementDescriptor<IPackageFragment> PKG_FRAGMENT_STRINGIFIER = new IElementDescriptor<IPackageFragment>()
-    {
-        public String getLabel(IPackageFragment element)
-        {
-            return getName(element);
-        }
-
-        public String getName(IPackageFragment element)
-        {
-            return element.getElementName();
-        }
-    };
-
-    private static final Comparator<IPackageFragment> PKG_FRAGMENT_COMPARATOR = new Comparator<IPackageFragment>()
-    {
-        public int compare(IPackageFragment o1, IPackageFragment o2)
-        {
-            return o1.getElementName().compareTo(o2.getElementName());
-        }
-    };
-
-    private Version version = null;
-    private String error = null;
-    private Version projectVersion = VersionTable.getVersion(0, 0, 0);
-
-    private Button btnInheritBundleVersion;
-    private Button btnExplicitVersion;
-    private Text txtVersion;
-
-    public NewPackageExportDialog(Shell parentShell, boolean multiSelect)
-    {
-        super(parentShell, "Package:", multiSelect);
-        setDescriptor(PKG_FRAGMENT_STRINGIFIER);
-        setComparator(PKG_FRAGMENT_COMPARATOR);
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        // Create controls
-        Composite container = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(container, SWT.NONE);
-
-        Group grpVersion = new Group(composite, SWT.NONE);
-        grpVersion.setText("Version");
-
-        btnInheritBundleVersion = new Button(grpVersion, SWT.RADIO);
-        btnInheritBundleVersion.setText("Inherit bundle version");
-        new Label(grpVersion, SWT.NONE); // Spacer
-        btnExplicitVersion = new Button(grpVersion, SWT.RADIO);
-        btnExplicitVersion.setText("Fixed version:");
-        txtVersion = new Text(grpVersion, SWT.BORDER);
-
-        // Initialize
-        if (version == null)
-        {
-            btnInheritBundleVersion.setSelection(true);
-            txtVersion.setEnabled(false);
-            txtVersion.setText(projectVersion.toString());
-        }
-        else
-        {
-            btnExplicitVersion.setSelection(true);
-            txtVersion.setEnabled(true);
-            txtVersion.setText(version.toString());
-        }
-        updateButtons();
-
-        // Listeners
-        Listener radioAndTextListener = new Listener()
-        {
-            public void handleEvent(Event event)
-            {
-                error = null;
-                if (btnInheritBundleVersion.getSelection())
-                {
-                    version = null;
-                    txtVersion.setEnabled(false);
-                }
-                else
-                {
-                    txtVersion.setEnabled(true);
-                    try
-                    {
-                        version = VersionTable.getVersion(txtVersion.getText());
-                    }
-                    catch (IllegalArgumentException e)
-                    {
-                        error = "Invalid version";
-                    }
-                }
-                setErrorMessage(error);
-                updateButtons();
-            }
-        };
-        txtVersion.addListener(SWT.Modify, radioAndTextListener);
-        btnInheritBundleVersion.addListener(SWT.Selection, radioAndTextListener);
-        btnExplicitVersion.addListener(SWT.Selection, radioAndTextListener);
-
-        // Layout
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        composite.setLayout(new GridLayout(1, false));
-        grpVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        grpVersion.setLayout(new GridLayout(2, false));
-        txtVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-        return container;
-    }
-
-    @Override
-    protected boolean canComplete()
-    {
-        return super.canComplete() && error == null;
-    }
-
-    public void setProjectVersion(Version projectVersion)
-    {
-        this.projectVersion = projectVersion;
-    }
-
-    public void setVersion(Version version)
-    {
-        this.version = version;
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewResourceSelectionDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewResourceSelectionDialog.java
deleted file mode 100644
index ab14e0e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/NewResourceSelectionDialog.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.model.osgi.IVersionedModelElement;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.util.BackgroundLoadingSelectionDialog;
-import org.apache.felix.sigil.eclipse.ui.util.IValidationListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.osgi.framework.Version;
-
-public class NewResourceSelectionDialog<E extends IVersionedModelElement> extends BackgroundLoadingSelectionDialog<E>
-{
-
-    private VersionRangeComponent pnlVersionRange;
-    private boolean optionalEnabled = true;
-    private Button btnOptional;
-
-    private VersionRange selectedVersions = null;
-    private boolean optional = false;
-
-    public NewResourceSelectionDialog(Shell parentShell, String selectionLabel, boolean multi)
-    {
-        super(parentShell, selectionLabel, multi);
-    }
-
-    public void setOptionalEnabled(boolean enabled)
-    {
-        optionalEnabled = enabled;
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        // Create controls
-        Composite container = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(container, SWT.NONE);
-
-        if (optionalEnabled)
-        {
-            new Label(composite, SWT.NONE); //Spacer
-            btnOptional = new Button(composite, SWT.CHECK);
-            btnOptional.setText("Optional");
-        }
-
-        Label lblVersionRange = new Label(composite, SWT.NONE);
-        lblVersionRange.setText("Version Range:");
-        Group group = new Group(composite, SWT.BORDER);
-
-        pnlVersionRange = new VersionRangeComponent(group, SWT.NONE);
-
-        // Initialize
-        if (selectedVersions != null)
-        {
-            pnlVersionRange.setVersions(selectedVersions);
-        }
-
-        if (optionalEnabled)
-        {
-            btnOptional.setSelection(optional);
-            updateButtons();
-        }
-
-        // Hookup Listeners
-        pnlVersionRange.addVersionChangeListener(new VersionsChangeListener()
-        {
-            public void versionsChanged(VersionRange range)
-            {
-                selectedVersions = range;
-                updateButtons();
-            }
-        });
-        pnlVersionRange.addValidationListener(new IValidationListener()
-        {
-            public void validationMessage(String message, int level)
-            {
-                setMessage(message, level);
-                updateButtons();
-            }
-        });
-
-        if (optionalEnabled)
-        {
-            btnOptional.addSelectionListener(new SelectionAdapter()
-            {
-                public void widgetSelected(SelectionEvent e)
-                {
-                    optional = btnOptional.getSelection();
-                }
-            });
-        }
-
-        // Layout
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        GridLayout layout = new GridLayout(2, false);
-        layout.verticalSpacing = 10;
-        layout.horizontalSpacing = 10;
-        composite.setLayout(layout);
-
-        lblVersionRange.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
-        group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        group.setLayout(new FillLayout());
-
-        return container;
-    }
-
-    @Override
-    protected void elementSelected(E selection)
-    {
-        if (selection != null)
-        {
-            Version version = selection.getVersion();
-            selectedVersions = ModelHelper.getDefaultRange(version);
-            pnlVersionRange.setVersions(selectedVersions);
-        }
-    }
-
-    @Override
-    protected synchronized boolean canComplete()
-    {
-        return super.canComplete() && selectedVersions != null;
-    }
-
-    public VersionRange getSelectedVersions()
-    {
-        return selectedVersions;
-    }
-
-    public void setVersions(VersionRange versions)
-    {
-        selectedVersions = versions;
-        if (pnlVersionRange != null && !pnlVersionRange.isDisposed())
-        {
-            pnlVersionRange.setVersions(versions);
-            updateButtons();
-        }
-    }
-
-    public boolean isOptional()
-    {
-        return optional;
-    }
-
-    public void setOptional(boolean optional)
-    {
-        this.optional = optional;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/OverviewForm.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/OverviewForm.java
deleted file mode 100644
index aa061e0..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/OverviewForm.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * @author dave
- *
- */
-public class OverviewForm extends SigilPage
-{
-    public static final String PAGE_ID = "overview";
-    private ISigilProjectModel sigil;
-
-    public OverviewForm(SigilProjectEditorPart editor, ISigilProjectModel sigil)
-    {
-        super(editor, PAGE_ID, "Overview");
-        this.sigil = sigil;
-    }
-
-    @Override
-    protected void createFormContent(IManagedForm managedForm)
-    {
-        FormToolkit toolkit = managedForm.getToolkit();
-
-        ScrolledForm form = managedForm.getForm();
-        form.setText("Overview");
-
-        Composite body = form.getBody();
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.bottomMargin = 10;
-        layout.topMargin = 5;
-        layout.leftMargin = 10;
-        layout.rightMargin = 10;
-        layout.numColumns = 2;
-        layout.horizontalSpacing = 10;
-        body.setLayout(layout);
-        body.setLayoutData(new TableWrapData(TableWrapData.FILL));
-
-        Composite left = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        left.setLayout(layout);
-        left.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        Composite right = toolkit.createComposite(body);
-        layout = new TableWrapLayout();
-        layout.verticalSpacing = 20;
-        right.setLayout(layout);
-        right.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        try
-        {
-            GeneralInfoSection general = new GeneralInfoSection(this, left, sigil);
-            managedForm.addPart(general);
-
-            ContentSummarySection content = new ContentSummarySection(this, right, sigil);
-            managedForm.addPart(content);
-
-            // XXX-FELIX
-            // commented out due to removal of runtime newton integration
-            // potential to bring back in medium term...
-            //TestingSection testing = new TestingSection(this, right, newton);
-            //managedForm.addPart(testing);
-
-            ToolsSection tools = new ToolsSection(this, right, sigil);
-            managedForm.addPart(tools);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create overview form", e);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageContentsSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageContentsSection.java
deleted file mode 100644
index 6b1d186..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageContentsSection.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.apache.felix.sigil.eclipse.ui.util.BackgroundLoadingSelectionDialog;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.IElementDescriptor;
-import org.apache.felix.sigil.eclipse.ui.util.IFilter;
-import org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider;
-import org.apache.felix.sigil.eclipse.ui.util.SelectionDialog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.window.Window;
-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.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class PackageContentsSection extends SigilSection
-{
-
-    private ProjectTableViewer viewer;
-//    private final Comparator<IClasspathEntry> CLASSPATH_COMPARATOR = new Comparator<IClasspathEntry>()
-//    {
-//        public int compare(IClasspathEntry o1, IClasspathEntry o2)
-//        {
-//            return compareClasspaths(o1, o2);
-//        }
-//    };
-
-    public PackageContentsSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Packages");
-
-        Composite body = createGridBody(2, false, toolkit);
-
-        Label label = toolkit.createLabel(body,
-            "Specify which packages should be included in this bundle.");
-        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 2, 1));
-
-        Table bundleTable = toolkit.createTable(body, SWT.MULTI | SWT.FULL_SELECTION
-            | SWT.VIRTUAL | SWT.BORDER);
-        GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
-        tableLayoutData.heightHint = 150;
-        bundleTable.setLayoutData(tableLayoutData);
-
-        createButtons(body, toolkit);
-        createViewer(bundleTable);
-    }
-
-    private void createButtons(Composite body, FormToolkit toolkit)
-    {
-        Composite buttons = toolkit.createComposite(body);
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.numColumns = 1;
-        layout.topMargin = 0;
-        layout.leftMargin = 0;
-        layout.rightMargin = 0;
-        layout.bottomMargin = 0;
-        buttons.setLayout(layout);
-
-        Button add = toolkit.createButton(buttons, "Add", SWT.NULL);
-        add.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleAdd();
-            }
-        });
-
-        Button remove = toolkit.createButton(buttons, "Remove", SWT.NULL);
-        remove.setLayoutData(new TableWrapData(TableWrapData.FILL));
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemoved();
-            }
-        });
-    }
-
-    private void createViewer(Table bundleTable)
-    {
-        viewer = new ProjectTableViewer(bundleTable);
-        viewer.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                // TODO sort?
-                return getBundle().getPackages().toArray(new String[0]);
-            }
-        });
-//        viewer.setComparator(new ViewerComparator()
-//        {
-//            @Override
-//            public int category(Object element)
-//            {
-//                return index((IClasspathEntry) element);
-//            }
-//        });
-    }
-
-    protected ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-
-    private void handleAdd()
-    {
-//        try
-//        {
-//            SelectionDialog<E> dialog = new BackgroundLoadingSelectionDialog<IClasspathEntry>(
-//                getSection().getShell(), "Classpath Entry:", true);
-//
-//            dialog.setDescriptor(new IElementDescriptor<IClasspathEntry>()
-//            {
-//                public String getName(IClasspathEntry element)
-//                {
-//                    return element.getPath().toString();
-//                }
-//
-//                public String getLabel(IClasspathEntry element)
-//                {
-//                    return getName(element);
-//                }
-//            });
-//
-//            dialog.setLabelProvider(new ModelLabelProvider());
-//
-//            dialog.setFilter(new IFilter<IClasspathEntry>()
-//            {
-//                public boolean select(IClasspathEntry cp)
-//                {
-//                    switch (cp.getEntryKind())
-//                    {
-//                        case IClasspathEntry.CPE_LIBRARY:
-//                        case IClasspathEntry.CPE_VARIABLE:
-//                        case IClasspathEntry.CPE_SOURCE:
-//                            return !getBundle().getClasspathEntrys().contains(encode(cp));
-//                        default:
-//                            return false;
-//                    }
-//                }
-//            });
-//
-//            dialog.setComparator(CLASSPATH_COMPARATOR);
-//
-//            IClasspathEntry[] classpath = getProjectModel().getJavaModel().getRawClasspath();
-//            dialog.addElements(Arrays.asList(classpath));
-//            if (dialog.open() == Window.OK)
-//            {
-//                List<IClasspathEntry> selectedElements = dialog.getSelectedElements();
-//
-//                Object[] added = selectedElements.toArray();
-//                for (IClasspathEntry entry : selectedElements)
-//                {
-//                    getBundle().addClasspathEntry(encode(entry));
-//                }
-//                viewer.add(added);
-//                viewer.refresh();
-//                markDirty();
-//            }
-//        }
-//        catch (JavaModelException e)
-//        {
-//            ErrorDialog.openError(getSection().getShell(), "Error", null, e.getStatus());
-//        }
-    }
-
-//    private int compareClasspaths(IClasspathEntry o1, IClasspathEntry o2)
-//    {
-//        if (o1.getEntryKind() == o2.getEntryKind())
-//        {
-//            ModelLabelProvider mlp = viewer.getLabelProvider();
-//            return mlp.getText(o1).compareTo(mlp.getText(o2));
-//        }
-//        else
-//        {
-//            int i1 = index(o1);
-//            int i2 = index(o2);
-//
-//            if (i1 < i2)
-//            {
-//                return -1;
-//            }
-//            else
-//            {
-//                return 1;
-//            }
-//        }
-//    }
-
-//    private static int index(IClasspathEntry o1)
-//    {
-//        switch (o1.getEntryKind())
-//        {
-//            case IClasspathEntry.CPE_SOURCE:
-//                return 0;
-//            case IClasspathEntry.CPE_PROJECT:
-//                return 1;
-//            case IClasspathEntry.CPE_LIBRARY:
-//                return 2;
-//            case IClasspathEntry.CPE_VARIABLE:
-//                return 3;
-//            case IClasspathEntry.CPE_CONTAINER:
-//                return 4;
-//            default:
-//                throw new IllegalStateException("Unknown classpath entry type " + o1);
-//        }
-//    }
-
-//    private String encode(IClasspathEntry cp)
-//    {
-//        return getProjectModel().getJavaModel().encodeClasspathEntry(cp).trim();
-//    }
-
-    @SuppressWarnings("unchecked")
-    private void handleRemoved()
-    {
-        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<String> i = selection.iterator(); i.hasNext();)
-            {
-                getBundle().removePackage(i.next());
-            }
-            viewer.remove(selection.toArray());
-            markDirty();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageExportDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageExportDialog.java
deleted file mode 100644
index b44eb5f..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PackageExportDialog.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.osgi.framework.Version;
-
-public class PackageExportDialog extends ResourceSelectDialog
-{
-
-    private Text versionText;
-    private Version version;
-
-    public PackageExportDialog(Shell parentShell, String title, IContentProvider content, ViewerFilter filter, Object scope)
-    {
-        super(parentShell, content, filter, scope, title, "Package Name:", true);
-    }
-
-    @Override
-    protected void createCustom(Composite body)
-    {
-        Label l = new Label(body, SWT.NONE);
-        l.setText("Version:");
-        versionText = new Text(body, SWT.BORDER);
-        versionText.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                try
-                {
-                    version = VersionTable.getVersion(versionText.getText());
-                    setErrorMessage(null);
-                }
-                catch (IllegalArgumentException ex)
-                {
-                    setErrorMessage("Invalid version");
-                }
-            }
-        });
-        if (version != null)
-        {
-            versionText.setText(version.toString());
-        }
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    public void setVersion(Version version)
-    {
-        this.version = version;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectLabelProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectLabelProvider.java
deleted file mode 100644
index e90b342..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectLabelProvider.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.io.InputStream;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultLabelProvider;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Widget;
-
-public class ProjectLabelProvider extends DefaultLabelProvider implements IBaseLabelProvider
-{
-
-    private final Widget parent;
-    private final ImageRegistry registry;
-    private final IDependencyChecker checker;
-
-    public ProjectLabelProvider(Widget parent, ImageRegistry registry)
-    {
-        this(parent, registry, null);
-    }
-
-    public ProjectLabelProvider(Widget parent, ImageRegistry registry, IDependencyChecker checker)
-    {
-        this.parent = parent;
-        this.registry = registry;
-        this.checker = checker;
-    }
-
-    public Image getImage(Object element)
-    {
-        Image result = null;
-        if (element instanceof ISigilBundle || element instanceof IRequiredBundle
-            || element instanceof IBundleModelElement)
-        {
-            result = findBundle();
-        }
-        else if (element instanceof IPackageImport)
-        {
-            if (checker != null)
-            {
-                result = checker.isSatisfied((IPackageImport) element) ? findPackage()
-                    : findPackageError();
-            }
-            else
-            {
-                result = findPackage();
-            }
-        }
-        else if (element instanceof IPackageExport)
-        {
-            result = findPackage();
-        }
-        else if (element instanceof IPackageFragmentRoot)
-        {
-            IPackageFragmentRoot root = (IPackageFragmentRoot) element;
-            try
-            {
-                if (root.getKind() == IPackageFragmentRoot.K_SOURCE)
-                {
-                    result = findPackage();
-                }
-                else
-                {
-                    result = findBundle();
-                }
-            }
-            catch (JavaModelException e)
-            {
-                SigilCore.error("Failed to inspect package fragment root", e);
-            }
-        }
-        else if (element instanceof IClasspathEntry)
-        {
-            result = findPackage();
-        }
-
-        return result;
-    }
-
-    public String getText(Object element)
-    {
-        if (element instanceof ISigilBundle)
-        {
-            ISigilBundle bundle = (ISigilBundle) element;
-            return bundle.getBundleInfo().getSymbolicName();
-        }
-
-        if (element instanceof IRequiredBundle)
-        {
-            IRequiredBundle req = (IRequiredBundle) element;
-            return req.getSymbolicName() + " " + req.getVersions();
-        }
-
-        if (element instanceof IPackageImport)
-        {
-            IPackageImport req = (IPackageImport) element;
-            return req.getPackageName() + " " + req.getVersions();
-        }
-
-        if (element instanceof IPackageExport)
-        {
-            IPackageExport pe = (IPackageExport) element;
-            return pe.getPackageName() + " " + pe.getVersion();
-        }
-
-        if (element instanceof IResource)
-        {
-            IResource resource = (IResource) element;
-            return resource.getName();
-        }
-
-        if (element instanceof IPackageFragment)
-        {
-            IPackageFragment f = (IPackageFragment) element;
-            return f.getElementName();
-        }
-
-        if (element instanceof IPackageFragmentRoot)
-        {
-            IPackageFragmentRoot f = (IPackageFragmentRoot) element;
-            try
-            {
-                return f.getUnderlyingResource().getName();
-            }
-            catch (JavaModelException e)
-            {
-                return "unknown";
-            }
-        }
-
-        if (element instanceof IClasspathEntry)
-        {
-            IClasspathEntry cp = (IClasspathEntry) element;
-            return cp.getPath().toString();
-        }
-
-        return element.toString();
-    }
-
-    private Image findPackage()
-    {
-        Image image = registry.get("package");
-
-        if (image == null)
-        {
-            image = loadImage("icons/package_obj.png");
-            registry.put("package", image);
-        }
-
-        return image;
-    }
-
-    private Image findPackageError()
-    {
-        Image image = registry.get("package_error");
-        if (image == null)
-        {
-            image = loadImage("icons/package_obj_error.gif");
-            registry.put("package_error", image);
-        }
-        return image;
-    }
-
-    private Image findBundle()
-    {
-        Image image = registry.get("bundle");
-
-        if (image == null)
-        {
-            image = loadImage("icons/jar_obj.png");
-            registry.put("bundle", image);
-        }
-
-        return image;
-    }
-
-    private Image loadImage(String resource)
-    {
-        InputStream in = ProjectLabelProvider.class.getClassLoader().getResourceAsStream(
-            resource);
-        ImageData data = new ImageData(in);
-        return new Image(parent.getDisplay(), data);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectTableViewer.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectTableViewer.java
deleted file mode 100644
index 674ea0e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ProjectTableViewer.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Table;
-
-public class ProjectTableViewer extends TableViewer
-{
-
-    private ModelLabelProvider labelProvider;
-
-    public ProjectTableViewer(Table table)
-    {
-        super(table);
-        labelProvider = new ModelLabelProvider();
-        setLabelProvider(labelProvider);
-    }
-
-    @Override
-    public void setContentProvider(IContentProvider provider)
-    {
-        super.setContentProvider(provider);
-        setInput(getTable());
-    }
-
-    public void setUnresolvedElements(Set<? extends IModelElement> elements)
-    {
-        labelProvider.setUnresolvedElements(elements);
-    }
-
-    @Override
-    public ModelLabelProvider getLabelProvider()
-    {
-        return labelProvider;
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PropertiesForm.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PropertiesForm.java
deleted file mode 100644
index 8662fef..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/PropertiesForm.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.propertiesfileeditor.IPropertiesFilePartitions;
-import org.eclipse.jdt.internal.ui.propertiesfileeditor.PropertiesFileSourceViewerConfiguration;
-import org.eclipse.jdt.ui.text.JavaTextTools;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-@SuppressWarnings("restriction")
-public class PropertiesForm extends SigilSourcePage
-{
-
-    public static final String PAGE_ID = "properties";
-
-    public PropertiesForm(SigilProjectEditorPart editor, ISigilProjectModel project)
-    {
-        super(PAGE_ID);
-        JavaTextTools textTools = JavaPlugin.getDefault().getJavaTextTools();
-        IPreferenceStore store = JavaPlugin.getDefault().getCombinedPreferenceStore();
-        setPreferenceStore(store);
-        setSourceViewerConfiguration(new PropertiesFileSourceViewerConfiguration(
-            textTools.getColorManager(), store, this,
-            IPropertiesFilePartitions.PROPERTIES_FILE_PARTITIONING));
-        /*IFileEditorInput fileInput = (IFileEditorInput) editor.getEditorInput();
-        this.setDocumentProvider(fileInput);*/
-    }
-
-    @Override
-    public boolean isSaveAsAllowed()
-    {
-        return false;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/RequiresBundleSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/RequiresBundleSection.java
deleted file mode 100644
index 400795e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/RequiresBundleSection.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class RequiresBundleSection extends BundleDependencySection
-{
-
-    public RequiresBundleSection(SigilPage page, Composite parent, ISigilProjectModel project, Set<IModelElement> unresolvedElements) throws CoreException
-    {
-        super(page, parent, project, unresolvedElements);
-    }
-
-    @Override
-    protected String getTitle()
-    {
-        return "Requires Bundles";
-    }
-
-    @Override
-    protected Label createLabel(Composite parent, FormToolkit toolkit)
-    {
-        return toolkit.createLabel(parent,
-            "Specify which bundles this bundle depends on.");
-    }
-
-    @Override
-    protected IContentProvider getContentProvider()
-    {
-        return new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return getBundle().getBundleInfo().getRequiredBundles().toArray();
-            }
-        };
-    }
-
-    protected ISigilBundle getBundle()
-    {
-        return getProjectModel().getBundle();
-    }
-
-    @Override
-    protected void handleAdd()
-    {
-        try
-        {
-            NewResourceSelectionDialog<IBundleModelElement> dialog = ResourcesDialogHelper.createRequiredBundleDialog(
-                getSection().getShell(), "Add Required Bundle", getProjectModel(), null,
-                getBundle().getBundleInfo().getRequiredBundles());
-
-            if (dialog.open() == Window.OK)
-            {
-                IRequiredBundle required = ModelElementFactory.getInstance().newModelElement(
-                    IRequiredBundle.class);
-                required.setSymbolicName(dialog.getSelectedName());
-                required.setVersions(dialog.getSelectedVersions());
-                required.setOptional(dialog.isOptional());
-
-                getBundle().getBundleInfo().addRequiredBundle(required);
-                refresh();
-                markDirty();
-            }
-        }
-        catch (ModelElementFactoryException e)
-        {
-            SigilCore.error("Failed to build required bundle", e);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleEdit()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        boolean changed = false;
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IRequiredBundle> i = selection.iterator(); i.hasNext();)
-            {
-                IRequiredBundle requiredBundle = i.next();
-                NewResourceSelectionDialog<IBundleModelElement> dialog = ResourcesDialogHelper.createRequiredBundleDialog(
-                    getSection().getShell(), "Edit Imported Package", getProjectModel(),
-                    requiredBundle, getBundle().getBundleInfo().getRequiredBundles());
-                if (dialog.open() == Window.OK)
-                {
-                    changed = true;
-                    requiredBundle.setSymbolicName(dialog.getSelectedName());
-                    requiredBundle.setVersions(dialog.getSelectedVersions());
-                    requiredBundle.setOptional(dialog.isOptional());
-                }
-            }
-        }
-
-        if (changed)
-        {
-            refresh();
-            markDirty();
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected void handleRemoved()
-    {
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IRequiredBundle> i = selection.iterator(); i.hasNext();)
-            {
-                getBundle().getBundleInfo().removeRequiredBundle(i.next());
-            }
-
-            refresh();
-            markDirty();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceBuildSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceBuildSection.java
deleted file mode 100644
index 3f1763a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceBuildSection.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.felix.sigil.common.config.Resource;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.model.BaseWorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * @author dave
- *
- */
-public class ResourceBuildSection extends AbstractResourceSection implements ICheckStateListener, IResourceChangeListener, IPropertyChangeListener
-{
-
-    private ExcludedResourcesFilter resourcesFilter;
-
-    /**
-     * @param page
-     * @param parent
-     * @param project
-     * @throws CoreException 
-     */
-    public ResourceBuildSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    @Override
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Resources");
-
-        Composite body = createTableWrapBody(1, toolkit);
-
-        toolkit.createLabel(body, "Specify which resources are included in the bundle.");
-
-        tree = toolkit.createTree(body, SWT.CHECK | SWT.BORDER);
-        Link link = new Link(body, SWT.WRAP);
-        link.setText("Some resources may be filtered according to preferences. <a href=\"excludedResourcePrefs\">Click here</a> to edit the list of exclusions.");
-
-        TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB);
-        data.heightHint = 200;
-        tree.setLayoutData(data);
-
-        viewer = new CheckboxTreeViewer(tree);
-        IProject base = getProjectModel().getProject();
-        viewer.setContentProvider(new BaseWorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.addCheckStateListener(this);
-        resourcesFilter = new ExcludedResourcesFilter();
-        viewer.addFilter(resourcesFilter);
-        viewer.setInput(base);
-
-        link.addListener(SWT.Selection, new Listener()
-        {
-            public void handleEvent(Event event)
-            {
-                if ("excludedResourcePrefs".equals(event.text))
-                {
-                    PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(
-                        getPage().getEditorSite().getShell(),
-                        SigilCore.EXCLUDED_RESOURCES_PREFERENCES_ID, null, null);
-                    dialog.open();
-                }
-            }
-        });
-
-        SigilCore.getDefault().getPreferenceStore().addPropertyChangeListener(this);
-
-        startWorkspaceListener(base.getWorkspace());
-    }
-
-    @Override
-    public void commit(boolean onSave)
-    {
-        ISigilBundle bundle = getProjectModel().getBundle();
-
-        bundle.clearSourcePaths();
-
-        try
-        {
-            SigilUI.runInUISync(new Callable<Void>()
-            {
-                public Void call() throws Exception
-                {
-                    for (Object o : viewer.getCheckedElements())
-                    {
-                        if (!viewer.getGrayed(o))
-                        {
-                            IResource r = (IResource) o;
-
-                            getProjectModel().getBundle().addSourcePath(toBldResource(r));
-                        }
-                    }
-
-                    return null;
-                }
-            });
-
-            super.commit(onSave);
-        }
-        catch (Exception e)
-        {
-            SigilCore.warn("Failed to update resource", e);
-        }
-    }
-
-    @Override
-    protected void refreshSelections()
-    {
-        // zero the state
-        for (Resource path : getProjectModel().getBundle().getSourcePaths())
-        {
-            IResource r = findResource(new Path(path.getLocalFile()));
-            if (r != null)
-            {
-                viewer.expandToLevel(r, 0);
-                viewer.setChecked(r, true);
-                viewer.setGrayed(r, false);
-                handleStateChanged(r, true, false, false);
-            }
-            else
-            {
-                SigilCore.error("Unknown path " + path);
-            }
-        }
-    }
-
-    @Override
-    protected void syncResourceModel(IResource element, boolean checked)
-    {
-        try
-        {
-            Resource resource = toBldResource(element);
-
-            if (checked)
-            {
-                getProjectModel().getBundle().addSourcePath(resource);
-            }
-            else
-            {
-                getProjectModel().getBundle().removeSourcePath(resource);
-            }
-
-            markDirty();
-        }
-        catch (CoreException e)
-        {
-            SigilCore.warn("Failed to sync resource " + element, e);
-        }
-    }
-
-    /**
-     * @param element
-     * @return
-     * @throws CoreException 
-     */
-    private Resource toBldResource(IResource element) throws CoreException
-    {
-        return getProjectModel().getBldProject().newResource(
-            element.getProjectRelativePath().toString());
-    }
-
-    private AtomicBoolean disposed = new AtomicBoolean();
-
-    @Override
-    public void dispose()
-    {
-        disposed.set(true);
-        SigilCore.getDefault().getPreferenceStore().removePropertyChangeListener(this);
-        super.dispose();
-    }
-
-    public void propertyChange(PropertyChangeEvent event)
-    {
-        if (!disposed.get())
-        {
-            resourcesFilter.loadExclusions();
-            try
-            {
-                viewer.refresh();
-            }
-            catch (SWTException e)
-            {
-                // can happen on dispose
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceImportDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceImportDialog.java
deleted file mode 100644
index e667941..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceImportDialog.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-public class ResourceImportDialog extends ResourceSelectDialog implements VersionsChangeListener
-{
-
-    private VersionRangeComponent versions;
-    private VersionRange range;
-
-    public ResourceImportDialog(Shell parentShell, String title, String label, IContentProvider content, ViewerFilter filter, Object scope)
-    {
-        super(parentShell, content, filter, scope, title, label, true);
-    }
-
-    public VersionRange getVersions()
-    {
-        return range;
-    }
-
-    @Override
-    protected void createCustom(Composite body)
-    {
-        versions = new VersionRangeComponent(body, SWT.BORDER);
-        versions.addVersionChangeListener(this);
-        versions.setVersions(range);
-
-        GridData data = new GridData(SWT.LEFT, SWT.TOP, true, true);
-        data.horizontalSpan = 2;
-        data.widthHint = 300;
-        data.heightHint = 200;
-        versions.setLayoutData(data);
-    }
-
-    @Override
-    protected void selectionChanged(SelectionChangedEvent event)
-    {
-        if (event.getSelection().isEmpty())
-        {
-            versions.setEnabled(false);
-        }
-        else
-        {
-            versions.setEnabled(true);
-        }
-    }
-
-    public void versionsChanged(VersionRange range)
-    {
-        this.range = range;
-        if (range == null)
-        {
-            setErrorMessage("Invalid version");
-        }
-        else
-        {
-            setErrorMessage(null);
-        }
-    }
-
-    public void setVersions(VersionRange range)
-    {
-        this.range = range;
-    }
-
-    public IPackageImport getImport()
-    {
-        IPackageImport packageImport = ModelElementFactory.getInstance().newModelElement(
-            IPackageImport.class);
-        packageImport.setPackageName((String) getSelected()[0]);
-        packageImport.setVersions(getVersions());
-        return packageImport;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceSelectDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceSelectDialog.java
deleted file mode 100644
index 7b7740a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ResourceSelectDialog.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider;
-import org.apache.felix.sigil.eclipse.ui.util.SingletonSelection;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.StringConverter;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-public class ResourceSelectDialog extends Dialog
-{
-
-    private AtomicInteger keyCheck = new AtomicInteger();
-    private ScheduledExecutorService background = Executors.newSingleThreadScheduledExecutor();
-
-    private class UpdateViewerRunnable implements Runnable
-    {
-        private int check;
-
-        public UpdateViewerRunnable(int check)
-        {
-            this.check = check;
-        }
-
-        public void run()
-        {
-            if (check == keyCheck.get())
-            {
-                try
-                {
-                    viewer.refresh();
-                }
-                catch (SWTException e)
-                {
-                    // discard
-                }
-            }
-        }
-    }
-
-    private static final ISelection EMPTY_SELECTION = new ISelection()
-    {
-        public boolean isEmpty()
-        {
-            return true;
-        }
-    };
-
-    private Job job;
-
-    private boolean isCombo;
-    private String title;
-    private String selectionText;
-
-    private StructuredViewer viewer;
-    private Combo resourceNameCombo;
-    private Table resourceNameTable;
-    private Text errorMessageText;
-    private String errorMessage;
-
-    private ViewerFilter filter;
-    private Object[] selected;
-
-    private Object scope;
-    private IContentProvider content;
-    private ILabelProvider labelProvider;
-
-    public ResourceSelectDialog(Shell parentShell, IContentProvider content, ViewerFilter filter, Object scope, String title, String selectionText, boolean isCombo)
-    {
-        super(parentShell);
-        this.title = title;
-        this.selectionText = selectionText;
-        this.content = content;
-        this.filter = filter;
-        this.scope = scope;
-        this.isCombo = isCombo;
-    }
-
-    public void setJob(Job job)
-    {
-        this.job = job;
-    }
-
-    public void refreshResources()
-    {
-        try
-        {
-            getShell().getDisplay().asyncExec(new Runnable()
-            {
-                public void run()
-                {
-                    try
-                    {
-                        viewer.refresh();
-                    }
-                    catch (SWTException e)
-                    {
-                        // attempt to exec after dialog closed - discard
-                    }
-                }
-            });
-        }
-        catch (NullPointerException e)
-        {
-            // attempt to exec after dialog closed - discard
-        }
-        catch (SWTException e)
-        {
-            // attempt to exec after dialog closed - discard
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-     */
-    protected void configureShell(Shell shell)
-    {
-        super.configureShell(shell);
-        if (title != null)
-        {
-            shell.setText(title);
-        }
-    }
-
-    @Override
-    public void create()
-    {
-        super.create();
-        if (getItemCount() == 0)
-        {
-            setErrorMessage("No resources available");
-            getButton(IDialogConstants.OK_ID).setEnabled(false);
-        }
-        else
-        {
-            ISelection selection = selected == null ? EMPTY_SELECTION
-                : new SingletonSelection(selected);
-            setSelected(new SelectionChangedEvent(viewer, selection), true);
-        }
-
-        if (job != null)
-        {
-            job.schedule();
-        }
-    }
-
-    @Override
-    public boolean close()
-    {
-        if (job != null)
-        {
-            job.cancel();
-        }
-        background.shutdownNow();
-        return super.close();
-    }
-
-    private int getItemCount()
-    {
-        if (isCombo)
-        {
-            return resourceNameCombo.getItemCount();
-        }
-        else
-        {
-            return resourceNameTable.getItemCount();
-        }
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        Composite body = (Composite) super.createDialogArea(parent);
-
-        GridLayout layout = (GridLayout) body.getLayout();
-        layout.numColumns = 2;
-        GridData data;
-
-        labelProvider = new ModelLabelProvider();
-
-        Label l = new Label(body, SWT.LEFT);
-        l.setText(selectionText);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-        if (!isCombo)
-        {
-            data.horizontalSpan = 2;
-        }
-        l.setLayoutData(data);
-
-        if (isCombo)
-        {
-            createCombo(body);
-        }
-        else
-        {
-            createTable(body);
-        }
-
-        viewer.addFilter(filter);
-        viewer.setContentProvider(content);
-        viewer.setLabelProvider(getLabelProvider());
-        viewer.setComparator(new ViewerComparator());
-        viewer.setInput(scope);
-
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                setSelected(event, false);
-            }
-        });
-        createCustom(body);
-
-        errorMessageText = new Text(body, SWT.READ_ONLY | SWT.WRAP);
-        data = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
-        data.horizontalSpan = 2;
-        errorMessageText.setLayoutData(data);
-        errorMessageText.setBackground(errorMessageText.getDisplay().getSystemColor(
-            SWT.COLOR_WIDGET_BACKGROUND));
-        setErrorMessage(errorMessage);
-
-        return body;
-    }
-
-    protected void createCustom(Composite body)
-    {
-    }
-
-    private void createCombo(Composite body)
-    {
-        resourceNameCombo = new Combo(body, SWT.SINGLE | SWT.BORDER);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
-        data.widthHint = 200;
-        resourceNameCombo.setLayoutData(data);
-
-        viewer = new ComboViewer(resourceNameCombo);
-    }
-
-    private void createTable(Composite body)
-    {
-        final Text txtFilter = new Text(body, SWT.BORDER);
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
-        data.horizontalSpan = 2;
-        data.widthHint = 400;
-        txtFilter.setLayoutData(data);
-
-        resourceNameTable = new Table(body, SWT.MULTI | SWT.BORDER);
-        data = new GridData(GridData.HORIZONTAL_ALIGN_END);
-        data.widthHint = 400;
-        data.heightHint = 400;
-        resourceNameTable.setLayoutData(data);
-
-        viewer = new TableViewer(resourceNameTable);
-
-        txtFilter.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                switch (e.keyCode)
-                {
-                    case SWT.ARROW_UP:
-                        scrollTable(-1);
-                        break;
-                    case SWT.ARROW_DOWN:
-                        scrollTable(+1);
-                        break;
-                    default:
-                        Runnable r = new UpdateViewerRunnable(keyCheck.incrementAndGet());
-                        background.schedule(r, 100, TimeUnit.MILLISECONDS);
-                        break;
-                }
-            }
-        });
-
-        ViewerFilter filter = new ViewerFilter()
-        {
-            @Override
-            public boolean select(Viewer viewer, Object parentElement, Object element)
-            {
-                return getLabelProvider().getText(element).startsWith(txtFilter.getText());
-            }
-        };
-
-        viewer.addFilter(filter);
-    }
-
-    private void scrollTable(int delta)
-    {
-        int i = resourceNameTable.getSelectionIndex();
-
-        if (i == -1)
-        {
-            if (delta < 0)
-            {
-                i = resourceNameTable.getItemCount() - 1;
-            }
-            else
-            {
-                i = 0;
-            }
-        }
-        else
-        {
-            i += delta;
-        }
-
-        if (i > -1 && i < resourceNameTable.getItemCount())
-        {
-            Item item = resourceNameTable.getItem(i);
-            resourceNameTable.select(i);
-            selected = new Object[] { item.getData() };
-            ISelection selection = new SingletonSelection(selected);
-            selectionChanged(new SelectionChangedEvent(viewer, selection));
-            viewer.reveal(selected);
-        }
-    }
-
-    private void setSelected(SelectionChangedEvent event, boolean reveal)
-    {
-        if (event.getSelection().isEmpty())
-        {
-            selected = null;
-            setErrorMessage("No resource selected");
-        }
-        else
-        {
-            selected = ((IStructuredSelection) event.getSelection()).toArray();
-            setErrorMessage(null);
-        }
-
-        selectionChanged(event);
-
-        if (reveal && !event.getSelection().isEmpty())
-        {
-            if (resourceNameCombo != null)
-            {
-                IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-                resourceNameCombo.select(resourceNameCombo.indexOf((String) sel.getFirstElement()));
-            }
-            else
-            {
-                viewer.setSelection(event.getSelection(), true);
-            }
-        }
-    }
-
-    protected ILabelProvider getLabelProvider()
-    {
-        return labelProvider;
-    }
-
-    public Object[] getSelected()
-    {
-        return selected;
-    }
-
-    public void setSelected(Object[] selected)
-    {
-        this.selected = selected;
-    }
-
-    protected void selectionChanged(SelectionChangedEvent event)
-    {
-    }
-
-    public void setErrorMessage(String errorMessage)
-    {
-        this.errorMessage = errorMessage;
-        if (errorMessageText != null && !errorMessageText.isDisposed())
-        {
-            errorMessageText.setText(errorMessage == null ? " \n " : errorMessage);
-            boolean hasError = errorMessage != null
-                && (StringConverter.removeWhiteSpaces(errorMessage)).length() > 0;
-            errorMessageText.setEnabled(hasError);
-            errorMessageText.setVisible(hasError);
-            errorMessageText.getParent().update();
-            Control ok = getButton(IDialogConstants.OK_ID);
-            if (ok != null)
-            {
-                ok.setEnabled(!hasError);
-            }
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilProjectEditorPart.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilProjectEditorPart.java
deleted file mode 100644
index aa05156..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilProjectEditorPart.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.IFormPage;
-
-public class SigilProjectEditorPart extends FormEditor implements IResourceChangeListener
-{
-
-    private final Set<IModelElement> unresolvedElements = Collections.synchronizedSet(new HashSet<IModelElement>());
-    private ISigilProjectModel project;
-    private ISigilProjectModel tempProject;
-    private volatile boolean saving = false;
-    private int dependenciesPageIndex;
-
-    private Image errorImage = PlatformUI.getWorkbench().getSharedImages().getImage(
-        ISharedImages.IMG_OBJS_ERROR_TSK);
-
-    private PropertiesForm textPage;
-
-    public IProject getProject()
-    {
-        IFileEditorInput fileInput = (IFileEditorInput) getEditorInput();
-        return fileInput.getFile().getProject();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    @Override
-    public void doSave(IProgressMonitor monitor)
-    {
-        monitor.beginTask("Saving", IProgressMonitor.UNKNOWN);
-        try
-        {
-            saving = true;
-            new ProgressMonitorDialog(getSite().getShell()).run(true, true,
-                new IRunnableWithProgress()
-                {
-                    public void run(IProgressMonitor monitor)
-                        throws InvocationTargetException, InterruptedException
-                    {
-                        try
-                        {
-                            if (doInternalSave(monitor))
-                            {
-                                project.setBundle(null);
-                                tempProject.setBundle(null);
-                                project.rebuildDependencies(monitor);
-                                refreshAllPages();
-                            }
-
-                            monitor.done();
-                        }
-                        catch (CoreException e)
-                        {
-                            throw new InvocationTargetException(e);
-                        }
-                    }
-                });
-        }
-        catch (InvocationTargetException e)
-        {
-            SigilCore.error("Failed to save " + project, e.getTargetException());
-        }
-        catch (InterruptedException e)
-        {
-            monitor.setCanceled(true);
-            return;
-        }
-        finally
-        {
-            saving = false;
-        }
-        monitor.done();
-    }
-
-    private boolean doInternalSave(final IProgressMonitor monitor) throws CoreException
-    {
-        if (textPage.isDirty())
-        {
-            SigilUI.runInUISync(new Runnable()
-            {
-                public void run()
-                {
-                    textPage.doSave(monitor);
-                }
-            });
-            return true;
-        }
-        else if (isDirty())
-        {
-            commitPages(true);
-            tempProject.save(monitor, false);
-            SigilUI.runInUISync(new Runnable()
-            {
-                public void run()
-                {
-                    textPage.setInput(getEditorInput());
-                    editorDirtyStateChanged();
-                }
-            });
-            return true;
-        }
-
-        // ok no changes
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-     */
-    @Override
-    protected void addPages()
-    {
-        try
-        {
-            addPage(new OverviewForm(this, tempProject));
-            addPage(new ContentsForm(this, tempProject));
-            dependenciesPageIndex = addPage(new DependenciesForm(this, tempProject,
-                unresolvedElements));
-            addPage(new ExportsForm(this, tempProject));
-            textPage = new PropertiesForm(this, tempProject);
-            addPage(textPage, getEditorInput());
-            setPartName(project.getSymbolicName());
-
-            refreshTabImages();
-        }
-        catch (PartInitException e)
-        {
-            SigilCore.error("Failed to build " + this, e);
-        }
-    }
-
-    protected void refreshTabImages()
-    {
-        if (unresolvedElements.isEmpty())
-        {
-            setPageImage(dependenciesPageIndex, null);
-        }
-        else
-        {
-            setPageImage(dependenciesPageIndex, errorImage);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-     */
-    @Override
-    public void doSaveAs()
-    {
-        // save as not allowed
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-     */
-    @Override
-    public boolean isSaveAsAllowed()
-    {
-        return false;
-    }
-
-    @Override
-    public void dispose()
-    {
-        ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-        super.dispose();
-    }
-
-    public void resourceChanged(IResourceChangeEvent event)
-    {
-        try
-        {
-            switch (event.getType())
-            {
-                case IResourceChangeEvent.POST_BUILD:
-                    handleBuild(event);
-                    break;
-                case IResourceChangeEvent.POST_CHANGE:
-                    handleChange(event);
-                    break;
-            }
-        }
-        catch (CoreException e)
-        {
-            ErrorDialog.openError(getSite().getShell(), "Error", null, e.getStatus());
-        }
-    }
-
-    private void handleBuild(IResourceChangeEvent event) throws CoreException
-    {
-        refreshView();
-    }
-
-    private void handleChange(IResourceChangeEvent event) throws CoreException
-    {
-        IResourceDelta delta = event.getDelta();
-        final IFile editorFile = ((IFileEditorInput) getEditorInput()).getFile();
-        delta.accept(new IResourceDeltaVisitor()
-        {
-            public boolean visit(IResourceDelta delta) throws CoreException
-            {
-                int kind = delta.getKind();
-                IResource resource = delta.getResource();
-                if (resource instanceof IProject)
-                {
-                    int flags = delta.getFlags();
-                    return handleProjectChange(editorFile, (IProject) resource, kind,
-                        flags);
-                }
-
-                if (resource instanceof IFile)
-                {
-                    handleFileChange(editorFile, (IFile) resource, kind);
-                    // Recurse no more
-                    return false;
-                }
-
-                return true;
-            }
-        });
-    }
-
-    protected void handleFileChange(IFile editorFile, IFile affectedFile, int kind)
-    {
-        if (affectedFile.equals(editorFile))
-        {
-            switch (kind)
-            {
-                case IResourceDelta.REMOVED:
-                    close(false);
-                    break;
-                case IResourceDelta.CHANGED:
-                    if (!saving)
-                    {
-                        reload();
-                    }
-                    SigilUI.runInUISync(new Runnable()
-                    {
-                        public void run()
-                        {
-                            setPartName(project.getSymbolicName());
-                        }
-                    });
-                    break;
-            }
-        }
-    }
-
-    private boolean handleProjectChange(IResource editorFile, IProject project, int kind,
-        int flags) throws CoreException
-    {
-        if (!editorFile.getProject().equals(project))
-        {
-            return false;
-        }
-        if (kind == IResourceDelta.CHANGED)
-        {
-            int mask = flags & (IResourceDelta.MARKERS);
-            if (mask > 0)
-            {
-                refreshView();
-            }
-        }
-        return true;
-    }
-
-    private void refreshView() throws CoreException
-    {
-        loadUnresolvedDependencies();
-        refreshAllPages();
-    }
-
-    void refreshAllPages()
-    {
-        Runnable op = new Runnable()
-        {
-            public void run()
-            {
-                for (Iterator<?> iter = pages.iterator(); iter.hasNext();)
-                {
-                    IFormPage page = (IFormPage) iter.next();
-                    if (page != null)
-                    {
-                        IManagedForm managedForm = page.getManagedForm();
-                        if (managedForm != null)
-                        {
-                            managedForm.refresh();
-                            IFormPart[] parts = managedForm.getParts();
-                            for (IFormPart part : parts)
-                            {
-                                part.refresh();
-                            }
-                        }
-                    }
-                }
-                firePropertyChange(IEditorPart.PROP_DIRTY);
-                setPartName(project.getSymbolicName());
-                refreshTabImages();
-            }
-        };
-        getSite().getShell().getDisplay().syncExec(op);
-    }
-
-    private void reload()
-    {
-        tempProject.setBundle(null);
-        project.setBundle(null);
-        refreshAllPages();
-    }
-
-    @Override
-    public void init(IEditorSite site, IEditorInput input) throws PartInitException
-    {
-        super.init(site, input);
-
-        try
-        {
-            this.project = SigilCore.create(getProject());
-            this.tempProject = (ISigilProjectModel) project.clone();
-        }
-        catch (CoreException e)
-        {
-            throw new PartInitException("Error creating Sigil project", e);
-        }
-
-        ResourcesPlugin.getWorkspace().addResourceChangeListener(this,
-            IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_REFRESH);
-
-        if (input instanceof IFileEditorInput)
-        {
-            try
-            {
-                loadUnresolvedDependencies();
-            }
-            catch (CoreException e)
-            {
-                throw new PartInitException("Error retrieving dependency markers", e);
-            }
-        }
-    }
-
-    private void loadUnresolvedDependencies() throws CoreException
-    {
-        ModelElementFactory factory = ModelElementFactory.getInstance();
-        IMarker[] markers = getProject().findMarkers(
-            SigilCore.MARKER_UNRESOLVED_DEPENDENCY, true, IResource.DEPTH_ONE);
-        unresolvedElements.clear();
-
-        for (IMarker marker : markers)
-        {
-            String elementName = (String) marker.getAttribute("element");
-            String versionRangeStr = (String) marker.getAttribute("versionRange");
-            if (elementName != null && versionRangeStr != null)
-            {
-                if (marker.getType().equals(SigilCore.MARKER_UNRESOLVED_IMPORT_PACKAGE))
-                {
-                    IPackageImport pkgImport = factory.newModelElement(IPackageImport.class);
-                    pkgImport.setPackageName(elementName);
-                    pkgImport.setVersions(VersionRange.parseVersionRange(versionRangeStr));
-                    unresolvedElements.add(pkgImport);
-                }
-                else if (marker.getType().equals(
-                    SigilCore.MARKER_UNRESOLVED_REQUIRE_BUNDLE))
-                {
-                    IRequiredBundle req = factory.newModelElement(IRequiredBundle.class);
-                    req.setSymbolicName(elementName);
-                    req.setVersions(VersionRange.parseVersionRange(versionRangeStr));
-                    unresolvedElements.add(req);
-                }
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilSourcePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilSourcePage.java
deleted file mode 100644
index 1b38972..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/SigilSourcePage.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.ide.IDE;
-
-public class SigilSourcePage extends TextEditor implements IFormPage
-{
-    private final String id;
-    private int index;
-    private SigilProjectEditorPart editor;
-    private boolean active;
-    private Control control;
-
-    public SigilSourcePage(String id)
-    {
-        this.id = id;
-    }
-
-    @Override
-    public void createPartControl(Composite parent)
-    {
-        super.createPartControl(parent);
-        Control[] children = parent.getChildren();
-        control = children[children.length - 1];
-        getSourceViewer().addTextListener(new ITextListener()
-        {
-            public void textChanged(TextEvent event)
-            {
-                if (editor != null)
-                {
-                    editor.refreshAllPages();
-                }
-            }
-        });
-        //PlatformUI.getWorkbench().getHelpSystem().setHelp(fControl, IHelpContextIds.MANIFEST_SOURCE_PAGE);
-    }
-
-    public void initialize(FormEditor editor)
-    {
-        this.editor = (SigilProjectEditorPart) editor;
-    }
-
-    public FormEditor getEditor()
-    {
-        return editor;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public int getIndex()
-    {
-        return index;
-    }
-
-    public void setIndex(int index)
-    {
-        this.index = index;
-    }
-
-    public boolean isActive()
-    {
-        return active;
-    }
-
-    public void setActive(boolean active)
-    {
-        this.active = active;
-    }
-
-    public Control getPartControl()
-    {
-        return control;
-    }
-
-    public boolean selectReveal(Object object)
-    {
-        if (object instanceof IMarker)
-        {
-            IDE.gotoMarker(this, (IMarker) object);
-            return true;
-        }
-        return false;
-    }
-
-    // static impls
-    public boolean isEditor()
-    {
-        return true;
-    }
-
-    public boolean canLeaveThePage()
-    {
-        return true;
-    }
-
-    public IManagedForm getManagedForm()
-    {
-        // this is not a form
-        return null;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/TestingSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/TestingSection.java
deleted file mode 100644
index 24b2e1f..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/TestingSection.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.ui.ILaunchShortcut;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-public class TestingSection extends SigilSection
-{
-
-    public TestingSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Testing");
-
-        Composite body = createTableWrapBody(1, toolkit);
-
-        toolkit.createLabel(body,
-            "Test this project by launching a separate Newton application:");
-
-        Hyperlink launch = toolkit.createHyperlink(body, "Launch a newton container",
-            SWT.NULL);
-        launch.setHref("launchShortcut.run.org.cauldron.sigil.launching.shortcut");
-        launch.addHyperlinkListener(this);
-
-        Hyperlink debug = toolkit.createHyperlink(body, "Debug a newton container",
-            SWT.NULL);
-        debug.setHref("launchShortcut.debug.org.cauldron.sigil.launching.shortcut");
-        debug.addHyperlinkListener(this);
-    }
-
-    public void linkActivated(HyperlinkEvent e)
-    {
-        String href = (String) e.getHref();
-        if (href.startsWith("launchShortcut.")) { //$NON-NLS-1$
-            href = href.substring(15);
-            int index = href.indexOf('.');
-            if (index < 0)
-                return; // error.  Format of href should be launchShortcut.<mode>.<launchShortcutId>
-            String mode = href.substring(0, index);
-            String id = href.substring(index + 1);
-
-            //getEditor().doSave(null);
-
-            IExtensionRegistry registry = Platform.getExtensionRegistry();
-            IConfigurationElement[] elements = registry.getConfigurationElementsFor("org.eclipse.debug.ui.launchShortcuts"); //$NON-NLS-1$
-            for (int i = 0; i < elements.length; i++)
-            {
-                if (id.equals(elements[i].getAttribute("id"))) //$NON-NLS-1$
-                    try
-                    {
-                        ILaunchShortcut shortcut = (ILaunchShortcut) elements[i].createExecutableExtension("class"); //$NON-NLS-1$
-                        // preLaunch();
-                        shortcut.launch(new StructuredSelection(getLaunchObject()), mode);
-                    }
-                    catch (CoreException e1)
-                    {
-                        e1.printStackTrace();
-                    }
-            }
-        }
-    }
-
-    private Object getLaunchObject()
-    {
-        return getProjectModel().getProject();
-    }
-
-    public void linkEntered(HyperlinkEvent e)
-    {
-    }
-
-    public void linkExited(HyperlinkEvent e)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ToolsSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ToolsSection.java
deleted file mode 100644
index f8a5b57..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/ToolsSection.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.actions.PruneProjectDependenciesAction;
-import org.apache.felix.sigil.eclipse.ui.actions.ResolveProjectDependenciesAction;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilPage;
-import org.apache.felix.sigil.eclipse.ui.internal.form.SigilSection;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-public class ToolsSection extends SigilSection
-{
-
-    public ToolsSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(page, parent, project);
-    }
-
-    protected void createSection(Section section, FormToolkit toolkit)
-    {
-        setTitle("Tools");
-
-        Composite body = createTableWrapBody(1, toolkit);
-
-        toolkit.createLabel(body, "Tools to help manage this project:");
-
-        Hyperlink launch = toolkit.createHyperlink(body, "Resolve missing dependencies",
-            SWT.NULL);
-        launch.setHref("resolve");
-        launch.addHyperlinkListener(this);
-
-        Hyperlink debug = toolkit.createHyperlink(body, "Prune unused dependencies",
-            SWT.NULL);
-        debug.setHref("prune");
-        debug.addHyperlinkListener(this);
-    }
-
-    public void linkActivated(HyperlinkEvent e)
-    {
-        String href = (String) e.getHref();
-        if ("resolve".equals(href))
-        {
-            handleResolve();
-        }
-        else if ("prune".equals(href))
-        {
-            handlePrune();
-        }
-    }
-
-    private void handlePrune()
-    {
-        new PruneProjectDependenciesAction(getProjectModel()).run();
-    }
-
-    private void handleResolve()
-    {
-        final ISigilProjectModel project = getProjectModel();
-        new ResolveProjectDependenciesAction(project, true).run();
-    }
-
-    public void linkEntered(HyperlinkEvent e)
-    {
-    }
-
-    public void linkExited(HyperlinkEvent e)
-    {
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionRangeComponent.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionRangeComponent.java
deleted file mode 100644
index db97af2..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionRangeComponent.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.eclipse.ui.util.IValidationListener;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-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.osgi.framework.Version;
-
-public class VersionRangeComponent extends Composite
-{
-    private VersionRange versions = VersionRange.ANY_VERSION;
-
-    private Button specificButton;
-
-    private Text specificText;
-    private Button rangeButton;
-    private Text minimumText;
-    private Text maximumText;
-    private Button minInclusiveButton;
-    private Button maxInclusiveButton;
-
-    private Set<VersionsChangeListener> listeners = new HashSet<VersionsChangeListener>();
-    private Set<IValidationListener> validationListeners = new HashSet<IValidationListener>();
-
-    public VersionRangeComponent(Composite parent, int style)
-    {
-        super(parent, style);
-        createComponents(this);
-    }
-
-    public void addVersionChangeListener(VersionsChangeListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.add(listener);
-        }
-    }
-
-    public void removeVersionChangeListener(VersionsChangeListener listener)
-    {
-        synchronized (listeners)
-        {
-            listeners.remove(listener);
-        }
-    }
-
-    public void addValidationListener(IValidationListener listener)
-    {
-        validationListeners.add(listener);
-    }
-
-    public void removeValidationListener(IValidationListener listener)
-    {
-        validationListeners.remove(listener);
-    }
-
-    @Override
-    public void setEnabled(boolean enabled)
-    {
-        super.setEnabled(enabled);
-        specificButton.setEnabled(enabled);
-        rangeButton.setEnabled(enabled);
-        if (enabled)
-        {
-            specificButton.setSelection(versions.isPointVersion());
-            setSpecific();
-        }
-        else
-        {
-            minimumText.setEnabled(enabled);
-            maximumText.setEnabled(enabled);
-            minInclusiveButton.setEnabled(enabled);
-            maxInclusiveButton.setEnabled(enabled);
-        }
-    }
-
-    public VersionRange getVersions()
-    {
-        return versions;
-    }
-
-    public void setVersions(VersionRange versions)
-    {
-        this.versions = versions == null ? VersionRange.ANY_VERSION : versions;
-        updateFields();
-    }
-
-    private void updateFields()
-    {
-        if (versions.isPointVersion())
-        {
-            specificButton.setSelection(true);
-            specificText.setText(versions.getCeiling() == VersionRange.INFINITE_VERSION ? "*"
-                : versions.getFloor().toString());
-        }
-        else
-        {
-            rangeButton.setSelection(true);
-            minimumText.setText(versions.getFloor().toString());
-            minInclusiveButton.setSelection(!versions.isOpenFloor());
-            maximumText.setText(versions.getCeiling() == VersionRange.INFINITE_VERSION ? "*"
-                : versions.getCeiling().toString());
-            maxInclusiveButton.setSelection(!versions.isOpenCeiling());
-        }
-
-        setSpecific();
-    }
-
-    private void createComponents(Composite body)
-    {
-        setLayout(new GridLayout(3, false));
-
-        specificButton = new Button(body, SWT.RADIO);
-        specificButton.setText("Specific:");
-        specificButton.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                setSpecific();
-            }
-        });
-
-        new Label(body, SWT.NONE).setText("Version:");
-
-        specificText = new Text(body, SWT.BORDER);
-        specificText.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                setVersions();
-            }
-        });
-
-        rangeButton = new Button(body, SWT.RADIO);
-        rangeButton.setText("Range:");
-
-        new Label(body, SWT.NONE).setText("Minimum:");
-
-        minimumText = new Text(body, SWT.BORDER);
-        minimumText.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                setVersions();
-            }
-        });
-
-        minInclusiveButton = new Button(body, SWT.CHECK);
-        minInclusiveButton.setText("inclusive");
-        minInclusiveButton.setSelection(true);
-        minInclusiveButton.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                setVersions();
-            }
-        });
-
-        new Label(body, SWT.NONE).setText("Maximum:");
-        maximumText = new Text(body, SWT.BORDER);
-        maximumText.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-                setVersions();
-            }
-        });
-
-        maxInclusiveButton = new Button(body, SWT.CHECK);
-        maxInclusiveButton.setText("inclusive");
-        maxInclusiveButton.setSelection(false);
-        maxInclusiveButton.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                setVersions();
-            }
-        });
-
-        // Layout
-        specificButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
-        specificText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-        rangeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
-        minimumText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        maximumText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-        updateFields();
-    }
-
-    private void setVersions()
-    {
-        try
-        {
-            if (specificButton.getSelection())
-            {
-                if ("*".equals(specificText.getText()))
-                {
-                    versions = VersionRange.ANY_VERSION;
-                }
-                else if (specificText.getText().trim().length() == 0)
-                {
-                    versions = null;
-                }
-                else
-                {
-                    Version v = VersionTable.getVersion(specificText.getText().trim());
-                    versions = new VersionRange(false, v, v, false);
-                }
-            }
-            else
-            {
-                Version min = VersionTable.getVersion(minimumText.getText());
-                Version max = "*".equals(maximumText.getText()) ? VersionRange.INFINITE_VERSION
-                    : VersionTable.getVersion(maximumText.getText());
-                versions = new VersionRange(!minInclusiveButton.getSelection(), min, max,
-                    !maxInclusiveButton.getSelection());
-            }
-            fireValidationMessage(null, IMessageProvider.NONE);
-        }
-        catch (IllegalArgumentException e)
-        {
-            versions = null;
-            fireValidationMessage("Invalid version", IMessageProvider.ERROR);
-        }
-
-        fireVersionChange();
-    }
-
-    private void fireVersionChange()
-    {
-        synchronized (listeners)
-        {
-            for (VersionsChangeListener l : listeners)
-            {
-                l.versionsChanged(versions);
-            }
-        }
-    }
-
-    private void fireValidationMessage(String message, int level)
-    {
-        for (IValidationListener validationListener : validationListeners)
-        {
-            validationListener.validationMessage(message, level);
-        }
-    }
-
-    private void setSpecific()
-    {
-        boolean specific = specificButton.getSelection();
-        specificButton.setSelection(specific);
-        specificText.setEnabled(specific);
-        minimumText.setEnabled(!specific);
-        maximumText.setEnabled(!specific);
-        minInclusiveButton.setEnabled(!specific);
-        maxInclusiveButton.setEnabled(!specific);
-        setVersions();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionsChangeListener.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionsChangeListener.java
deleted file mode 100644
index c8c2c09..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/editors/project/VersionsChangeListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.editors.project;
-
-import org.apache.felix.sigil.common.osgi.VersionRange;
-
-public interface VersionsChangeListener
-{
-    void versionsChanged(VersionRange range);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/IFormValueConverter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/IFormValueConverter.java
deleted file mode 100644
index 8897857..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/IFormValueConverter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-public interface IFormValueConverter
-{
-    String getLabel(Object value);
-
-    Object getValue(String label);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/ISigilFormEntryListener.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/ISigilFormEntryListener.java
deleted file mode 100644
index 9c09f27..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/ISigilFormEntryListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-public interface ISigilFormEntryListener
-{
-    void browseButtonSelected(SigilFormEntry form);
-
-    void textValueChanged(SigilFormEntry form);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntry.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntry.java
deleted file mode 100644
index db480fa..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntry.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-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.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class SigilFormEntry
-{
-    private static final IFormValueConverter NULL_DESCRIPTOR = new IFormValueConverter()
-    {
-        public String getLabel(Object value)
-        {
-            return (String) value;
-        }
-
-        public Object getValue(String label)
-        {
-            return label;
-        }
-    };
-
-    private Label lbl;
-    private Text txt;
-    private Button btn;
-    private IFormValueConverter descriptor;
-    private boolean freeText = true;
-
-    private Object value;
-    private ISigilFormEntryListener listener;
-
-    public SigilFormEntry(Composite parent, FormToolkit toolkit, String title)
-    {
-        this(parent, toolkit, title, null, null);
-    }
-
-    public SigilFormEntry(Composite parent, FormToolkit toolkit, String title, String browse, IFormValueConverter descriptor)
-    {
-        this.descriptor = descriptor == null ? NULL_DESCRIPTOR : descriptor;
-        createComponent(parent, title, browse, toolkit);
-    }
-
-    public void setFormEntryListener(ISigilFormEntryListener listener)
-    {
-        this.listener = listener;
-    }
-
-    public void setValue(Object value)
-    {
-        this.value = value;
-        String text = descriptor.getLabel(value);
-        if (text == null)
-        {
-            text = "";
-        }
-        txt.setText(text);
-        handleValueChanged();
-    }
-
-    public Object getValue()
-    {
-        return value;
-    }
-
-    public void setFreeText(boolean freeText)
-    {
-        this.freeText = freeText;
-    }
-
-    public void setEditable(boolean editable)
-    {
-        lbl.setEnabled(editable);
-        txt.setEditable(editable);
-        if (btn != null)
-        {
-            btn.setEnabled(editable);
-        }
-    }
-
-    private void createComponent(Composite parent, String title, String browse,
-        FormToolkit toolkit)
-    {
-        lbl = toolkit.createLabel(parent, title);
-        lbl.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
-        txt = toolkit.createText(parent, "", SWT.SINGLE | SWT.BORDER);
-        txt.addKeyListener(new KeyAdapter()
-        {
-            @Override
-            public void keyPressed(KeyEvent e)
-            {
-                if (freeText)
-                {
-                    switch (e.character)
-                    {
-                        case '\r':
-                            handleValueChanged();
-                    }
-                }
-                else
-                {
-                    switch (e.character)
-                    {
-                        case '\b':
-                            setValue(null);
-                            handleValueChanged();
-                        default:
-                            e.doit = false;
-                            break;
-                    }
-                }
-            }
-        });
-        txt.addFocusListener(new FocusAdapter()
-        {
-            @Override
-            public void focusLost(FocusEvent e)
-            {
-                handleValueChanged();
-            }
-        });
-
-        if (browse != null)
-        {
-            btn = toolkit.createButton(parent, browse, SWT.PUSH);
-            btn.addSelectionListener(new SelectionAdapter()
-            {
-                @Override
-                public void widgetSelected(SelectionEvent e)
-                {
-                    handleBrowseSelected();
-                }
-            });
-        }
-
-        fillIntoGrid(parent);
-    }
-
-    private void handleBrowseSelected()
-    {
-        if (listener != null)
-        {
-            listener.browseButtonSelected(this);
-        }
-    }
-
-    private void handleValueChanged()
-    {
-        if (freeText)
-        {
-            this.value = descriptor.getValue(txt.getText());
-        }
-        if (listener != null)
-        {
-            listener.textValueChanged(this);
-        }
-    }
-
-    private void fillIntoGrid(Composite parent)
-    {
-        if (parent.getLayout() instanceof GridLayout)
-        {
-            GridLayout layout = (GridLayout) parent.getLayout();
-
-            int cols = layout.numColumns;
-
-            lbl.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-
-            if (btn == null)
-            {
-                txt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false,
-                    Math.max(1, cols - 1), 1));
-            }
-            else
-            {
-                txt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false,
-                    Math.max(1, cols - 2), 1));
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntryAdapter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntryAdapter.java
deleted file mode 100644
index df25a5e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilFormEntryAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-public class SigilFormEntryAdapter implements ISigilFormEntryListener
-{
-    public void browseButtonSelected(SigilFormEntry form)
-    {
-    }
-
-    public void textValueChanged(SigilFormEntry form)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilPage.java
deleted file mode 100644
index 12be8b8..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilPage.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-
-public class SigilPage extends FormPage
-{
-
-    public SigilPage(FormEditor editor, String id, String title)
-    {
-        super(editor, id, title);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilSection.java
deleted file mode 100644
index 704d431..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/form/SigilSection.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.form;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IPartSelectionListener;
-import org.eclipse.ui.forms.SectionPart;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-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.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public abstract class SigilSection extends SectionPart implements IHyperlinkListener, IPartSelectionListener
-{
-
-    private SigilPage page;
-    private ISigilProjectModel project;
-
-    public SigilSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException
-    {
-        super(parent, page.getManagedForm().getToolkit(), ExpandableComposite.TITLE_BAR
-            | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        this.project = project;
-        this.page = page;
-        createSection(getSection(), page.getManagedForm().getToolkit());
-    }
-
-    public ISigilProjectModel getProjectModel()
-    {
-        return project;
-    }
-
-    public SigilPage getPage()
-    {
-        return page;
-    }
-
-    public void setExpanded(boolean expanded)
-    {
-        getSection().setExpanded(expanded);
-    }
-
-    protected abstract void createSection(Section section, FormToolkit toolkit)
-        throws CoreException;
-
-    protected void setTitle(String title)
-    {
-        Section section = getSection();
-        section.setText(title);
-
-        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.setLayout(layout);
-
-        TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB);
-        section.setLayoutData(data);
-    }
-
-    protected void setMarker(String type, String message, int priority, int severity)
-        throws CoreException
-    {
-        IFileEditorInput file = (IFileEditorInput) getPage().getEditor().getEditorInput();
-        IMarker marker = file.getFile().createMarker(type);
-        marker.setAttribute(IMarker.MESSAGE, message);
-        marker.setAttribute(IMarker.PRIORITY, priority);
-        marker.setAttribute(IMarker.SEVERITY, severity);
-    }
-
-    protected void clearMarkers() throws CoreException
-    {
-        IFileEditorInput file = (IFileEditorInput) getPage().getEditor().getEditorInput();
-        file.getFile().deleteMarkers(null, true, IResource.DEPTH_INFINITE);
-    }
-
-    protected Composite createTableWrapBody(int columns, FormToolkit toolkit)
-    {
-        Section section = getSection();
-        Composite client = toolkit.createComposite(section);
-
-        TableWrapLayout layout = new TableWrapLayout();
-        layout.leftMargin = layout.rightMargin = toolkit.getBorderStyle() != SWT.NULL ? 0
-            : 2;
-        layout.numColumns = columns;
-        client.setLayout(layout);
-        client.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        section.setClient(client);
-
-        return client;
-    }
-
-    protected Composite createGridBody(int columns, boolean columnsSameWidth,
-        FormToolkit toolkit)
-    {
-        Section section = getSection();
-        Composite client = toolkit.createComposite(section);
-
-        GridLayout layout = new GridLayout();
-
-        layout.makeColumnsEqualWidth = columnsSameWidth;
-        layout.numColumns = columns;
-        client.setLayout(layout);
-
-        client.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
-        section.setClient(client);
-
-        return client;
-    }
-
-    public void linkActivated(HyperlinkEvent e)
-    {
-    }
-
-    public void linkExited(HyperlinkEvent e)
-    {
-    }
-
-    public void linkEntered(HyperlinkEvent e)
-    {
-    }
-
-    public void selectionChanged(IFormPart part, ISelection selection)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/AbstractResourceCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/AbstractResourceCommandHandler.java
deleted file mode 100644
index 6f77d31..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/AbstractResourceCommandHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-
-public abstract class AbstractResourceCommandHandler extends AbstractHandler
-{
-
-    protected abstract IResourceCommandHandler getResourceCommandHandler();
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/EditorResourceCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/EditorResourceCommandHandler.java
deleted file mode 100644
index addde2b..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/EditorResourceCommandHandler.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public abstract class EditorResourceCommandHandler extends AbstractResourceCommandHandler
-{
-
-    public Object execute(ExecutionEvent event) throws ExecutionException
-    {
-        final Shell shell = HandlerUtil.getActiveShell(event);
-        final IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
-        if (editorPart != null)
-        {
-            IEditorInput editorInput = editorPart.getEditorInput();
-
-            if (!(editorInput instanceof IFileEditorInput))
-            {
-                throw new ExecutionException("Editor input must be a file");
-            }
-            IFileEditorInput fileInput = (IFileEditorInput) editorInput;
-
-            try
-            {
-                // Save the editor content (if dirty)
-                IRunnableWithProgress saveOperation = new IRunnableWithProgress()
-                {
-                    public void run(IProgressMonitor monitor)
-                        throws InvocationTargetException, InterruptedException
-                    {
-                        if (editorPart.isDirty())
-                        {
-                            if (MessageDialog.openQuestion(
-                                shell,
-                                "Save File",
-                                "The file contents must be saved before the command can be executed. Do you wish to save now?"))
-                            {
-                                editorPart.doSave(monitor);
-                            }
-                            else
-                            {
-                                throw new InterruptedException();
-                            }
-                        }
-                    }
-                };
-                new ProgressMonitorDialog(shell).run(false, true, saveOperation);
-
-                // Execute on the file
-                IFile file = fileInput.getFile();
-                getResourceCommandHandler().execute(new IResource[] { file }, event);
-            }
-            catch (InvocationTargetException e)
-            {
-                throw new ExecutionException("Error saving file", e.getTargetException());
-            }
-            catch (InterruptedException e)
-            {
-                // Exit the command silently
-            }
-        }
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/IResourceCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/IResourceCommandHandler.java
deleted file mode 100644
index 68350db..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/IResourceCommandHandler.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IResource;
-
-public interface IResourceCommandHandler
-{
-
-    Object execute(IResource[] resources, ExecutionEvent event) throws ExecutionException;
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/SelectionResourceCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/SelectionResourceCommandHandler.java
deleted file mode 100644
index 3085ee1..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/SelectionResourceCommandHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public abstract class SelectionResourceCommandHandler extends AbstractResourceCommandHandler
-{
-
-    public final Object execute(ExecutionEvent event) throws ExecutionException
-    {
-        ISelection selection = HandlerUtil.getCurrentSelection(event);
-
-        Object[] objectArray = ((IStructuredSelection) selection).toArray();
-        IResource[] resourceArray = new IResource[objectArray.length];
-        System.arraycopy(objectArray, 0, resourceArray, 0, objectArray.length);
-
-        return getResourceCommandHandler().execute(resourceArray, event);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectCommandHandler.java
deleted file mode 100644
index bee06fe..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectCommandHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers.project;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.IResourceCommandHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class ConvertProjectCommandHandler implements IResourceCommandHandler
-{
-
-    public Object execute(IResource[] resources, ExecutionEvent event)
-        throws ExecutionException
-    {
-        for (IResource r : resources)
-        {
-            final IProject project = (IProject) r;
-            if (project != null)
-            {
-                WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-                {
-                    @Override
-                    protected void execute(IProgressMonitor monitor) throws CoreException
-                    {
-                        SigilCore.makeSigilProject(project, monitor);
-                        IJavaProject java = JavaCore.create(project);
-                        ISigilProjectModel sigil = SigilCore.create(project);
-                        String bsn = project.getName();
-                        sigil.getBundle().getBundleInfo().setSymbolicName(bsn);
-
-                        IClasspathEntry[] entries = java.getRawClasspath();
-                        for (int i = 0; i < entries.length; i++)
-                        {
-                            IClasspathEntry entry = entries[i];
-                            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE)
-                            {
-                                String encodedClasspath = sigil.getJavaModel().encodeClasspathEntry(
-                                    entry);
-                                sigil.getBundle().addClasspathEntry(encodedClasspath);
-                            }
-                        }
-                        sigil.save(monitor);
-                    }
-                };
-                SigilUI.runWorkspaceOperation(op, null);
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectHandler.java
deleted file mode 100644
index 919cc65..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/ConvertProjectHandler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers.project;
-
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.IResourceCommandHandler;
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.SelectionResourceCommandHandler;
-
-public class ConvertProjectHandler extends SelectionResourceCommandHandler
-{
-
-    @Override
-    protected IResourceCommandHandler getResourceCommandHandler()
-    {
-        return new ConvertProjectCommandHandler();
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathCommandHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathCommandHandler.java
deleted file mode 100644
index f23ce33..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathCommandHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers.project;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.IResourceCommandHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class RefreshSigilClasspathCommandHandler implements IResourceCommandHandler
-{
-
-    public Object execute(IResource[] resources, ExecutionEvent event)
-        throws ExecutionException
-    {
-        try
-        {
-            for (IResource res : resources)
-            {
-                IProject p = (IProject) res;
-                final ISigilProjectModel model = SigilCore.create(p);
-
-                WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-                {
-                    @Override
-                    protected void execute(IProgressMonitor monitor)
-                        throws CoreException, InvocationTargetException,
-                        InterruptedException
-                    {
-                        model.resetClasspath(monitor, true);
-                    }
-                };
-
-                SigilUI.runWorkspaceOperation(op, null);
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to create sigil project for refresh action", e);
-        }
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathHandler.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathHandler.java
deleted file mode 100644
index 8c6317d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/handlers/project/RefreshSigilClasspathHandler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.handlers.project;
-
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.IResourceCommandHandler;
-import org.apache.felix.sigil.eclipse.ui.internal.handlers.SelectionResourceCommandHandler;
-
-public class RefreshSigilClasspathHandler extends SelectionResourceCommandHandler
-{
-
-    @Override
-    protected IResourceCommandHandler getResourceCommandHandler()
-    {
-        return new RefreshSigilClasspathCommandHandler();
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/perspective/SigilPerspectiveFactory.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/perspective/SigilPerspectiveFactory.java
deleted file mode 100644
index de0bffe..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/perspective/SigilPerspectiveFactory.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.perspective;
-
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.progress.IProgressConstants;
-
-public class SigilPerspectiveFactory implements IPerspectiveFactory
-{
-
-    private static final String ID_PROJECT_EXPLORER = "org.eclipse.ui.navigator.ProjectExplorer"; //$NON-NLS-1$
-    private static final String ID_SEARCH_VIEW = "org.eclipse.search.ui.views.SearchView"; //$NON-NLS-1$
-    private static final String ID_CONSOLE_VIEW = "org.eclipse.ui.console.ConsoleView"; //$NON-NLS-1$
-
-    public void createInitialLayout(IPageLayout layout)
-    {
-        /*
-         * Use ProjectExplorer vs PackageExplorer due to a bug with Drag and Drop on Mac OS X which affects PackageExplorer
-         * but not ProjectExplorer. https://bugs.eclipse.org/bugs/show_bug.cgi?id=243529
-         */
-        String editorArea = layout.getEditorArea();
-
-        IFolderLayout folder = layout.createFolder(
-            "left", IPageLayout.LEFT, (float) 0.25, editorArea); //$NON-NLS-1$
-        folder.addView(ID_PROJECT_EXPLORER);
-        folder.addView(JavaUI.ID_TYPE_HIERARCHY);
-        folder.addPlaceholder(IPageLayout.ID_RES_NAV);
-        folder.addPlaceholder(SigilUI.ID_REPOSITORY_VIEW);
-        folder.addView(IPageLayout.ID_OUTLINE);
-
-        IFolderLayout outputfolder = layout.createFolder(
-            "bottom", IPageLayout.BOTTOM, (float) 0.75, editorArea); //$NON-NLS-1$
-        outputfolder.addView(IPageLayout.ID_PROBLEM_VIEW);
-        outputfolder.addView(JavaUI.ID_JAVADOC_VIEW);
-        outputfolder.addView(JavaUI.ID_SOURCE_VIEW);
-        outputfolder.addPlaceholder(ID_SEARCH_VIEW);
-        outputfolder.addPlaceholder(ID_CONSOLE_VIEW);
-        outputfolder.addPlaceholder(IPageLayout.ID_BOOKMARKS);
-        outputfolder.addPlaceholder(IProgressConstants.PROGRESS_VIEW_ID);
-        outputfolder.addPlaceholder(SigilUI.ID_DEPENDENCY_VIEW);
-
-        layout.addActionSet(IDebugUIConstants.LAUNCH_ACTION_SET);
-        layout.addActionSet(JavaUI.ID_ACTION_SET);
-        layout.addActionSet(JavaUI.ID_ELEMENT_CREATION_ACTION_SET);
-        layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
-
-        // views - sigil
-        layout.addShowViewShortcut(SigilUI.ID_REPOSITORY_VIEW);
-        layout.addShowViewShortcut(SigilUI.ID_DEPENDENCY_VIEW);
-
-        // views - java
-        layout.addShowViewShortcut(JavaUI.ID_PACKAGES);
-        layout.addShowViewShortcut(JavaUI.ID_TYPE_HIERARCHY);
-        layout.addShowViewShortcut(JavaUI.ID_SOURCE_VIEW);
-        layout.addShowViewShortcut(JavaUI.ID_JAVADOC_VIEW);
-
-        // views - search
-        layout.addShowViewShortcut(ID_SEARCH_VIEW);
-
-        // views - debugging
-        layout.addShowViewShortcut(ID_CONSOLE_VIEW);
-
-        // views - standard workbench
-        layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);
-        layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
-        layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);
-        layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);
-        layout.addShowViewShortcut(IProgressConstants.PROGRESS_VIEW_ID);
-        layout.addShowViewShortcut(ID_PROJECT_EXPLORER);
-
-        // new actions - Java project creation wizard
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewClassCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard"); //$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$
-        layout.addNewWizardShortcut("org.eclipse.ui.editors.wizards.UntitledTextFileWizard");//$NON-NLS-1$
-
-        layout.addNewWizardShortcut("org.apache.felix.sigil.editors.newProjectWizard");
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ExcludedResourcesPrefsPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ExcludedResourcesPrefsPage.java
deleted file mode 100644
index 304fccd..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ExcludedResourcesPrefsPage.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.preferences.PrefsUtils;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.window.Window;
-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.Control;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class ExcludedResourcesPrefsPage extends PreferencePage implements IWorkbenchPreferencePage
-{
-
-    private TableViewer viewer;
-    private ArrayList<String> resources;
-
-    public ExcludedResourcesPrefsPage()
-    {
-        super();
-        setDescription("Specify resources that should not be offered for inclusion in a generated bundle.");
-    }
-
-    @Override
-    protected Control createContents(Composite parent)
-    {
-        // Create controls
-        Composite composite = new Composite(parent, SWT.NONE);
-        Table table = new Table(composite, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
-
-        Button btnAdd = new Button(composite, SWT.PUSH);
-        btnAdd.setText("Add");
-
-        final Button btnRemove = new Button(composite, SWT.PUSH);
-        btnRemove.setText("Remove");
-        btnRemove.setEnabled(false);
-
-        // Create viewer
-        viewer = new TableViewer(table);
-        viewer.setContentProvider(new ArrayContentProvider());
-
-        // Load data
-        loadPreferences(false);
-        viewer.setInput(resources);
-
-        // Listeners
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                btnRemove.setEnabled(!viewer.getSelection().isEmpty());
-            }
-        });
-
-        btnRemove.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-                Object[] deleted = selection.toArray();
-                for (Object delete : deleted)
-                {
-                    resources.remove(delete);
-                }
-                viewer.remove(deleted);
-            }
-        });
-
-        btnAdd.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                InputDialog dialog = new InputDialog(getShell(), "Add Resource",
-                    "Enter resource name", "", new IInputValidator()
-                    {
-                        public String isValid(String newText)
-                        {
-                            String error = null;
-                            if (newText == null || newText.length() == 0)
-                            {
-                                error = "Name must not be empty.";
-                            }
-                            else if (resources.contains(newText))
-                            {
-                                error = "Specified resource name is already on the list.";
-                            }
-                            return error;
-                        }
-                    });
-
-                if (dialog.open() == Window.OK)
-                {
-                    String value = dialog.getValue();
-                    resources.add(value);
-                    viewer.add(value);
-                }
-            }
-        });
-
-        // Layout
-        composite.setLayout(new GridLayout(2, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3));
-        btnAdd.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        btnRemove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-
-        return composite;
-    }
-
-    private void loadPreferences(boolean useDefaults)
-    {
-        String resourcesListStr = useDefaults ? getPreferenceStore().getDefaultString(
-            SigilCore.DEFAULT_EXCLUDED_RESOURCES) : getPreferenceStore().getString(
-            SigilCore.DEFAULT_EXCLUDED_RESOURCES);
-        String[] resourcesArray = PrefsUtils.stringToArray(resourcesListStr);
-
-        resources = new ArrayList<String>(resourcesArray.length);
-        for (String resource : resourcesArray)
-        {
-            resources.add(resource);
-        }
-    }
-
-    public void init(IWorkbench workbench)
-    {
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    @Override
-    public boolean performOk()
-    {
-        String resourcesStr = PrefsUtils.arrayToString(resources.toArray(new String[resources.size()]));
-        getPreferenceStore().setValue(SigilCore.DEFAULT_EXCLUDED_RESOURCES, resourcesStr);
-        return true;
-    }
-
-    @Override
-    protected void performDefaults()
-    {
-        super.performDefaults();
-        loadPreferences(true);
-        viewer.setInput(resources);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryConfigurationDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryConfigurationDialog.java
deleted file mode 100644
index e39605e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryConfigurationDialog.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.TreeSet;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-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.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.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.osgi.framework.Version;
-
-public class LibraryConfigurationDialog extends TitleAreaDialog
-{
-
-    private static final Comparator<IPackageImport> COMPARATOR = new Comparator<IPackageImport>()
-    {
-        public int compare(IPackageImport o1, IPackageImport o2)
-        {
-            return o1.getPackageName().compareTo(o2.getPackageName());
-        }
-    };
-
-    private String name;
-    private Version version;
-    private TreeSet<IPackageImport> packageImports = new TreeSet<IPackageImport>(
-        COMPARATOR);
-
-    private boolean editOnly;
-
-    private TableViewer viewer;
-    private Text txtName;
-    private Text txtVersion;
-
-    public LibraryConfigurationDialog(Shell parentShell)
-    {
-        super(parentShell);
-        name = "";
-        version = Version.emptyVersion;
-    }
-
-    public LibraryConfigurationDialog(Shell parentShell, ILibrary lib)
-    {
-        super(parentShell);
-        editOnly = true;
-        name = lib.getName();
-        version = lib.getVersion();
-        packageImports.addAll(lib.getImports());
-    }
-
-    @Override
-    protected Control createDialogArea(Composite par)
-    {
-        setTitle("Add Library");
-        Composite container = (Composite) super.createDialogArea(par);
-
-        Composite topPanel = new Composite(container, SWT.NONE);
-
-        new Label(topPanel, SWT.NONE).setText("Name");
-
-        txtName = new Text(topPanel, SWT.BORDER);
-        txtName.setEditable(!editOnly);
-        if (name != null)
-            txtName.setText(name);
-
-        new Label(topPanel, SWT.NONE).setText("Version");
-
-        txtVersion = new Text(topPanel, SWT.BORDER);
-        txtVersion.setText(version.toString());
-        txtVersion.setEditable(!editOnly);
-
-        Composite bottomPanel = new Composite(container, SWT.NONE);
-
-        Table table = new Table(bottomPanel, SWT.BORDER);
-        table.setSize(new Point(300, 200));
-
-        Button add = new Button(bottomPanel, SWT.PUSH);
-        add.setText("Add...");
-
-        final Button edit = new Button(bottomPanel, SWT.PUSH);
-        edit.setText("Edit...");
-        edit.setEnabled(false);
-
-        final Button remove = new Button(bottomPanel, SWT.PUSH);
-        remove.setText("Remove");
-        remove.setEnabled(false);
-
-        updateState();
-
-        // Hookup Listeners
-        txtName.addModifyListener(new ModifyListener()
-        {
-            public void modifyText(ModifyEvent e)
-            {
-                updateState();
-            }
-        });
-        txtVersion.addModifyListener(new ModifyListener()
-        {
-            public void modifyText(ModifyEvent e)
-            {
-                updateState();
-            }
-        });
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleAdd();
-            }
-        });
-        edit.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleEdit();
-            }
-        });
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemove();
-            }
-        });
-
-        // Layout
-        topPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        topPanel.setLayout(new GridLayout(2, false));
-        txtName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        txtVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-        bottomPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        bottomPanel.setLayout(new GridLayout(2, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4));
-        add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        edit.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-
-        // Table Viewer
-        viewer = new TableViewer(table);
-        viewer.setLabelProvider(new LabelProvider()
-        {
-            @Override
-            public String getText(Object element)
-            {
-                IPackageImport pi = (IPackageImport) element;
-                return pi.getPackageName() + " " + pi.getVersions();
-            }
-        });
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                edit.setEnabled(!event.getSelection().isEmpty());
-                remove.setEnabled(!event.getSelection().isEmpty());
-            }
-        });
-        viewer.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-
-        viewer.setInput(packageImports);
-        return container;
-    }
-
-    private void updateState()
-    {
-        String error = null;
-        String warning = null;
-
-        name = txtName.getText();
-
-        try
-        {
-            version = VersionTable.getVersion(txtVersion.getText());
-            if (version.getQualifier().indexOf('_') > -1)
-            {
-                warning = "The use of underscores in a version qualifier is discouraged.";
-            }
-        }
-        catch (IllegalArgumentException e)
-        {
-            version = null;
-            error = "Invalid version format";
-        }
-
-        Button okButton = getButton(IDialogConstants.OK_ID);
-        if (okButton != null && !okButton.isDisposed())
-            okButton.setEnabled(allowOkay());
-
-        setErrorMessage(error);
-        setMessage(warning, IMessageProvider.WARNING);
-    }
-
-    private boolean allowOkay()
-    {
-        return name != null && name.length() > 0 && version != null;
-    }
-
-    @Override
-    protected Button createButton(Composite parent, int id, String label,
-        boolean defaultButton)
-    {
-        Button button = super.createButton(parent, id, label, defaultButton);
-        if (id == IDialogConstants.OK_ID)
-        {
-            button.setEnabled(allowOkay());
-        }
-        return button;
-    }
-
-    private void handleAdd()
-    {
-        /*NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper.createImportDialog(getShell(), "Add Imported Package", null, packageImports);
-        if ( dialog.open() == Window.OK ) {
-        	IPackageImport pi = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
-        	pi.setPackageName(dialog.getSelectedName());
-        	pi.setVersions(dialog.getSelectedVersions());
-        	pi.setOptional(dialog.isOptional());
-        	
-        	packageImports.add(pi);
-        	viewer.refresh();
-        }*/
-    }
-
-    private void handleEdit()
-    {
-        /*IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-        
-        boolean changed = false;
-        
-        if ( !selection.isEmpty() ) {
-        	for ( Iterator<IPackageImport> i = selection.iterator(); i.hasNext(); ) {	
-        		IPackageImport packageImport = i.next();
-        		NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper.createImportDialog( getShell(), "Edit Imported Package", packageImport, packageImports );
-        		dialog.setVersions( packageImport.getVersions() );
-        		dialog.setOptional(packageImport.isOptional());
-        		if ( dialog.open() == Window.OK ) {
-        			changed = true;
-        			String packageName = dialog.getSelectedName();
-        			VersionRange versionRange = dialog.getSelectedVersions();
-        			
-        			IPackageImport newImport = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
-        			newImport.setPackageName(packageName);
-        			newImport.setVersions(versionRange);
-        			newImport.setOptional(dialog.isOptional());
-        			
-        			packageImports.remove(packageImport);
-        			packageImports.add(newImport);
-        		}
-        	}
-        }
-        
-        if ( changed ) {
-        	viewer.refresh();
-        } */
-    }
-
-    @SuppressWarnings("unchecked")
-    private void handleRemove()
-    {
-        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-
-        if (!selection.isEmpty())
-        {
-            for (Iterator<IPackageImport> i = selection.iterator(); i.hasNext();)
-            {
-                packageImports.remove(i.next());
-            }
-
-            viewer.refresh();
-        }
-    }
-
-    public ILibrary getLibrary()
-    {
-        ILibrary library = ModelElementFactory.getInstance().newModelElement(
-            ILibrary.class);
-
-        library.setName(name);
-        library.setVersion(version);
-
-        for (IPackageImport pi : packageImports)
-        {
-            library.addImport(pi);
-        }
-
-        return library;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryPreferencePage.java
deleted file mode 100644
index a93cd33..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/LibraryPreferencePage.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.TreeSet;
-
-import org.apache.felix.sigil.common.model.eclipse.ILibrary;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.window.Window;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class LibraryPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
-{
-
-    private TreeSet<ILibrary> libraries;
-    private TableViewer libraryView;
-
-    private Table table;
-    private Button btnAdd;
-    private Button btnEdit;
-    private Button btnRemove;
-
-    public void init(IWorkbench workbench)
-    {
-    }
-
-    @Override
-    protected Control createContents(Composite parent)
-    {
-        Control control = initContents(parent);
-        loadPreferences();
-        return control;
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    @Override
-    protected void performDefaults()
-    {
-        super.performDefaults();
-    }
-
-    @Override
-    public boolean performOk()
-    {
-        IPreferenceStore prefs = getPreferenceStore();
-        for (String key : prefs.getString(SigilCore.LIBRARY_KEYS_PREF).split(","))
-        {
-            prefs.setToDefault(key);
-        }
-
-        StringBuffer keys = new StringBuffer();
-
-        for (ILibrary lib : libraries)
-        {
-            throw new IllegalStateException("XXX-FIXME-XXX");
-        }
-
-        prefs.setValue(SigilCore.LIBRARY_KEYS_PREF, keys.toString());
-
-        return true;
-    }
-
-    private Control initContents(Composite parent)
-    {
-        Composite control = new Composite(parent, SWT.NONE);
-        control.setFont(parent.getFont());
-
-        GridLayout grid = new GridLayout(3, false);
-        control.setLayout(grid);
-
-        initRepositories(control);
-
-        return control;
-    }
-
-    private void initRepositories(Composite composite)
-    {
-        // Create controls
-        new Label(composite, SWT.NONE).setText("Libraries:");
-        new Label(composite, SWT.NONE); // Spacer
-        table = new Table(composite, SWT.SINGLE | SWT.BORDER);
-        //table.setFont(control.getFont());
-        btnAdd = new Button(composite, SWT.PUSH);
-        btnAdd.setText("Add...");
-        //add.setFont(control.getFont());
-        btnEdit = new Button(composite, SWT.PUSH);
-        btnEdit.setText("Edit...");
-        //edit.setFont(control.getFont());
-        btnRemove = new Button(composite, SWT.PUSH);
-        btnRemove.setText("Remove");
-        //remove.setFont(control.getFont());
-
-        // Table Model
-        libraries = new TreeSet<ILibrary>(new Comparator<ILibrary>()
-        {
-            public int compare(ILibrary l1, ILibrary l2)
-            {
-                int c = l1.getName().compareTo(l2.getName());
-                if (c == 0)
-                {
-                    c = l1.getVersion().compareTo(l2.getVersion());
-                }
-                return c;
-            }
-        });
-        libraryView = new TableViewer(table);
-        libraryView.setLabelProvider(new LabelProvider()
-        {
-            public String getText(Object element)
-            {
-                ILibrary rep = (ILibrary) element;
-                return rep.getName() + " " + rep.getVersion();
-            }
-        });
-        libraryView.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-        libraryView.setInput(libraries);
-
-        // Initialize controls
-        updateButtonStates();
-
-        // Hookup Listeners
-        libraryView.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                updateButtonStates();
-            }
-        });
-        btnAdd.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleAdd();
-            }
-        });
-        btnEdit.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleEdit();
-            }
-        });
-        btnRemove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemove();
-            }
-        });
-
-        // Layout
-        composite.setLayout(new GridLayout(2, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4));
-        GridDataFactory buttonGD = GridDataFactory.swtDefaults().align(SWT.FILL,
-            SWT.CENTER);
-        btnAdd.setLayoutData(buttonGD.create());
-        btnEdit.setLayoutData(buttonGD.create());
-        btnRemove.setLayoutData(buttonGD.create());
-    }
-
-    private void updateButtonStates()
-    {
-        ISelection sel = libraryView.getSelection();
-        btnEdit.setEnabled(!sel.isEmpty());
-        btnRemove.setEnabled(!sel.isEmpty());
-    }
-
-    private void handleAdd()
-    {
-        LibraryConfigurationDialog d = new LibraryConfigurationDialog(getShell());
-        if (d.open() == Window.OK)
-        {
-            libraries.add(d.getLibrary());
-            libraryView.refresh();
-        }
-    }
-
-    private void handleEdit()
-    {
-        IStructuredSelection sel = (IStructuredSelection) libraryView.getSelection();
-        boolean change = false;
-
-        for (@SuppressWarnings("unchecked")
-        Iterator<ILibrary> i = sel.iterator(); i.hasNext();)
-        {
-            ILibrary lib = i.next();
-            LibraryConfigurationDialog d = new LibraryConfigurationDialog(getShell(), lib);
-            if (d.open() == Window.OK)
-            {
-                libraries.remove(lib);
-                libraries.add(d.getLibrary());
-                change = true;
-            }
-        }
-
-        if (change)
-        {
-            libraryView.refresh();
-        }
-    }
-
-    private void handleRemove()
-    {
-        IStructuredSelection sel = (IStructuredSelection) libraryView.getSelection();
-        for (@SuppressWarnings("unchecked")
-        Iterator<ILibrary> i = sel.iterator(); i.hasNext();)
-        {
-            libraries.remove(i);
-        }
-        libraryView.refresh();
-    }
-
-    private void loadPreferences()
-    {
-        IPreferenceStore prefs = getPreferenceStore();
-        String keys = prefs.getString(SigilCore.LIBRARY_KEYS_PREF);
-        if (keys.trim().length() > 0)
-        {
-            for (String key : keys.split(","))
-            {
-                String libStr = prefs.getString(key);
-                // XXX-FIXME-XXX parse library string
-                // lib = parse(libstr);
-                // libraries.add(lib);
-            }
-            libraryView.refresh();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/OptionalPrompt.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/OptionalPrompt.java
deleted file mode 100644
index 2b5f22f..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/OptionalPrompt.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.preferences.PromptablePreference;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Shell;
-
-public class OptionalPrompt
-{
-    public static boolean optionallyPrompt(String prefName, String title, String text,
-        Shell parentShell)
-    {
-        return optionallyPrompt(SigilCore.getDefault().getPreferenceStore(), prefName,
-            title, text, parentShell);
-    }
-
-    public static boolean optionallyPrompt(IPreferenceStore prefStore, String prefName,
-        String title, String text, Shell parentShell)
-    {
-        boolean result = false;
-
-        PromptablePreference value = preference(prefStore, prefName);
-        switch (value)
-        {
-            case Always:
-                result = true;
-                break;
-            case Never:
-                result = false;
-                break;
-            case Prompt:
-                MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion(
-                    parentShell, title, text, "Do not ask this again", false, null, null);
-                result = (dialog.getReturnCode() == IDialogConstants.YES_ID);
-                if (dialog.getToggleState())
-                {
-                    // User said don't ask again... take the current answer as the new preference
-                    prefStore.setValue(prefName,
-                        result ? PromptablePreference.Always.name()
-                            : PromptablePreference.Never.name());
-                }
-        }
-
-        return result;
-    }
-
-    public static int optionallyPromptWithCancel(String prefName, String title,
-        String text, Shell parentShell)
-    {
-        return optionallyPromptWithCancel(SigilCore.getDefault().getPreferenceStore(),
-            prefName, title, text, parentShell);
-    }
-
-    public static int optionallyPromptWithCancel(IPreferenceStore prefStore,
-        String prefName, String title, String text, Shell parentShell)
-    {
-        int result = IDialogConstants.NO_ID;
-
-        PromptablePreference value = preference(prefStore, prefName);
-        switch (value)
-        {
-            case Always:
-                result = IDialogConstants.YES_ID;
-                break;
-            case Never:
-                result = IDialogConstants.NO_ID;
-                break;
-            case Prompt:
-                MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoCancelQuestion(
-                    parentShell, title, text, "Do not ask this again", false, null, null);
-                result = dialog.getReturnCode();
-                if (result != IDialogConstants.CANCEL_ID)
-                {
-                    if (dialog.getToggleState())
-                    {
-                        // User said don't ask again... take the current answer as the new preference
-                        prefStore.setValue(
-                            prefName,
-                            (result == IDialogConstants.YES_ID) ? PromptablePreference.Always.name()
-                                : PromptablePreference.Never.name());
-                    }
-                }
-        }
-
-        return result;
-    }
-
-    /**
-     * @param prefStore 
-     * @param prefName
-     * @return
-     */
-    private static PromptablePreference preference(IPreferenceStore prefStore,
-        String prefName)
-    {
-        String val = prefStore.getString(prefName);
-        return (val == null || val.trim().length() == 0) ? PromptablePreference.Prompt
-            : PromptablePreference.valueOf(val);
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ProjectDependentPreferencesPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ProjectDependentPreferencesPage.java
deleted file mode 100644
index b738194..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/ProjectDependentPreferencesPage.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import org.apache.felix.sigil.eclipse.ui.util.ProjectUtils;
-import org.eclipse.jface.preference.PreferencePage;
-
-public abstract class ProjectDependentPreferencesPage extends PreferencePage
-{
-
-    public ProjectDependentPreferencesPage(String title)
-    {
-        super(title);
-    }
-
-    @Override
-    public boolean performOk()
-    {
-        if (isDirty())
-        {
-            return ProjectUtils.runTaskWithRebuildCheck(new Runnable()
-            {
-                public void run()
-                {
-                    doSave();
-                }
-
-            }, getShell());
-        }
-        else
-        {
-            return true;
-        }
-    }
-
-    protected abstract void doSave();
-
-    protected abstract boolean isDirty();
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/SigilPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/SigilPreferencePage.java
deleted file mode 100644
index 6f68eb4..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/SigilPreferencePage.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.preferences.PromptablePreference;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.RadioGroupFieldEditor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class SigilPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage
-{
-
-    @Override
-    protected void createFieldEditors()
-    {
-        RadioGroupFieldEditor impExpField = new RadioGroupFieldEditor(
-            SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT, "Add Imports for New Exports",
-            1, new String[][] {
-                    new String[] { "Always (Recommended)",
-                            PromptablePreference.Always.toString() },
-                    new String[] { "Prompt", PromptablePreference.Prompt.toString() },
-                    new String[] { "Never", PromptablePreference.Never.toString() } },
-            getFieldEditorParent(), true);
-
-        addField(impExpField);
-
-        RadioGroupFieldEditor rebuildExpField = new RadioGroupFieldEditor(
-            SigilCore.PREFERENCES_REBUILD_PROJECTS, "Rebuild Projects On Install Change",
-            1, new String[][] {
-                    new String[] { "Always (Recommended)",
-                            PromptablePreference.Always.toString() },
-                    new String[] { "Prompt", PromptablePreference.Prompt.toString() },
-                    new String[] { "Never", PromptablePreference.Never.toString() } },
-            getFieldEditorParent(), true);
-
-        addField(rebuildExpField);
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    public void init(IWorkbench workbench)
-    {
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/VersionsPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/VersionsPreferencePage.java
deleted file mode 100644
index c59729b..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/VersionsPreferencePage.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences;
-
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionRangeBoundingRule;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-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.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.osgi.framework.Version;
-
-public class VersionsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
-{
-
-    private static final Version SAMPLE_VERSION = VersionTable.getVersion(1, 2, 3,
-        "qualifier");
-
-    private Button btnLowerBoundExact;
-    private Button btnLowerBoundMicro;
-    private Button btnLowerBoundMinor;
-    private Button btnLowerBoundMajor;
-    private Button btnLowerBoundAny;
-
-    private Button btnUpperBoundExact;
-    private Button btnUpperBoundMicro;
-    private Button btnUpperBoundMinor;
-    private Button btnUpperBoundMajor;
-    private Button btnUpperBoundAny;
-
-    private Text txtSampleVersion;
-    private Label lblCalculatedRange;
-    private Text txtMatchVersion;
-    private Label lblMatchResult;
-
-    private VersionRangeBoundingRule lowerBoundRule;
-    private VersionRangeBoundingRule upperBoundRule;
-
-    private Version sampleVersion = SAMPLE_VERSION;
-    private Version matchVersion = null;
-
-    public VersionsPreferencePage()
-    {
-        super();
-        setDescription("Specify the Lower and Upper bounds for a default version range calculated from a point version, e.g. \"1.2.3.qualifier\"");
-    }
-
-    @Override
-    protected Control createContents(Composite parent)
-    {
-        // Create controls
-        Composite composite = new Composite(parent, SWT.NONE);
-
-        Group grpLowerBound = new Group(composite, SWT.NONE);
-        grpLowerBound.setText("Lower Bound");
-        btnLowerBoundExact = new Button(grpLowerBound, SWT.RADIO);
-        btnLowerBoundExact.setText("Exact e.g. [1.2.3.qualifer, ...)");
-        btnLowerBoundMicro = new Button(grpLowerBound, SWT.RADIO);
-        btnLowerBoundMicro.setText("Micro e.g. [1.2.3, ...)");
-        btnLowerBoundMinor = new Button(grpLowerBound, SWT.RADIO);
-        btnLowerBoundMinor.setText("Minor e.g. [1.2, ...)");
-        btnLowerBoundMajor = new Button(grpLowerBound, SWT.RADIO);
-        btnLowerBoundMajor.setText("Major e.g. [1, ...)");
-        btnLowerBoundAny = new Button(grpLowerBound, SWT.RADIO);
-        btnLowerBoundAny.setText("Any e.g. [0, ...)");
-
-        Group grpUpperBound = new Group(composite, SWT.NONE);
-        grpUpperBound.setText("Upper Bound");
-
-        btnUpperBoundExact = new Button(grpUpperBound, SWT.RADIO);
-        btnUpperBoundExact.setText("Exact e.g. [..., 1.2.3.qualifer]");
-        btnUpperBoundMicro = new Button(grpUpperBound, SWT.RADIO);
-        btnUpperBoundMicro.setText("Micro e.g. [..., 1.2.4)");
-        btnUpperBoundMinor = new Button(grpUpperBound, SWT.RADIO);
-        btnUpperBoundMinor.setText("Minor e.g. [..., 1.3)");
-        btnUpperBoundMajor = new Button(grpUpperBound, SWT.RADIO);
-        btnUpperBoundMajor.setText("Major e.g. [..., 2)");
-        btnUpperBoundAny = new Button(grpUpperBound, SWT.RADIO);
-        btnUpperBoundAny.setText("Any e.g. [..., \u221e)");
-
-        Group grpRangeTest = new Group(composite, SWT.NONE);
-        grpRangeTest.setText("Range Test");
-        new Label(grpRangeTest, SWT.NONE).setText("Sample Input Version: ");
-        txtSampleVersion = new Text(grpRangeTest, SWT.BORDER);
-        new Label(grpRangeTest, SWT.NONE).setText("Calculated Version Range: ");
-        lblCalculatedRange = new Label(grpRangeTest, SWT.NONE);
-
-        new Label(grpRangeTest, SWT.NONE).setText("Test: ");
-        txtMatchVersion = new Text(grpRangeTest, SWT.BORDER);
-        new Label(grpRangeTest, SWT.NONE).setText("Result: ");
-        lblMatchResult = new Label(grpRangeTest, SWT.NONE);
-
-        // Initialize controls
-        loadPreferences(false);
-        updateRadioButtons();
-
-        txtSampleVersion.setText(sampleVersion.toString());
-        updateCalculatedRange();
-
-        // Add listeners
-        SelectionListener buttonListener = new SelectionListener()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                readRadioButtons();
-                updateCalculatedRange();
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e)
-            {
-                readRadioButtons();
-                updateCalculatedRange();
-            }
-        };
-        btnLowerBoundAny.addSelectionListener(buttonListener);
-        btnLowerBoundMajor.addSelectionListener(buttonListener);
-        btnLowerBoundMinor.addSelectionListener(buttonListener);
-        btnLowerBoundMicro.addSelectionListener(buttonListener);
-        btnLowerBoundExact.addSelectionListener(buttonListener);
-
-        btnUpperBoundAny.addSelectionListener(buttonListener);
-        btnUpperBoundMajor.addSelectionListener(buttonListener);
-        btnUpperBoundMinor.addSelectionListener(buttonListener);
-        btnUpperBoundMicro.addSelectionListener(buttonListener);
-        btnUpperBoundExact.addSelectionListener(buttonListener);
-
-        txtSampleVersion.addModifyListener(new ModifyListener()
-        {
-            public void modifyText(ModifyEvent e)
-            {
-                try
-                {
-                    sampleVersion = VersionTable.getVersion(txtSampleVersion.getText());
-                }
-                catch (IllegalArgumentException x)
-                {
-                    sampleVersion = null;
-                }
-                updateCalculatedRange();
-            }
-        });
-        txtMatchVersion.addModifyListener(new ModifyListener()
-        {
-            public void modifyText(ModifyEvent e)
-            {
-                try
-                {
-                    matchVersion = VersionTable.getVersion(txtMatchVersion.getText());
-                }
-                catch (IllegalArgumentException x)
-                {
-                    matchVersion = null;
-                }
-                updateCalculatedRange();
-            }
-        });
-
-        // Layout
-        GridLayout layout = new GridLayout(1, false);
-        layout.verticalSpacing = 20;
-        composite.setLayout(layout);
-
-        grpLowerBound.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-        grpLowerBound.setLayout(new GridLayout(1, false));
-
-        grpUpperBound.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-        grpUpperBound.setLayout(new GridLayout(1, false));
-
-        grpRangeTest.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
-        grpRangeTest.setLayout(new GridLayout(2, false));
-
-        txtSampleVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        lblCalculatedRange.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        txtMatchVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        lblMatchResult.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-        return composite;
-    }
-
-    private void loadPreferences(boolean useDefaults)
-    {
-        IPreferenceStore prefs = getPreferenceStore();
-        String lowerBoundStr;
-        if (useDefaults)
-        {
-            lowerBoundStr = prefs.getDefaultString(SigilCore.DEFAULT_VERSION_LOWER_BOUND);
-        }
-        else
-        {
-            lowerBoundStr = prefs.getString(SigilCore.DEFAULT_VERSION_LOWER_BOUND);
-        }
-
-        String upperBoundStr;
-        if (useDefaults)
-        {
-            upperBoundStr = prefs.getDefaultString(SigilCore.DEFAULT_VERSION_UPPER_BOUND);
-        }
-        else
-        {
-            upperBoundStr = prefs.getString(SigilCore.DEFAULT_VERSION_UPPER_BOUND);
-        }
-
-        lowerBoundRule = VersionRangeBoundingRule.valueOf(lowerBoundStr);
-        upperBoundRule = VersionRangeBoundingRule.valueOf(upperBoundStr);
-    }
-
-    private void updateRadioButtons()
-    {
-        switch (lowerBoundRule)
-        {
-            case Exact:
-                btnLowerBoundExact.setSelection(true);
-                btnLowerBoundMicro.setSelection(false);
-                btnLowerBoundMinor.setSelection(false);
-                btnLowerBoundMajor.setSelection(false);
-                btnLowerBoundAny.setSelection(false);
-                break;
-            case Micro:
-                btnLowerBoundExact.setSelection(false);
-                btnLowerBoundMicro.setSelection(true);
-                btnLowerBoundMinor.setSelection(false);
-                btnLowerBoundMajor.setSelection(false);
-                btnLowerBoundAny.setSelection(false);
-                break;
-            case Minor:
-                btnLowerBoundExact.setSelection(false);
-                btnLowerBoundMicro.setSelection(false);
-                btnLowerBoundMinor.setSelection(true);
-                btnLowerBoundMajor.setSelection(false);
-                btnLowerBoundAny.setSelection(false);
-                break;
-            case Major:
-                btnLowerBoundExact.setSelection(false);
-                btnLowerBoundMicro.setSelection(false);
-                btnLowerBoundMinor.setSelection(false);
-                btnLowerBoundMajor.setSelection(true);
-                btnLowerBoundAny.setSelection(false);
-                break;
-            case Any:
-                btnLowerBoundExact.setSelection(false);
-                btnLowerBoundMicro.setSelection(false);
-                btnLowerBoundMinor.setSelection(false);
-                btnLowerBoundMajor.setSelection(false);
-                btnLowerBoundAny.setSelection(true);
-                break;
-        }
-
-        switch (upperBoundRule)
-        {
-            case Exact:
-                btnUpperBoundExact.setSelection(true);
-                btnUpperBoundMicro.setSelection(false);
-                btnUpperBoundMinor.setSelection(false);
-                btnUpperBoundMajor.setSelection(false);
-                btnUpperBoundAny.setSelection(false);
-                break;
-            case Micro:
-                btnUpperBoundExact.setSelection(false);
-                btnUpperBoundMicro.setSelection(true);
-                btnUpperBoundMinor.setSelection(false);
-                btnUpperBoundMajor.setSelection(false);
-                btnUpperBoundAny.setSelection(false);
-                break;
-            case Minor:
-                btnUpperBoundExact.setSelection(false);
-                btnUpperBoundMicro.setSelection(false);
-                btnUpperBoundMinor.setSelection(true);
-                btnUpperBoundMajor.setSelection(false);
-                btnUpperBoundAny.setSelection(false);
-                break;
-            case Major:
-                btnUpperBoundExact.setSelection(false);
-                btnUpperBoundMicro.setSelection(false);
-                btnUpperBoundMinor.setSelection(false);
-                btnUpperBoundMajor.setSelection(true);
-                btnUpperBoundAny.setSelection(false);
-                break;
-            case Any:
-                btnUpperBoundExact.setSelection(false);
-                btnUpperBoundMicro.setSelection(false);
-                btnUpperBoundMinor.setSelection(false);
-                btnUpperBoundMajor.setSelection(false);
-                btnUpperBoundAny.setSelection(true);
-        }
-    }
-
-    private void readRadioButtons()
-    {
-        if (btnLowerBoundExact.getSelection())
-        {
-            lowerBoundRule = VersionRangeBoundingRule.Exact;
-        }
-        else if (btnLowerBoundMicro.getSelection())
-        {
-            lowerBoundRule = VersionRangeBoundingRule.Micro;
-        }
-        else if (btnLowerBoundMinor.getSelection())
-        {
-            lowerBoundRule = VersionRangeBoundingRule.Minor;
-        }
-        else if (btnLowerBoundMajor.getSelection())
-        {
-            lowerBoundRule = VersionRangeBoundingRule.Major;
-        }
-        else if (btnLowerBoundAny.getSelection())
-        {
-            lowerBoundRule = VersionRangeBoundingRule.Any;
-        }
-
-        if (btnUpperBoundExact.getSelection())
-        {
-            upperBoundRule = VersionRangeBoundingRule.Exact;
-        }
-        else if (btnUpperBoundMicro.getSelection())
-        {
-            upperBoundRule = VersionRangeBoundingRule.Micro;
-        }
-        else if (btnUpperBoundMinor.getSelection())
-        {
-            upperBoundRule = VersionRangeBoundingRule.Minor;
-        }
-        else if (btnUpperBoundMajor.getSelection())
-        {
-            upperBoundRule = VersionRangeBoundingRule.Major;
-        }
-        else if (btnUpperBoundAny.getSelection())
-        {
-            upperBoundRule = VersionRangeBoundingRule.Any;
-        }
-    }
-
-    private void updateCalculatedRange()
-    {
-        VersionRange range;
-        String rangeStr;
-        String matchResult;
-
-        if (sampleVersion == null)
-        {
-            range = null;
-            rangeStr = "";
-        }
-        else
-        {
-            range = VersionRange.newInstance(sampleVersion, lowerBoundRule,
-                upperBoundRule);
-            rangeStr = range.toString();
-        }
-        lblCalculatedRange.setText(rangeStr);
-
-        if (matchVersion == null || range == null)
-        {
-            matchResult = "";
-        }
-        else
-        {
-            matchResult = range.contains(matchVersion) ? "MATCH!" : "No Match";
-        }
-        lblMatchResult.setText(matchResult);
-    }
-
-    public void init(IWorkbench workbench)
-    {
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    @Override
-    public boolean performOk()
-    {
-        getPreferenceStore().setValue(SigilCore.DEFAULT_VERSION_LOWER_BOUND,
-            lowerBoundRule.name());
-        getPreferenceStore().setValue(SigilCore.DEFAULT_VERSION_UPPER_BOUND,
-            upperBoundRule.name());
-
-        return true;
-    }
-
-    @Override
-    protected void performDefaults()
-    {
-        super.performDefaults();
-        loadPreferences(true);
-        updateRadioButtons();
-        updateCalculatedRange();
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/installs/OSGiInstallsPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/installs/OSGiInstallsPreferencePage.java
deleted file mode 100644
index 14dbe83..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/installs/OSGiInstallsPreferencePage.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.installs;
-
-import java.util.HashMap;
-import java.util.UUID;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstallType;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.preferences.ProjectDependentPreferencesPage;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class OSGiInstallsPreferencePage extends ProjectDependentPreferencesPage implements IWorkbenchPreferencePage
-{
-
-    private class Install
-    {
-        private String id;
-        private String location;
-        private IOSGiInstallType type;
-
-        private Install(String id, String location)
-        {
-            this.id = id;
-            this.location = location;
-        }
-
-        private IOSGiInstallType getType()
-        {
-            if (type == null)
-            {
-                type = SigilCore.getInstallManager().findInstallType(location);
-            }
-            return type;
-        }
-    }
-
-    private HashMap<String, Install> installs = new HashMap<String, Install>();
-    private CheckboxTableViewer viewer;
-    private boolean changed;
-
-    public OSGiInstallsPreferencePage()
-    {
-        super("OSGi Installs");
-    }
-
-    public void init(IWorkbench workbench)
-    {
-    }
-
-    @Override
-    protected Control createContents(Composite parent)
-    {
-        Composite control = new Composite(parent, SWT.NONE);
-
-        buildComponents(control);
-
-        load();
-
-        checkValid();
-
-        return control;
-    }
-
-    @Override
-    protected boolean isDirty()
-    {
-        return changed;
-    }
-
-    private void buildComponents(Composite control)
-    {
-        new Label(control, SWT.NONE).setText("Installs:");
-        new Label(control, SWT.NONE); // padding
-
-        Table table = new Table(control, SWT.CHECK | SWT.SINGLE | SWT.BORDER);
-
-        Button add = new Button(control, SWT.PUSH);
-        add.setText("Add");
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                add();
-            }
-        });
-
-        final Button remove = new Button(control, SWT.PUSH);
-        remove.setEnabled(false);
-        remove.setText("Remove");
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                remove();
-            }
-        });
-
-        // viewers
-        viewer = new CheckboxTableViewer(table);
-        viewer.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-
-        viewer.setLabelProvider(new LabelProvider()
-        {
-            @Override
-            public String getText(Object element)
-            {
-                Install i = (Install) element;
-                IOSGiInstallType type = i.getType();
-                if (type == null)
-                {
-                    return "<invalid> [" + i.location + "]";
-                }
-                else
-                {
-                    return type.getName() + " " + type.getVersion() + " [" + i.location
-                        + "]";
-                }
-            }
-
-            @Override
-            public Image getImage(Object element)
-            {
-                Install i = (Install) element;
-                IOSGiInstallType type = i.getType();
-
-                if (type == null)
-                {
-                    return null;
-                }
-                else
-                {
-                    return type.getIcon();
-                }
-            }
-        });
-
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                boolean enabled = !event.getSelection().isEmpty();
-                remove.setEnabled(enabled);
-            }
-        });
-
-        viewer.addCheckStateListener(new ICheckStateListener()
-        {
-            public void checkStateChanged(CheckStateChangedEvent event)
-            {
-                if (event.getChecked())
-                {
-                    changed = true;
-                }
-                viewer.setCheckedElements(new Object[] { event.getElement() });
-            }
-        });
-
-        viewer.setInput(installs.values());
-
-        // layout
-        control.setLayout(new GridLayout(2, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3));
-        add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-    }
-
-    private void load()
-    {
-        String pref = getPreferenceStore().getString(SigilCore.OSGI_INSTALLS);
-        if (pref != null && pref.length() > 0)
-        {
-            for (String id : pref.split(","))
-            {
-                String loc = getPreferenceStore().getString(
-                    SigilCore.OSGI_INSTALL_PREFIX + id);
-                installs.put(id, new Install(id, loc));
-            }
-        }
-
-        viewer.refresh();
-
-        if (!installs.isEmpty())
-        {
-            String defId = getPreferenceStore().getString(
-                SigilCore.OSGI_DEFAULT_INSTALL_ID);
-            if (defId == null || defId.trim().length() == 0)
-            {
-                viewer.setCheckedElements(new Object[] { installs.values().iterator().next() });
-            }
-            else
-            {
-                viewer.setCheckedElements(new Object[] { installs.get(defId) });
-            }
-        }
-    }
-
-    protected void doSave()
-    {
-        // zero out old configs
-        String pref = getPreferenceStore().getString(SigilCore.OSGI_INSTALLS);
-        if (pref != null && pref.length() > 0)
-        {
-            for (String id : pref.split(","))
-            {
-                getPreferenceStore().setToDefault(SigilCore.OSGI_INSTALL_PREFIX + id);
-            }
-        }
-
-        // store new configs
-        if (installs.isEmpty())
-        {
-            getPreferenceStore().setToDefault(SigilCore.OSGI_INSTALLS);
-            getPreferenceStore().setToDefault(SigilCore.OSGI_DEFAULT_INSTALL_ID);
-        }
-        else
-        {
-            StringBuffer buf = new StringBuffer();
-            for (Install i : installs.values())
-            {
-                if (buf.length() > 0)
-                {
-                    buf.append(",");
-                }
-                buf.append(i.id);
-                getPreferenceStore().setValue(SigilCore.OSGI_INSTALL_PREFIX + i.id,
-                    i.location);
-            }
-
-            getPreferenceStore().setValue(SigilCore.OSGI_INSTALLS, buf.toString());
-            Install def = (Install) viewer.getCheckedElements()[0];
-            getPreferenceStore().setValue(SigilCore.OSGI_DEFAULT_INSTALL_ID, def.id);
-        }
-        changed = false;
-    }
-
-    private boolean isOK()
-    {
-        return installs.isEmpty() || viewer.getCheckedElements().length > 0;
-    }
-
-    private void add()
-    {
-        Shell shell = SigilUI.getActiveWorkbenchShell();
-        DirectoryDialog dialog = new DirectoryDialog(shell);
-        String dir = dialog.open();
-        if (dir != null)
-        {
-            Install install = new Install(UUID.randomUUID().toString(), dir);
-            if (install.getType() == null)
-            {
-                MessageDialog.openError(shell, "Error", "Invalid OSGi install directory");
-            }
-            else
-            {
-                boolean empty = installs.isEmpty();
-
-                installs.put(install.id, install);
-                viewer.refresh();
-
-                if (empty)
-                {
-                    viewer.setCheckedElements(new Object[] { install });
-                }
-
-                checkValid();
-                changed = true;
-            }
-        }
-    }
-
-    private void checkValid()
-    {
-        if (isOK())
-        {
-            setErrorMessage(null);
-            setValid(true);
-        }
-        else
-        {
-            setErrorMessage("Missing default OSGi install");
-            setValid(false);
-        }
-    }
-
-    private void remove()
-    {
-        IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
-        Install i = (Install) sel.getFirstElement();
-        boolean def = viewer.getChecked(i);
-        installs.remove(i.id);
-        viewer.refresh();
-        if (def && installs.size() > 0)
-        {
-            viewer.setCheckedElements(new Object[] { installs.values().iterator().next() });
-        }
-        checkValid();
-        changed = true;
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/NewRepositoryWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/NewRepositoryWizard.java
deleted file mode 100644
index 0e5935e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/NewRepositoryWizard.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.eclipse.jface.wizard.Wizard;
-
-public class NewRepositoryWizard extends Wizard
-{
-
-    private IRepositoryModel repository;
-
-    private RepositoryTypeSelectionPage page = new RepositoryTypeSelectionPage();
-
-    public void addPages()
-    {
-        addPage(page);
-    }
-
-    @Override
-    public boolean performFinish()
-    {
-        repository = page.getRepository();
-        return true;
-    }
-
-    @Override
-    public boolean needsPreviousAndNextButtons()
-    {
-        return true;
-    }
-
-    public IRepositoryModel getRepository()
-    {
-        return repository;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesPreferencePage.java
deleted file mode 100644
index 0ad5e38..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesPreferencePage.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryPreferences;
-import org.apache.felix.sigil.eclipse.ui.internal.preferences.ProjectDependentPreferencesPage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class RepositoriesPreferencePage extends ProjectDependentPreferencesPage implements IWorkbenchPreferencePage
-{
-
-    private boolean changed;
-    private RepositoriesView viewPage;
-
-    public RepositoriesPreferencePage()
-    {
-        super("Repository Preferences");
-    }
-
-    @Override
-    protected Control createContents(Composite parent)
-    {
-        Control control = initContents(parent);
-        return control;
-    }
-
-    @Override
-    protected IPreferenceStore doGetPreferenceStore()
-    {
-        return SigilCore.getDefault().getPreferenceStore();
-    }
-
-    protected void changed()
-    {
-        changed = true;
-        updateApplyButton();
-    }
-
-    private Control initContents(Composite parent)
-    {
-        viewPage = new RepositoriesView(this);
-
-        Composite control = new Composite(parent, SWT.NONE);
-
-        TabFolder folder = new TabFolder(control, SWT.TOP);
-
-        TabItem view = new TabItem(folder, SWT.NONE);
-        view.setText("Repositories");
-        view.setControl(viewPage.createContents(folder));
-
-        control.setLayout(new GridLayout(1, true));
-        folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        return control;
-    }
-
-    public void init(IWorkbench workbench)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    protected void doSave()
-    {
-        try
-        {
-            IRepositoryPreferences config = SigilCore.getRepositoryPreferences();
-            config.saveRepositories(viewPage.getRepositories());
-
-            setErrorMessage(null);
-            getApplyButton().setEnabled(false);
-            changed = false;
-        }
-        catch (CoreException e)
-        {
-            setErrorMessage("Failed to save repositories:" + e.getStatus().getMessage());
-            SigilCore.error("Failed to save repositories", e);
-        }
-    }
-
-    @Override
-    protected boolean isDirty()
-    {
-        return changed;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesView.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesView.java
deleted file mode 100644
index a2db4df..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoriesView.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.ui.actions.RefreshRepositoryAction;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-public class RepositoriesView
-{
-    private final RepositoriesPreferencePage page;
-
-    private List<IRepositoryModel> repositories;
-
-    private TableViewer repositoryView;
-
-    public RepositoriesView(RepositoriesPreferencePage page)
-    {
-        this.page = page;
-    }
-
-    public Control createContents(Composite parent)
-    {
-        // Create Controls
-        Composite composite = new Composite(parent, SWT.NONE);
-
-        Table table = new Table(composite, SWT.MULTI | SWT.BORDER);
-
-        // Table Viewer Setup
-        repositoryView = new TableViewer(table);
-        repositoryView.setLabelProvider(new LabelProvider()
-        {
-            @Override
-            public String getText(Object element)
-            {
-                IRepositoryModel rep = (IRepositoryModel) element;
-                return rep.getName();
-            }
-
-            @Override
-            public Image getImage(Object element)
-            {
-                IRepositoryModel rep = (IRepositoryModel) element;
-                return rep.getType().getIcon();
-            }
-        });
-
-        repositoryView.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-
-        // Layout
-        composite.setLayout(new GridLayout(2, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 7));
-
-        createButtons(composite, repositoryView);
-
-        repositories = SigilCore.getRepositoryPreferences().loadRepositories();
-        repositoryView.setInput(repositories);
-
-        return composite;
-    }
-
-    private void createButtons(final Composite composite, final TableViewer repositoryView)
-    {
-        final Button add = new Button(composite, SWT.PUSH);
-        add.setText("Add...");
-        add.setEnabled(true);
-
-        final Button upBtn = new Button(composite, SWT.PUSH);
-        upBtn.setText("Up");
-        upBtn.setEnabled(false);
-
-        final Button downBtn = new Button(composite, SWT.PUSH);
-        downBtn.setText("Down");
-        downBtn.setEnabled(false);
-        
-        final Button edit = new Button(composite, SWT.PUSH);
-        edit.setText("Edit...");
-        edit.setEnabled(false);
-        
-        final Button remove = new Button(composite, SWT.PUSH);
-        remove.setText("Remove");
-        remove.setEnabled(false);
-
-        final Button refresh = new Button(composite, SWT.PUSH);
-        refresh.setText("Refresh");
-        refresh.setEnabled(false);
-                
-        // Listeners
-        add.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                add(composite);
-            }
-        });
-
-        edit.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
-                edit(composite, sel);
-            }
-        });
-
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
-                remove(sel);
-            }
-        });
-
-        refresh.addSelectionListener(new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
-                refresh(composite, sel);
-            }
-        });
-
-        upBtn.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                up();
-            }
-        });
-        
-        downBtn.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                down();
-            }
-        });
-        
-        repositoryView.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                boolean selected = !event.getSelection().isEmpty();
-                if (selected)
-                {
-                    refresh.setEnabled(true);
-
-                    IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-
-                    checkEditEnabled(edit, sel);
-                    checkRemoveEnabled(remove, sel);
-                    upBtn.setEnabled(sel.size() == 1);
-                    downBtn.setEnabled(sel.size() == 1);
-                }
-                else
-                {
-                    upBtn.setEnabled(false);
-                    downBtn.setEnabled(false);
-                    refresh.setEnabled(false);
-                    edit.setEnabled(false);
-                    remove.setEnabled(false);
-                }
-            }
-        });
-
-        // layout
-        add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        upBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        downBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        edit.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-    }
-    
-    private void up()
-    {
-        IRepositoryModel model = (IRepositoryModel) ((StructuredSelection) repositoryView.getSelection()).getFirstElement();
-        int i = repositories.indexOf(model);
-        if (i > 0)
-        {
-            repositories.remove(i);
-            repositories.add(i - 1, model);
-            repositoryView.refresh();
-        }
-    }
-
-    private void down()
-    {
-        IRepositoryModel model = (IRepositoryModel) ((StructuredSelection) repositoryView.getSelection()).getFirstElement();
-        int i = repositories.indexOf(model);
-        if (i < repositories.size() - 1)
-        {
-            repositories.remove(i);
-            repositories.add(i + 1, model);
-            repositoryView.refresh();
-        }
-    }    
-
-    @SuppressWarnings("unchecked")
-    private void checkRemoveEnabled(Button button, IStructuredSelection sel)
-    {
-        boolean alldynamic = true;
-        for (Iterator i = sel.iterator(); i.hasNext();)
-        {
-            IRepositoryModel model = (IRepositoryModel) i.next();
-            if (!model.getType().isDynamic())
-            {
-                alldynamic = false;
-                break;
-            }
-        }
-        button.setEnabled(alldynamic);
-    }
-
-    private void checkEditEnabled(Button edit, IStructuredSelection sel)
-    {
-        if (sel.size() == 1)
-        {
-            IRepositoryModel element = (IRepositoryModel) sel.getFirstElement();
-            if (WizardHelper.hasWizard(element.getType()))
-            {
-                edit.setEnabled(true);
-            }
-            else
-            {
-                edit.setEnabled(false);
-            }
-        }
-        else
-        {
-            edit.setEnabled(false);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private void refresh(Control parent, IStructuredSelection sel)
-    {
-        ArrayList<IRepositoryModel> models = new ArrayList<IRepositoryModel>(sel.size());
-
-        for (Iterator i = sel.iterator(); i.hasNext();)
-        {
-            IRepositoryModel model = (IRepositoryModel) i.next();
-            models.add(model);
-        }
-
-        new RefreshRepositoryAction(models.toArray(new IRepositoryModel[models.size()])).run();
-    }
-
-    private void add(Control parent)
-    {
-        NewRepositoryWizard wizard = new NewRepositoryWizard();
-        WizardDialog dialog = new WizardDialog(getShell(parent), wizard);
-        if (dialog.open() == Window.OK)
-        {
-            repositories.add(wizard.getRepository());
-            updated();
-        }
-    }
-
-    private void edit(Control parent, IStructuredSelection sel)
-    {
-        IRepositoryModel model = (IRepositoryModel) sel.getFirstElement();
-        try
-        {
-            RepositoryWizard wizard = WizardHelper.loadWizard(model.getType());
-            wizard.init(model);
-            WizardDialog dialog = new WizardDialog(getShell(parent), wizard);
-            if (dialog.open() == Window.OK)
-            {
-                updated();
-            }
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to load wizard", e);
-            MessageDialog.openError(getShell(parent), "Error", "Failed to load wizard:"
-                + e.getStatus().getMessage());
-        }
-    }
-
-    private Shell getShell(Control parent)
-    {
-        return parent.getShell();
-    }
-
-    @SuppressWarnings("unchecked")
-    private void remove(IStructuredSelection sel)
-    {
-        boolean change = false;
-        for (Iterator i = sel.iterator(); i.hasNext();)
-        {
-            change = repositories.remove(i.next());
-        }
-
-        if (change)
-        {
-            updated();
-        }
-    }
-
-    private void updated()
-    {
-        repositoryView.refresh();
-        page.changed();
-    }
-
-    public List<IRepositoryModel> getRepositories()
-    {
-        return repositories;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryTypeSelectionPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryTypeSelectionPage.java
deleted file mode 100644
index 74e856a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryTypeSelectionPage.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardSelectionPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-
-public class RepositoryTypeSelectionPage extends WizardSelectionPage implements IWizardPage
-{
-
-    private static final String TITLE = "Select Repository";
-
-    private TableViewer repositoryView;
-    private IRepositoryModel repositoryElement;
-
-    public RepositoryTypeSelectionPage()
-    {
-        super(TITLE);
-        setTitle(TITLE);
-    }
-
-    public void createControl(Composite parent)
-    {
-        Composite control = new Composite(parent, SWT.NONE);
-
-        // components
-        new Label(control, SWT.NONE).setText("Repositories");
-        Table table = new Table(control, SWT.SINGLE | SWT.BORDER);
-
-        // layout
-        control.setLayout(new GridLayout(1, true));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        // view
-        repositoryView = new TableViewer(table);
-        repositoryView.setLabelProvider(new LabelProvider()
-        {
-            @Override
-            public String getText(Object element)
-            {
-                IRepositoryType rep = (IRepositoryType) element;
-                return rep.getName();
-            }
-
-            @Override
-            public Image getImage(Object element)
-            {
-                IRepositoryType rep = (IRepositoryType) element;
-                return rep.getIcon();
-            }
-        });
-
-        repositoryView.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-
-        repositoryView.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                if (!event.getSelection().isEmpty())
-                {
-                    IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-                    IRepositoryType type = (IRepositoryType) sel.getFirstElement();
-                    repositoryElement = SigilCore.getRepositoryPreferences().newRepositoryElement(
-                        type);
-                    selectWizardNode(new RepositoryWizardNode(repositoryElement));
-                }
-            }
-        });
-
-        ArrayList<IRepositoryType> descriptors = new ArrayList<IRepositoryType>(
-            SigilCore.getRepositoryPreferences().loadRepositoryTypes());
-
-        for (Iterator<IRepositoryType> i = descriptors.iterator(); i.hasNext();)
-        {
-            if (!i.next().isDynamic())
-            {
-                i.remove();
-            }
-        }
-
-        repositoryView.setInput(descriptors);
-
-        setControl(control);
-    }
-
-    public void selectWizardNode(RepositoryWizardNode node)
-    {
-        setSelectedNode(node);
-    }
-
-    public RepositoryWizardNode getSelectedWizardNode()
-    {
-        return (RepositoryWizardNode) getSelectedNode();
-    }
-
-    public IRepositoryModel getRepository()
-    {
-        return repositoryElement;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryViewData.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryViewData.java
deleted file mode 100644
index 714bb12..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryViewData.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-
-class RepositoryViewData
-{
-    private String name;
-    private IRepositoryModel[] reps;
-
-    RepositoryViewData(String name, IRepositoryModel[] reps)
-    {
-        this.name = name;
-        this.reps = reps;
-    }
-
-    String getName()
-    {
-        return name;
-    }
-
-    IRepositoryModel[] getRepositories()
-    {
-        return reps;
-    }
-
-    void setName(String name)
-    {
-        this.name = name;
-    }
-
-    void setRepositories(IRepositoryModel[] reps)
-    {
-        this.reps = reps;
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryWizardNode.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryWizardNode.java
deleted file mode 100644
index 6a4a7d6..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/RepositoryWizardNode.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardNode;
-import org.eclipse.swt.graphics.Point;
-
-public class RepositoryWizardNode implements IWizardNode
-{
-
-    private IRepositoryModel repository;
-
-    private RepositoryWizard wizard;
-
-    public RepositoryWizardNode(IRepositoryModel repository)
-    {
-        this.repository = repository;
-    }
-
-    public void dispose()
-    {
-        if (wizard != null)
-        {
-            wizard.dispose();
-            wizard = null;
-        }
-    }
-
-    public Point getExtent()
-    {
-        return new Point(-1, -1);
-    }
-
-    public IWizard getWizard()
-    {
-        if (wizard == null)
-        {
-            try
-            {
-                wizard = WizardHelper.loadWizard(repository.getType());
-                wizard.init(repository);
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to create wizard for " + repository.getType(), e);
-            }
-        }
-        return wizard;
-    }
-
-    public IRepositoryModel getRepository()
-    {
-        return repository;
-    }
-
-    public boolean isContentCreated()
-    {
-        return wizard != null;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/WizardHelper.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/WizardHelper.java
deleted file mode 100644
index 43709bb..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/preferences/repository/WizardHelper.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.preferences.repository;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.eclipse.core.runtime.CoreException;
-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.Platform;
-
-public class WizardHelper
-{
-    public static RepositoryWizard loadWizard(IRepositoryType type) throws CoreException
-    {
-        IConfigurationElement e = findWizardConfig(type.getId());
-
-        if (e == null)
-        {
-            throw SigilCore.newCoreException("No wizard registered for repository "
-                + type, null);
-        }
-
-        return (RepositoryWizard) e.createExecutableExtension("class");
-    }
-
-    public static boolean hasWizard(IRepositoryType type)
-    {
-        return findWizardConfig(type.getId()) != null;
-    }
-
-    private static IConfigurationElement findWizardConfig(String id)
-    {
-        IExtensionRegistry registry = Platform.getExtensionRegistry();
-        IExtensionPoint p = registry.getExtensionPoint(SigilUI.REPOSITORY_WIZARD_EXTENSION_POINT_ID);
-
-        for (IExtension e : p.getExtensions())
-        {
-            for (IConfigurationElement c : e.getConfigurationElements())
-            {
-                if (id.equals(c.getAttribute("repository")))
-                {
-                    return c;
-                }
-            }
-        }
-
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportPackageProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportPackageProposal.java
deleted file mode 100644
index a9b8d3a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportPackageProposal.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.quickfix;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.ModelElementFactoryException;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class ImportPackageProposal implements IJavaCompletionProposal
-{
-
-    private IPackageExport e;
-    private ISigilProjectModel n;
-
-    public ImportPackageProposal(IPackageExport e, ISigilProjectModel n)
-    {
-        this.e = e;
-        this.n = n;
-    }
-
-    public int getRelevance()
-    {
-        return 100;
-    }
-
-    public void apply(IDocument document)
-    {
-        try
-        {
-
-            final IPackageImport i = ModelElementFactory.getInstance().newModelElement(
-                IPackageImport.class);
-            i.setPackageName(e.getPackageName());
-            VersionRange selectedVersions = ModelHelper.getDefaultRange(e.getVersion());
-            i.setVersions(selectedVersions);
-
-            WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-            {
-                @Override
-                protected void execute(IProgressMonitor monitor) throws CoreException
-                {
-                    n.getBundle().getBundleInfo().addImport(i);
-                    n.save(monitor);
-                }
-            };
-
-            SigilUI.runWorkspaceOperation(op, null);
-        }
-        catch (ModelElementFactoryException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    public String getAdditionalProposalInfo()
-    {
-        return null;
-    }
-
-    public IContextInformation getContextInformation()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getDisplayString()
-    {
-        return "Import package " + e.getPackageName() + " version " + e.getVersion()
-            + " to bundle";
-    }
-
-    public Image getImage()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Point getSelection(IDocument document)
-    {
-        return null;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportQuickFixProcessor.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportQuickFixProcessor.java
deleted file mode 100644
index dee8516..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportQuickFixProcessor.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.quickfix;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.search.ISearchResult;
-import org.apache.felix.sigil.search.SigilSearch;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ArrayType;
-import org.eclipse.jdt.core.dom.ClassInstanceCreation;
-import org.eclipse.jdt.core.dom.ImportDeclaration;
-import org.eclipse.jdt.core.dom.MethodInvocation;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.QualifiedName;
-import org.eclipse.jdt.core.dom.SimpleType;
-import org.eclipse.jdt.core.dom.Type;
-import org.eclipse.jdt.internal.corext.dom.ASTNodes;
-import org.eclipse.jdt.ui.text.java.IInvocationContext;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jdt.ui.text.java.IProblemLocation;
-import org.eclipse.jdt.ui.text.java.IQuickFixProcessor;
-
-public class ImportQuickFixProcessor implements IQuickFixProcessor
-{
-
-    private static final Object SYNC_FLAG = new Object();
-
-    public boolean hasCorrections(ICompilationUnit unit, int problemId)
-    {
-        switch (problemId)
-        {
-            case IProblem.ForbiddenReference:
-            case IProblem.ImportNotFound:
-            case IProblem.IsClassPathCorrect:
-            case IProblem.UndefinedType:
-            case IProblem.UndefinedName:
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    public IJavaCompletionProposal[] getCorrections(IInvocationContext context,
-        IProblemLocation[] locations) throws CoreException
-    {
-        try
-        {
-            HashMap<Object, IJavaCompletionProposal> results = new HashMap<Object, IJavaCompletionProposal>();
-
-            ISigilProjectModel project = findProject(context);
-
-            if (project != null)
-            {
-                for (int i = 0; i < locations.length; i++)
-                {
-                    switch (locations[i].getProblemId())
-                    {
-                        case IProblem.ForbiddenReference:
-                            handleImportNotFound(project, context, locations[i], results);
-                            break;
-                        case IProblem.ImportNotFound:
-                            handleImportNotFound(project, context, locations[i], results);
-                            break;
-                        case IProblem.IsClassPathCorrect:
-                            handleIsClassPathCorrect(project, context, locations[i],
-                                results);
-                            break;
-                        case IProblem.UndefinedType:
-                            handleUndefinedType(project, context, locations[i], results);
-                            break;
-                        case IProblem.UndefinedName:
-                            handleUndefinedName(project, context, locations[i], results);
-                            break;
-                    }
-                }
-            }
-
-            return (IJavaCompletionProposal[]) results.values().toArray(
-                new IJavaCompletionProposal[results.size()]);
-        }
-        catch (RuntimeException e)
-        {
-            e.printStackTrace();
-            throw e;
-        }
-    }
-
-    private void handleUndefinedName(ISigilProjectModel project,
-        IInvocationContext context, IProblemLocation problem,
-        HashMap<Object, IJavaCompletionProposal> results)
-    {
-        Name node = findNode(context, problem);
-
-        if (node == null)
-        {
-            return;
-        }
-        addSearchResults(node, project, results);
-    }
-
-    private void handleIsClassPathCorrect(ISigilProjectModel project,
-        final IInvocationContext context, IProblemLocation problemLocation,
-        final HashMap<Object, IJavaCompletionProposal> results)
-    {
-        for (final String type : problemLocation.getProblemArguments())
-        {
-            final String iPackage = type.substring(0, type.lastIndexOf("."));
-
-            for (IPackageExport pe : JavaHelper.findExportsForPackage(project, iPackage))
-            {
-                results.put(type, new ImportPackageProposal(pe, project));
-            }
-        }
-
-        if (!results.containsKey(SYNC_FLAG))
-        {
-            //results.put( SYNC_FLAG, null);
-        }
-    }
-
-    private void handleUndefinedType(ISigilProjectModel project,
-        IInvocationContext context, IProblemLocation problem,
-        HashMap<Object, IJavaCompletionProposal> results) throws CoreException
-    {
-        Name node = findNode(context, problem);
-
-        if (node == null)
-        {
-            return;
-        }
-        addSearchResults(node, project, results);
-    }
-
-    private void handleImportNotFound(ISigilProjectModel project,
-        final IInvocationContext context, IProblemLocation location,
-        final HashMap<Object, IJavaCompletionProposal> results) throws CoreException
-    {
-        ASTNode selectedNode = location.getCoveringNode(context.getASTRoot());
-        if (selectedNode == null)
-            return;
-
-        // check QualifiedName for search results as well - 
-        // happens if import package is already added but exported package has been removed 
-        if (selectedNode instanceof ClassInstanceCreation)
-        {
-            ClassInstanceCreation c = (ClassInstanceCreation) selectedNode;
-            Type t = c.getType();
-            Name node = findName(t);
-            if (node != null)
-            {
-                addSearchResults(node, project, results);
-            }
-        }
-        else
-        {
-            for (final String iPackage : readPackage(selectedNode, location))
-            {
-                if (!results.containsKey(iPackage))
-                {
-                    for (IPackageExport pe : JavaHelper.findExportsForPackage(project,
-                        iPackage))
-                    {
-                        results.put(iPackage, new ImportPackageProposal(pe, project));
-                    }
-                }
-            }
-        }
-    }
-
-    private void addSearchResults(Name node, ISigilProjectModel project,
-        HashMap<Object, IJavaCompletionProposal> results)
-    {
-        for (ISearchResult result : SigilSearch.findProviders(
-            node.getFullyQualifiedName(), project, null))
-        {
-            if (project.getBundle().findImport(result.getPackageName()) == null)
-            {
-                String type = result.getPackageName() + "."
-                    + node.getFullyQualifiedName();
-                results.put(type, new ImportSearchResultProposal(
-                    SigilUI.getActiveWorkbenchShell(), result, node, project));
-            }
-        }
-    }
-
-    private Name findName(Type t)
-    {
-        if (t.isSimpleType())
-        {
-            SimpleType st = (SimpleType) t;
-            return st.getName();
-        }
-        else if (t.isArrayType())
-        {
-            ArrayType at = (ArrayType) t;
-            return findName(at.getElementType());
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private Name findNode(IInvocationContext context, IProblemLocation problem)
-    {
-        ASTNode selectedNode = problem.getCoveringNode(context.getASTRoot());
-        if (selectedNode == null)
-        {
-            return null;
-        }
-
-        while (selectedNode.getLocationInParent() == QualifiedName.NAME_PROPERTY)
-        {
-            selectedNode = selectedNode.getParent();
-        }
-
-        Name node = null;
-
-        if (selectedNode instanceof Type)
-        {
-            node = findName((Type) selectedNode);
-        }
-        else if (selectedNode instanceof Name)
-        {
-            node = (Name) selectedNode;
-        }
-
-        return node;
-    }
-
-    private ISigilProjectModel findProject(IInvocationContext context)
-        throws CoreException
-    {
-        IProject project = context.getCompilationUnit().getJavaProject().getProject();
-        if (project.hasNature(SigilCore.NATURE_ID))
-        {
-            return SigilCore.create(project);
-        }
-        else
-        {
-            return null;
-        }
-    }
-
-    private String[] readPackage(ASTNode selectedNode, IProblemLocation location)
-    {
-        ArrayList<String> packages = new ArrayList<String>();
-
-        ImportDeclaration id = (ImportDeclaration) ASTNodes.getParent(selectedNode,
-            ASTNode.IMPORT_DECLARATION);
-
-        if (id == null)
-        {
-            MethodInvocation m = (MethodInvocation) ASTNodes.getParent(selectedNode,
-                ASTNode.METHOD_INVOCATION);
-
-            if (m != null)
-            {
-                packages.add(readPackage(m));
-                while (m.getExpression() != null
-                    && m.getExpression() instanceof MethodInvocation)
-                {
-                    m = (MethodInvocation) m.getExpression();
-                    packages.add(readPackage(m));
-                }
-            }
-        }
-        else
-        {
-            if (id.isOnDemand())
-            {
-                packages.add(id.getName().toString());
-            }
-            else
-            {
-                String iStr = id.getName().toString();
-                packages.add(iStr.substring(0, iStr.lastIndexOf(".")));
-            }
-        }
-
-        return packages.toArray(new String[packages.size()]);
-    }
-
-    private String readPackage(MethodInvocation m)
-    {
-        return m.resolveMethodBinding().getDeclaringClass().getPackage().getName();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportSearchResultProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportSearchResultProposal.java
deleted file mode 100644
index 8770cd2..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportSearchResultProposal.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.quickfix;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.search.ISearchResult;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
-import org.eclipse.jdt.internal.corext.dom.ASTNodes;
-import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
-import org.eclipse.jdt.ui.CodeStyleConfiguration;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class ImportSearchResultProposal implements IJavaCompletionProposal
-{
-
-    private ISigilProjectModel project;
-    private ICompilationUnit fCompilationUnit;
-    private final ISearchResult result;
-    private final Shell shell;
-
-    public ImportSearchResultProposal(Shell shell, ISearchResult result, Name node, ISigilProjectModel project)
-    {
-        this.shell = shell;
-        this.result = result;
-        this.project = project;
-        if (node != null)
-        {
-            CompilationUnit cu = (CompilationUnit) ASTNodes.getParent(node,
-                ASTNode.COMPILATION_UNIT);
-            this.fCompilationUnit = (ICompilationUnit) cu.getJavaElement();
-        }
-    }
-
-    public int getRelevance()
-    {
-        return 100;
-    }
-
-    public void apply(IDocument document)
-    {
-        IPackageExport e = result.getExport();
-        if (result.getExport() == null)
-        {
-            if (MessageDialog.openQuestion(shell, "Modify "
-                + result.getProvider().getBundleInfo().getSymbolicName(),
-                result.getPackageName()
-                    + " is not exported. Do you want to export it now?"))
-            {
-                final IPackageExport pe = ModelElementFactory.getInstance().newModelElement(
-                    IPackageExport.class);
-                pe.setPackageName(result.getPackageName());
-                //e.setVersion(version)
-                final ISigilProjectModel mod = result.getProvider().getAncestor(
-                    ISigilProjectModel.class);
-                if (mod == null)
-                {
-                    throw new IllegalStateException(
-                        "Attempt to modify binary package export");
-                }
-                WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-                {
-                    @Override
-                    protected void execute(IProgressMonitor monitor) throws CoreException
-                    {
-                        mod.getBundle().getBundleInfo().addExport(pe);
-                        mod.save(monitor);
-                    }
-                };
-
-                SigilUI.runWorkspaceOperation(op, null);
-                e = pe;
-            }
-        }
-
-        final IPackageImport i = ModelElementFactory.getInstance().newModelElement(
-            IPackageImport.class);
-        i.setPackageName(e.getPackageName());
-        VersionRange selectedVersions = ModelHelper.getDefaultRange(e.getVersion());
-        i.setVersions(selectedVersions);
-
-        WorkspaceModifyOperation op = new WorkspaceModifyOperation()
-        {
-            @Override
-            protected void execute(IProgressMonitor monitor) throws CoreException
-            {
-                project.getBundle().getBundleInfo().addImport(i);
-                project.save(null);
-            }
-        };
-
-        SigilUI.runWorkspaceOperation(op, null);
-        addSourceImport();
-    }
-
-    private void addSourceImport()
-    {
-        // add import
-        try
-        {
-            ImportRewrite rewrite = CodeStyleConfiguration.createImportRewrite(
-                fCompilationUnit, true);
-            rewrite.addImport(result.getClassName());
-            JavaModelUtil.applyEdit(fCompilationUnit, rewrite.rewriteImports(null),
-                false, null);
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to add import", e);
-        }
-    }
-
-    public String getAdditionalProposalInfo()
-    {
-        return null;
-    }
-
-    public IContextInformation getContextInformation()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getDisplayString()
-    {
-        String type = result.getClassName();
-        String loc = result.getExport() == null ? " from "
-            + result.getProvider().getBundleInfo().getSymbolicName() : " version "
-            + result.getExport().getVersion();
-        return "Import " + type + loc;
-    }
-
-    public Image getImage()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Point getSelection(IDocument document)
-    {
-        return null;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportedClassReference.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportedClassReference.java
deleted file mode 100644
index b5c787d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/quickfix/ImportedClassReference.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.quickfix;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-
-public class ImportedClassReference
-{
-    private IPackageImport pi;
-    private String type;
-
-    public ImportedClassReference(IPackageImport packageImport, String typeName)
-    {
-        this.pi = packageImport;
-        this.type = typeName;
-    }
-
-    public IPackageImport getPackageImport()
-    {
-        return pi;
-    }
-
-    public String getFullType()
-    {
-        return type;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/BundleActivatorChange.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/BundleActivatorChange.java
deleted file mode 100644
index 773264c..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/BundleActivatorChange.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-/**
- * @author dave
- *
- */
-public class BundleActivatorChange extends Change
-{
-
-    private final ISigilProjectModel sigil;
-    private final String oldName;
-    private final String newName;
-
-    /**
-     * @param sigil
-     * @param oldName
-     * @param newName
-     */
-    public BundleActivatorChange(ISigilProjectModel sigil, String oldName, String newName)
-    {
-        this.sigil = sigil;
-        this.oldName = oldName;
-        this.newName = newName;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.core.refactoring.Change#getModifiedElement()
-     */
-    @Override
-    public Object getModifiedElement()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.core.refactoring.Change#getName()
-     */
-    @Override
-    public String getName()
-    {
-        return "Bundle Activator Rename";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    @Override
-    public void initializeValidationData(IProgressMonitor monitor)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    @Override
-    public RefactoringStatus isValid(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.core.refactoring.Change#perform(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    @Override
-    public Change perform(IProgressMonitor monitor) throws CoreException
-    {
-        sigil.getBundle().getBundleInfo().setActivator(newName);
-        sigil.save(monitor);
-        return new BundleActivatorChange(sigil, newName, oldName);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportChangePreviewViewer.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportChangePreviewViewer.java
deleted file mode 100644
index 30554c2..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportChangePreviewViewer.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.eclipse.ltk.ui.refactoring.ChangePreviewViewerInput;
-import org.eclipse.ltk.ui.refactoring.IChangePreviewViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @author dave
- *
- */
-public class ExportChangePreviewViewer implements IChangePreviewViewer
-{
-
-    private ViewForm control;
-    private Label text;
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.ui.refactoring.IChangePreviewViewer#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createControl(Composite parent)
-    {
-        control = new ViewForm(parent, SWT.NONE);
-        text = new Label(control, SWT.NONE);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.ui.refactoring.IChangePreviewViewer#getControl()
-     */
-    public Control getControl()
-    {
-        return control;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ltk.ui.refactoring.IChangePreviewViewer#setInput(org.eclipse.ltk.ui.refactoring.ChangePreviewViewerInput)
-     */
-    public void setInput(ChangePreviewViewerInput input)
-    {
-        ExportPackageChange change = (ExportPackageChange) input.getChange();
-        StringBuilder buf = new StringBuilder();
-        buf.append("Export-Package: \n");
-        if ( change.getOldExport() != null ) {
-            buf.append("- ");
-            appendPackage(change.getOldExport(), buf);
-            buf.append("\n");
-        }
-        
-        if ( change.getNewExport() != null ) {
-            buf.append("+ ");
-            appendPackage(change.getNewExport(), buf);
-            buf.append("\n");
-        }
-        text.setText(buf.toString());
-    }
-
-    /**
-     * @param pe
-     * @param buf
-     */
-    private void appendPackage(IPackageExport pe, StringBuilder buf)
-    {
-        buf.append(pe.getPackageName());
-        if (pe.getVersion() != null) {
-            buf.append(";version=");
-            buf.append(pe.getVersion());
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportPackageChange.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportPackageChange.java
deleted file mode 100644
index eaf0bdf..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ExportPackageChange.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-public class ExportPackageChange extends Change
-{
-
-    private final ISigilProjectModel sigil;
-    private final IPackageExport oldExport;
-    private final IPackageExport newExport;
-
-    public ExportPackageChange(ISigilProjectModel sigil, IPackageExport oldExport, IPackageExport newExport)
-    {
-        this.sigil = sigil;
-        this.oldExport = oldExport;
-        this.newExport = newExport;
-    }
-
-    @Override
-    public Object getModifiedElement()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public String getName()
-    {
-        return "Export package update";
-    }
-
-    @Override
-    public void initializeValidationData(IProgressMonitor progress)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public RefactoringStatus isValid(IProgressMonitor progress) throws CoreException,
-        OperationCanceledException
-    {
-        // TODO check project is synchronized
-        return new RefactoringStatus();
-    }
-
-    @Override
-    public Change perform(IProgressMonitor progress) throws CoreException
-    {
-        if (oldExport != null)
-        {
-            sigil.getBundle().getBundleInfo().removeExport(oldExport);
-        }
-
-        if (newExport != null)
-        {
-            sigil.getBundle().getBundleInfo().addExport(newExport);
-        }
-
-        sigil.save(progress);
-
-        return new ExportPackageChange(sigil, newExport, oldExport);
-    }
-
-    /**
-     * @return
-     */
-    public IPackageExport getOldExport()
-    {
-        return oldExport;
-    }
-
-    /**
-     * @return
-     */
-    public IPackageExport getNewExport()
-    {
-        return newExport;
-    }
-    
-    public ISigilProjectModel getProject() {
-        return sigil;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ImportPackageChange.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ImportPackageChange.java
deleted file mode 100644
index cf3b990..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/ImportPackageChange.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-public class ImportPackageChange extends Change
-{
-
-    private final ISigilProjectModel sigil;
-    private final IPackageImport oldImport;
-    private final IPackageImport newImport;
-
-    public ImportPackageChange(ISigilProjectModel sigil, IPackageImport oldImport, IPackageImport newImport)
-    {
-        this.sigil = sigil;
-        this.oldImport = oldImport;
-        this.newImport = newImport;
-    }
-
-    @Override
-    public Object getModifiedElement()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public String getName()
-    {
-        return "Import package update";
-    }
-
-    @Override
-    public void initializeValidationData(IProgressMonitor arg0)
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public RefactoringStatus isValid(IProgressMonitor progress) throws CoreException,
-        OperationCanceledException
-    {
-        // TODO check project is synchronized
-        return new RefactoringStatus();
-    }
-
-    @Override
-    public Change perform(IProgressMonitor progress) throws CoreException
-    {
-        if (oldImport != null)
-        {
-            sigil.getBundle().getBundleInfo().removeImport(oldImport);
-        }
-
-        if (newImport != null)
-        {
-            sigil.getBundle().getBundleInfo().addImport(newImport);
-        }
-
-        sigil.save(progress);
-
-        return new ImportPackageChange(sigil, newImport, oldImport);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveActivatorParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveActivatorParticipant.java
deleted file mode 100644
index f45a4e9..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveActivatorParticipant.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
-
-public class MoveActivatorParticipant extends MoveParticipant
-{
-    private ICompilationUnit compilationUnit;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor monitor,
-        CheckConditionsContext ctx) throws OperationCanceledException
-    {
-        RefactoringStatus status = null;
-        if (getArguments().getUpdateReferences())
-        {
-            IPackageFragment pf = (IPackageFragment) compilationUnit.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
-            String oldName = qualifiedName(pf, compilationUnit.getElementName());
-            try
-            {
-                ISigilProjectModel sigil = SigilCore.create(compilationUnit.getJavaProject().getProject());
-                if (oldName.equals(sigil.getBundle().getBundleInfo().getActivator()))
-                {
-                    IPackageFragment dest = (IPackageFragment) getArguments().getDestination();
-                    String newName = qualifiedName(dest, compilationUnit.getElementName());
-
-                    RefactorUtil.touch(ctx, sigil);
-                    changes.add(new BundleActivatorChange(sigil, oldName, newName));
-                    status = RefactoringStatus.createInfoStatus("Updating bundle activator from "
-                        + oldName + " to " + newName);
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to update activator", e);
-            }
-        }
-
-        return status;
-    }
-
-    /**
-     * @param pf 
-     * @param compilationUnit2
-     * @return
-     */
-    private static String qualifiedName(IPackageFragment pf, String name)
-    {
-        name = name.substring(0, name.lastIndexOf('.'));
-        return "".equals(pf.getElementName()) ? name : pf.getElementName() + '.' + name;
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        compilationUnit = (ICompilationUnit) element;
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveExportedClassParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveExportedClassParticipant.java
deleted file mode 100644
index 262fe95..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MoveExportedClassParticipant.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
-
-public class MoveExportedClassParticipant extends MoveParticipant
-{
-    private ICompilationUnit compilationUnit;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor monitor,
-        CheckConditionsContext ctx) throws OperationCanceledException
-    {
-        RefactoringStatus status = null;
-        if (getArguments().getUpdateReferences())
-        {
-            try
-            {
-                ISigilProjectModel sourceProject = SigilCore.create(compilationUnit.getJavaProject().getProject());
-                RefactorUtil.touch(ctx, sourceProject);
-                IPackageFragment packageFragment = (IPackageFragment) compilationUnit.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
-                final String packageName = packageFragment.getElementName();
-                IPackageExport oldExport = ModelHelper.findExport(sourceProject,
-                    packageName);
-
-                if (oldExport != null) {
-                    status = RefactoringStatus.createWarningStatus("Moving a class from an exported package effects client bundles");
-                    
-                    IPackageFragment dest = (IPackageFragment) getArguments().getDestination();
-                    ISigilProjectModel destProject = SigilCore.create(dest.getJavaProject().getProject());
-
-                    if (!destProject.equals(sourceProject)) {
-                        status.addWarning("Moving an exported class to another bundle effects client bundles that use Require-Bundle");
-                    }
-                    
-                    IPackageExport newExport = ModelHelper.findExport(destProject,
-                        dest.getElementName());
-                    
-                    if ( newExport == null ) {
-                        newExport = RefactorUtil.createNewExport(status, changes, destProject, dest.getElementName());
-                    }
-                    
-                    if ( packageFragment.getCompilationUnits().length == 1 ) {
-                        status.addInfo("Last exported class removed from " + packageName);
-                        changes.add( new ExportPackageChange(sourceProject, oldExport, null));
-                    }
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to update activator", e);
-            }
-        }
-
-        return status;
-    }
-
-    /**
-     * @param pf 
-     * @param compilationUnit2
-     * @return
-     */
-    private static String qualifiedName(IPackageFragment pf, String name)
-    {
-        name = name.substring(0, name.lastIndexOf('.'));
-        return "".equals(pf.getElementName()) ? name : pf.getElementName() + '.' + name;
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        compilationUnit = (ICompilationUnit) element;
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MovePackageParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MovePackageParticipant.java
deleted file mode 100644
index b0addef..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/MovePackageParticipant.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
-
-public class MovePackageParticipant extends MoveParticipant
-{
-    private IPackageFragment packageFragment;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor monitor,
-        CheckConditionsContext context) throws OperationCanceledException
-    {
-        if (getArguments().getUpdateReferences())
-        {
-            try
-            {
-                ISigilProjectModel sourceProject = SigilCore.create(packageFragment.getJavaProject().getProject());
-                IPackageFragmentRoot dest = (IPackageFragmentRoot) getArguments().getDestination();
-                ISigilProjectModel destProject = SigilCore.create(dest.getJavaProject().getProject());
-
-                RefactoringStatus status = new RefactoringStatus();
-                if (!sourceProject.equals(destProject))
-                {
-                    RefactorUtil.touch(context, sourceProject);
-                    RefactorUtil.touch(context, destProject);
-
-                    final String packageName = packageFragment.getElementName();
-                    IPackageExport oldExport = ModelHelper.findExport(sourceProject,
-                        packageName);
-
-                    if (oldExport != null)
-                    {
-                        IPackageExport newExport = ModelElementFactory.getInstance().newModelElement(
-                            IPackageExport.class);
-
-                        newExport.setPackageName(oldExport.getPackageName());
-                        newExport.setVersion(oldExport.getRawVersion());
-
-                        changes.add(new ExportPackageChange(destProject, null, newExport));
-                        changes.add(new ExportPackageChange(sourceProject, oldExport,
-                            null));
-
-                        status.addWarning("Package " + packageName + " is exported from "
-                            + sourceProject.getSymbolicName()
-                            + ", this may effect client bundles that use require bundle");
-                    }
-                    else
-                    {
-                        SubMonitor sub = SubMonitor.convert(monitor);
-                        
-                        sub.beginTask("Resolving package users", 200);
-                        
-                        Set<String> users = JavaHelper.findLocalPackageUsers(
-                            sourceProject, packageName, sub.newChild(100));
-                        Set<String> dependencies = JavaHelper.findLocalPackageDependencies(
-                            sourceProject, packageName, sub.newChild(100));
-
-                        if (users.size() > 0 && dependencies.size() > 0)
-                        {
-                            status.addWarning("Package " + packageName
-                                + " is coupled to " + users + " and " + dependencies
-                                + " this may cause a cyclical dependency");
-                        }
-
-                        if (users.size() > 0)
-                        { // attempt to move an API package
-                            IPackageExport newExport = RefactorUtil.createNewExport(status, changes,
-                                destProject, packageName);
-                            RefactorUtil.createNewImport(status, changes, sourceProject, newExport);
-                        }
-
-                        if (dependencies.size() > 0)
-                        { // moved an impl package
-                            for (String dep : dependencies)
-                            {
-                                IPackageExport newExport = RefactorUtil.createNewExport(status, changes,
-                                    sourceProject, dep);
-                                RefactorUtil.createNewImport(status, changes, destProject, newExport);
-                            }
-                        }
-                    }
-                }
-                return status;
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to create move refactor conditions", e);
-                throw new OperationCanceledException(e.getMessage());
-            }
-        }
-        else
-        {
-            return new RefactoringStatus();
-        }
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        return "Sigil package move participant";
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        this.packageFragment = (IPackageFragment) element;
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RefactorUtil.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RefactorUtil.java
deleted file mode 100644
index 1fa8d50..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RefactorUtil.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.ResourceChangeChecker;
-
-/**
- * @author dave
- *
- */
-class RefactorUtil
-{
-    static final void touch(CheckConditionsContext context, ISigilProjectModel sigil)
-    {
-        ResourceChangeChecker checker = (ResourceChangeChecker) context.getChecker(ResourceChangeChecker.class);
-        IResourceChangeDescriptionFactory deltaFactory = checker.getDeltaFactory();
-        IFile file = sigil.getProject().getFile(SigilCore.SIGIL_PROJECT_FILE);
-        deltaFactory.change(file);
-    }    
-    
-    static void createNewImport(RefactoringStatus status, List<Change> changes, ISigilProjectModel project,
-        IPackageExport export)
-    {
-        IPackageImport newImport = ModelElementFactory.getInstance().newModelElement(
-            IPackageImport.class);
-        newImport.setPackageName(export.getPackageName());
-        newImport.setVersions(ModelHelper.getDefaultRange(export.getVersion()));
-
-        status.addInfo("Creating new import in " + project.getSymbolicName());
-        changes.add(new ImportPackageChange(project, null, newImport));
-    }
-
-    static IPackageExport createNewExport(RefactoringStatus status,
-        List<Change> changes, ISigilProjectModel project, String packageName)
-    {
-        IPackageExport newExport = ModelElementFactory.getInstance().newModelElement(
-            IPackageExport.class);
-        newExport.setPackageName(packageName);
-        // new export inherits project version by default
-        newExport.setVersion(project.getVersion());
-
-        status.addInfo("Creating new export " + packageName + " in "
-            + project.getSymbolicName());
-        changes.add(new ExportPackageChange(project, null, newExport));
-        return newExport;
-    }    
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorPackageParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorPackageParticipant.java
deleted file mode 100644
index d62c501..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorPackageParticipant.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-public class RenameActivatorPackageParticipant extends RenameParticipant
-{
-    private IPackageFragment packageFragment;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor monitor,
-        CheckConditionsContext ctx) throws OperationCanceledException
-    {
-        RefactoringStatus status = null;
-        if (getArguments().getUpdateReferences())
-        {
-            try
-            {
-                ISigilProjectModel sigil = SigilCore.create(packageFragment.getJavaProject().getProject());
-                RefactorUtil.touch(ctx, sigil);
-
-                String oldName = sigil.getBundle().getBundleInfo().getActivator();
-                if (oldName != null)
-                {
-                    String[] parts = splitPackageClass(oldName);
-                    if (parts[0].equals(packageFragment.getElementName()))
-                    {
-                        String newName = getArguments().getNewName() + "." + parts[1];
-                        changes.add(new BundleActivatorChange(sigil, oldName, newName));
-                        status = RefactoringStatus.createInfoStatus("Updating bundle activator from "
-                            + oldName + " to " + newName);
-                    }
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to update activator", e);
-            }
-        }
-
-        return status;
-    }
-
-    private static String[] splitPackageClass(String className)
-    {
-        String[] parts = new String[2];
-        int i = className.lastIndexOf('.');
-        if (i == -1)
-        {
-            parts[0] = "";
-            parts[1] = className;
-        }
-        else
-        {
-            parts[0] = className.substring(0, i);
-            parts[1] = className.substring(i + 1);
-        }
-        return parts;
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        return "Sigil Rename Activator Package Participant";
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        packageFragment = (IPackageFragment) element;
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorParticipant.java
deleted file mode 100644
index 60b6d81..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenameActivatorParticipant.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-public class RenameActivatorParticipant extends RenameParticipant
-{
-    private ICompilationUnit compilationUnit;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor monitor,
-        CheckConditionsContext ctx) throws OperationCanceledException
-    {
-        RefactoringStatus status = null;
-        if (getArguments().getUpdateReferences())
-        {
-            IPackageFragment pf = (IPackageFragment) compilationUnit.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
-            String oldName = qualifiedName(pf, compilationUnit.getElementName());
-            try
-            {
-                ISigilProjectModel sigil = SigilCore.create(compilationUnit.getJavaProject().getProject());
-                if (oldName.equals(sigil.getBundle().getBundleInfo().getActivator()))
-                {
-                    String newName = qualifiedName(pf, getArguments().getNewName());
-
-                    RefactorUtil.touch(ctx, sigil);
-                    changes.add(new BundleActivatorChange(sigil, oldName, newName));
-                    status = RefactoringStatus.createInfoStatus("Updating bundle activator from "
-                        + oldName + " to " + newName);
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to update activator", e);
-            }
-        }
-
-        return status;
-    }
-
-    /**
-     * @param pf 
-     * @param compilationUnit2
-     * @return
-     */
-    private static String qualifiedName(IPackageFragment pf, String name)
-    {
-        name = name.substring(0, name.lastIndexOf('.'));
-        return pf.getElementName() + '.' + name;
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor monitor) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        compilationUnit = (ICompilationUnit) element;
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenamePackageParticipant.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenamePackageParticipant.java
deleted file mode 100644
index 36382de..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/refactor/RenamePackageParticipant.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.refactor;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.NullChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-public class RenamePackageParticipant extends RenameParticipant
-{
-    private IPackageFragment packageFragment;
-    private List<Change> changes = new LinkedList<Change>();
-
-    @Override
-    public RefactoringStatus checkConditions(IProgressMonitor pm,
-        CheckConditionsContext context) throws OperationCanceledException
-    {
-        RefactoringStatus status = new RefactoringStatus();
-
-        if (getArguments().getUpdateReferences())
-        {
-            try
-            {
-                ISigilProjectModel sigil = SigilCore.create(packageFragment.getJavaProject().getProject());
-                final String packageName = packageFragment.getElementName();
-
-                SigilCore.log("Rename checkConditions " + packageName);
-
-                IPackageExport oldExport = ModelHelper.findExport(sigil, packageName);
-
-                if (oldExport != null)
-                {
-                    // record change to check if out of sync...
-                    RefactorUtil.touch(context, sigil);
-
-                    status = RefactoringStatus.createWarningStatus("Package "
-                        + packageName
-                        + " is exported. Renaming this package may effect bundles outside of this workspace");
-                    SigilCore.log("Export Package " + packageName + " renamed to "
-                        + getArguments().getNewName());
-
-                    IPackageExport newExport = ModelElementFactory.getInstance().newModelElement(
-                        IPackageExport.class);
-                    newExport.setPackageName(getArguments().getNewName());
-                    newExport.setVersion(oldExport.getVersion());
-
-                    changes.add(new ExportPackageChange(sigil, oldExport, newExport));
-
-                    for (ISigilProjectModel other : SigilCore.getRoot().getProjects())
-                    {
-                        if (!sigil.equals(other))
-                        {
-                            // record change to check if out of sync...
-                            RefactorUtil.touch(context, other);
-                        }
-                        changes.add(createImportChange(status, other, oldExport,
-                            newExport));
-                    }
-                }
-            }
-            catch (CoreException e)
-            {
-                SigilCore.warn("Failed to create export package refactor", e);
-                throw new OperationCanceledException(
-                    "Failed to create export package refactor");
-            }
-        }
-        return status;
-    }
-
-    @Override
-    public Change createChange(IProgressMonitor pm) throws CoreException,
-        OperationCanceledException
-    {
-        if (changes.isEmpty())
-        {
-            return new NullChange();
-        }
-        else
-        {
-            CompositeChange ret = new CompositeChange("Export-Package update");
-
-            ret.addAll(changes.toArray(new Change[changes.size()]));
-
-            return ret;
-        }
-    }
-
-    @Override
-    public String getName()
-    {
-        return "Sigil export package rename participant";
-    }
-
-    @Override
-    protected boolean initialize(Object element)
-    {
-        this.packageFragment = (IPackageFragment) element;
-        return true;
-    }
-
-    private Change createImportChange(RefactoringStatus status, ISigilProjectModel sigil,
-        IPackageExport oldExport, IPackageExport newExport)
-    {
-        IBundleModelElement info = sigil.getBundle().getBundleInfo();
-        Collection<IPackageImport> imports = info.getImports();
-
-        for (IPackageImport oldImport : imports)
-        {
-            if (oldImport.accepts(oldExport))
-            {
-                IPackageImport newImport = ModelElementFactory.getInstance().newModelElement(
-                    IPackageImport.class);
-
-                newImport.setPackageName(newExport.getPackageName());
-                newImport.setVersions(oldImport.getVersions());
-
-                status.addInfo(buildImportChangeMsg(sigil, oldImport, newImport));
-
-                return new ImportPackageChange(sigil, oldImport, newImport);
-            }
-        }
-
-        // ok no change
-        return new NullChange();
-    }
-
-    private static final String buildImportChangeMsg(ISigilProjectModel sigil,
-        IPackageImport oldImport, IPackageImport newImport)
-    {
-        return "Updating import " + oldImport.getPackageName() + " version "
-            + oldImport.getVersions() + " to " + newImport.getPackageName() + " version "
-            + newImport.getVersions() + " in project " + sigil.getSymbolicName()
-            + " version " + sigil.getVersion();
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizard.java
deleted file mode 100644
index 1c27230..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizard.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.repository;
-
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-
-public class FileSystemRepositoryWizard extends RepositoryWizard
-{
-    @Override
-    public void addPages()
-    {
-        addPage(new FileSystemRepositoryWizardPage(this));
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizardPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizardPage.java
deleted file mode 100644
index 96a5374..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/FileSystemRepositoryWizardPage.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.repository;
-
-import java.io.File;
-
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizardPage;
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.DirectoryFieldEditor;
-import org.eclipse.jface.wizard.IWizardPage;
-
-public class FileSystemRepositoryWizardPage extends RepositoryWizardPage implements IWizardPage
-{
-
-    private DirectoryFieldEditor dirEditor;
-
-    protected FileSystemRepositoryWizardPage(RepositoryWizard parent)
-    {
-        super("File System Repository", parent);
-    }
-
-    @Override
-    public void createFieldEditors()
-    {
-        dirEditor = new DirectoryFieldEditor("dir", "Directory:", getFieldEditorParent());
-        addField(dirEditor);
-        addField(new BooleanFieldEditor("recurse", "Recurse:", getFieldEditorParent()));
-    }
-
-    @Override
-    protected void checkPageComplete()
-    {
-        super.checkPageComplete();
-        if (isPageComplete())
-        {
-            setPageComplete(dirEditor.getStringValue().length() > 0);
-            if (isPageComplete())
-            {
-                if (new File(dirEditor.getStringValue()).isDirectory())
-                {
-                    setPageComplete(true);
-                    setErrorMessage(null);
-                }
-                else
-                {
-                    setPageComplete(false);
-                    setErrorMessage("Invalid directory");
-                }
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizard.java
deleted file mode 100644
index 0afef2e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizard.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.repository;
-
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-
-public class OSGiInstallRepositoryWizard extends RepositoryWizard
-{
-    @Override
-    public void addPages()
-    {
-        addPage(new OSGiInstallRepositoryWizardPage(this));
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizardPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizardPage.java
deleted file mode 100644
index 83a1f96..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/repository/OSGiInstallRepositoryWizardPage.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.repository;
-
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.install.IOSGiInstall;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizard;
-import org.apache.felix.sigil.eclipse.ui.wizard.repository.RepositoryWizardPage;
-import org.eclipse.jface.preference.RadioGroupFieldEditor;
-
-public class OSGiInstallRepositoryWizardPage extends RepositoryWizardPage
-{
-
-    protected OSGiInstallRepositoryWizardPage(RepositoryWizard parent)
-    {
-        super("OSGi Install Repository", parent);
-    }
-
-    @Override
-    public void createFieldEditors()
-    {
-        ArrayList<String[]> installs = new ArrayList<String[]>();
-        for (String id : SigilCore.getInstallManager().getInstallIDs())
-        {
-            IOSGiInstall i = SigilCore.getInstallManager().findInstall(id);
-            installs.add(new String[] { i.getType().getName(), id });
-        }
-        String[][] strs = installs.toArray(new String[installs.size()][]);
-
-        RadioGroupFieldEditor editor = new RadioGroupFieldEditor("id", "Install", 1,
-            strs, getFieldEditorParent());
-
-        addField(editor);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/startup/SigilStartup.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/startup/SigilStartup.java
deleted file mode 100644
index d29655d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/startup/SigilStartup.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.startup;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.felix.sigil.common.repository.IRepositoryChangeListener;
-import org.apache.felix.sigil.common.repository.RepositoryChangeEvent;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.job.ResolveProjectsJob;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.IStartup;
-
-public class SigilStartup implements IStartup
-{
-
-    public void earlyStartup()
-    {
-        final AtomicInteger updateCounter = new AtomicInteger();
-
-        // Register a repository change listener to re-run the resolver when repository changes
-        SigilCore.getGlobalRepositoryManager().addRepositoryChangeListener(
-            new IRepositoryChangeListener()
-            {
-                public void repositoryChanged(RepositoryChangeEvent event)
-                {
-                    if (!SigilUI.WORKSPACE_REPOSITORY_ID.equals(event.getRepository().getId()))
-                    {
-                        final int update = updateCounter.incrementAndGet();
-
-                        Job job = new Job("Pending repository update")
-                        {
-                            @Override
-                            protected IStatus run(IProgressMonitor monitor)
-                            {
-                                if (update == updateCounter.get())
-                                {
-                                    IWorkspace workspace = ResourcesPlugin.getWorkspace();
-                                    ResolveProjectsJob job = new ResolveProjectsJob(
-                                        workspace);
-                                    job.setSystem(true);
-                                    job.schedule();
-                                }
-                                return Status.OK_STATUS;
-                            }
-
-                        };
-                        job.setSystem(true);
-                        job.schedule(100);
-                    }
-                    //else {
-                    //   Repository changes are handled by ProjectResourceListener 
-                    //}
-                }
-            });
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/ModelElementComparator.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/ModelElementComparator.java
deleted file mode 100644
index f1a3c70..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/ModelElementComparator.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.eclipse.jface.viewers.ContentViewer;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-public class ModelElementComparator extends ViewerComparator
-{
-    private static final int EXPORT_GROUP = 0;
-    private static final int IMPORT_GROUP = 1;
-    private static final int REQUIRE_GROUP = 2;
-    private static final int OTHER_GROUP = 4;
-
-    public int category(Object element)
-    {
-        if (element instanceof IPackageImport)
-        {
-            return IMPORT_GROUP;
-        }
-        else if (element instanceof IPackageExport)
-        {
-            return EXPORT_GROUP;
-        }
-        else if (element instanceof IRequiredBundle)
-        {
-            return REQUIRE_GROUP;
-        }
-        else
-        {
-            return OTHER_GROUP;
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public int compare(Viewer viewer, Object e1, Object e2)
-    {
-        int cat1 = category(e1);
-        int cat2 = category(e2);
-
-        if (cat1 != cat2)
-        {
-            return cat1 - cat2;
-        }
-
-        if (cat1 == OTHER_GROUP)
-        {
-            String name1;
-            String name2;
-
-            if (viewer == null || !(viewer instanceof ContentViewer))
-            {
-                name1 = e1.toString();
-                name2 = e2.toString();
-            }
-            else
-            {
-                IBaseLabelProvider prov = ((ContentViewer) viewer).getLabelProvider();
-                if (prov instanceof ILabelProvider)
-                {
-                    ILabelProvider lprov = (ILabelProvider) prov;
-                    name1 = lprov.getText(e1);
-                    name2 = lprov.getText(e2);
-                }
-                else
-                {
-                    name1 = e1.toString();
-                    name2 = e2.toString();
-                }
-            }
-            if (name1 == null)
-            {
-                name1 = "";//$NON-NLS-1$
-            }
-            if (name2 == null)
-            {
-                name2 = "";//$NON-NLS-1$
-            }
-
-            // use the comparator to compare the strings
-            return getComparator().compare(name1, name2);
-        }
-        else
-        {
-            Comparable c1 = (Comparable) e1;
-            Comparable c2 = (Comparable) e2;
-            return c1.compareTo(c2);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/RepositoryViewPart.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/RepositoryViewPart.java
deleted file mode 100644
index fe3aeab..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/RepositoryViewPart.java
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map.Entry;
-
-import org.apache.felix.sigil.common.model.ICompoundModelElement;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryChangeListener;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.felix.sigil.common.repository.RepositoryChangeEvent;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.model.util.ModelHelper;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.actions.RefreshRepositoryAction;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.eclipse.ui.util.DefaultTreeContentProvider;
-import org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class RepositoryViewPart extends ViewPart implements IRepositoryChangeListener
-{
-
-    public class FindUsersAction extends Action
-    {
-        @Override
-        public String getText()
-        {
-            return "Find Uses";
-        }
-
-        @Override
-        public void run()
-        {
-            ISelection s = treeViewer.getSelection();
-            if (!s.isEmpty())
-            {
-                IStructuredSelection sel = (IStructuredSelection) s;
-                IModelElement e = (IModelElement) sel.getFirstElement();
-                List<IModelElement> users = ModelHelper.findUsers(e);
-                String msg = null;
-                if (users.isEmpty())
-                {
-                    msg = "No users of " + e;
-                }
-                else
-                {
-                    StringBuilder b = new StringBuilder();
-                    for (IModelElement u : users)
-                    {
-                        ISigilBundle bndl = u.getAncestor(ISigilBundle.class);
-                        b.append(bndl);
-                        b.append("->");
-                        b.append(u);
-                        b.append("\n");
-                    }
-                    msg = b.toString();
-                }
-                MessageDialog.openInformation(getViewSite().getShell(), "Information",
-                    msg);
-            }
-        }
-    }
-
-    class RepositoryAction extends Action
-    {
-        final IBundleRepository rep;
-        final IRepositoryModel model;
-
-        public RepositoryAction(IBundleRepository rep)
-        {
-            this.rep = rep;
-            this.model = SigilCore.getRepositoryModel(rep);
-        }
-
-        @Override
-        public void run()
-        {
-            treeViewer.setInput(rep);
-            tableViewer.setInput(rep);
-            createMenu();
-        }
-
-        @Override
-        public String getText()
-        {
-            String name = model.getName();
-            if (treeViewer.getInput() == rep)
-            {
-                name = "> " + name;
-            }
-            return name;
-        }
-
-        @Override
-        public ImageDescriptor getImageDescriptor()
-        {
-            Image img = model.getType().getIcon();
-            if (img == null)
-            {
-                return ImageDescriptor.createFromFile(RepositoryViewPart.class,
-                    "/icons/repository.gif");
-            }
-            else
-            {
-                return ImageDescriptor.createFromImage(img);
-            }
-        }
-    }
-
-    class CollapseAction extends Action
-    {
-        @Override
-        public void run()
-        {
-            treeViewer.collapseAll();
-        }
-
-        @Override
-        public String getText()
-        {
-            return "Collapse All";
-        }
-
-        @Override
-        public ImageDescriptor getImageDescriptor()
-        {
-            return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-                ISharedImages.IMG_ELCL_COLLAPSEALL);
-        }
-    }
-
-    class RefreshAction extends Action
-    {
-        @Override
-        public void run()
-        {
-            IBundleRepository rep = (IBundleRepository) treeViewer.getInput();
-            if (rep != null)
-            {
-                new RefreshRepositoryAction(rep).run();
-            }
-        }
-
-        @Override
-        public String getText()
-        {
-            return "Refresh";
-        }
-
-        @Override
-        public ImageDescriptor getImageDescriptor()
-        {
-
-            return ImageDescriptor.createFromFile(RepositoryViewPart.class,
-                "/icons/bundle-refresh.gif");
-        }
-
-    }
-
-    private TreeViewer treeViewer;
-    private TableViewer tableViewer;
-
-    @Override
-    public void createPartControl(Composite parent)
-    {
-        createBody(parent);
-        createMenu();
-        SigilCore.getGlobalRepositoryManager().addRepositoryChangeListener(this);
-    }
-
-    @Override
-    public void dispose()
-    {
-        SigilCore.getGlobalRepositoryManager().removeRepositoryChangeListener(this);
-        super.dispose();
-    }
-
-    private void createMenu()
-    {
-        createTopMenu();
-        createLocalMenu();
-    }
-
-    private void createLocalMenu()
-    {
-        /*MenuManager menuMgr = new MenuManager();
-        menuMgr.add( new FindUsersAction() );
-        Menu menu = menuMgr.createContextMenu(treeViewer.getControl());
-
-        treeViewer.getControl().setMenu(menu);
-        getViewSite().registerContextMenu(menuMgr, treeViewer); */
-        IActionBars bars = getViewSite().getActionBars();
-        IToolBarManager toolBar = bars.getToolBarManager();
-        toolBar.add(new RefreshAction());
-        toolBar.add(new CollapseAction());
-    }
-
-    private void createTopMenu()
-    {
-        IActionBars bars = getViewSite().getActionBars();
-        IMenuManager menu = bars.getMenuManager();
-        menu.removeAll();
-        for (final IBundleRepository rep : SigilCore.getGlobalRepositoryManager().getRepositories())
-        {
-            if (treeViewer.getInput() == null)
-            {
-                treeViewer.setInput(rep);
-                tableViewer.setInput(rep);
-            }
-
-            RepositoryAction action = new RepositoryAction(rep);
-            menu.add(action);
-        }
-    }
-
-    private void createBody(Composite parent)
-    {
-        // components
-        Composite control = new Composite(parent, SWT.NONE);
-        Table table = new Table(control, SWT.SINGLE);
-        table.setHeaderVisible(true);
-        Tree tree = new Tree(control, SWT.NONE);
-
-        // layout
-        control.setLayout(new GridLayout(1, false));
-        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-
-        // viewers
-        createPropertiesViewer(table);
-        createContentsViewer(tree);
-    }
-
-    /**
-     * @param tree
-     */
-    private void createContentsViewer(Tree tree)
-    {
-        treeViewer = new TreeViewer(tree);
-        treeViewer.setContentProvider(new DefaultTreeContentProvider()
-        {
-            public Object[] getChildren(Object parentElement)
-            {
-                if (parentElement instanceof ICompoundModelElement)
-                {
-                    ICompoundModelElement model = (ICompoundModelElement) parentElement;
-                    return model.children();
-                }
-
-                return null;
-            }
-
-            public Object getParent(Object element)
-            {
-                if (element instanceof IModelElement)
-                {
-                    IModelElement model = (IModelElement) element;
-                    return model.getParent();
-                }
-
-                return null;
-            }
-
-            public boolean hasChildren(Object element)
-            {
-                if (element instanceof ICompoundModelElement)
-                {
-                    ICompoundModelElement model = (ICompoundModelElement) element;
-                    return model.children().length > 0;
-                }
-                return false;
-            }
-
-            public Object[] getElements(Object inputElement)
-            {
-                IBundleRepository rep = (IBundleRepository) inputElement;
-                IRepositoryModel model = SigilCore.getRepositoryModel(rep);
-                if ( model.getProblem() == null ) {
-                    return getBundles(rep);
-                }
-                else {
-                    return new Object[] { model.getProblem() };
-                }
-            }
-        });
-
-        treeViewer.setComparator(new ModelElementComparator());
-
-        treeViewer.setLabelProvider(new ModelLabelProvider());
-
-        treeViewer.addDragSupport(DND.DROP_LINK,
-            new Transfer[] { LocalSelectionTransfer.getTransfer() },
-            new DragSourceAdapter()
-            {
-                @Override
-                public void dragFinished(DragSourceEvent event)
-                {
-                    // TODO Auto-generated method stub
-                    super.dragFinished(event);
-                }
-
-                @Override
-                public void dragSetData(DragSourceEvent event)
-                {
-                    // TODO Auto-generated method stub
-                    super.dragSetData(event);
-                }
-
-                @SuppressWarnings("unchecked")
-                @Override
-                public void dragStart(DragSourceEvent event)
-                {
-                    if (treeViewer.getSelection().isEmpty())
-                    {
-                        IStructuredSelection sel = (IStructuredSelection) treeViewer.getSelection();
-                        for (Iterator<IModelElement> i = sel.iterator(); i.hasNext();)
-                        {
-                            IModelElement e = i.next();
-                            if (e instanceof ISigilBundle)
-                            {
-                                event.data = e;
-                            }
-                            else
-                            {
-                                event.doit = false;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        event.doit = false;
-                    }
-                }
-            });
-    }
-
-    /**
-     * @param table
-     */
-    private void createPropertiesViewer(Table table)
-    {
-        tableViewer = new TableViewer(table);
-        tableViewer.setContentProvider(new DefaultTableProvider() {
-
-            public Object[] getElements(Object inputElement)
-            {
-                IBundleRepository rep = (IBundleRepository) inputElement;
-                IRepositoryModel model = SigilCore.getRepositoryModel(rep);
-                return toArray(model.getProperties().entrySet());
-            }            
-        });
-                
-        TableViewerColumn keyCol = new TableViewerColumn(tableViewer, SWT.NONE);
-        keyCol.getColumn().setText("Key");
-        keyCol.getColumn().setWidth(100);
-        keyCol.setLabelProvider(new ColumnLabelProvider() {
-            @SuppressWarnings("unchecked")
-            @Override
-            public String getText(Object element)
-            {
-                Entry<String, String> entry = (Entry<String, String>) element;
-                return entry.getKey();
-            }            
-        });
-        
-        TableViewerColumn valCol = new TableViewerColumn(tableViewer, SWT.NONE);
-        valCol.getColumn().setText("Value");
-        valCol.getColumn().setWidth(500);
-        valCol.setLabelProvider(new ColumnLabelProvider() {
-            @SuppressWarnings("unchecked")
-            @Override
-            public String getText(Object element)
-            {
-                Entry<String, String> entry = (Entry<String, String>) element;
-                return entry.getValue();
-            }            
-        });
-    }
-
-    @Override
-    public void setFocus()
-    {
-    }
-
-    public void repositoryChanged(RepositoryChangeEvent event)
-    {
-        switch (event.getType())
-        {
-            case ADDED:
-                createTopMenu();
-                break;
-            case CHANGED:
-                if (event.getRepository() == treeViewer.getInput())
-                {
-                    SigilUI.runInUI(new Runnable()
-                    {
-                        public void run()
-                        {
-                            treeViewer.refresh();
-                        }
-                    });
-                }
-                break;
-            case REMOVED:
-                if (event.getRepository() == treeViewer.getInput())
-                {
-                    treeViewer.setInput(null);
-                }
-                createTopMenu();
-        }
-    }
-
-    private Object[] getBundles(IBundleRepository repository)
-    {
-        final LinkedList<ISigilBundle> bundles = new LinkedList<ISigilBundle>();
-        repository.accept(new IRepositoryVisitor()
-        {
-            public boolean visit(ISigilBundle bundle)
-            {
-                bundles.add(bundle);
-                return true;
-            }
-        });
-        return bundles.toArray();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleConnectionHighlighter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleConnectionHighlighter.java
deleted file mode 100644
index 0f32001..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleConnectionHighlighter.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.zest.core.widgets.GraphConnection;
-import org.eclipse.zest.core.widgets.GraphItem;
-import org.eclipse.zest.core.widgets.GraphNode;
-
-public class BundleConnectionHighlighter implements ISelectionChangedListener
-{
-
-    private BundleResolverView view;
-
-    public BundleConnectionHighlighter(BundleResolverView view)
-    {
-        this.view = view;
-    }
-
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-        ISelection selection = event.getSelection();
-        if (!selection.isEmpty())
-        {
-            IStructuredSelection str = (IStructuredSelection) selection;
-
-            Object sel = str.getFirstElement();
-
-            if (sel instanceof ISigilBundle)
-            {
-                BundleGraph graph = (BundleGraph) view.getBundlegraph();
-
-                ISigilBundle selected = (ISigilBundle) sel;
-                Set<ISigilBundle> connected = graph.getTargets(selected);
-
-                highlightLinks(graph, selected, connected);
-                highlightBundles(graph, selected, connected);
-            }
-            else if (sel instanceof Link)
-            {
-                GraphConnection c = (GraphConnection) findGraphItem(sel);
-                if (c != null)
-                {
-                    c.unhighlight();
-                    c.setHighlightColor(ColorConstants.blue);
-                    c.highlight();
-                }
-            }
-        }
-        else
-        {
-            // TODO clear highlights...
-        }
-    }
-
-    private void highlightBundles(BundleGraph graph, ISigilBundle selected,
-        Set<ISigilBundle> connected)
-    {
-        for (ISigilBundle bundle : graph.getBundles())
-        {
-            GraphNode node = (GraphNode) findGraphItem(bundle);
-            if (node != null)
-            {
-                node.unhighlight();
-
-                if (bundle == selected)
-                {
-                    node.setHighlightColor(ColorConstants.yellow);
-                    node.highlight();
-                }
-                else if (view.isDisplayed(BundleResolverView.DEPENDENTS))
-                {
-                    if (connected.contains(bundle))
-                    {
-                        node.setHighlightColor(ColorConstants.lightBlue);
-                        node.highlight();
-                    }
-                }
-            }
-        }
-    }
-
-    private void highlightLinks(BundleGraph graph, ISigilBundle selected,
-        Set<ISigilBundle> connected)
-    {
-        for (Link l : graph.getLinks())
-        {
-            GraphConnection c = (GraphConnection) findGraphItem(l);
-            if (c != null)
-            {
-                c.unhighlight();
-
-                if (view.isDisplayed(BundleResolverView.DEPENDENTS))
-                {
-                    if (l.getSource() == selected && connected.contains(l.getTarget()))
-                    {
-                        c.setHighlightColor(ColorConstants.lightBlue);
-                        c.highlight();
-                    }
-                }
-            }
-        }
-    }
-
-    private GraphItem findGraphItem(Object l)
-    {
-        try
-        {
-            return view.getGraphViewer().findGraphItem(l);
-        }
-        catch (ArrayIndexOutOfBoundsException e)
-        {
-            // temporary fix for issue 
-            // https://bugs.eclipse.org/bugs/show_bug.cgi?id=242523
-            return null;
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraph.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraph.java
deleted file mode 100644
index fc8562d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraph.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-
-public class BundleGraph
-{
-
-    private HashMap<ISigilBundle, LinkedList<Link>> lookup = new HashMap<ISigilBundle, LinkedList<Link>>();
-    private LinkedList<Link> links = new LinkedList<Link>();
-    private HashSet<ISigilBundle> bundles = new HashSet<ISigilBundle>();
-
-    public void startResolution(IModelElement requirement)
-    {
-    }
-
-    public void endResolution(IModelElement requirement, ISigilBundle target)
-    {
-        ISigilBundle source = requirement.getAncestor(ISigilBundle.class);
-
-        bundles.add(source);
-        bundles.add(target);
-
-        LinkedList<Link> links = lookup.get(source);
-
-        if (links == null)
-        {
-            links = new LinkedList<Link>();
-            lookup.put(source, links);
-        }
-
-        Link l = null;
-        for (Link c : links)
-        {
-            if (c.getTarget() == target)
-            {
-                l = c;
-                break;
-            }
-        }
-
-        if (l == null)
-        {
-            l = new Link(source, target);
-            links.add(l);
-            this.links.add(l);
-        }
-
-        l.addRequirement(requirement);
-    }
-
-    public List<Link> getLinks()
-    {
-        return links;
-    }
-
-    public Set<ISigilBundle> getBundles()
-    {
-        return bundles;
-    }
-
-    public Set<ISigilBundle> getTargets(ISigilBundle bundle)
-    {
-        HashSet<ISigilBundle> targets = new HashSet<ISigilBundle>();
-
-        for (Link l : getLinks(bundle))
-        {
-            targets.add(l.getTarget());
-        }
-
-        return targets;
-    }
-
-    public List<Link> getLinks(ISigilBundle selected)
-    {
-        List<Link> l = lookup.get(selected);
-        return l == null ? Collections.<Link> emptyList() : l;
-    }
-
-    public List<Link> getDependentLinks(ISigilBundle bundle)
-    {
-        ArrayList<Link> found = new ArrayList<Link>(links.size());
-
-        for (Link l : links)
-        {
-            if (l.getTarget() == bundle)
-            {
-                found.add(l);
-            }
-        }
-
-        found.trimToSize();
-
-        return found;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphContentProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphContentProvider.java
deleted file mode 100644
index 345dcfd..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphContentProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.zest.core.viewers.IGraphContentProvider;
-
-public class BundleGraphContentProvider implements IGraphContentProvider
-{
-
-    public Object[] getElements(Object input)
-    {
-        BundleGraph graph = (BundleGraph) input;
-        return graph.getLinks().toArray();
-    }
-
-    public Object getDestination(Object element)
-    {
-        Link l = (Link) element;
-        return l.isSatisfied() ? l.getTarget() : new Link.Unsatisfied();
-    }
-
-    public Object getSource(Object element)
-    {
-        Link l = (Link) element;
-        return l.getSource();
-    }
-
-    public void dispose()
-    {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphLabelProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphLabelProvider.java
deleted file mode 100644
index 2e090bf..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphLabelProvider.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class BundleGraphLabelProvider extends LabelProvider
-{
-
-    private BundleResolverView view;
-
-    public BundleGraphLabelProvider(BundleResolverView view)
-    {
-        this.view = view;
-    }
-
-    @Override
-    public String getText(Object element)
-    {
-        if (element instanceof Link)
-        {
-            Link l = (Link) element;
-            if (l.isSatisfied())
-            {
-                if (view.isDisplayed(BundleResolverView.LINK_LABELS))
-                {
-                    return view.getLinkText((Link) element);
-                }
-                else
-                {
-                    return "";
-                }
-            }
-            else
-            {
-                return view.getLinkText((Link) element);
-            }
-        }
-        else if (element instanceof ISigilBundle)
-        {
-            ISigilBundle b = (ISigilBundle) element;
-            return b.getBundleInfo().getSymbolicName() + ": "
-                + b.getBundleInfo().getVersion();
-        }
-        else if (element instanceof Link.Unsatisfied)
-        {
-            return "unsatisfied";
-        }
-        else
-        {
-            return "unknown:" + element;
-        }
-    }
-
-    @Override
-    public Image getImage(Object element)
-    {
-        Image result = null;
-        if (element instanceof ISigilBundle)
-        {
-            result = SigilUI.cacheImage("icons/bundle.gif",
-                BundleGraphLabelProvider.class.getClassLoader());
-        }
-        else if (element instanceof Link.Unsatisfied)
-        {
-            return PlatformUI.getWorkbench().getSharedImages().getImage(
-                ISharedImages.IMG_OBJS_ERROR_TSK);
-        }
-
-        return result;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphViewFilter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphViewFilter.java
deleted file mode 100644
index 353c5bb..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleGraphViewFilter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-public class BundleGraphViewFilter extends ViewerFilter
-{
-
-    private BundleResolverView view;
-
-    public BundleGraphViewFilter(BundleResolverView view)
-    {
-        this.view = view;
-    }
-
-    @Override
-    public boolean select(Viewer viewer, Object parentElement, Object element)
-    {
-        if (!view.isDisplayed(BundleResolverView.LOCAL_LINKS))
-        {
-            if (element instanceof Link)
-            {
-                Link l = (Link) element;
-                return l.getSource() != l.getTarget();
-            }
-        }
-        if (!view.isDisplayed(BundleResolverView.SATISFIED))
-        {
-            if (element instanceof Link)
-            {
-                Link l = (Link) element;
-                return !l.isSatisfied();
-            }
-            else if (element instanceof ISigilBundle)
-            {
-                ISigilBundle bundle = (ISigilBundle) element;
-                for (Link l : view.getBundlegraph().getLinks(bundle))
-                {
-                    if (!l.isSatisfied())
-                    {
-                        return true;
-                    }
-                }
-                return false;
-            }
-        }
-
-        if (!view.isDisplayed(BundleResolverView.UNSATISFIED))
-        {
-            if (element instanceof Link)
-            {
-                Link l = (Link) element;
-                return l.isSatisfied();
-            }
-            else if (element instanceof Link.Unsatisfied)
-            {
-                return false;
-            }
-        }
-        return true;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java
deleted file mode 100644
index ac7eac4..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/BundleResolverView.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IBundleResolver;
-import org.apache.felix.sigil.common.repository.IRepositoryManager;
-import org.apache.felix.sigil.common.repository.IResolutionMonitor;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.repository.ResolutionMonitorAdapter;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.zest.core.viewers.GraphViewer;
-import org.eclipse.zest.core.widgets.Graph;
-import org.eclipse.zest.core.widgets.GraphConnection;
-import org.eclipse.zest.layouts.LayoutStyles;
-import org.eclipse.zest.layouts.algorithms.RadialLayoutAlgorithm;
-import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
-
-public class BundleResolverView extends ViewPart
-{
-
-    private static final String SHOW_LINK_LABELS = "Show link labels";
-    private static final String HIDE_LINK_LABELS = "Hide link labels";
-    private static final String SHOW_LOCAL_LINKS = "Show local links";
-    private static final String HIDE_LOCAL_LINKS = "Hide local links";
-    private static final String SHOW_DEPENDENTS = "Show dependents";
-    private static final String HIDE_DEPENDENTS = "Hide dependents";
-    private static final String SHOW_SATISFIED = "Show satisfied bundles";
-    private static final String HIDE_SATISFIED = "Hide satisfied bundles";
-    private static final String SHOW_UNSATISFIED = "Show unsatisfied bundles";
-    private static final String HIDE_UNSATISFIED = "Hide unsatisfied bundles";
-    private static final String SHOW_OPTIONAL = "Show optional dependencies";
-    private static final String HIDE_OPTIONAL = "Hide optional dependencies";
-
-    public static final String LINK_LABELS = "link.labels";
-    public static final String LOCAL_LINKS = "local.links";
-    public static final String DEPENDENTS = "dependents";
-    public static final String SATISFIED = "satisified";
-    public static final String UNSATISFIED = "unsatisfied";
-    public static final String OPTIONAL = "optional";
-
-    private GraphViewer viewer;
-    private IModelElement current;
-    private Job job;
-    private int lastX;
-    private int lastY;
-
-    private Map<String, Boolean> displayed = new HashMap<String, Boolean>();
-    private org.eclipse.swt.widgets.Label repoPath;
-    private Composite viewComposite;
-
-    private class ToggleDisplayAction extends Action
-    {
-        private String key;
-        private String showMsg;
-        private String hideMsg;
-
-        ToggleDisplayAction(String key, String showMsg, String hideMsg)
-        {
-            this.key = key;
-            this.showMsg = showMsg;
-            this.hideMsg = hideMsg;
-            setText(BundleResolverView.this.isDisplayed(key) ? hideMsg : showMsg);
-        }
-
-        @Override
-        public void run()
-        {
-            BundleResolverView.this.setDisplayed(key,
-                !BundleResolverView.this.isDisplayed(key));
-            setText(BundleResolverView.this.isDisplayed(key) ? hideMsg : showMsg);
-        }
-    }
-
-    public void setInput(final IModelElement element)
-    {
-        if (current == null || !current.equals(element))
-        {
-            SigilCore.log("Set input " + element);
-            current = element;
-            redraw();
-        }
-    }
-
-    public void setDisplayed(String key, boolean b)
-    {
-        displayed.put(key, b);
-
-        if (key == DEPENDENTS)
-        {
-            int style = LayoutStyles.NO_LAYOUT_NODE_RESIZING;
-            viewer.setLayoutAlgorithm(b ? new TreeLayoutAlgorithm(style)
-                : new RadialLayoutAlgorithm(style));
-            redraw();
-        }
-        else if (key == OPTIONAL)
-        {
-            redraw();
-        }
-        else if (key == SATISFIED || key == UNSATISFIED)
-        {
-            viewer.refresh();
-        }
-    }
-
-    public boolean isDisplayed(String key)
-    {
-        return displayed.get(key);
-    }
-
-    @Override
-    public void setFocus()
-    {
-    }
-
-    @Override
-    public void createPartControl(Composite parent)
-    {
-        init();
-        parent.setLayout(new FillLayout());
-        Composite composite = new Composite(parent, SWT.NONE);
-        createRepoPath(composite);
-        createViewer(composite);
-        doLayout(composite);
-        createListeners();
-        createMenu();
-    }
-
-    public BundleGraph getBundlegraph()
-    {
-        return (BundleGraph) viewer.getInput();
-    }
-
-    GraphViewer getGraphViewer()
-    {
-        return viewer;
-    }
-
-    String getLinkText(Link link)
-    {
-        StringBuffer buf = new StringBuffer();
-
-        for (IModelElement e : link.getRequirements())
-        {
-            if (buf.length() > 0)
-            {
-                buf.append("\n");
-            }
-            if (e instanceof IPackageImport)
-            {
-                IPackageImport pi = (IPackageImport) e;
-                buf.append("import " + pi.getPackageName() + " : " + pi.getVersions()
-                    + ": " + (pi.isOptional() ? "optional" : "mandatory"));
-            }
-            else if (e instanceof IRequiredBundle)
-            {
-                IRequiredBundle rb = (IRequiredBundle) e;
-                buf.append("required bundle " + rb.getSymbolicName() + " : "
-                    + rb.getVersions() + ": "
-                    + (rb.isOptional() ? "optional" : "mandatory"));
-            }
-        }
-
-        return buf.toString();
-    }
-
-    private synchronized void redraw()
-    {
-        final IModelElement element = current;
-        if (job != null)
-        {
-            job.cancel();
-        }
-
-        ISigilProjectModel project = findProject(element);        
-        final IRepositoryManager repository = project == null ? SigilCore.getGlobalRepositoryManager() : project.getRepositoryManager();
-        
-        StringBuilder buf = new StringBuilder();
-        
-        for (IBundleRepository rep : repository.getRepositories()) {
-            IRepositoryModel mod = SigilCore.getRepositoryModel(rep);
-            if ( buf.length() > 0 ) {
-                buf.append(" -> ");                
-            }
-            buf.append(mod.getName());
-        }
-        
-        buf.insert(0, "Repository Path: ");
-        repoPath.setText(buf.toString());
-
-        job = new Job("Resolving " + element)
-        {
-            @Override
-            protected IStatus run(IProgressMonitor progress)
-            {
-                try
-                {
-                    resolve(element, repository.getBundleResolver(), progress);
-                    return Status.OK_STATUS;
-                }
-                catch (CoreException e)
-                {
-                    return e.getStatus();
-                }
-            }
-        };
-        job.schedule();
-    }
-
-    private void resolve(IModelElement element, IBundleResolver resolver, IProgressMonitor progress)
-        throws CoreException
-    {
-        final BundleGraph graph = new BundleGraph();
-
-        IResolutionMonitor monitor = new ResolutionMonitorAdapter(progress)
-        {
-            @Override
-            public void startResolution(IModelElement requirement)
-            {
-                graph.startResolution(requirement);
-            }
-
-            @Override
-            public void endResolution(IModelElement requirement, ISigilBundle provider)
-            {
-                graph.endResolution(requirement, provider);
-            }
-        };
-
-        int options = ResolutionConfig.IGNORE_ERRORS;
-
-        if (isDisplayed(DEPENDENTS))
-        {
-            options |= ResolutionConfig.INCLUDE_DEPENDENTS;
-        }
-        if (isDisplayed(OPTIONAL))
-        {
-            options |= ResolutionConfig.INCLUDE_OPTIONAL;
-        }
-
-        ResolutionConfig config = new ResolutionConfig(options);
-
-        try
-        {
-            resolver.resolve(element, config, monitor);
-        }
-        catch (ResolutionException e)
-        {
-            throw SigilCore.newCoreException("Failed to resolve " + element, e);
-        }
-
-        SigilUI.runInUI(new Runnable()
-        {
-            public void run()
-            {
-                viewer.setInput(graph);
-                addCustomUIElements();
-            }
-        });
-    }
-
-    private static ISigilProjectModel findProject(IModelElement element)
-    {
-        if (element == null)
-        {
-            return null;
-        }
-        if (element instanceof ISigilProjectModel)
-        {
-            return (ISigilProjectModel) element;
-        }
-
-        return element.getAncestor(ISigilProjectModel.class);
-    }
-
-    @SuppressWarnings("unchecked")
-    private void addCustomUIElements()
-    {
-        if (!isDisplayed(LINK_LABELS))
-        {
-            for (GraphConnection c : (List<GraphConnection>) viewer.getGraphControl().getConnections())
-            {
-                if (c.getData() instanceof Link)
-                {
-                    c.setTooltip(buildToolTip((Link) c.getData()));
-                }
-            }
-        }
-    }
-
-    private IFigure buildToolTip(Link link)
-    {
-        Label l = new Label();
-        l.setText(getLinkText(link));
-        return l;
-    }
-
-    /**
-     * @param composite
-     */
-    private void createRepoPath(Composite composite)
-    {
-        repoPath = new org.eclipse.swt.widgets.Label(composite, SWT.NONE);
-    }
-
-    private void init()
-    {
-        displayed.put(LINK_LABELS, false);
-        displayed.put(LOCAL_LINKS, false);
-        displayed.put(DEPENDENTS, false);
-        displayed.put(OPTIONAL, false);
-        displayed.put(SATISFIED, true);
-        displayed.put(UNSATISFIED, true);
-    }
-
-    private void createViewer(Composite parent)
-    {
-        viewComposite = new Composite(parent, SWT.NONE);
-        viewComposite.setLayout(new FillLayout());
-        viewer = new GraphViewer(viewComposite, SWT.H_SCROLL | SWT.V_SCROLL);
-        IContentProvider contentProvider = new BundleGraphContentProvider();
-        viewer.setContentProvider(contentProvider);
-        viewer.setLabelProvider(new BundleGraphLabelProvider(this));
-        viewer.addFilter(new BundleGraphViewFilter(this));
-
-        int style = LayoutStyles.NO_LAYOUT_NODE_RESIZING;
-        viewer.setLayoutAlgorithm(isDisplayed(DEPENDENTS) ? new TreeLayoutAlgorithm(style)
-            : new RadialLayoutAlgorithm(style));
-        viewer.addSelectionChangedListener(new BundleConnectionHighlighter(this));
-        viewer.setInput(new BundleGraph());
-    }
-
-    /**
-     * @param parent 
-     * 
-     */
-    private void doLayout(Composite parent)
-    {
-        parent.setLayout(new GridLayout(1, true));
-        repoPath.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        viewComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    }
-
-    private void createMenu()
-    {
-        IActionBars action = getViewSite().getActionBars();
-        action.getMenuManager().add(
-            new ToggleDisplayAction(LINK_LABELS, SHOW_LINK_LABELS, HIDE_LINK_LABELS));
-        action.getMenuManager().add(
-            new ToggleDisplayAction(LOCAL_LINKS, SHOW_LOCAL_LINKS, HIDE_LOCAL_LINKS));
-        action.getMenuManager().add(
-            new ToggleDisplayAction(DEPENDENTS, SHOW_DEPENDENTS, HIDE_DEPENDENTS));
-        action.getMenuManager().add(
-            new ToggleDisplayAction(OPTIONAL, SHOW_OPTIONAL, HIDE_OPTIONAL));
-        action.getMenuManager().add(
-            new ToggleDisplayAction(SATISFIED, SHOW_SATISFIED, HIDE_SATISFIED));
-        action.getMenuManager().add(
-            new ToggleDisplayAction(UNSATISFIED, SHOW_UNSATISFIED, HIDE_UNSATISFIED));
-        action.updateActionBars();
-    }
-
-    private void createListeners()
-    {
-        IPartService ps = (IPartService) getViewSite().getService(IPartService.class);
-        ps.addPartListener(new EditorViewPartListener(this));
-        viewer.getGraphControl().addControlListener(new ControlAdapter()
-        {
-            @Override
-            public void controlResized(ControlEvent e)
-            {
-                Graph g = (Graph) e.getSource();
-                int x = g.getSize().x;
-                int y = g.getSize().y;
-                if (lastX != x || lastY != y)
-                {
-                    lastX = x;
-                    lastY = y;
-                    redraw();
-                }
-            }
-        });
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/EditorViewPartListener.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/EditorViewPartListener.java
deleted file mode 100644
index bb884b3..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/EditorViewPartListener.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IWorkbenchPartReference;
-
-public class EditorViewPartListener implements IPartListener2
-{
-
-    private BundleResolverView bundleResolverView;
-
-    public EditorViewPartListener(BundleResolverView bundleResolverView)
-    {
-        this.bundleResolverView = bundleResolverView;
-    }
-
-    public void partActivated(IWorkbenchPartReference partRef)
-    {
-        checkRef(partRef);
-    }
-
-    public void partBroughtToTop(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partClosed(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partDeactivated(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partHidden(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partInputChanged(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partOpened(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    public void partVisible(IWorkbenchPartReference partRef)
-    {
-        // no action
-    }
-
-    private void checkRef(IWorkbenchPartReference partRef)
-    {
-        IEditorPart editor = partRef.getPage().getActiveEditor();
-        if (editor != null)
-        {
-            IEditorInput input = editor.getEditorInput();
-            if (input instanceof IFileEditorInput)
-            {
-                IFileEditorInput f = (IFileEditorInput) input;
-                IProject project = f.getFile().getProject();
-                if ( SigilCore.isSigilProject(project)) {
-                    try
-                    {
-                        ISigilProjectModel model = SigilCore.create(project);
-                        if (model != null)
-                        {
-                            bundleResolverView.setInput(model);
-                        }
-                    }
-                    catch (CoreException e)
-                    {
-                        SigilCore.error("Failed to update resolver view", e);
-                    }
-                }
-            }
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/Link.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/Link.java
deleted file mode 100644
index fe77cc4..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/views/resolution/Link.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.views.resolution;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-
-public class Link
-{
-    public static class Unsatisfied
-    {
-
-    }
-
-    private ISigilBundle source;
-    private ISigilBundle target;
-
-    private LinkedList<IModelElement> requirements = new LinkedList<IModelElement>();
-    private static final Comparator<IModelElement> comparator = new Comparator<IModelElement>()
-    {
-
-        public int compare(IModelElement o1, IModelElement o2)
-        {
-            if (o1 instanceof IRequiredBundle)
-            {
-                if (o2 instanceof IRequiredBundle)
-                {
-                    return compareBundles((IRequiredBundle) o1, (IRequiredBundle) o2);
-                }
-                else
-                {
-                    return -1;
-                }
-            }
-            else
-            {
-                if (o2 instanceof IRequiredBundle)
-                {
-                    return 1;
-                }
-                else
-                {
-                    return compareNonBundles(o1, o2);
-                }
-            }
-        }
-
-        private int compareNonBundles(IModelElement o1, IModelElement o2)
-        {
-            if (o1 instanceof IPackageImport)
-            {
-                if (o2 instanceof IPackageImport)
-                {
-                    return compareImports((IPackageImport) o1, (IPackageImport) o2);
-                }
-                else
-                {
-                    return -1;
-                }
-            }
-            else
-            {
-                if (o2 instanceof IPackageImport)
-                {
-                    return 1;
-                }
-                else
-                {
-                    return 0;
-                }
-            }
-        }
-
-        private int compareImports(IPackageImport o1, IPackageImport o2)
-        {
-            return o1.getPackageName().compareTo(o2.getPackageName());
-        }
-
-        private int compareBundles(IRequiredBundle o1, IRequiredBundle o2)
-        {
-            return o1.getSymbolicName().compareTo(o2.getSymbolicName());
-        }
-
-    };
-
-    public Link(ISigilBundle source, ISigilBundle target)
-    {
-        this.source = source;
-        this.target = target;
-    }
-
-    public ISigilBundle getSource()
-    {
-        return source;
-    }
-
-    public ISigilBundle getTarget()
-    {
-        return target;
-    }
-
-    public boolean isSatisfied()
-    {
-        return target != null;
-    }
-
-    public void addRequirement(IModelElement requirement)
-    {
-        requirements.add(requirement);
-        Collections.sort(requirements, comparator);
-    }
-
-    public String toString()
-    {
-        return "Link[" + source + "->" + target + "]";
-    }
-
-    public List<IModelElement> getRequirements()
-    {
-        return requirements;
-    }
-
-    public boolean isOptional()
-    {
-        for (IModelElement e : requirements)
-        {
-            if (e instanceof IPackageImport)
-            {
-                IPackageImport pi = (IPackageImport) e;
-                if (!pi.isOptional())
-                {
-                    return false;
-                }
-            }
-            else if (e instanceof IRequiredBundle)
-            {
-                IRequiredBundle rb = (IRequiredBundle) e;
-                if (!rb.isOptional())
-                {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/SigilNewResourceWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/SigilNewResourceWizard.java
deleted file mode 100644
index 128a803..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/SigilNewResourceWizard.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.wizard;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-
-/**
- * @author dave
- *
- */
-public abstract class SigilNewResourceWizard extends BasicNewResourceWizard implements INewWizard
-{
-
-    protected void selectRevealAndShow(IFile file)
-    {
-        selectAndReveal(file);
-
-        // Open editor on new file.
-        IWorkbenchWindow dw = getWorkbench().getActiveWorkbenchWindow();
-        try
-        {
-            if (dw != null)
-            {
-                IWorkbenchPage page = dw.getActivePage();
-                if (page != null)
-                {
-                    IDE.openEditor(page, file, true);
-                }
-            }
-        }
-        catch (PartInitException e)
-        {
-            MessageDialog.openError(Display.getCurrent().getActiveShell(),
-                "Initialisation error", "Failed to open " + file);
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/WorkspaceContentProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/WorkspaceContentProvider.java
deleted file mode 100644
index d60c7a8..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/internal/wizard/WorkspaceContentProvider.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.internal.wizard;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class WorkspaceContentProvider implements ITreeContentProvider
-{
-
-    private final boolean includeNonSigil;
-    private final boolean includeClosed;
-
-    public WorkspaceContentProvider(boolean includeNonSigil, boolean includeClosed)
-    {
-        this.includeNonSigil = includeNonSigil;
-        this.includeClosed = includeClosed;
-    }
-
-    public Object[] getChildren(Object parentElement)
-    {
-        Object[] result = null;
-
-        if (parentElement instanceof IWorkspace)
-        {
-            IProject[] projects = ((IWorkspace) parentElement).getRoot().getProjects();
-            if (includeNonSigil && includeClosed)
-            {
-                result = projects;
-            }
-            else
-            {
-                List<IProject> includedProjects = new ArrayList<IProject>(projects.length);
-                for (IProject project : projects)
-                {
-                    if (!includeClosed && !project.isOpen())
-                    {
-                        continue;
-                    }
-
-                    if (!includeNonSigil)
-                    {
-                        try
-                        {
-                            if (project.getNature(SigilCore.NATURE_ID) == null)
-                            {
-                                continue;
-                            }
-                        }
-                        catch (CoreException e)
-                        {
-                            continue;
-                        }
-                    }
-
-                    includedProjects.add(project);
-                }
-                result = includedProjects.toArray(new IProject[includedProjects.size()]);
-            }
-        }
-        else if (parentElement instanceof IContainer)
-        {
-            try
-            {
-                IResource[] members = ((IContainer) parentElement).members();
-                List<IResource> children = new ArrayList<IResource>(members.length);
-                for (int i = 0; i < members.length; i++)
-                {
-                    if (members[i].getType() != IResource.FILE)
-                    {
-                        children.add(members[i]);
-                    }
-                }
-                result = children.toArray(new IResource[children.size()]);
-            }
-            catch (CoreException e)
-            {
-                // Shouldn't happen
-            }
-        }
-
-        return result;
-    }
-
-    public Object getParent(Object element)
-    {
-        if (element instanceof IResource)
-        {
-            return ((IResource) element).getParent();
-        }
-        return null;
-    }
-
-    public boolean hasChildren(Object element)
-    {
-        return (element instanceof IContainer) && ((IContainer) element).isAccessible();
-    }
-
-    public Object[] getElements(Object inputElement)
-    {
-        return getChildren(inputElement);
-    }
-
-    public void dispose()
-    {
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/AccumulatorAdapter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/AccumulatorAdapter.java
deleted file mode 100644
index e44a064..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/AccumulatorAdapter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.Collection;
-import java.util.LinkedList;
-
-public abstract class AccumulatorAdapter<E> implements IAccumulator<E>
-{
-    public void addElement(E element)
-    {
-        LinkedList<E> list = new LinkedList<E>();
-        list.add(element);
-        addElements(list);
-    };
-
-    public void addElements(Collection<? extends E> elements)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/BackgroundLoadingSelectionDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/BackgroundLoadingSelectionDialog.java
deleted file mode 100644
index 52e90f9..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/BackgroundLoadingSelectionDialog.java
+++ /dev/null
@@ -1,608 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalListener;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.progress.IJobRunnable;
-
-public class BackgroundLoadingSelectionDialog<E> extends TitleAreaDialog implements IAccumulator<E>
-{
-
-    private final ILabelProvider DEFAULT_LABEL_PROVIDER = new LabelProvider()
-    {
-        @SuppressWarnings("unchecked")
-        public String getText(Object element)
-        {
-            String result;
-            if (element instanceof WrappedContentProposal<?>)
-            {
-                WrappedContentProposal<E> contentProposal = (org.apache.felix.sigil.eclipse.ui.util.WrappedContentProposal<E>) element;
-                result = contentProposal.getLabel();
-            }
-            else
-            {
-                result = descriptor.getLabel((E) element);
-            }
-            return result;
-        }
-    };
-
-    private final IElementDescriptor<E> DEFAULT_DESCRIPTOR = new IElementDescriptor<E>()
-    {
-        public String getLabel(E element)
-        {
-            return getName(element);
-        }
-
-        public String getName(E element)
-        {
-            return element == null ? "null" : element.toString();
-        }
-    };
-
-    private final String selectionLabel;
-    private IFilter<? super E> filter;
-    private IElementDescriptor<? super E> descriptor = DEFAULT_DESCRIPTOR;
-    private ILabelProvider labelProvider = DEFAULT_LABEL_PROVIDER;
-    private final boolean multi;
-
-    private final List<E> elements;
-
-    private List<E> selection = null;
-    private String selectedName = null;
-
-    private TableViewer viewer = null;
-    private Comparator<? super E> comparator;
-
-    private HashMap<String, IJobRunnable> background = new HashMap<String, IJobRunnable>();
-
-    public BackgroundLoadingSelectionDialog(Shell parentShell, String selectionLabel, boolean multi)
-    {
-        super(parentShell);
-        elements = new ArrayList<E>();
-        this.selectionLabel = selectionLabel;
-        this.multi = multi;
-    }
-
-    public void setFilter(IFilter<? super E> filter)
-    {
-        this.filter = filter;
-    }
-
-    public void setDescriptor(final IElementDescriptor<? super E> descriptor)
-    {
-        if (descriptor != null)
-        {
-            this.descriptor = descriptor;
-        }
-        else
-        {
-            this.descriptor = DEFAULT_DESCRIPTOR;
-        }
-    }
-
-    public IElementDescriptor<? super E> getDescriptor()
-    {
-        return descriptor;
-    }
-
-    public void setComparator(Comparator<? super E> comparator)
-    {
-        this.comparator = comparator;
-    }
-
-    public void setLabelProvider(ILabelProvider labelProvider)
-    {
-        if (labelProvider != null)
-        {
-            this.labelProvider = labelProvider;
-        }
-        else
-        {
-            this.labelProvider = DEFAULT_LABEL_PROVIDER;
-        }
-    }
-
-    public void addBackgroundJob(String name, IJobRunnable job)
-    {
-        background.put(name, job);
-    }
-
-    @Override
-    public int open()
-    {
-        Job[] jobs = scheduleJobs();
-        try
-        {
-            return super.open();
-        }
-        finally
-        {
-            for (Job j : jobs)
-            {
-                j.cancel();
-            }
-        }
-    }
-
-    private Job[] scheduleJobs()
-    {
-        if (background.isEmpty())
-        {
-            return new Job[] {};
-        }
-        else
-        {
-            ArrayList<Job> jobs = new ArrayList<Job>(background.size());
-            for (Map.Entry<String, IJobRunnable> e : background.entrySet())
-            {
-                final IJobRunnable run = e.getValue();
-                Job job = new Job(e.getKey())
-                {
-                    @Override
-                    protected IStatus run(IProgressMonitor monitor)
-                    {
-                        return run.run(monitor);
-                    }
-                };
-                job.schedule();
-            }
-
-            return jobs.toArray(new Job[jobs.size()]);
-        }
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        // Create Controls
-        Composite container = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(container, SWT.NONE);
-
-        new Label(composite, SWT.NONE).setText(selectionLabel);
-
-        ContentProposalAdapter proposalAdapter = null;
-        Text txtSelection = null;
-
-        Table table = null;
-        if (multi)
-        {
-            table = new Table(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
-            viewer = new TableViewer(table);
-            viewer.setContentProvider(new ArrayContentProvider());
-            viewer.addFilter(new ViewerFilter()
-            {
-                public boolean select(Viewer viewer, Object parentElement, Object element)
-                {
-                    @SuppressWarnings("unchecked")
-                    E castedElement = (E) element;
-                    return filter == null || filter.select(castedElement);
-                }
-            });
-            if (comparator != null)
-            {
-                viewer.setSorter(new ViewerSorter()
-                {
-                    @Override
-                    public int compare(Viewer viewer, Object o1, Object o2)
-                    {
-                        @SuppressWarnings("unchecked")
-                        E e1 = (E) o1;
-                        @SuppressWarnings("unchecked")
-                        E e2 = (E) o2;
-                        return comparator.compare(e1, e2);
-                    }
-                });
-            }
-            synchronized (elements)
-            {
-                viewer.setInput(elements);
-            }
-
-            if (labelProvider != null)
-            {
-                viewer.setLabelProvider(labelProvider);
-            }
-        }
-        else
-        {
-            txtSelection = new Text(composite, SWT.BORDER);
-            ControlDecoration selectionDecor = new ControlDecoration(txtSelection,
-                SWT.LEFT | SWT.TOP);
-            FieldDecoration proposalDecor = FieldDecorationRegistry.getDefault().getFieldDecoration(
-                FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
-            selectionDecor.setImage(proposalDecor.getImage());
-            selectionDecor.setDescriptionText(proposalDecor.getDescription());
-
-            ExclusionContentProposalProvider<E> proposalProvider = new ExclusionContentProposalProvider<E>(
-                elements, filter, descriptor);
-
-            proposalAdapter = new ContentProposalAdapter(txtSelection,
-                new TextContentAdapter(), proposalProvider, null, null);
-            proposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-            if (labelProvider != null)
-            {
-                proposalAdapter.setLabelProvider(labelProvider);
-            }
-
-            if (selectedName != null)
-            {
-                txtSelection.setText(selectedName);
-            }
-        }
-        updateSelection();
-        updateButtons();
-
-        // Hookup listeners
-        if (proposalAdapter != null)
-        {
-            proposalAdapter.addContentProposalListener(new IContentProposalListener()
-            {
-                public void proposalAccepted(IContentProposal proposal)
-                {
-                    @SuppressWarnings("unchecked")
-                    WrappedContentProposal<E> valueProposal = (org.apache.felix.sigil.eclipse.ui.util.WrappedContentProposal<E>) proposal;
-                    E selected = valueProposal.getElement();
-                    selection = new ArrayList<E>(1);
-                    selection.add(selected);
-
-                    elementSelected(selected);
-
-                    updateButtons();
-                }
-            });
-        }
-        if (txtSelection != null)
-        {
-            txtSelection.addModifyListener(new ModifyListener()
-            {
-                public void modifyText(ModifyEvent e)
-                {
-                    selectedName = ((Text) e.widget).getText();
-                    updateButtons();
-                }
-            });
-        }
-        if (viewer != null)
-        {
-            viewer.addSelectionChangedListener(new ISelectionChangedListener()
-            {
-                public void selectionChanged(SelectionChangedEvent event)
-                {
-                    IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-                    selection = new ArrayList<E>(sel.size());
-                    for (Iterator<?> iter = sel.iterator(); iter.hasNext();)
-                    {
-                        @SuppressWarnings("unchecked")
-                        E element = (E) iter.next();
-                        selection.add(element);
-                    }
-                    updateButtons();
-                }
-            });
-            viewer.addOpenListener(new IOpenListener()
-            {
-                public void open(OpenEvent event)
-                {
-                    if (canComplete())
-                    {
-                        setReturnCode(IDialogConstants.OK_ID);
-                        close();
-                    }
-                }
-            });
-        }
-
-        // Layout
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        if (multi)
-        {
-            composite.setLayout(new GridLayout(1, false));
-            GridData layoutTable = new GridData(SWT.FILL, SWT.FILL, true, true);
-            layoutTable.heightHint = 200;
-            table.setLayoutData(layoutTable);
-        }
-        else
-        {
-            composite.setLayout(new GridLayout(2, false));
-            txtSelection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        }
-
-        return container;
-    }
-
-    protected void elementSelected(E selection)
-    {
-    }
-
-    @Override
-    protected Control createButtonBar(Composite parent)
-    {
-        Control bar = super.createButtonBar(parent);
-        updateButtons();
-        return bar;
-    }
-
-    /**
-     * Can be called from any thread
-     */
-    protected final void updateButtons()
-    {
-        Runnable updateButtonsRunnable = new Runnable()
-        {
-            public void run()
-            {
-                Shell shell = getShell();
-                if (shell != null && !shell.isDisposed())
-                {
-                    Button okButton = getButton(IDialogConstants.OK_ID);
-                    if (okButton != null && !okButton.isDisposed())
-                    {
-                        okButton.setEnabled(canComplete());
-                    }
-                }
-            }
-        };
-        Shell shell = getShell();
-        if (shell != null)
-        {
-            onUIThread(shell, updateButtonsRunnable);
-        }
-    }
-
-    /**
-     * Subclasses may override but must call super.canComplete
-     * @return
-     */
-    protected synchronized boolean canComplete()
-    {
-        boolean result = false;
-
-        if (selection != null)
-        {
-            if (multi)
-            {
-                result = selection.size() > 0;
-            }
-            else
-            {
-                E sel = getSelectedElement();
-                result = sel != null && descriptor.getName(sel).equals(selectedName);
-            }
-        }
-
-        return result;
-    }
-
-    public final void addElement(E added)
-    {
-        addElements(Collections.singleton(added));
-    }
-
-    /**
-     * Can be called from any thread
-     */
-    public final void addElements(Collection<? extends E> added)
-    {
-        final LinkedList<E> toAdd = new LinkedList<E>();
-        synchronized (elements)
-        {
-            for (E e : added)
-            {
-                if (!elements.contains(e))
-                {
-                    elements.add(e);
-                    toAdd.add(e);
-                }
-            }
-            Collections.sort(elements, comparator);
-        }
-        if (viewer != null)
-        {
-            onUIThread(viewer.getControl(), new Runnable()
-            {
-                public void run()
-                {
-                    if (!viewer.getControl().isDisposed())
-                    {
-                        viewer.add(toAdd.toArray());
-                        viewer.refresh();
-                    }
-                }
-            });
-        }
-        else
-        {
-
-        }
-        updateSelection();
-        updateButtons();
-    }
-
-    protected void updateSelection()
-    {
-        onUIThread(getShell(), new Runnable()
-        {
-            public void run()
-            {
-                if (selectedName != null)
-                {
-                    ArrayList<E> newSelection = new ArrayList<E>();
-                    synchronized (elements)
-                    {
-                        for (E e : elements)
-                        {
-                            if (selectedName.equals(descriptor.getName(e)))
-                            {
-                                newSelection.add(e);
-                                break;
-                            }
-                        }
-                    }
-                    selection = newSelection;
-                }
-                else
-                {
-                    selection = Collections.emptyList();
-                }
-                if (viewer != null && !viewer.getControl().isDisposed())
-                {
-                    viewer.setSelection(selection.isEmpty() ? StructuredSelection.EMPTY
-                        : new StructuredSelection(selection));
-                }
-            }
-        });
-    }
-
-    private static final void onUIThread(Control control, Runnable r)
-    {
-        if (control != null && !control.isDisposed())
-        {
-            try
-            {
-                Display display = control.getDisplay();
-                if (Thread.currentThread() == display.getThread())
-                {
-                    // We are on the UI thread already, just do the work
-                    r.run();
-                }
-                else
-                {
-                    // Not on the UI thread, need to bung over the runnable
-                    display.asyncExec(r);
-                }
-            }
-            catch (SWTError e)
-            {
-                if (e.code == SWT.ERROR_WIDGET_DISPOSED)
-                {
-                    // ignore
-                }
-                else
-                {
-                    throw e;
-                }
-            }
-        }
-    }
-
-    public String getSelectedName()
-    {
-        return selectedName;
-    }
-
-    public void setSelectedName(String selectedName)
-    {
-        this.selectedName = selectedName;
-        boolean change = false;
-        if (selectedName == null)
-        {
-            if (selection != null && !selection.isEmpty())
-            {
-                change = true;
-            }
-        }
-        else
-        {
-            if (selection == null)
-            {
-                change = true;
-            }
-            else if (selection.size() != 1
-                || !descriptor.getLabel(selection.get(0)).equals(selectedName))
-            {
-                change = true;
-            }
-        }
-
-        if (change)
-        {
-            updateSelection();
-            updateButtons();
-        }
-    }
-
-    public List<E> getSelectedElements()
-    {
-        return selection;
-    }
-
-    public E getSelectedElement()
-    {
-        E result;
-        if (selection == null || selection.isEmpty())
-        {
-            result = null;
-        }
-        else
-        {
-            result = selection.get(0);
-        }
-        return result;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultContentProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultContentProvider.java
deleted file mode 100644
index 88c46e3..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultContentProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class DefaultContentProvider implements IContentProvider
-{
-
-    public void dispose()
-    {
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultLabelProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultLabelProvider.java
deleted file mode 100644
index c6800c5..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultLabelProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-
-public abstract class DefaultLabelProvider implements IBaseLabelProvider, ILabelProvider
-{
-
-    public boolean isLabelProperty(Object element, String property)
-    {
-        return false;
-    }
-
-    public void dispose()
-    {
-    }
-
-    public void addListener(ILabelProviderListener listener)
-    {
-    }
-
-    public void removeListener(ILabelProviderListener listener)
-    {
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTableProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTableProvider.java
deleted file mode 100644
index cad03b8..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTableProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.Collection;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-
-public abstract class DefaultTableProvider extends DefaultContentProvider implements IStructuredContentProvider
-{
-
-    /**
-     * Utility method to convert the input element to an Object[].
-     * 
-     * @param inputElement
-     * 
-     * @return if inputElement is null -> empty array <br/>
-     *         if inputElement is a {@link Collection} returns {@link Collection#toArray()}<br/>
-     *         if inputElement is an Array class cast of inputElement to Object[]<br/>
-     *  
-     * @throws IllegalArgumentException if the element cannot be converted. 
-     */
-    public Object[] toArray(Object inputElement)
-    {
-        if (inputElement == null)
-        {
-            return new Object[] {};
-        }
-        else if (inputElement instanceof Collection<?>)
-        {
-            Collection<?> col = (Collection<?>) inputElement;
-            return col.toArray();
-        }
-        else if (inputElement.getClass().isArray())
-        {
-            return (Object[]) inputElement;
-        }
-        else
-        {
-            throw new IllegalArgumentException("Invalid inputElement "
-                + inputElement.getClass());
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTreeContentProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTreeContentProvider.java
deleted file mode 100644
index 5b6580e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/DefaultTreeContentProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-public abstract class DefaultTreeContentProvider extends DefaultContentProvider implements ITreeContentProvider
-{
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExclusionContentProposalProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExclusionContentProposalProvider.java
deleted file mode 100644
index ee3d07d..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExclusionContentProposalProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.utils.GlobCompiler;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-
-public class ExclusionContentProposalProvider<T> implements IContentProposalProvider
-{
-
-    private final Collection<? extends T> elements;
-    private final IFilter<? super T> filter;
-    private final IElementDescriptor<? super T> descriptor;
-
-    public ExclusionContentProposalProvider(Collection<? extends T> elements, IFilter<? super T> filter, IElementDescriptor<? super T> descriptor)
-    {
-        this.elements = elements;
-        this.filter = filter;
-        this.descriptor = descriptor;
-    }
-
-    public IContentProposal[] getProposals(String contents, int position)
-    {
-        String matchString = contents.substring(0, position);
-        Pattern pattern = GlobCompiler.compile(matchString);
-
-        // Get a snapshot of the elements
-        T[] elementArray;
-        synchronized (elements)
-        {
-            @SuppressWarnings("unchecked")
-            T[] temp = (T[]) elements.toArray();
-            elementArray = temp;
-        }
-
-        List<IContentProposal> result = new ArrayList<IContentProposal>();
-
-        for (T element : elementArray)
-        {
-            if (filter == null || filter.select(element))
-            {
-                IContentProposal proposal = WrappedContentProposal.newInstance(element,
-                    descriptor);
-                Matcher matcher = pattern.matcher(proposal.getContent());
-                if (matcher.find())
-                {
-                    result.add(proposal);
-                }
-            }
-        }
-
-        return result.toArray(new IContentProposal[result.size()]);
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExportedPackageFinder.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExportedPackageFinder.java
deleted file mode 100644
index 6b268b1..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ExportedPackageFinder.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.progress.IJobRunnable;
-
-public class ExportedPackageFinder implements IJobRunnable
-{
-
-    private final IAccumulator<? super IPackageExport> accumulator;
-    private final ISigilProjectModel sigil;
-
-    public ExportedPackageFinder(ISigilProjectModel sigil, IAccumulator<? super IPackageExport> accumulator)
-    {
-        this.sigil = sigil;
-        this.accumulator = accumulator;
-    }
-
-    public IStatus run(final IProgressMonitor monitor)
-    {
-        final List<IPackageExport> exports = new ArrayList<IPackageExport>(
-            ResourcesDialogHelper.UPDATE_BATCH_SIZE);
-        final IModelWalker walker = new IModelWalker()
-        {
-            public boolean visit(IModelElement element)
-            {
-                if (element instanceof IPackageExport)
-                {
-                    IPackageExport pkgExport = (IPackageExport) element;
-                    exports.add(pkgExport);
-
-                    if (exports.size() >= ResourcesDialogHelper.UPDATE_BATCH_SIZE)
-                    {
-                        accumulator.addElements(exports);
-                        exports.clear();
-                    }
-                }
-                return !monitor.isCanceled();
-            }
-        };
-        sigil.getRepositoryManager().visit(walker);
-        if (exports.size() > 0)
-        {
-            accumulator.addElements(exports);
-        }
-
-        return Status.OK_STATUS;
-    }
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/FileUtils.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/FileUtils.java
deleted file mode 100644
index 51160e0..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/FileUtils.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class FileUtils
-{
-    public static void loadFile(Shell shell, Text text, String msg, boolean isDirectory)
-    {
-        if (isDirectory)
-        {
-            DirectoryDialog dialog = new DirectoryDialog(shell, SWT.NONE);
-            dialog.setMessage(msg);
-            String value = dialog.open();
-            if (value != null)
-            {
-                text.setText(value);
-            }
-        }
-        else
-        {
-            FileDialog dialog = new FileDialog(shell, SWT.NONE);
-            dialog.setText(msg);
-            String value = dialog.open();
-            if (value != null)
-            {
-                text.setText(value);
-            }
-        }
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IAccumulator.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IAccumulator.java
deleted file mode 100644
index daa5f15..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IAccumulator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.Collection;
-
-public interface IAccumulator<E>
-{
-    public void addElement(E element);
-
-    public void addElements(Collection<? extends E> elements);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IElementDescriptor.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IElementDescriptor.java
deleted file mode 100644
index 57aadc9..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IElementDescriptor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-public interface IElementDescriptor<E>
-{
-    /**
-     * Return the short identifying name of the element.
-     */
-    String getName(E element);
-
-    /**
-     * Return a label for the element, including the name but possibly supplying
-     * additional information.
-     * 
-     * @param element
-     * @return
-     */
-    String getLabel(E element);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IExportToImportConverter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IExportToImportConverter.java
deleted file mode 100644
index 1ddc6fe..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IExportToImportConverter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-public interface IExportToImportConverter<E, I>
-{
-    I convert(E exportElement);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IFilter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IFilter.java
deleted file mode 100644
index 0d33c3a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IFilter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-public interface IFilter<T>
-{
-    boolean select(T element);
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IValidationListener.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IValidationListener.java
deleted file mode 100644
index e325c5e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/IValidationListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-public interface IValidationListener
-{
-
-    void validationMessage(String message, int level);
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ModelLabelProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ModelLabelProvider.java
deleted file mode 100644
index 9dc0b37..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ModelLabelProvider.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.osgi.framework.Version;
-
-public class ModelLabelProvider extends LabelProvider
-{
-    private volatile Set<? extends IModelElement> unresolvedElements = null;
-
-    public Image getImage(Object element)
-    {
-        boolean unresolved = (unresolvedElements == null) ? false
-            : unresolvedElements.contains(element);
-
-        if (element instanceof ISigilBundle || element instanceof IBundleModelElement)
-        {
-            return findBundle();
-        }
-        else if (element instanceof IRequiredBundle)
-        {
-            boolean optional = ((IRequiredBundle) element).isOptional();
-            return findRequiredBundle(optional, unresolved);
-        }
-        else if (element instanceof IPackageImport)
-        {
-            boolean optional = ((IPackageImport) element).isOptional();
-            return findPackageImport(optional, unresolved);
-        }
-        else if (element instanceof IPackageExport)
-        {
-            return findPackageExport();
-        }
-        else if (element instanceof IPackageFragmentRoot)
-        {
-            IPackageFragmentRoot root = (IPackageFragmentRoot) element;
-            try
-            {
-                if (root.getKind() == IPackageFragmentRoot.K_SOURCE)
-                {
-                    return findPackage();
-                }
-                else
-                {
-                    return findBundle();
-                }
-            }
-            catch (JavaModelException e)
-            {
-                SigilCore.error("Failed to inspect package fragment root", e);
-            }
-        }
-        else if (element instanceof IClasspathEntry)
-        {
-            return findPackage();
-        }
-        else if (element instanceof IBundleRepository)
-        {
-            IBundleRepository rep = (IBundleRepository) element;
-            IRepositoryModel config = SigilCore.getRepositoryModel(rep);
-            return config.getType().getIcon();
-        }
-        else if (element instanceof Throwable) {
-            return PlatformUI.getWorkbench().getSharedImages().getImage(
-                ISharedImages.IMG_OBJS_ERROR_TSK);
-        }
-
-        return null;
-    }
-
-    public String getText(Object element)
-    {
-        if (element instanceof ISigilBundle)
-        {
-            ISigilBundle bundle = (ISigilBundle) element;
-            return bundle.getBundleInfo().getSymbolicName() + " "
-                + bundle.getBundleInfo().getVersion();
-        }
-        if (element instanceof IBundleModelElement)
-        {
-            IBundleModelElement bundle = (IBundleModelElement) element;
-            return bundle.getSymbolicName();
-        }
-        if (element instanceof IRequiredBundle)
-        {
-            IRequiredBundle req = (IRequiredBundle) element;
-            return req.getSymbolicName() + " " + req.getVersions();
-        }
-
-        if (element instanceof IPackageImport)
-        {
-            IPackageImport req = (IPackageImport) element;
-            return req.getPackageName() + " " + req.getVersions();
-        }
-
-        if (element instanceof IPackageExport)
-        {
-            IPackageExport pe = (IPackageExport) element;
-            Version rawVersion = pe.getRawVersion();
-            return rawVersion != null ? pe.getPackageName() + " " + rawVersion
-                : pe.getPackageName();
-        }
-
-        if (element instanceof IResource)
-        {
-            IResource resource = (IResource) element;
-            return resource.getName();
-        }
-
-        if (element instanceof IPackageFragment)
-        {
-            IPackageFragment f = (IPackageFragment) element;
-            return f.getElementName();
-        }
-
-        if (element instanceof IPackageFragmentRoot)
-        {
-            IPackageFragmentRoot f = (IPackageFragmentRoot) element;
-            try
-            {
-                return f.getUnderlyingResource().getName();
-            }
-            catch (JavaModelException e)
-            {
-                return "unknown";
-            }
-        }
-
-        if (element instanceof IClasspathEntry)
-        {
-            IClasspathEntry cp = (IClasspathEntry) element;
-            return cp.getPath().toString();
-        }
-
-        if (element instanceof IBundleRepository)
-        {
-            IBundleRepository rep = (IBundleRepository) element;
-            IRepositoryModel config = SigilCore.getRepositoryModel(rep);
-            return config.getName();
-        }
-        
-        if ( element instanceof Throwable ) {
-            Throwable t = (Throwable) element;
-            ByteArrayOutputStream buf = new ByteArrayOutputStream();
-            PrintStream print = new PrintStream(buf);
-            t.printStackTrace(print);
-            print.flush();
-            return buf.toString();
-        }
-
-        return element.toString();
-    }
-
-    private Image findPackage()
-    {
-        return cacheImage("icons/package.gif");
-    }
-
-    private Image findPackageImport(boolean optional, boolean unresolved)
-    {
-        String path;
-        if (optional)
-        {
-            path = unresolved ? "icons/import-package-optional-error.gif"
-                : "icons/import-package-optional.gif";
-        }
-        else
-        {
-            path = unresolved ? "icons/import-package-error.gif"
-                : "icons/import-package.gif";
-        }
-        return cacheImage(path);
-    }
-
-    private Image findPackageExport()
-    {
-        return cacheImage("icons/export-package.gif");
-    }
-
-    private Image findBundle()
-    {
-        return cacheImage("icons/bundle.gif");
-    }
-
-    private Image findRequiredBundle(boolean optional, boolean unresolved)
-    {
-        String path;
-        if (optional)
-        {
-            path = unresolved ? "icons/require-bundle-optional-error.gif"
-                : "icons/require-bundle-optional.gif";
-        }
-        else
-        {
-            path = unresolved ? "icons/require-bundle-error.gif"
-                : "icons/require-bundle.gif";
-        }
-        return cacheImage(path);
-    }
-
-    private static Image cacheImage(String path)
-    {
-        return SigilUI.cacheImage(path, ModelLabelProvider.class.getClassLoader());
-    }
-
-    public void setUnresolvedElements(Set<? extends IModelElement> elements)
-    {
-        this.unresolvedElements = elements;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/PackageFilter.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/PackageFilter.java
deleted file mode 100644
index 5aa3c03..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/PackageFilter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-
-public class PackageFilter implements IFilter<IPackageImport>
-{
-
-    private Set<String> names = new HashSet<String>();
-
-    public PackageFilter(String[] packageNames)
-    {
-        for (String name : packageNames)
-        {
-            names.add(name);
-        }
-    }
-
-    public PackageFilter(IPackageExport[] packages)
-    {
-        for (IPackageExport packageExport : packages)
-        {
-            names.add(packageExport.getPackageName());
-        }
-    }
-
-    public boolean select(IPackageImport element)
-    {
-        return !names.contains(element.getPackageName());
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ProjectUtils.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ProjectUtils.java
deleted file mode 100644
index 73ffa6c..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ProjectUtils.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.concurrent.Callable;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.ui.SigilUI;
-import org.apache.felix.sigil.eclipse.ui.internal.preferences.OptionalPrompt;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class ProjectUtils
-{
-    public static boolean runTaskWithRebuildCheck(final Runnable task, Shell shell)
-    {
-        return runTaskWithRebuildCheck(new Callable<Boolean>()
-        {
-            public Boolean call() throws Exception
-            {
-                task.run();
-                return true;
-            }
-        }, shell);
-    }
-
-    public static boolean runTaskWithRebuildCheck(Callable<Boolean> callable, Shell shell)
-    {
-        int result = checkRebuild(shell);
-        if (result == IDialogConstants.CANCEL_ID)
-        {
-            return false;
-        }
-        else
-        {
-            try
-            {
-                if (Boolean.TRUE == callable.call())
-                {
-                    if (result == IDialogConstants.YES_ID)
-                    {
-                        SigilUI.runWorkspaceOperation(new WorkspaceModifyOperation()
-                        {
-                            @Override
-                            protected void execute(IProgressMonitor monitor)
-                            {
-                                SigilCore.rebuildAllBundleDependencies(monitor);
-                            }
-                        }, shell);
-                    }
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-            catch (Exception e)
-            {
-                SigilCore.error("Failed to run caller", e);
-                return false;
-            }
-        }
-    }
-
-    private static int checkRebuild(Shell shell)
-    {
-        if (SigilCore.getRoot().getProjects().isEmpty())
-        {
-            return IDialogConstants.NO_ID;
-        }
-        else
-        {
-            return OptionalPrompt.optionallyPromptWithCancel(
-                SigilCore.PREFERENCES_REBUILD_PROJECTS, "Rebuild",
-                "Do you wish to rebuild all Sigil projects", shell);
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourceReviewDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourceReviewDialog.java
deleted file mode 100644
index acabd9a..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourceReviewDialog.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.Collection;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-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.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-public class ResourceReviewDialog<T extends IModelElement> extends TitleAreaDialog
-{
-
-    private String title;
-    private Collection<T> resources;
-
-    private TableViewer viewer;
-
-    public ResourceReviewDialog(Shell parentShell, String title, Collection<T> resources)
-    {
-        super(parentShell);
-        this.title = title;
-        this.resources = resources;
-    }
-
-    public Collection<T> getResources()
-    {
-        return resources;
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        setTitle(title);
-
-        // Create controls
-        Composite container = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(container, SWT.NONE);
-        Table table = new Table(composite, SWT.BORDER | SWT.VIRTUAL);
-
-        final Button remove = new Button(composite, SWT.PUSH);
-        remove.setText("Remove");
-        remove.setEnabled(false);
-
-        remove.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                handleRemove();
-            }
-        });
-
-        viewer = new TableViewer(table);
-        viewer.setContentProvider(new DefaultTableProvider()
-        {
-            public Object[] getElements(Object inputElement)
-            {
-                return toArray(inputElement);
-            }
-        });
-
-        viewer.setInput(resources);
-        viewer.addSelectionChangedListener(new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                remove.setEnabled(!event.getSelection().isEmpty());
-            }
-        });
-
-        // layout
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        composite.setLayout(new GridLayout(2, false));
-        GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4);
-        tableLayoutData.heightHint = 150;
-        table.setLayoutData(tableLayoutData);
-
-        return container;
-    }
-
-    private void handleRemove()
-    {
-        ISelection s = viewer.getSelection();
-        if (!s.isEmpty())
-        {
-            IStructuredSelection sel = (IStructuredSelection) s;
-            resources.remove(sel.getFirstElement());
-            viewer.refresh();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourcesDialogHelper.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourcesDialogHelper.java
deleted file mode 100644
index 143803e..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/ResourcesDialogHelper.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.IModelWalker;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IPackageModelElement;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.apache.felix.sigil.eclipse.model.util.JavaHelper;
-import org.apache.felix.sigil.eclipse.ui.internal.editors.project.NewPackageExportDialog;
-import org.apache.felix.sigil.eclipse.ui.internal.editors.project.NewResourceSelectionDialog;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.progress.IJobRunnable;
-
-public class ResourcesDialogHelper
-{
-
-    static final int UPDATE_BATCH_SIZE = 100;
-
-    public static BackgroundLoadingSelectionDialog<String> createClassSelectDialog(
-        Shell shell, String title, final ISigilProjectModel project, String selected,
-        final String ifaceOrParentClass)
-    {
-        final BackgroundLoadingSelectionDialog<String> dialog = new BackgroundLoadingSelectionDialog<String>(
-            shell, "Class Name", true);
-
-        IJobRunnable job = new IJobRunnable()
-        {
-            public IStatus run(IProgressMonitor monitor)
-            {
-                try
-                {
-                    for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
-                        IJavaElement.PACKAGE_FRAGMENT))
-                    {
-                        IPackageFragment root = (IPackageFragment) e;
-                        if (project.isInBundleClasspath(root))
-                        {
-                            for (IJavaElement e1 : JavaHelper.findTypes(root,
-                                IJavaElement.COMPILATION_UNIT, IJavaElement.CLASS_FILE))
-                            {
-                                ITypeRoot typeRoot = (ITypeRoot) e1;
-                                IType type = (IType) JavaHelper.findType(typeRoot,
-                                    IJavaElement.TYPE);
-                                if (JavaHelper.isAssignableTo(ifaceOrParentClass, type))
-                                {
-                                    dialog.addElement(type.getFullyQualifiedName());
-                                }
-                            }
-                        }
-                    }
-
-                    return Status.OK_STATUS;
-                }
-                catch (JavaModelException e)
-                {
-                    return e.getStatus();
-                }
-            }
-
-        };
-
-        dialog.addBackgroundJob("Scanning for activators in project", job);
-
-        return dialog;
-    }
-
-    public static NewResourceSelectionDialog<IPackageExport> createImportDialog(
-        Shell shell, String title, ISigilProjectModel sigil,
-        final IPackageImport selected, final Collection<IPackageImport> existing)
-    {
-        final Set<String> existingNames = new HashSet<String>();
-
-        for (IPackageImport existingImport : existing)
-        {
-            existingNames.add(existingImport.getPackageName());
-        }
-
-        final NewResourceSelectionDialog<IPackageExport> dialog = new NewResourceSelectionDialog<IPackageExport>(
-            shell, "Package Name:", false);
-
-        dialog.setFilter(new IFilter<IPackageModelElement>()
-        {
-            public boolean select(IPackageModelElement element)
-            {
-                return !existingNames.contains(element.getPackageName());
-            }
-        });
-
-        dialog.setComparator(new Comparator<IPackageExport>()
-        {
-            public int compare(IPackageExport o1, IPackageExport o2)
-            {
-                return o1.compareTo(o2);
-            }
-        });
-
-        dialog.setDescriptor(new IElementDescriptor<IPackageExport>()
-        {
-            public String getLabel(IPackageExport element)
-            {
-                return getName(element) + " (" + element.getVersion().toString() + ")";
-            }
-
-            public String getName(IPackageExport element)
-            {
-                return element.getPackageName();
-            }
-        });
-
-        dialog.setLabelProvider(new WrappedContentProposalLabelProvider<IPackageExport>(
-            dialog.getDescriptor()));
-
-        if (selected != null)
-        {
-            dialog.setSelectedName(selected.getPackageName());
-            dialog.setVersions(selected.getVersions());
-            dialog.setOptional(selected.isOptional());
-        }
-
-        IJobRunnable job = new ExportedPackageFinder(sigil, dialog);
-        dialog.addBackgroundJob("Scanning for exports in workspace", job);
-
-        return dialog;
-    }
-
-    public static NewPackageExportDialog createNewExportDialog(Shell shell, String title,
-        final IPackageExport selected, final ISigilProjectModel project,
-        boolean multiSelect)
-    {
-        IFilter<IJavaElement> selectFilter = new IFilter<IJavaElement>()
-        {
-            public boolean select(IJavaElement e)
-            {
-                if (selected != null
-                    && e.getElementName().equals(selected.getPackageName()))
-                {
-                    return true;
-                }
-
-                if (e.getElementName().trim().length() > 0 && isLocal(e))
-                {
-                    for (IPackageExport p : project.getBundle().getBundleInfo().getExports())
-                    {
-                        if (p.getPackageName().equals(e.getElementName()))
-                        {
-                            return false;
-                        }
-                    }
-
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-
-            private boolean isLocal(IJavaElement java)
-            {
-                try
-                {
-                    switch (java.getElementType())
-                    {
-                        case IJavaElement.PACKAGE_FRAGMENT:
-                            IPackageFragment fragment = (IPackageFragment) java;
-                            return fragment.containsJavaResources();
-                        default:
-                            throw new IllegalStateException("Unexpected resource type "
-                                + java);
-                    }
-                }
-                catch (JavaModelException e)
-                {
-                    SigilCore.error("Failed to inspect java element ", e);
-                    return false;
-                }
-            }
-
-        };
-
-        final NewPackageExportDialog dialog = new NewPackageExportDialog(shell,
-            multiSelect);
-        dialog.setFilter(selectFilter);
-
-        dialog.setProjectVersion(project.getVersion());
-        if (selected != null)
-        {
-            dialog.setSelectedName(selected.getPackageName());
-            dialog.setVersion(selected.getRawVersion());
-        }
-
-        IJobRunnable job = new IJobRunnable()
-        {
-            public IStatus run(IProgressMonitor monitor)
-            {
-                try
-                {
-                    ArrayList<IPackageFragment> list = new ArrayList<IPackageFragment>(
-                        UPDATE_BATCH_SIZE);
-                    for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
-                        IJavaElement.PACKAGE_FRAGMENT))
-                    {
-                        IPackageFragment root = (IPackageFragment) e;
-                        if (project.isInBundleClasspath(root))
-                        {
-                            list.add(root);
-                            if (list.size() >= UPDATE_BATCH_SIZE)
-                            {
-                                dialog.addElements(list);
-                                list.clear();
-                            }
-                        }
-                    }
-                    if (!list.isEmpty())
-                    {
-                        dialog.addElements(list);
-                    }
-                    return Status.OK_STATUS;
-                }
-                catch (JavaModelException e)
-                {
-                    return e.getStatus();
-                }
-            }
-        };
-
-        dialog.addBackgroundJob("Scanning for packages in project", job);
-
-        return dialog;
-    }
-
-    public static NewResourceSelectionDialog<IBundleModelElement> createRequiredBundleDialog(
-        Shell shell, String title, final ISigilProjectModel sigil,
-        final IRequiredBundle selected, final Collection<IRequiredBundle> existing)
-    {
-        final Set<String> existingNames = new HashSet<String>();
-        for (IRequiredBundle existingBundle : existing)
-        {
-            existingNames.add(existingBundle.getSymbolicName());
-        }
-
-        final NewResourceSelectionDialog<IBundleModelElement> dialog = new NewResourceSelectionDialog<IBundleModelElement>(
-            shell, "Bundle:", false);
-
-        dialog.setDescriptor(new IElementDescriptor<IBundleModelElement>()
-        {
-            public String getLabel(IBundleModelElement element)
-            {
-                return getName(element) + " (" + element.getVersion() + ")";
-            }
-
-            public String getName(IBundleModelElement element)
-            {
-                return element.getSymbolicName();
-            }
-        });
-
-        dialog.setLabelProvider(new WrappedContentProposalLabelProvider<IBundleModelElement>(
-            dialog.getDescriptor()));
-
-        dialog.setFilter(new IFilter<IBundleModelElement>()
-        {
-            public boolean select(IBundleModelElement element)
-            {
-                return !existingNames.contains(element.getSymbolicName());
-            }
-        });
-
-        dialog.setComparator(new Comparator<IBundleModelElement>()
-        {
-            public int compare(IBundleModelElement o1, IBundleModelElement o2)
-            {
-                return o1.getSymbolicName().compareTo(o2.getSymbolicName());
-            }
-        });
-
-        if (selected != null)
-        {
-            dialog.setSelectedName(selected.getSymbolicName());
-            dialog.setVersions(selected.getVersions());
-            dialog.setOptional(selected.isOptional());
-        }
-
-        IJobRunnable job = new IJobRunnable()
-        {
-            public IStatus run(final IProgressMonitor monitor)
-            {
-                final List<IBundleModelElement> bundles = new ArrayList<IBundleModelElement>(
-                    UPDATE_BATCH_SIZE);
-                final IModelWalker walker = new IModelWalker()
-                {
-                    //int count = 0;
-                    public boolean visit(IModelElement element)
-                    {
-                        if (element instanceof IBundleModelElement)
-                        {
-                            IBundleModelElement b = (IBundleModelElement) element;
-                            bundles.add(b);
-
-                            if (bundles.size() >= UPDATE_BATCH_SIZE)
-                            {
-                                dialog.addElements(bundles);
-                                bundles.clear();
-                            }
-                            // no need to recurse further.
-                            return false;
-                        }
-                        return !monitor.isCanceled();
-                    }
-                };
-                sigil.getRepositoryManager().visit(walker);
-                if (!bundles.isEmpty())
-                {
-                    dialog.addElements(bundles);
-                }
-                return Status.OK_STATUS;
-            }
-        };
-
-        dialog.addBackgroundJob("Scanning for bundles in workspace", job);
-
-        return dialog;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SelectionDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SelectionDialog.java
deleted file mode 100644
index 13a26a7..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SelectionDialog.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalListener;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author dave
- *
- * @param <E>
- */
-public class SelectionDialog<E> extends TitleAreaDialog
-{
-
-    private final ILabelProvider DEFAULT_LABEL_PROVIDER = new LabelProvider()
-        {
-            @SuppressWarnings("unchecked")
-            public String getText(Object element)
-            {
-                String result;
-                if (element instanceof WrappedContentProposal<?>)
-                {
-                    WrappedContentProposal<E> contentProposal = (org.apache.felix.sigil.eclipse.ui.util.WrappedContentProposal<E>) element;
-                    result = contentProposal.getLabel();
-                }
-                else
-                {
-                    result = descriptor.getLabel((E) element);
-                }
-                return result;
-            }
-        };
-    private final IElementDescriptor<E> DEFAULT_DESCRIPTOR = new IElementDescriptor<E>()
-        {
-            public String getLabel(E element)
-            {
-                return getName(element);
-            }
-    
-            public String getName(E element)
-            {
-                return element == null ? "null" : element.toString();
-            }
-        };
-    protected final String selectionLabel;
-    private IFilter<? super E> filter;
-    private IElementDescriptor<? super E> descriptor = DEFAULT_DESCRIPTOR;
-    private ILabelProvider labelProvider = DEFAULT_LABEL_PROVIDER;
-    protected final boolean multi;
-    protected final List<E> elements;
-    private List<E> selection = null;
-    private String selectedName = null;
-    private TableViewer viewer = null;
-    private Comparator<? super E> comparator;
-
-    private static final void onUIThread(Control control, Runnable r)
-    {
-        if (control != null && !control.isDisposed())
-        {
-            try
-            {
-                Display display = control.getDisplay();
-                if (Thread.currentThread() == display.getThread())
-                {
-                    // We are on the UI thread already, just do the work
-                    r.run();
-                }
-                else
-                {
-                    // Not on the UI thread, need to bung over the runnable
-                    display.asyncExec(r);
-                }
-            }
-            catch (SWTError e)
-            {
-                if (e.code == SWT.ERROR_WIDGET_DISPOSED)
-                {
-                    // ignore
-                }
-                else
-                {
-                    throw e;
-                }
-            }
-        }
-    }
-
-    public void setFilter(IFilter<? super E> filter)
-    {
-        this.filter = filter;
-    }
-
-    public void setDescriptor(final IElementDescriptor<? super E> descriptor)
-    {
-        if (descriptor != null)
-        {
-            this.descriptor = descriptor;
-        }
-        else
-        {
-            this.descriptor = DEFAULT_DESCRIPTOR;
-        }
-    }
-
-    public IElementDescriptor<? super E> getDescriptor()
-    {
-        return descriptor;
-    }
-
-    public void setComparator(Comparator<? super E> comparator)
-    {
-        this.comparator = comparator;
-    }
-
-    public void setLabelProvider(ILabelProvider labelProvider)
-    {
-        if (labelProvider != null)
-        {
-            this.labelProvider = labelProvider;
-        }
-        else
-        {
-            this.labelProvider = DEFAULT_LABEL_PROVIDER;
-        }
-    }
-
-    @Override
-    protected Control createDialogArea(Composite parent)
-    {
-        // Create Controls
-        Composite container = (Composite) super.createDialogArea(parent);
-        Composite composite = new Composite(container, SWT.NONE);
-    
-        new Label(composite, SWT.NONE).setText(selectionLabel);
-    
-        ContentProposalAdapter proposalAdapter = null;
-        Text txtSelection = null;
-    
-        Table table = null;
-        if (multi)
-        {
-            table = new Table(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
-            viewer = new TableViewer(table);
-            viewer.setContentProvider(new ArrayContentProvider());
-            viewer.addFilter(new ViewerFilter()
-            {
-                public boolean select(Viewer viewer, Object parentElement, Object element)
-                {
-                    @SuppressWarnings("unchecked")
-                    E castedElement = (E) element;
-                    return filter == null || filter.select(castedElement);
-                }
-            });
-            if (comparator != null)
-            {
-                viewer.setSorter(new ViewerSorter()
-                {
-                    @Override
-                    public int compare(Viewer viewer, Object o1, Object o2)
-                    {
-                        @SuppressWarnings("unchecked")
-                        E e1 = (E) o1;
-                        @SuppressWarnings("unchecked")
-                        E e2 = (E) o2;
-                        return comparator.compare(e1, e2);
-                    }
-                });
-            }
-            synchronized (elements)
-            {
-                viewer.setInput(elements);
-            }
-    
-            if (labelProvider != null)
-            {
-                viewer.setLabelProvider(labelProvider);
-            }
-        }
-        else
-        {
-            txtSelection = new Text(composite, SWT.BORDER);
-            ControlDecoration selectionDecor = new ControlDecoration(txtSelection,
-                SWT.LEFT | SWT.TOP);
-            FieldDecoration proposalDecor = FieldDecorationRegistry.getDefault().getFieldDecoration(
-                FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
-            selectionDecor.setImage(proposalDecor.getImage());
-            selectionDecor.setDescriptionText(proposalDecor.getDescription());
-    
-            ExclusionContentProposalProvider<E> proposalProvider = new ExclusionContentProposalProvider<E>(
-                elements, filter, descriptor);
-    
-            proposalAdapter = new ContentProposalAdapter(txtSelection,
-                new TextContentAdapter(), proposalProvider, null, null);
-            proposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-            if (labelProvider != null)
-            {
-                proposalAdapter.setLabelProvider(labelProvider);
-            }
-    
-            if (selectedName != null)
-            {
-                txtSelection.setText(selectedName);
-            }
-        }
-        updateSelection();
-        updateButtons();
-    
-        // Hookup listeners
-        if (proposalAdapter != null)
-        {
-            proposalAdapter.addContentProposalListener(new IContentProposalListener()
-            {
-                public void proposalAccepted(IContentProposal proposal)
-                {
-                    @SuppressWarnings("unchecked")
-                    WrappedContentProposal<E> valueProposal = (org.apache.felix.sigil.eclipse.ui.util.WrappedContentProposal<E>) proposal;
-                    E selected = valueProposal.getElement();
-                    selection = new ArrayList<E>(1);
-                    selection.add(selected);
-    
-                    elementSelected(selected);
-    
-                    updateButtons();
-                }
-            });
-        }
-        if (txtSelection != null)
-        {
-            txtSelection.addModifyListener(new ModifyListener()
-            {
-                public void modifyText(ModifyEvent e)
-                {
-                    selectedName = ((Text) e.widget).getText();
-                    updateButtons();
-                }
-            });
-        }
-        if (viewer != null)
-        {
-            viewer.addSelectionChangedListener(new ISelectionChangedListener()
-            {
-                public void selectionChanged(SelectionChangedEvent event)
-                {
-                    IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-                    selection = new ArrayList<E>(sel.size());
-                    for (Iterator<?> iter = sel.iterator(); iter.hasNext();)
-                    {
-                        @SuppressWarnings("unchecked")
-                        E element = (E) iter.next();
-                        selection.add(element);
-                    }
-                    updateButtons();
-                }
-            });
-            viewer.addOpenListener(new IOpenListener()
-            {
-                public void open(OpenEvent event)
-                {
-                    if (canComplete())
-                    {
-                        setReturnCode(IDialogConstants.OK_ID);
-                        close();
-                    }
-                }
-            });
-        }
-    
-        // Layout
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        if (multi)
-        {
-            composite.setLayout(new GridLayout(1, false));
-            GridData layoutTable = new GridData(SWT.FILL, SWT.FILL, true, true);
-            layoutTable.heightHint = 200;
-            table.setLayoutData(layoutTable);
-        }
-        else
-        {
-            composite.setLayout(new GridLayout(2, false));
-            txtSelection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        }
-    
-        return container;
-    }
-
-    protected void elementSelected(E selection)
-    {
-    }
-
-    @Override
-    protected Control createButtonBar(Composite parent)
-    {
-        Control bar = super.createButtonBar(parent);
-        updateButtons();
-        return bar;
-    }
-
-    /**
-     * Can be called from any thread
-     */
-    protected final void updateButtons()
-    {
-        Runnable updateButtonsRunnable = new Runnable()
-        {
-            public void run()
-            {
-                Shell shell = getShell();
-                if (shell != null && !shell.isDisposed())
-                {
-                    Button okButton = getButton(IDialogConstants.OK_ID);
-                    if (okButton != null && !okButton.isDisposed())
-                    {
-                        okButton.setEnabled(canComplete());
-                    }
-                }
-            }
-        };
-        Shell shell = getShell();
-        if (shell != null)
-        {
-            onUIThread(shell, updateButtonsRunnable);
-        }
-    }
-
-    /**
-     * Subclasses may override but must call super.canComplete
-     * @return
-     */
-    protected synchronized boolean canComplete()
-    {
-        boolean result = false;
-    
-        if (selection != null)
-        {
-            if (multi)
-            {
-                result = selection.size() > 0;
-            }
-            else
-            {
-                E sel = getSelectedElement();
-                result = sel != null && descriptor.getName(sel).equals(selectedName);
-            }
-        }
-    
-        return result;
-    }
-
-    public final void addElement(E added)
-    {
-        addElements(Collections.singleton(added));
-    }
-
-    /**
-     * Can be called from any thread
-     */
-    public final void addElements(Collection<? extends E> added)
-    {
-        final LinkedList<E> toAdd = new LinkedList<E>();
-        synchronized (elements)
-        {
-            for (E e : added)
-            {
-                if (!elements.contains(e))
-                {
-                    elements.add(e);
-                    toAdd.add(e);
-                }
-            }
-            Collections.sort(elements, comparator);
-        }
-        if (viewer != null)
-        {
-            onUIThread(viewer.getControl(), new Runnable()
-            {
-                public void run()
-                {
-                    if (!viewer.getControl().isDisposed())
-                    {
-                        viewer.add(toAdd.toArray());
-                        viewer.refresh();
-                    }
-                }
-            });
-        }
-        else
-        {
-    
-        }
-        updateSelection();
-        updateButtons();
-    }
-
-    protected void updateSelection()
-    {
-        onUIThread(getShell(), new Runnable()
-        {
-            public void run()
-            {
-                if (selectedName != null)
-                {
-                    ArrayList<E> newSelection = new ArrayList<E>();
-                    synchronized (elements)
-                    {
-                        for (E e : elements)
-                        {
-                            if (selectedName.equals(descriptor.getName(e)))
-                            {
-                                newSelection.add(e);
-                                break;
-                            }
-                        }
-                    }
-                    selection = newSelection;
-                }
-                else
-                {
-                    selection = Collections.emptyList();
-                }
-                if (viewer != null && !viewer.getControl().isDisposed())
-                {
-                    viewer.setSelection(selection.isEmpty() ? StructuredSelection.EMPTY
-                        : new StructuredSelection(selection));
-                }
-            }
-        });
-    }
-
-    /**
-     * @param parentShell
-     */
-    public SelectionDialog(Shell parentShell, String selectionLabel, boolean multi)
-    {
-        super(parentShell);
-        this.selectionLabel = selectionLabel;
-        this.multi = multi;
-        this.elements = new ArrayList<E>();
-    }
-
-    public String getSelectedName()
-    {
-        return selectedName;
-    }
-
-    public void setSelectedName(String selectedName)
-    {
-        this.selectedName = selectedName;
-        boolean change = false;
-        if (selectedName == null)
-        {
-            if (selection != null && !selection.isEmpty())
-            {
-                change = true;
-            }
-        }
-        else
-        {
-            if (selection == null)
-            {
-                change = true;
-            }
-            else if (selection.size() != 1
-                || !descriptor.getLabel(selection.get(0)).equals(selectedName))
-            {
-                change = true;
-            }
-        }
-    
-        if (change)
-        {
-            updateSelection();
-            updateButtons();
-        }
-    }
-
-    public List<E> getSelectedElements()
-    {
-        return selection;
-    }
-
-    public E getSelectedElement()
-    {
-        E result;
-        if (selection == null || selection.isEmpty())
-        {
-            result = null;
-        }
-        else
-        {
-            result = selection.get(0);
-        }
-        return result;
-    }
-
-}
\ No newline at end of file
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SingletonSelection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SingletonSelection.java
deleted file mode 100644
index 2784d35..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/SingletonSelection.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-@SuppressWarnings("unchecked")
-public class SingletonSelection implements IStructuredSelection
-{
-
-    private final Object singleton;
-
-    public SingletonSelection(Object singleton)
-    {
-        this.singleton = singleton;
-    }
-
-    public Object getFirstElement()
-    {
-        return singleton;
-    }
-
-    public Iterator iterator()
-    {
-        return Collections.singleton(singleton).iterator();
-    }
-
-    public int size()
-    {
-        return 1;
-    }
-
-    public Object[] toArray()
-    {
-        return new Object[] { singleton };
-    }
-
-    public List toList()
-    {
-        ArrayList list = new ArrayList(1);
-        list.add(singleton);
-        return list;
-    }
-
-    public boolean isEmpty()
-    {
-        return false;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/UIHelper.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/UIHelper.java
deleted file mode 100644
index 347a6b7..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/UIHelper.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.apache.felix.sigil.eclipse.ui.util;
-
-public class UIHelper
-{
-    public static <T> IElementDescriptor<T> getDefaultElementDescriptor()
-    {
-        return new IElementDescriptor<T>()
-        {
-            public String getLabel(T element)
-            {
-                return element == null ? "null" : element.toString();
-            }
-
-            public String getName(T element)
-            {
-                return getLabel(element);
-            }
-        };
-    }
-
-    public static <T> IFilter<T> getDefaultFilter()
-    {
-        return new IFilter<T>()
-        {
-            public boolean select(T element)
-            {
-                return true;
-            }
-        };
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposal.java
deleted file mode 100644
index ec44762..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposal.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.jface.fieldassist.IContentProposal;
-
-public class WrappedContentProposal<T> implements IContentProposal
-{
-
-    private final T element;
-    private final IElementDescriptor<? super T> descriptor;
-
-    private WrappedContentProposal(T element, IElementDescriptor<? super T> descriptor)
-    {
-        this.element = element;
-        this.descriptor = descriptor;
-    }
-
-    public static <T> WrappedContentProposal<T> newInstance(T element,
-        IElementDescriptor<? super T> descriptor)
-    {
-        return new WrappedContentProposal<T>(element, descriptor);
-    }
-
-    public String getContent()
-    {
-        return descriptor.getName(element);
-    }
-
-    public int getCursorPosition()
-    {
-        return 0;
-    }
-
-    public String getDescription()
-    {
-        return null;
-    }
-
-    public String getLabel()
-    {
-        return descriptor.getLabel(element);
-    }
-
-    public T getElement()
-    {
-        return element;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getLabel();
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposalLabelProvider.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposalLabelProvider.java
deleted file mode 100644
index 9e1d46f..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/util/WrappedContentProposalLabelProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.util;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class WrappedContentProposalLabelProvider<E> extends LabelProvider
-{
-
-    private final IElementDescriptor<? super E> descriptor;
-    private final ModelLabelProvider projectLabelProvider;
-
-    public WrappedContentProposalLabelProvider(IElementDescriptor<? super E> descriptor)
-    {
-        this.descriptor = descriptor;
-        projectLabelProvider = new ModelLabelProvider();
-    }
-
-    @SuppressWarnings("unchecked")
-    private E adapt(Object element)
-    {
-        E result;
-        if (element instanceof WrappedContentProposal<?>)
-        {
-            WrappedContentProposal<?> proposal = (org.apache.felix.sigil.eclipse.ui.util.WrappedContentProposal<?>) element;
-            result = (E) proposal.getElement();
-        }
-        else
-        {
-            result = (E) element;
-        }
-        return result;
-    }
-
-    @Override
-    public Image getImage(Object element)
-    {
-        Object value = adapt(element);
-        return projectLabelProvider.getImage(value);
-    }
-
-    @Override
-    public String getText(Object element)
-    {
-        return descriptor.getLabel(adapt(element));
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizard.java
deleted file mode 100644
index 982341f..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizard.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.wizard.project;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.ui.internal.wizard.SigilNewResourceWizard;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-
-/**
- * @author dave
- *
- */
-public class SigilProjectWizard extends SigilNewResourceWizard implements IExecutableExtension
-{
-
-    private SigilProjectWizardFirstPage firstPage;
-    private SigilProjectWizardSecondPage secondPage;
-
-    private String name;
-
-    public static final IPath SIGIL_PROJECT_PATH = new Path(SigilCore.SIGIL_PROJECT_FILE);
-    private IConfigurationElement config;
-
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection)
-    {
-        super.init(workbench, currentSelection);
-
-        firstPage = new SigilProjectWizardFirstPage();
-        firstPage.setInitialProjectName(name);
-        secondPage = new SigilProjectWizardSecondPage(firstPage);
-
-        addPage(firstPage);
-        addPage(secondPage);
-    }
-
-    private void finishPage(IProgressMonitor monitor) throws CoreException,
-        InterruptedException
-    {
-        secondPage.performFinish(monitor);
-
-        IProject newProject = firstPage.getProjectHandle();
-
-        if (newProject != null && newProject.exists())
-        {
-            IFile file = newProject.getFile(SigilProjectWizard.SIGIL_PROJECT_PATH);
-
-            selectRevealAndShow(file);
-
-            // don't do this check for now - see FELIX-1924
-            //            new Job( "Check OSGi Install" )
-            //            {
-            //                @Override
-            //                protected IStatus run( IProgressMonitor monitor )
-            //                {
-            //                    // prompt for osgi home if not already set.
-            //                    SigilCore.getInstallManager().getDefaultInstall();
-            //                    return Status.OK_STATUS;
-            //                }
-            //            }.schedule();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.Wizard#performFinish()
-     */
-    @Override
-    public boolean performFinish()
-    {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        IWorkspaceRunnable op = new IWorkspaceRunnable()
-        {
-            public void run(IProgressMonitor monitor) throws CoreException
-            {
-                try
-                {
-                    finishPage(monitor);
-                }
-                catch (InterruptedException e)
-                {
-                    throw new OperationCanceledException(e.getMessage());
-                }
-            }
-        };
-
-        try
-        {
-            workspace.run(op, Job.getJobManager().createProgressGroup());
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to complete project wizard", e);
-            return false;
-        }
-
-        BasicNewProjectResourceWizard.updatePerspective(config);
-        return true;
-    }
-
-    public void setName(String name)
-    {
-        this.name = name;
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    @Override
-    public boolean performCancel()
-    {
-        secondPage.performCancel();
-        return super.performCancel();
-    }
-
-    public void setInitializationData(IConfigurationElement config, String propertyName,
-        Object data) throws CoreException
-    {
-        this.config = config;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardFirstPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardFirstPage.java
deleted file mode 100644
index c11ce93..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardFirstPage.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.wizard.project;
-
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.resource.ImageDescriptor;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class SigilProjectWizardFirstPage extends WizardNewProjectCreationPage
-{
-
-    private volatile String bsn;
-    private volatile String description;
-    private volatile Version version;
-    private volatile String vendor;
-    private volatile String name;
-
-    private Button customBSN;
-    private Text txtBSN;
-    private Text txtDescription;
-    private Text txtVersion;
-    private Text txtVendor;
-    private Text txtName;
-    private boolean initialized;
-
-    public SigilProjectWizardFirstPage()
-    {
-        super("newSigilProjectPage");
-        setTitle("Sigil Project");
-        setDescription("Create a new Sigil project");
-        setImageDescriptor(ImageDescriptor.createFromFile(
-            SigilProjectWizardFirstPage.class, "/icons/logo64x64.gif"));
-    }
-
-    public boolean isInWorkspace()
-    {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        IPath defaultDefaultLocation = workspace.getRoot().getLocation();
-
-        return defaultDefaultLocation.isPrefixOf(getLocationPath());
-    }
-
-    @Override
-    public boolean isPageComplete()
-    {
-        boolean result = super.isPageComplete();
-        return result;
-    }
-
-    @Override
-    public void createControl(Composite parent)
-    {
-        // Create controls
-        super.createControl(parent);
-        Composite control = (Composite) getControl();
-
-        Group grpProjectSettings = buildComponents(control);
-        setDefaultValues();
-        initListeners();
-        doLayout(control, grpProjectSettings);
-        initialized = true;
-    }
-
-    private Group buildComponents(Composite control)
-    {
-        Group grpProjectSettings = new Group(control, SWT.NONE);
-        grpProjectSettings.setText("OSGi Bundle Settings");
-
-        new Label(grpProjectSettings, SWT.NONE).setText("Symbolic Name:");
-        txtBSN = new Text(grpProjectSettings, SWT.BORDER);
-        txtBSN.setEnabled(false);
-        customBSN = new Button(grpProjectSettings, SWT.CHECK | SWT.RIGHT);
-        customBSN.setText("Custom");
-
-        new Label(grpProjectSettings, SWT.NONE).setText("Version:");
-        txtVersion = new Text(grpProjectSettings, SWT.BORDER);
-
-        new Label(grpProjectSettings, SWT.NONE).setText("Name:");
-        txtName = new Text(grpProjectSettings, SWT.BORDER);
-
-        new Label(grpProjectSettings, SWT.NONE).setText("Description:");
-        txtDescription = new Text(grpProjectSettings, SWT.BORDER);
-
-        new Label(grpProjectSettings, SWT.NONE).setText("Provider:");
-        txtVendor = new Text(grpProjectSettings, SWT.BORDER);
-
-        decorateComponents();
-        
-        return grpProjectSettings;
-    }
-
-    /**
-     * 
-     */
-    private void decorateComponents()
-    {
-        FieldDecoration infoDecor = FieldDecorationRegistry.getDefault().getFieldDecoration(
-            FieldDecorationRegistry.DEC_INFORMATION);
-
-        ControlDecoration txtBSNDecor = new ControlDecoration(txtBSN, SWT.LEFT
-            | SWT.CENTER);
-        txtBSNDecor.setImage(infoDecor.getImage());
-        txtBSNDecor.setDescriptionText("The unique name of this bundle - should follow reverse domain name pattern");
-        
-        ControlDecoration txtVersionDecor = new ControlDecoration(txtVersion, SWT.LEFT
-            | SWT.CENTER);
-        txtVersionDecor.setImage(infoDecor.getImage());
-        txtVersionDecor.setDescriptionText("The version of this bundle");
-        
-        ControlDecoration txtNameDecor = new ControlDecoration(txtName, SWT.LEFT
-            | SWT.CENTER);
-        txtNameDecor.setImage(infoDecor.getImage());
-        txtNameDecor.setDescriptionText("Defines a human-readable name for the bundle");
-
-        ControlDecoration txtDescDecor = new ControlDecoration(txtDescription, SWT.LEFT
-            | SWT.CENTER);
-        txtDescDecor.setImage(infoDecor.getImage());
-        txtDescDecor.setDescriptionText("Defines a short human-readable description for the bundle");
-
-        ControlDecoration txtVendorDecor = new ControlDecoration(txtVendor, SWT.LEFT
-            | SWT.CENTER);
-        txtVendorDecor.setImage(infoDecor.getImage());
-        txtVendorDecor.setDescriptionText("The name of the company, organisation or individual providing the bundle");
-    }
-
-    private void setDefaultValues()
-    {
-        version = VersionTable.getVersion(1, 0, 0);
-        txtVersion.setText(version.toString());
-    }
-
-    private void initListeners()
-    {
-        // Add listeners
-        ModifyListener txtModListener = new ModifyListener()
-        {
-            public void modifyText(ModifyEvent e)
-            {
-                validatePage();
-            }
-        };
-
-        customBSN.addSelectionListener(new SelectionAdapter()
-        {
-            @Override
-            public void widgetSelected(SelectionEvent e)
-            {
-                txtBSN.setEnabled(customBSN.getSelection());
-                validatePage();
-            }
-        });
-        
-        txtBSN.addModifyListener(txtModListener);
-        txtDescription.addModifyListener(txtModListener);
-        txtVersion.addModifyListener(txtModListener);
-        txtVendor.addModifyListener(txtModListener);
-        txtName.addModifyListener(txtModListener);
-    }
-
-    private void doLayout(Composite control, Group grpProjectSettings)
-    {
-        control.setLayout(new GridLayout());
-        grpProjectSettings.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        grpProjectSettings.setLayout(new GridLayout(3, false));
-        txtBSN.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-        customBSN.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false));
-        txtDescription.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-        txtVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-        txtVendor.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-        txtName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-    }
-
-    @Override
-    protected boolean validatePage()
-    {
-        readValues();
-        if ( super.validatePage() ) {
-            if (getBundleSymbolicName() == null)
-            {
-                setErrorMessage("Invalid bundle symbolic name");
-                setPageComplete(false);
-                return false;
-            }
-    
-            if (getVersion() == null)
-            {
-                setErrorMessage("Invalid version");
-                setPageComplete(false);
-                return false;
-            }
-    
-            // ok all must be fine...
-            setErrorMessage(null);
-            setPageComplete(true);
-        }
-        
-        return true;
-    }
-
-    private static final ThreadLocal<Object> reentrant = new ThreadLocal<Object>();
-    private static final Object REENTRANCE = new Object();
-    
-    /**
-     * 
-     */
-    private void readValues()
-    {
-        if ( initialized && reentrant.get() != REENTRANCE ) {
-            if ( customBSN.getSelection() ) {
-                bsn = nullIfEmpty(txtBSN.getText());
-            }
-            else {
-                bsn = getProjectName();
-                reentrant.set(REENTRANCE);
-                txtBSN.setText(bsn);
-                reentrant.set(null);
-            }
-            
-            description = nullIfEmpty(txtDescription.getText());
-            name = nullIfEmpty(txtName.getText());
-            vendor = nullIfEmpty(txtVendor.getText());
-            version = nullIfInvalidVersion(txtVersion.getText());
-        }
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    public String getVendor()
-    {
-        return vendor;
-    }
-
-    public String getDescription()
-    {
-        return description;
-    }
-
-    public String getBundleSymbolicName()
-    {
-        return bsn;
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    // utility methods
-    private static String nullIfEmpty(String str)
-    {
-        return str == null ? null : (str.trim().length() == 0 ? null : str.trim());
-    }
-
-    private static Version nullIfInvalidVersion(String text)
-    {
-        Version version = null;
-        try
-        {
-            String v = nullIfEmpty(text);
-            if (v != null)
-            {
-                version = VersionTable.getVersion(v);
-            }
-        }
-        catch (IllegalArgumentException e)
-        {
-            // fine version is invalid - handled by validateSettings
-        }
-
-        return version;
-    }
-
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardSecondPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardSecondPage.java
deleted file mode 100644
index e451213..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/project/SigilProjectWizardSecondPage.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.wizard.project;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jdt.ui.wizards.JavaCapabilityConfigurationPage;
-import org.osgi.framework.Version;
-
-/**
- * @author dave
- *
- */
-public class SigilProjectWizardSecondPage extends JavaCapabilityConfigurationPage
-{
-
-    private SigilProjectWizardFirstPage firstPage;
-    private IProject currentProject;
-    private URI currentProjectLocation;
-    private boolean created;
-
-    public SigilProjectWizardSecondPage(SigilProjectWizardFirstPage firstPage)
-    {
-        this.firstPage = firstPage;
-    }
-
-    @Override
-    public void setVisible(boolean visible)
-    {
-        super.setVisible(visible);
-        if (visible)
-        {
-            changeToNewProject();
-        }
-        else
-        {
-            removeProject();
-        }
-    }
-
-    @Override
-    protected boolean useNewSourcePage()
-    {
-        return true;
-    }
-
-    protected void performFinish(IProgressMonitor monitor) throws CoreException,
-        InterruptedException
-    {
-        boolean updated = changeToNewProject();
-        if (!updated)
-        {
-            updateProject(monitor);
-        }
-    }
-
-    private boolean changeToNewProject()
-    {
-        boolean updated = false;
-        if (!created)
-        {
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-            IWorkspaceRunnable op = new IWorkspaceRunnable()
-            {
-                public void run(IProgressMonitor monitor) throws CoreException
-                {
-                    try
-                    {
-                        updateProject(monitor);
-                    }
-                    catch (InterruptedException e)
-                    {
-                        throw new OperationCanceledException(e.getMessage());
-                    }
-                }
-            };
-
-            try
-            {
-                workspace.run(op, workspace.getRoot(), IWorkspace.AVOID_UPDATE,
-                    Job.getJobManager().createProgressGroup());
-                setErrorMessage(null);
-                setPageComplete(true);
-                created = true;
-                updated = true;
-            }
-            catch (CoreException e)
-            {
-                SigilCore.error("Failed to run workspace job", e);
-            }
-        }
-
-        return updated;
-    }
-
-    private void removeProject()
-    {
-        if (currentProject == null || !currentProject.exists())
-        {
-            return;
-        }
-
-        IWorkspaceRunnable op = new IWorkspaceRunnable()
-        {
-            public void run(IProgressMonitor monitor) throws CoreException
-            {
-                doRemoveProject(monitor);
-            }
-        };
-
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        try
-        {
-            workspace.run(op, Job.getJobManager().createProgressGroup());
-        }
-        catch (CoreException e)
-        {
-            SigilCore.error("Failed to run workspace job", e);
-        }
-        finally
-        {
-            created = false;
-        }
-    }
-
-    private void updateProject(IProgressMonitor monitor) throws CoreException,
-        InterruptedException
-    {
-        currentProject = firstPage.getProjectHandle();
-        currentProjectLocation = getProjectLocationURI();
-
-        String bsn = firstPage.getBundleSymbolicName();
-        String description = firstPage.getDescription();
-        Version projectVersion = firstPage.getVersion();
-        String vendor = firstPage.getVendor();
-        String name = firstPage.getName();
-
-        createProject(currentProject, currentProjectLocation, monitor);
-
-        IPath src = createSourcePath();
-
-        IPath output = getOutputLocation();
-
-        if (output.segmentCount() == 0)
-        {
-            output = new Path(currentProject.getName()).append("build").append("classes");
-        }
-
-        IClasspathEntry[] entries = getProjectClassPath(src);
-
-        SigilCore.makeSigilProject(currentProject, monitor);
-
-        init(JavaCore.create(currentProject), output.makeRelative(), entries, false);
-
-        configureJavaProject(new SubProgressMonitor(monitor, 3));
-
-        configureSigilProject(currentProject, bsn, description, projectVersion, vendor,
-            name, src, monitor);
-    }
-
-    private IPath createSourcePath() throws CoreException
-    {
-        IPath projectPath = currentProject.getFullPath();
-        IPath src = new Path("src");
-        IFolder f = currentProject.getFolder(src);
-        if (!f.getLocation().toFile().exists())
-        {
-            f.create(true, true, null);
-        }
-
-        return projectPath.append(src);
-    }
-
-    final void doRemoveProject(IProgressMonitor monitor) throws CoreException
-    {
-        final boolean noProgressMonitor = (currentProjectLocation == null); // inside workspace
-
-        if (monitor == null || noProgressMonitor)
-        {
-            monitor = new NullProgressMonitor();
-        }
-        monitor.beginTask("Remove project", 3);
-        try
-        {
-            try
-            {
-                boolean removeContent = currentProject.isSynchronized(IResource.DEPTH_INFINITE);
-                currentProject.delete(removeContent, false, new SubProgressMonitor(
-                    monitor, 2));
-
-            }
-            finally
-            {
-            }
-        }
-        finally
-        {
-            monitor.done();
-            currentProject = null;
-        }
-    }
-
-    private IClasspathEntry[] getProjectClassPath(IPath src) throws CoreException
-    {
-        List<IClasspathEntry> cpEntries = new ArrayList<IClasspathEntry>();
-        cpEntries.add(JavaCore.newSourceEntry(src));
-        cpEntries.addAll(Arrays.asList(getDefaultClasspathEntry()));
-        cpEntries.add(JavaCore.newContainerEntry(new Path(
-            SigilCore.CLASSPATH_CONTAINER_PATH)));
-        IClasspathEntry[] entries = cpEntries.toArray(new IClasspathEntry[cpEntries.size()]);
-
-        return entries;
-    }
-
-    private IClasspathEntry[] getDefaultClasspathEntry()
-    {
-        IClasspathEntry[] defaultJRELibrary = PreferenceConstants.getDefaultJRELibrary();
-        /*String compliance= firstPage.getCompilerCompliance();
-        IPath jreContainerPath= new Path(JavaRuntime.JRE_CONTAINER);
-        if (compliance == null || defaultJRELibrary.length > 1 || !jreContainerPath.isPrefixOf(defaultJRELibrary[0].getPath())) {
-            // use default
-            return defaultJRELibrary;
-        }
-        IVMInstall inst= firstPage.getJVM();
-        if (inst != null) {
-            IPath newPath= jreContainerPath.append(inst.getVMInstallType().getId()).append(inst.getName());
-            return new IClasspathEntry[] { JavaCore.newContainerEntry(newPath) };
-        }*/
-        return defaultJRELibrary;
-    }
-
-    private void configureSigilProject(IProject project, String bsn, String description,
-        Version projectVersion, String vendorName, String bundleName, IPath src,
-        IProgressMonitor monitor) throws CoreException
-    {
-        if (bsn == null)
-        {
-            throw SigilCore.newCoreException("Expected bundle symbolic name to be set",
-                null);
-        }
-        
-        ISigilProjectModel sigil = SigilCore.create(project);
-        IClasspathEntry cp = JavaCore.newSourceEntry(src);
-        String encodedClasspath = sigil.getJavaModel().encodeClasspathEntry(cp);
-
-        ISigilBundle bundle = sigil.getBundle();
-        bundle.addClasspathEntry(encodedClasspath);
-
-        // fine set up other values
-        bundle.getBundleInfo().setSymbolicName(bsn);
-        if (description != null)
-        {
-            bundle.getBundleInfo().setDescription(description);
-        }
-        if (projectVersion != null)
-        {
-            bundle.setVersion(projectVersion);
-        }
-        if (vendorName != null)
-        {
-            bundle.getBundleInfo().setVendor(vendorName);
-        }
-        if (bundleName != null)
-        {
-            bundle.getBundleInfo().setName(bundleName);
-        }
-        sigil.save(monitor);
-    }
-
-    private URI getProjectLocationURI() throws CoreException
-    {
-        if (firstPage.isInWorkspace())
-        {
-            return null;
-        }
-        return firstPage.getLocationURI();
-    }
-
-    @Override
-    public boolean isPageComplete()
-    {
-        boolean result = super.isPageComplete();
-        return result;
-    }
-
-    protected void performCancel()
-    {
-        if (currentProject != null)
-        {
-            removeProject();
-        }
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizard.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizard.java
deleted file mode 100644
index eeda6b5..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizard.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.wizard.repository;
-
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-
-public class RepositoryWizard extends Wizard
-{
-
-    private IRepositoryModel model;
-
-    @Override
-    public boolean performFinish()
-    {
-        for (IWizardPage page : getPages())
-        {
-            if (page instanceof RepositoryWizardPage)
-            {
-                RepositoryWizardPage rwp = (RepositoryWizardPage) page;
-                rwp.storeFields();
-            }
-        }
-        return true;
-    }
-
-    public IRepositoryModel getModel()
-    {
-        return model;
-    }
-
-    public void init(IRepositoryModel model)
-    {
-        this.model = model;
-    }
-}
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizardPage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizardPage.java
deleted file mode 100644
index bf94a38..0000000
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/wizard/repository/RepositoryWizardPage.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.eclipse.ui.wizard.repository;
-
-import java.util.ArrayList;
-
-import org.apache.felix.sigil.eclipse.SigilCore;
-import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.StringFieldEditor;
-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.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-public abstract class RepositoryWizardPage extends WizardPage
-{
-
-    private ArrayList<FieldEditor> editors = new ArrayList<FieldEditor>();
-    private RepositoryWizard wizard;
-    private IPreferenceStore prefs;
-    private StringFieldEditor nameEditor;
-
-    protected RepositoryWizardPage(String pageName, RepositoryWizard parent)
-    {
-        super(pageName);
-        setTitle(pageName);
-        this.wizard = parent;
-    }
-
-    public abstract void createFieldEditors();
-
-    public void addField(FieldEditor editor)
-    {
-        editors.add(editor);
-    }
-
-    public void createControl(Composite parent)
-    {
-        Composite control = new Composite(parent, SWT.NONE);
-        setControl(control);
-
-        if (getModel().getType().isDynamic())
-        {
-            nameEditor = new StringFieldEditor("name", "Name:", control);
-            nameEditor.setEmptyStringAllowed(false);
-            addField(nameEditor);
-        }
-
-        createFieldEditors();
-
-        int cols = 0;
-        for (FieldEditor e : editors)
-        {
-            cols = Math.max(cols, e.getNumberOfControls());
-        }
-
-        control.setLayout(new GridLayout(cols, false));
-
-        for (FieldEditor e : editors)
-        {
-            if (e instanceof StringFieldEditor) {
-                StringFieldEditor sfe = (StringFieldEditor) e;
-                sfe.getTextControl(getFieldEditorParent()).addModifyListener(
-                    new ModifyListener()
-                    {
-                        public void modifyText(ModifyEvent e)
-                        {
-                            checkPageComplete();
-                        }
-                    });
-            }
-            e.fillIntoGrid(getFieldEditorParent(), cols);
-            e.setPreferenceStore(getStore());
-            e.load();
-        }
-
-        checkPageComplete();
-    }
-
-    protected void checkPageComplete()
-    {
-        if (nameEditor != null)
-        {
-            int len = nameEditor.getStringValue().length();
-            boolean ok = len > 0;
-            setPageComplete(ok);
-            if ( !ok ) {
-                setErrorMessage("Name should not be empty");
-            }
-            else {
-                ok = nameEditor.getStringValue().trim().length() == len;
-                setPageComplete(ok);
-                if ( !ok ) {
-                    setErrorMessage("Name cannot start or end with whitespace");
-                }
-            }
-        }
-    }
-
-    public IRepositoryModel getModel()
-    {
-        return wizard.getModel();
-    }
-    
-    protected IPreferenceStore getStore() {
-        if ( prefs == null ) {
-            prefs = SigilCore.getRepositoryPreferences().toPreferenceStore(getModel());
-        }
-        
-        return prefs;
-    }
-
-    protected Composite getFieldEditorParent()
-    {
-        return (Composite) getControl();
-    }
-
-    public void storeFields()
-    {
-        for (FieldEditor e : editors)
-        {
-            e.store();
-        }
-    }
-
-}
diff --git a/sigil/eclipse/utils/.classpath b/sigil/eclipse/utils/.classpath
deleted file mode 100644
index 53669fa..0000000
--- a/sigil/eclipse/utils/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/eclipse/utils/.project b/sigil/eclipse/utils/.project
deleted file mode 100644
index c3ac20d..0000000
--- a/sigil/eclipse/utils/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.eclipse.utils</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/eclipse/utils/.settings/org.eclipse.jdt.core.prefs b/sigil/eclipse/utils/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 655c7dd..0000000
--- a/sigil/eclipse/utils/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,263 +0,0 @@
-#Thu Sep 17 16:11:22 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/eclipse/utils/.settings/org.eclipse.jdt.ui.prefs b/sigil/eclipse/utils/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f1824d2..0000000
--- a/sigil/eclipse/utils/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:11:22 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/eclipse/utils/DEPENDENCIES b/sigil/eclipse/utils/DEPENDENCIES
deleted file mode 100644
index 049cc85..0000000
--- a/sigil/eclipse/utils/DEPENDENCIES
+++ /dev/null
@@ -1,21 +0,0 @@
-Apache Felix Sigil Eclipse Util
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed by the The Eclipse Foundation
-(http://www.eclipse.org)
-Copyright © 2010 The Eclipse Foundation. All Rights Reserved.
-Licensed under the Eclipse Public License - v 1.0.
-
-III. License Summary
-- Apache License 2.0
-- Eclipse Public License - v 1.0
diff --git a/sigil/eclipse/utils/NOTICE b/sigil/eclipse/utils/NOTICE
deleted file mode 100644
index 9ac591a..0000000
--- a/sigil/eclipse/utils/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Eclipse Util
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/eclipse/utils/build.xml b/sigil/eclipse/utils/build.xml
deleted file mode 100644
index a14f0af..0000000
--- a/sigil/eclipse/utils/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="eclipse.utils" default="build">
-      <import file="../build.xml"/>
-</project>
diff --git a/sigil/eclipse/utils/ivy.xml b/sigil/eclipse/utils/ivy.xml
deleted file mode 100644
index ff2a3d9..0000000
--- a/sigil/eclipse/utils/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.eclipse.utils"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.eclipse.utils" />
-   </publications>
-</ivy-module>
diff --git a/sigil/eclipse/utils/plugin.xml b/sigil/eclipse/utils/plugin.xml
deleted file mode 100644
index b2a726a..0000000
--- a/sigil/eclipse/utils/plugin.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.apache.felix.sigil.utils.properties.EditorPropertyTester"
-            id="org.apache.felix.sigil.utils.editorPropertyTester"
-            namespace="org.apache.felix.sigil"
-            properties="isEditorOfType"
-            type="org.eclipse.ui.IWorkbenchPart">
-      </propertyTester>
-      <propertyTester
-            class="org.apache.felix.sigil.utils.properties.PartKindPropertyTester"
-            id="org.apache.felix.sigil.runtime.PartKindPropertyTester"
-            namespace="org.apache.felix.sigil"
-            properties="partKind,partId"
-            type="org.eclipse.ui.IWorkbenchPart">
-      </propertyTester>
-      <propertyTester
-            class="org.apache.felix.sigil.utils.properties.ResourceTypePropertyTester"
-            id="org.apache.felix.sigil.utils.ResourcePropertyTester"
-            namespace="org.apache.felix.sigil"
-            properties="isResourceOfType"
-            type="org.eclipse.core.resources.IResource">
-      </propertyTester>
-   </extension>
-
-</plugin>
diff --git a/sigil/eclipse/utils/sigil.properties b/sigil/eclipse/utils/sigil.properties
deleted file mode 100644
index 47f3eeb..0000000
--- a/sigil/eclipse/utils/sigil.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--singleton: true
-
--bundles: \
-	org.apache.felix.sigil.eclipse.utils, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-	plugin.xml, \
-
--sourcedirs: \
-	src, \
-
--exports: \
-	org.apache.felix.sigil.utils, \
-
--imports: \
-	org.apache.felix.sigil.utils, \
-	org.eclipse.core.expressions, \
-	org.eclipse.core.resources, \
-	org.eclipse.core.runtime, \
-	org.eclipse.core.runtime.content, \
-	org.eclipse.core.runtime.jobs;resolve=compile, \
-	org.eclipse.jface.window;resolve=compile, \
-	org.eclipse.ui, \
-
--requires: \
-	org.eclipse.core.runtime;version=3.4.0, \
-	org.eclipse.equinox.common;version=3.4.0, \
-	org.eclipse.ui.ide;version=3.4.2, \
-	org.eclipse.ui.workbench;version=3.4.1, \
-
-header;Bundle-ActivationPolicy: lazy
-
-# end
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/GlobCompiler.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/GlobCompiler.java
deleted file mode 100644
index ff64cd1..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/GlobCompiler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils;
-
-import java.util.regex.Pattern;
-
-public class GlobCompiler
-{
-    public static final Pattern compile(String glob)
-    {
-        char[] chars = glob.toCharArray();
-        if (chars.length > 0)
-        {
-            StringBuilder builder = new StringBuilder(chars.length + 5);
-
-            builder.append('^');
-
-            for (char c : chars)
-            {
-                switch (c)
-                {
-                    case '*':
-                        builder.append(".*");
-                        break;
-                    case '.':
-                        builder.append("\\.");
-                        break;
-                    case '$':
-                        builder.append("\\$");
-                        break;
-                    default:
-                        builder.append(c);
-                }
-            }
-
-            return Pattern.compile(builder.toString());
-        }
-        else
-        {
-            return Pattern.compile(glob);
-        }
-    }
-}
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/PathHelper.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/PathHelper.java
deleted file mode 100644
index 2cb2772..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/PathHelper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils;
-
-import java.io.File;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-public class PathHelper
-{
-
-    public static void scanFiles(List<IPath> paths, IPath path, String pattern,
-        boolean recurse)
-    {
-        Pattern p = GlobCompiler.compile(pattern);
-
-        for (File f : path.toFile().listFiles())
-        {
-            if (f.isDirectory() && recurse)
-            {
-                scanFiles(paths, new Path(f.getAbsolutePath()), pattern, recurse);
-            }
-            else if (f.isFile() && p.matcher(f.getName()).matches())
-            {
-                paths.add(new Path(f.getAbsolutePath()));
-            }
-        }
-    }
-}
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/SigilUtils.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/SigilUtils.java
deleted file mode 100644
index 480d102..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/SigilUtils.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-
-public final class SigilUtils
-{
-    private SigilUtils()
-    {
-    }
-
-    public static boolean isResourceType(IResource resource, String type)
-    {
-        IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(
-            resource.getName());
-        for (IContentType contentType : types)
-        {
-            if (contentType.getId().equals(type))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/EditorPropertyTester.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/EditorPropertyTester.java
deleted file mode 100644
index 647a317..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/EditorPropertyTester.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils.properties;
-
-import org.apache.felix.sigil.utils.SigilUtils;
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class EditorPropertyTester extends PropertyTester
-{
-
-    public boolean test(Object receiver, String property, Object[] args,
-        Object expectedValue)
-    {
-        IWorkbenchPart part = (IWorkbenchPart) receiver;
-
-        boolean result = false;
-
-        if (part instanceof IEditorPart)
-        {
-            IEditorInput input = ((IEditorPart) part).getEditorInput();
-            if (input instanceof IFileEditorInput)
-            {
-                IFile file = ((IFileEditorInput) input).getFile();
-
-                if ("isEditorOfType".equals(property))
-                {
-                    result = SigilUtils.isResourceType(file, (String) expectedValue);
-                }
-            }
-        }
-
-        return result;
-    }
-
-}
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/PartKindPropertyTester.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/PartKindPropertyTester.java
deleted file mode 100644
index d48542b..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/PartKindPropertyTester.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils.properties;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class PartKindPropertyTester extends PropertyTester
-{
-
-    public boolean test(Object receiver, String property, Object[] args,
-        Object expectedValue)
-    {
-        IWorkbenchPart part = (IWorkbenchPart) receiver;
-
-        Object value;
-        if ("partKind".equals(property))
-        {
-            if (part instanceof IEditorPart)
-            {
-                value = "editor";
-            }
-            else if (part instanceof IViewPart)
-            {
-                value = "view";
-            }
-            else
-            {
-                value = null;
-            }
-        }
-        else if ("partId".equals(property))
-        {
-            value = part.getSite().getId();
-        }
-        else
-        {
-            value = null;
-        }
-
-        return expectedValue.equals(value);
-    }
-
-}
diff --git a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/ResourceTypePropertyTester.java b/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/ResourceTypePropertyTester.java
deleted file mode 100644
index 13c13f3..0000000
--- a/sigil/eclipse/utils/src/org/apache/felix/sigil/utils/properties/ResourceTypePropertyTester.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.utils.properties;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-
-public class ResourceTypePropertyTester extends PropertyTester
-{
-
-    public boolean test(Object receiver, String property, Object[] args,
-        Object expectedValue)
-    {
-        if (!(receiver instanceof IResource))
-        {
-            return false;
-        }
-
-        boolean result = false;
-
-        IResource resource = (IResource) receiver;
-        if ("isResourceOfType".equals(property))
-        {
-            IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(
-                resource.getName());
-
-            for (IContentType type : types)
-            {
-                if (type.getId().equals(expectedValue))
-                {
-                    result = true;
-                    break;
-                }
-            }
-        }
-
-        return result;
-    }
-
-}
diff --git a/sigil/gogo/build.xml b/sigil/gogo/build.xml
deleted file mode 100644
index e8b2dd0..0000000
--- a/sigil/gogo/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="gogo" default="build-list">
-  <import file="../bldcommon/common.xml"/>
-</project>
diff --git a/sigil/gogo/junit/.classpath b/sigil/gogo/junit/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/gogo/junit/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/gogo/junit/.project b/sigil/gogo/junit/.project
deleted file mode 100644
index 83e5136..0000000
--- a/sigil/gogo/junit/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.gogo.junit</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/gogo/junit/DEPENDENCIES b/sigil/gogo/junit/DEPENDENCIES
deleted file mode 100644
index bcc3ee2..0000000
--- a/sigil/gogo/junit/DEPENDENCIES
+++ /dev/null
@@ -1,20 +0,0 @@
-Apache Felix Sigil Gogo JUnit
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-n/a
-
-II. Used Third-Party Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/gogo/junit/NOTICE b/sigil/gogo/junit/NOTICE
deleted file mode 100644
index 4fc7c00..0000000
--- a/sigil/gogo/junit/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Gogo JUnit
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/gogo/junit/build.xml b/sigil/gogo/junit/build.xml
deleted file mode 100644
index 974b0f3..0000000
--- a/sigil/gogo/junit/build.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="gogo.junit" default="build"
-  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/gogo/junit/ivy.xml b/sigil/gogo/junit/ivy.xml
deleted file mode 100644
index e216d68..0000000
--- a/sigil/gogo/junit/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-       organisation="org.apache"
-       module="felix.sigil.gogo.junit"
-       status="integration"/>
-  <publications>
-    <artifact name="org.apache.felix.sigil.gogo.junit" />
-  </publications>  
-</ivy-module>
diff --git a/sigil/gogo/junit/sigil.properties b/sigil/gogo/junit/sigil.properties
deleted file mode 100644
index dfafcde..0000000
--- a/sigil/gogo/junit/sigil.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--activator: org.apache.felix.sigil.gogo.junit.Activator
-
--bundles: \
-	org.apache.felix.sigil.gogo.junit, \
-
--sourcedirs: \
-	src, \
-
--imports: \
-	junit.framework, \
-	org.apache.felix.sigil.common.junit.server, \
-	org.apache.tools.ant, \
-	org.apache.tools.ant.taskdefs.optional.junit, \
-	org.osgi.framework, \
-	org.osgi.service.command, \
-	org.osgi.util.tracker, \
-
-# end
diff --git a/sigil/gogo/junit/src/org/apache/felix/gogo/options/Option.java b/sigil/gogo/junit/src/org/apache/felix/gogo/options/Option.java
deleted file mode 100644
index 6b4a496..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/gogo/options/Option.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.gogo.options;
-
-import java.util.List;
-
-public interface Option {
-    /**
-     * stop parsing on the first unknown option. This allows one parser to get its own options and
-     * then pass the remaining options to another parser.
-     * 
-     * @param stopOnBadOption
-     */
-    Option setStopOnBadOption(boolean stopOnBadOption);
-
-    /**
-     * require options to precede args. Default is false, so options can appear between or after
-     * args.
-     * 
-     * @param optionsFirst
-     */
-    Option setOptionsFirst(boolean optionsFirst);
-
-    /**
-     * parse arguments. If skipArgv0 is true, then parsing begins at arg1. This allows for commands
-     * where argv0 is the command name rather than a real argument.
-     * 
-     * @param argv
-     * @param skipArg0
-     * @return
-     */
-    Option parse(List<? extends Object> argv, boolean skipArg0);
-
-    /**
-     * parse arguments.
-     * 
-     * @see {@link #parse(List, boolean)
-
-     */
-    Option parse(List<? extends Object> argv);
-
-    /**
-     * parse arguments.
-     * 
-     * @see {@link #parse(List, boolean)
-
-     */
-    Option parse(Object[] argv, boolean skipArg0);
-
-    /**
-     * parse arguments.
-     * 
-     * @see {@link #parse(List, boolean)
-
-     */
-    Option parse(Object[] argv);
-
-    /**
-     * test whether specified option has been explicitly set.
-     * 
-     * @param name
-     * @return
-     */
-    boolean isSet(String name);
-
-    /**
-     * get value of named option. If multiple options given, this method returns the last one. Use
-     * {@link #getList(String)} to get all values.
-     * 
-     * @param name
-     * @return
-     * @throws IllegalArgumentException
-     *             if value is not a String.
-     */
-    String get(String name);
-
-    /**
-     * get list of all values for named option.
-     * 
-     * @param name
-     * @return empty list if option not given and no default specified.
-     * @throws IllegalArgumentException
-     *             if all values are not Strings.
-     */
-    List<String> getList(String name);
-
-    /**
-     * get value of named option as an Object. If multiple options given, this method returns the
-     * last one. Use {@link #getObjectList(String)} to get all values.
-     * 
-     * @param name
-     * @return
-     */
-    Object getObject(String name);
-
-    /**
-     * get list of all Object values for named option.
-     * 
-     * @param name
-     * @return
-     */
-    List<Object> getObjectList(String name);
-
-    /**
-     * get value of named option as a Number.
-     * 
-     * @param name
-     * @return
-     * @throws IllegalArgumentException
-     *             if argument is not a Number.
-     */
-    int getNumber(String name);
-
-    /**
-     * get remaining non-options args as Strings.
-     * 
-     * @return
-     * @throws IllegalArgumentException
-     *             if args are not Strings.
-     */
-    List<String> args();
-
-    /**
-     * get remaining non-options args as Objects.
-     * 
-     * @return
-     */
-    List<Object> argObjects();
-
-    /**
-     * print usage message to System.err.
-     */
-    void usage();
-
-    /**
-     * print specified usage error to System.err. You should explicitly throw the returned
-     * exception.
-     * 
-     * @param error
-     * @return IllegalArgumentException
-     */
-    IllegalArgumentException usageError(String error);
-}
diff --git a/sigil/gogo/junit/src/org/apache/felix/gogo/options/Options.java b/sigil/gogo/junit/src/org/apache/felix/gogo/options/Options.java
deleted file mode 100644
index e2fdba0..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/gogo/options/Options.java
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.gogo.options;
-
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Yet another GNU long options parser. This one is configured by parsing its Usage string.
- */
-public class Options implements Option {
-    public static void main(String[] args) {
-        final String[] usage = {
-            "test - test Options usage",
-            "  text before Usage: is displayed when usage() is called and no error has occurred.",
-            "  so can be used as a simple help message.",
-            "",
-            "Usage: testOptions [OPTION]... PATTERN [FILES]...",
-            "  Output control: arbitary non-option text can be included.",
-            "  -? --help                show help",
-            "  -c --count=COUNT           show COUNT lines",
-            "  -h --no-filename         suppress the prefixing filename on output",
-            "  -q --quiet, --silent     suppress all normal output",
-            "     --binary-files=TYPE   assume that binary files are TYPE",
-            "                           TYPE is 'binary', 'text', or 'without-match'",
-            "  -I                       equivalent to --binary-files=without-match",
-            "  -d --directories=ACTION  how to handle directories (default=skip)",
-            "                           ACTION is 'read', 'recurse', or 'skip'",
-            "  -D --devices=ACTION      how to handle devices, FIFOs and sockets",
-            "                           ACTION is 'read' or 'skip'",
-            "  -R, -r --recursive       equivalent to --directories=recurse" };
-
-        Option opt = Options.compile(usage).parse(args);
-
-        if (opt.isSet("help")) {
-            opt.usage(); // includes text before Usage:
-            return;
-        }
-
-        if (opt.args().size() == 0)
-            throw opt.usageError("PATTERN not specified");
-
-        System.out.println(opt);
-        if (opt.isSet("count"))
-            System.out.println("count = " + opt.getNumber("count"));
-        System.out.println("--directories specified: " + opt.isSet("directories"));
-        System.out.println("directories=" + opt.get("directories"));
-    }
-
-    public static final String NL = System.getProperty("line.separator", "\n");
-
-    // Note: need to double \ within ""
-    private static final String regex = "(?x)\\s*" + "(?:-([^-]))?" + // 1: short-opt-1
-            "(?:,?\\s*-(\\w))?" + // 2: short-opt-2
-            "(?:,?\\s*--(\\w[\\w-]*)(=\\w+)?)?" + // 3: long-opt-1 and 4:arg-1
-            "(?:,?\\s*--(\\w[\\w-]*))?" + // 5: long-opt-2
-            ".*?(?:\\(default=(.*)\\))?\\s*"; // 6: default
-
-    private static final int GROUP_SHORT_OPT_1 = 1;
-    private static final int GROUP_SHORT_OPT_2 = 2;
-    private static final int GROUP_LONG_OPT_1 = 3;
-    private static final int GROUP_ARG_1 = 4;
-    private static final int GROUP_LONG_OPT_2 = 5;
-    private static final int GROUP_DEFAULT = 6;
-
-    private final Pattern parser = Pattern.compile(regex);
-    private final Pattern uname = Pattern.compile("^Usage:\\s+(\\w+)");
-
-    private final Map<String, Boolean> unmodifiableOptSet;
-    private final Map<String, Object> unmodifiableOptArg;
-    private final Map<String, Boolean> optSet = new HashMap<String, Boolean>();
-    private final Map<String, Object> optArg = new HashMap<String, Object>();
-
-    private final Map<String, String> optName = new HashMap<String, String>();
-    private final Map<String, String> optAlias = new HashMap<String, String>();
-    private final List<Object> xargs = new ArrayList<Object>();
-    private List<String> args = null;
-
-    private static final String UNKNOWN = "unknown";
-    private String usageName = UNKNOWN;
-    private int usageIndex = 0;
-
-    private final String[] spec;
-    private final String[] gspec;
-    private final String defOpts;
-    private final String[] defArgs;
-    private PrintStream errStream = System.err;
-    private String error = null;
-
-    private boolean optionsFirst = false;
-    private boolean stopOnBadOption = false;
-
-    public static Option compile(String[] optSpec) {
-        return new Options(optSpec, null, null);
-    }
-
-    public static Option compile(String optSpec) {
-        return compile(optSpec.split("\\n"));
-    }
-
-    public static Option compile(String[] optSpec, Option gopt) {
-        return new Options(optSpec, null, gopt);
-    }
-
-    public static Option compile(String[] optSpec, String[] gspec) {
-        return new Options(optSpec, gspec, null);
-    }
-
-    public Option setStopOnBadOption(boolean stopOnBadOption) {
-        this.stopOnBadOption = stopOnBadOption;
-        return this;
-    }
-
-    public Option setOptionsFirst(boolean optionsFirst) {
-        this.optionsFirst = optionsFirst;
-        return this;
-    }
-
-    public boolean isSet(String name) {
-        if (!optSet.containsKey(name))
-            throw new IllegalArgumentException("option not defined in spec: " + name);
-
-        return optSet.get(name);
-    }
-
-    public Object getObject(String name) {
-        if (!optArg.containsKey(name))
-            throw new IllegalArgumentException("option not defined with argument: " + name);
-
-        List<Object> list = getObjectList(name);
-
-        return list.isEmpty() ? "" : list.get(list.size() - 1);
-    }
-
-    @SuppressWarnings("unchecked")
-    public List<Object> getObjectList(String name) {
-        List<Object> list;
-        Object arg = optArg.get(name);
-
-        if ( arg == null ) {
-            throw new IllegalArgumentException("option not defined with argument: " + name);
-        }
-        
-        if (arg instanceof String) { // default value
-            list = new ArrayList<Object>();
-            if (!"".equals(arg))
-                list.add(arg);
-        }
-        else {
-            list = (List<Object>) arg;
-        }
-
-        return list;
-    }
-
-    public List<String> getList(String name) {
-        ArrayList<String> list = new ArrayList<String>();
-        for (Object o : getObjectList(name)) {
-            try {
-                list.add((String) o);
-            } catch (ClassCastException e) {
-                throw new IllegalArgumentException("option not String: " + name);
-            }
-        }
-        return list;
-    }
-
-    @SuppressWarnings("unchecked")
-    private void addArg(String name, Object value) {
-        List<Object> list;
-        Object arg = optArg.get(name);
-
-        if (arg instanceof String) { // default value
-            list = new ArrayList<Object>();
-            optArg.put(name, list);
-        }
-        else {
-            list = (List<Object>) arg;
-        }
-
-        list.add(value);
-    }
-
-    public String get(String name) {
-        try {
-            return (String) getObject(name);
-        } catch (ClassCastException e) {
-            throw new IllegalArgumentException("option not String: " + name);
-        }
-    }
-
-    public int getNumber(String name) {
-        String number = get(name);
-        try {
-            if (number != null)
-                return Integer.parseInt(number);
-            return 0;
-        } catch (NumberFormatException e) {
-            throw new IllegalArgumentException("option '" + name + "' not Number: " + number);
-        }
-    }
-
-    public List<Object> argObjects() {
-        return xargs;
-    }
-
-    public List<String> args() {
-        if (args == null) {
-            args = new ArrayList<String>();
-            for (Object arg : xargs) {
-                args.add(arg == null ? "null" : arg.toString());
-            }
-        }
-        return args;
-    }
-
-    public void usage() {
-        StringBuilder buf = new StringBuilder();
-        int index = 0;
-
-        if (error != null) {
-            buf.append(error);
-            buf.append(NL);
-            index = usageIndex;
-        }
-
-        for (int i = index; i < spec.length; ++i) {
-            buf.append(spec[i]);
-            buf.append(NL);
-        }
-
-        String msg = buf.toString();
-
-        if (errStream != null) {
-            errStream.print(msg);
-        }
-    }
-
-    /**
-     * prints usage message and returns IllegalArgumentException, for you to throw.
-     */
-    public IllegalArgumentException usageError(String s) {
-        error = usageName + ": " + s;
-        usage();
-        return new IllegalArgumentException(error);
-    }
-
-    // internal constructor
-    private Options(String[] spec, String[] gspec, Option opt) {
-        this.gspec = gspec;
-        Options gopt = (Options) opt;
-
-        if (gspec == null && gopt == null) {
-            this.spec = spec;
-        }
-        else {
-            ArrayList<String> list = new ArrayList<String>();
-            list.addAll(Arrays.asList(spec));
-            list.addAll(Arrays.asList(gspec != null ? gspec : gopt.gspec));
-            this.spec = list.toArray(new String[0]);
-        }
-
-        Map<String, Boolean> myOptSet = new HashMap<String, Boolean>();
-        Map<String, Object> myOptArg = new HashMap<String, Object>();
-
-        parseSpec(myOptSet, myOptArg);
-
-        if (gopt != null) {
-            for (Entry<String, Boolean> e : gopt.optSet.entrySet()) {
-                if (e.getValue())
-                    myOptSet.put(e.getKey(), true);
-            }
-
-            for (Entry<String, Object> e : gopt.optArg.entrySet()) {
-                if (!e.getValue().equals(""))
-                    myOptArg.put(e.getKey(), e.getValue());
-            }
-
-            gopt.reset();
-        }
-
-        unmodifiableOptSet = Collections.unmodifiableMap(myOptSet);
-        unmodifiableOptArg = Collections.unmodifiableMap(myOptArg);
-
-        defOpts = System.getenv(usageName.toUpperCase() + "_OPTS");
-        defArgs = (defOpts != null) ? defOpts.split("\\s+") : new String[0];
-    }
-
-    /**
-     * parse option spec.
-     */
-    private void parseSpec(Map<String, Boolean> myOptSet, Map<String, Object> myOptArg) {
-        int index = 0;
-        for (String line : spec) {
-            Matcher m = parser.matcher(line);
-
-            if (m.matches()) {
-                final String opt = m.group(GROUP_LONG_OPT_1);
-                final String name = (opt != null) ? opt : m.group(GROUP_SHORT_OPT_1);
-
-                if (name != null) {
-                    if (myOptSet.containsKey(name))
-                        throw new IllegalArgumentException("duplicate option in spec: --" + name);
-                    myOptSet.put(name, false);
-                }
-
-                String dflt = (m.group(GROUP_DEFAULT) != null) ? m.group(GROUP_DEFAULT) : "";
-                if (m.group(GROUP_ARG_1) != null)
-                    myOptArg.put(opt, dflt);
-
-                String opt2 = m.group(GROUP_LONG_OPT_2);
-                if (opt2 != null) {
-                    optAlias.put(opt2, opt);
-                    myOptSet.put(opt2, false);
-                    if (m.group(GROUP_ARG_1) != null)
-                        myOptArg.put(opt2, "");
-                }
-
-                for (int i = 0; i < 2; ++i) {
-                    String sopt = m.group(i == 0 ? GROUP_SHORT_OPT_1 : GROUP_SHORT_OPT_2);
-                    if (sopt != null) {
-                        if (optName.containsKey(sopt))
-                            throw new IllegalArgumentException("duplicate option in spec: -" + sopt);
-                        optName.put(sopt, name);
-                    }
-                }
-            }
-
-            if (usageName == UNKNOWN) {
-                Matcher u = uname.matcher(line);
-                if (u.find()) {
-                    usageName = u.group(1);
-                    usageIndex = index;
-                }
-            }
-
-            index++;
-        }
-    }
-
-    private void reset() {
-        optSet.clear();
-        optSet.putAll(unmodifiableOptSet);
-        optArg.clear();
-        optArg.putAll(unmodifiableOptArg);
-        xargs.clear();
-        args = null;
-        error = null;
-    }
-
-    public Option parse(Object[] argv) {
-        return parse(argv, false);
-    }
-
-    public Option parse(List<? extends Object> argv) {
-        return parse(argv, false);
-    }
-
-    public Option parse(Object[] argv, boolean skipArg0) {
-        if (null == argv)
-            throw new IllegalArgumentException("argv is null");
-        
-        return parse(Arrays.asList(argv), skipArg0);
-    }
-
-    public Option parse(List<? extends Object> argv, boolean skipArg0) {
-        reset();
-        List<Object> args = new ArrayList<Object>();
-        args.addAll(Arrays.asList(defArgs));
-
-        for (Object arg : argv) {
-            if (skipArg0) {
-                skipArg0 = false;
-                usageName = arg.toString();
-            }
-            else {
-                args.add(arg);
-            }
-        }
-
-        String needArg = null;
-        String needOpt = null;
-        boolean endOpt = false;
-
-        for (Object oarg : args) {
-            String arg = oarg == null ? "null" : oarg.toString();
-
-            if (endOpt) {
-                xargs.add(oarg);
-            }
-            else if (needArg != null) {
-                addArg(needArg, oarg);
-                needArg = null;
-                needOpt = null;
-            }
-            else if (!arg.startsWith("-") || "-".equals(oarg)) {
-                if (optionsFirst)
-                    endOpt = true;
-                xargs.add(oarg);
-            }
-            else {
-                if (arg.equals("--"))
-                    endOpt = true;
-                else if (arg.startsWith("--")) {
-                    int eq = arg.indexOf("=");
-                    String value = (eq == -1) ? null : arg.substring(eq + 1);
-                    String name = arg.substring(2, ((eq == -1) ? arg.length() : eq));
-                    List<String> names = new ArrayList<String>();
-
-                    if (optSet.containsKey(name)) {
-                        names.add(name);
-                    }
-                    else {
-                        for (String k : optSet.keySet()) {
-                            if (k.startsWith(name))
-                                names.add(k);
-                        }
-                    }
-
-                    switch (names.size()) {
-                    case 1:
-                        name = names.get(0);
-                        optSet.put(name, true);
-                        if (optArg.containsKey(name)) {
-                            if (value != null)
-                                addArg(name, value);
-                            else
-                                needArg = name;
-                        }
-                        else if (value != null) {
-                            throw usageError("option '--" + name + "' doesn't allow an argument");
-                        }
-                        break;
-
-                    case 0:
-                        if (stopOnBadOption) {
-                            endOpt = true;
-                            xargs.add(oarg);
-                            break;
-                        }
-                        else
-                            throw usageError("invalid option '--" + name + "'");
-
-                    default:
-                        throw usageError("option '--" + name + "' is ambiguous: " + names);
-                    }
-                }
-                else {
-                    int i = 0;
-                    for (String c : arg.substring(1).split("")) {
-                        if (i++ == 0)
-                            continue;
-                        if (optName.containsKey(c)) {
-                            String name = optName.get(c);
-                            optSet.put(name, true);
-                            if (optArg.containsKey(name)) {
-                                if (i < arg.length()) {
-                                    addArg(name, arg.substring(i));
-                                }
-                                else {
-                                    needOpt = c;
-                                    needArg = name;
-                                }
-                                break;
-                            }
-                        }
-                        else {
-                            if (stopOnBadOption) {
-                                xargs.add("-" + c);
-                                endOpt = true;
-                            }
-                            else
-                                throw usageError("invalid option '" + c + "'");
-                        }
-                    }
-                }
-            }
-        }
-
-        if (needArg != null) {
-            String name = (needOpt != null) ? needOpt : "--" + needArg;
-            throw usageError("option '" + name + "' requires an argument");
-        }
-
-        // remove long option aliases
-        for (Entry<String, String> alias : optAlias.entrySet()) {
-            if (optSet.get(alias.getKey())) {
-                optSet.put(alias.getValue(), true);
-                if (optArg.containsKey(alias.getKey()))
-                    optArg.put(alias.getValue(), optArg.get(alias.getKey()));
-            }
-            optSet.remove(alias.getKey());
-            optArg.remove(alias.getKey());
-        }
-
-        return this;
-    }
-
-    @Override
-    public String toString() {
-        return "isSet" + optSet + "\nArg" + optArg + "\nargs" + xargs;
-    }
-
-}
diff --git a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java
deleted file mode 100644
index 1a13438..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.gogo.junit;
-
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Hashtable;
-
-import junit.framework.Assert;
-
-import org.apache.felix.sigil.common.junit.server.JUnitService;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-import org.osgi.service.command.CommandProcessor;
-import org.osgi.util.tracker.ServiceTracker;
-
-
-public class Activator implements BundleActivator
-{
-
-    public void start( final BundleContext ctx ) throws Exception
-    {
-        ServiceTracker tracker = new ServiceTracker( ctx, JUnitService.class.getName(), null );
-        tracker.open();
-
-        Hashtable<String, Object> props = new Hashtable<String, Object>();
-        props.put( CommandProcessor.COMMAND_SCOPE, "sigil" );
-        props.put( CommandProcessor.COMMAND_FUNCTION, new String[]
-            { "runTests", "listTests" } );
-
-        ctx.registerService( SigilJunitRunner.class.getName(), new SigilJunitRunner( tracker ), props );
-
-        props.put( CommandProcessor.COMMAND_FUNCTION, new String[]
-            { "newTest", "newTestSuite" } );
-        ctx.registerService( SigilTestAdapter.class.getName(), new SigilTestAdapter(), props );
-
-        props.put( CommandProcessor.COMMAND_SCOPE, "junit" );
-        props.put( CommandProcessor.COMMAND_FUNCTION, getAssertMethods() );
-        ctx.registerService( Assert.class.getName(), new Assert()
-        {
-        }, props );
-    }
-
-
-    /**
-     * @return
-     */
-    private static String[] getAssertMethods()
-    {
-        ArrayList<String> list = new ArrayList<String>();
-        for ( Method m : Assert.class.getDeclaredMethods() )
-        {
-            if ( Modifier.isPublic( m.getModifiers() ) ) {
-                list.add( m.getName() );
-            }
-        }
-        return list.toArray( new String[list.size()] );
-    }
-
-
-    public void stop( BundleContext ctx ) throws Exception
-    {
-    }
-
-}
diff --git a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/PrintListener.java b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/PrintListener.java
deleted file mode 100644
index 627dcda..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/PrintListener.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.gogo.junit;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestListener;
-
-public class PrintListener implements TestListener
-{
-
-    public PrintListener()
-    {
-    }
-
-    public void startTest(Test test)
-    {
-        System.out.println("Start " + test);
-        System.out.flush();
-    }
-
-    public void endTest(Test test)
-    {
-        System.out.println("End " + test);
-        System.out.flush();
-    }
-
-    public void addError(Test test, Throwable t)
-    {
-        System.out.println("Error " + test);
-        t.printStackTrace(System.out);
-        System.out.flush();
-    }
-
-    public void addFailure(Test test, AssertionFailedError error)
-    {
-        System.out.println("Failure " + test + ": " + error.getMessage());
-        System.out.flush();
-    }
-}
diff --git a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilJunitRunner.java b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilJunitRunner.java
deleted file mode 100644
index 8a43018..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilJunitRunner.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.gogo.junit;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.apache.felix.gogo.options.Option;
-import org.apache.felix.gogo.options.Options;
-import org.apache.felix.sigil.common.junit.server.JUnitService;
-import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
-import org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class SigilJunitRunner
-{
-    private ServiceTracker tracker;
-
-    public SigilJunitRunner(ServiceTracker tracker)
-    {
-        this.tracker = tracker;
-    }
-
-    public boolean runTests(Object[] args) throws IOException
-    {
-        final String[] usage = {
-        "runTests - run unit tests",
-        "Usage: runTests [OPTION]... [TESTS]...",
-        "  -? --help                show help",
-        "  -d --directory=DIR       Write test results to specified directory",
-        "  -q --quiet               Do not output test results to console"};
-        
-        Option opts = Options.compile( usage ).parse( args );
-        
-        boolean quiet = opts.isSet( "quiet" );
-        Object d = opts.isSet( "directory" ) ? opts.getObject( "directory" ) : null;
-        File dir = null;
-        if (d != null)
-        {
-            if ( d instanceof File ) {
-                dir = ( File ) d;
-            }
-            else {
-                dir = new File(d.toString());                
-            }
-            dir.mkdirs();
-            if (!quiet) {
-                System.out.println("Writing results to " + dir.getAbsolutePath());
-                System.out.flush();
-            }
-        }
-        
-        List<Object> tests = opts.argObjects();
-        
-        return runTests(tests, quiet, dir);
-    }
-    
-    public void listTests() {
-        JUnitService service = ( JUnitService ) tracker.getService();
-        
-        if ( service == null ) {
-            throw new IllegalStateException(JUnitService.class.getName() + " not found");
-        }
-        
-        for (String t : service.getTests())
-        {
-            System.out.println("\t" + t);
-            System.out.flush();
-        }
-    }
-    
-    private boolean runTests(List<Object> tests, boolean quiet, File dir) throws IOException
-    {
-        int count = 0;
-        int failures = 0;
-        int errors = 0;
-        
-        TestSuite[] suites = buildTestSuites(tests);
-        
-        if (suites.length > 0) {
-            // redirect io to capture test output - broken due to gogo bug
-            PrintStream oldOut = System.out;
-            PrintStream oldErr = System.err;
-            ByteArrayOutputStream tempOut = new ByteArrayOutputStream();
-            ByteArrayOutputStream tempErr = new ByteArrayOutputStream();
-            
-            System.setOut( new PrintStream( tempOut, false ) );
-            System.setErr( new PrintStream( tempErr, false ) );
-            
-            try {
-                for (TestSuite test : suites)
-                {
-                    TestResult result = new TestResult();
-    
-                    runTests(test, result, quiet, dir, tempOut, tempErr);
-    
-                    tempOut.reset();
-                    tempErr.reset();
-                    count += result.runCount();
-                    failures += result.failureCount();
-                    errors += result.errorCount();
-                }
-            }
-            finally {
-                System.setOut( oldOut );
-                System.setErr( oldErr );                    
-            }
-        }
-
-        System.out.println("Ran " + count + " tests. " + failures + " failures " + errors
-            + " errors.");
-        System.out.flush();
-
-        return failures + errors == 0;
-    }
-
-    /**
-     * @param tests
-     * @return
-     */
-    private TestSuite[] buildTestSuites( List<Object> tests )
-    {
-        ArrayList<TestSuite> suites = new ArrayList<TestSuite>(tests.size());
-        
-        for (Object o : tests) {
-            TestSuite[] s = coerceTest(o);
-            if (s.length == 0)
-            {
-                System.err.println("No tests found for " + o);
-            }
-            else
-            {
-                for (TestSuite t : s) {
-                    suites.add(t);
-                }
-            }
-        }
-        
-        return suites.toArray(new TestSuite[suites.size()]);
-    }
-
-    /**
-     * @param tempOut
-     * @param tempErr
-     * @throws IOException 
-     */
-    private void runTests( TestSuite test, TestResult result, boolean quiet, File dir, ByteArrayOutputStream tempOut, ByteArrayOutputStream tempErr ) throws IOException
-    {
-        if (!quiet)
-        {
-            result.addListener(new PrintListener());
-        }
-
-        JUnitTest antTest = null;
-        FileOutputStream fout = null;
-        XMLJUnitResultFormatter formatter = null;
-
-        if (dir != null)
-        {
-            antTest = new JUnitTest(test.getName(), false, false, true);
-
-            formatter = new XMLJUnitResultFormatter();
-            formatter.startTestSuite(antTest);
-
-            String name = "TEST-" + test.getName() + ".xml";
-
-            File f = new File(dir, name);
-            fout = new FileOutputStream(f);
-            formatter.setOutput(fout);
-            result.addListener(formatter);
-        }
-        
-        test.run(result);
-
-        System.out.flush();
-        System.err.flush();
-
-        if ( dir != null ) {
-            formatter.setSystemOutput( tempOut.toString() );
-            formatter.setSystemError( tempErr.toString() );
-            
-            antTest.setCounts(result.runCount(), result.failureCount(),
-                result.errorCount());
-            
-            formatter.endTestSuite(antTest);
-            
-            fout.flush();
-            fout.close();
-        }                        
-    }
-
-    /**
-     * @param o
-     * @return
-     */
-    private TestSuite[] coerceTest( Object o )
-    {
-        ArrayList<TestSuite> tests = new ArrayList<TestSuite>();
-        if (o instanceof String ) {
-            return findTests(( String ) o);
-        }
-        else if ( o instanceof Iterable<?> ) {
-            Iterable<?> i = ( Iterable<?> ) o;
-            for ( Object t : i ) {
-                tests.add(doCoerce(t));
-            }
-        }
-        // not sure if this next test is necessary - does Iterable capture it?
-        else if ( o.getClass().isArray() ) {
-            for (int i = 0; i < Array.getLength( o ); i++ ) {
-                Object t = Array.get( o, i );
-                tests.add(doCoerce(t));
-            }
-        }
-        else {
-            tests.add( doCoerce(o) );
-        }
-        return tests.toArray( new TestSuite[tests.size()] );
-    }
-
-    /**
-     * @param o
-     * @return
-     */
-    private TestSuite doCoerce( Object o )
-    {
-        if ( o instanceof TestCase ) {
-            TestCase t = ( TestCase ) o;
-            TestSuite suite = new TestSuite(t.getName());
-            suite.addTest(t);
-            return suite;
-        }
-        else if (o instanceof TestSuite ) {
-            return ( TestSuite ) o;
-        }
-        else {
-            throw new IllegalArgumentException("Unexpected test type " + o.getClass().getName() );
-        }
-    }
-
-    private TestSuite[] findTests(String t)
-    {
-        JUnitService service = ( JUnitService ) tracker.getService();
-        
-        if ( service == null ) {
-            throw new IllegalStateException(JUnitService.class.getName() + " not found");
-        }
-        
-        if (t.contains("*"))
-        {
-            Pattern p = compile(t);
-            LinkedList<TestSuite> tests = new LinkedList<TestSuite>();
-            for (String n : service.getTests())
-            {
-                if (p.matcher(n).matches())
-                {
-                    tests.add(service.createTest(n));
-                }
-            }
-            return tests.toArray(new TestSuite[tests.size()]);
-        }
-        else
-        {
-            TestSuite test = service.createTest(t);
-            return test == null ? new TestSuite[0] : new TestSuite[] { test };
-        }
-    }
-
-    public static final Pattern compile(String glob)
-    {
-        char[] chars = glob.toCharArray();
-        if (chars.length > 0)
-        {
-            StringBuilder builder = new StringBuilder(chars.length + 5);
-
-            builder.append('^');
-
-            for (char c : chars)
-            {
-                switch (c)
-                {
-                    case '*':
-                        builder.append(".*");
-                        break;
-                    case '.':
-                        builder.append("\\.");
-                        break;
-                    case '$':
-                        builder.append("\\$");
-                        break;
-                    default:
-                        builder.append(c);
-                }
-            }
-
-            return Pattern.compile(builder.toString());
-        }
-        else
-        {
-            return Pattern.compile(glob);
-        }
-    }
-}
diff --git a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilTestAdapter.java b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilTestAdapter.java
deleted file mode 100644
index 1755b73..0000000
--- a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/SigilTestAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.sigil.gogo.junit;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.osgi.service.command.CommandSession;
-import org.osgi.service.command.Function;
-
-public class SigilTestAdapter
-{
-    public TestCase newTest(final CommandSession session, final String name,
-        final Function f, final Object... args)
-    {
-        return new TestCase(name)
-        {
-            public void runTest() throws Throwable
-            {
-                try
-                {
-                    f.execute(session, Arrays.asList(args));
-                }
-                catch (Throwable t)
-                {
-                    if (t instanceof InvocationTargetException)
-                        t = t.getCause();
-
-                    // stack trace is no use for identifying the location of
-                    // junit:assert methods in scripts.
-                    // So add gogo script location to stack trace.
-                    Object loc = session.get(".location");
-                    if (loc != null)
-                    {
-                        // file:/path/to/file:line.column
-                        String sloc = (String) loc;
-                        String fileName = sloc;
-                        int lineNumber = 0;
-
-                        if (sloc.matches(".*:[\\d.]+$"))
-                        {
-                            int colon = sloc.lastIndexOf(':');
-                            fileName = sloc.substring(0, colon);
-                            String number = sloc.substring(colon + 1);
-                            int dot = number.indexOf('.');
-                            if (dot > 0)
-                                number = number.substring(0, dot);
-                            lineNumber = Integer.parseInt(number);
-                        }
-
-                        StackTraceElement[] trace = t.getStackTrace();
-                        StackTraceElement element = new StackTraceElement(
-                            "SigilTestAdaptor", "runTest", fileName, lineNumber);
-
-                        StackTraceElement[] ev = new StackTraceElement[1 + trace.length];
-                        int i = 0;
-                        ev[i++] = element;
-                        for (StackTraceElement e : trace)
-                            ev[i++] = e;
-
-                        t.setStackTrace(ev);
-                    }
-
-                    throw t;
-                }
-            }
-        };
-    }
-
-    public TestSuite newTestSuite(String name, Test... tests)
-    {
-        TestSuite suite = new TestSuite(name);
-        for (Test t : tests)
-        {
-            suite.addTest(t);
-        }
-        return suite;
-    }
-}
diff --git a/sigil/gogo/sigil-defaults.properties b/sigil/gogo/sigil-defaults.properties
deleted file mode 100644
index bfc9d0d..0000000
--- a/sigil/gogo/sigil-defaults.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# sigil common default properties
--defaults: ${BLDCOMMON:-../bldcommon}/sigil-defaults.properties
diff --git a/sigil/ivy/build.xml b/sigil/ivy/build.xml
deleted file mode 100644
index 86d090a..0000000
--- a/sigil/ivy/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="ivy" default="build-list">
-  <import file="../bldcommon/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/.classpath b/sigil/ivy/resolver/.classpath
deleted file mode 100644
index c9ffd60..0000000
--- a/sigil/ivy/resolver/.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.apache.felix.sigil.classpathContainer"/>
-	<classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/sigil/ivy/resolver/.project b/sigil/ivy/resolver/.project
deleted file mode 100644
index 63efc3a..0000000
--- a/sigil/ivy/resolver/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.apache.felix.sigil.ivy.resolver</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.apache.felix.sigil.eclipse.core.sigilBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.apache.felix.sigil.sigilnature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/sigil/ivy/resolver/.settings/org.eclipse.jdt.core.prefs b/sigil/ivy/resolver/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c4847fd..0000000
--- a/sigil/ivy/resolver/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,258 +0,0 @@
-#Thu Sep 17 16:06:10 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=90
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/sigil/ivy/resolver/.settings/org.eclipse.jdt.ui.prefs b/sigil/ivy/resolver/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f689a92..0000000
--- a/sigil/ivy/resolver/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Sep 17 16:06:10 BST 2009
-eclipse.preferences.version=1
-formatter_profile=_Apache Felix Eclipse Template
-formatter_settings_version=11
diff --git a/sigil/ivy/resolver/DEPENDENCIES b/sigil/ivy/resolver/DEPENDENCIES
deleted file mode 100644
index 0c03e3b..0000000
--- a/sigil/ivy/resolver/DEPENDENCIES
+++ /dev/null
@@ -1,25 +0,0 @@
-Apache Felix Sigil Common Core
-Copyright 2010 The Apache Software Foundation
-
-This software was developed at the Apache Software Foundation
-(http://www.apache.org) and may have dependencies on other
-Apache software licensed under Apache License 2.0.
-
-I. Included Third-Party Software
-
-This product includes software developed by Peter Kriens
-(http://www.aqute.biz/Code/Bnd)
-Copyright 2006-2009 aQute, All rights reserved
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
-II. Used Third-Party Software
-
-n/a
-
-III. License Summary
-- Apache License 2.0
diff --git a/sigil/ivy/resolver/NOTICE b/sigil/ivy/resolver/NOTICE
deleted file mode 100644
index 00d694d..0000000
--- a/sigil/ivy/resolver/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Felix Sigil Ivy Resolver
-Copyright 2010 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
diff --git a/sigil/ivy/resolver/build.xml b/sigil/ivy/resolver/build.xml
deleted file mode 100644
index 932a91d..0000000
--- a/sigil/ivy/resolver/build.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="ivy.resolver" default="build"
-  xmlns:ivy="antlib:org.apache.ivy.ant">
-  <import file="../build.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/dependence/README b/sigil/ivy/resolver/example/dependence/README
deleted file mode 100644
index 09ecfa8..0000000
--- a/sigil/ivy/resolver/example/dependence/README
+++ /dev/null
@@ -1,19 +0,0 @@
-# http://sigil.codecauldron.org
-
-This example is based on the Ivy Tutorial project dependencies example:
-http://ant.apache.org/ivy/history/latest-milestone/tutorial/dependence.html
-
-Dependencies are resolved using an OBR index for the Spring repository,
-hosted at sigil.codecauldron.org.
-
-1. set ivy.jar location in settings/build.properties
-
-2. build dependee
-$ cd dependee
-$ ant jar
-$ ant publish
-
-3. build depender
-$ cd ../depender
-$ ant
-
diff --git a/sigil/ivy/resolver/example/dependence/build.xml b/sigil/ivy/resolver/example/dependence/build.xml
deleted file mode 100644
index ccc460d..0000000
--- a/sigil/ivy/resolver/example/dependence/build.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project default="clean">
-    
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean directories">
-        <delete includeemptydirs="true"> 
-            <fileset dir="settings">
-		<exclude name="ivysettings.*" />
-		<exclude name="sigil-repos.properties" />
-            </fileset>
-	</delete>
-        <ant dir="dependee" antfile="build.xml" target="clean" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" target="clean" inheritall="false" inheritrefs="false" />
-    </target>
-
-    <!-- ================================= 
-          target: all              
-         ================================= -->
-    <target name="all" depends="clean" description="--> make the whole example of dependency">
-        <ant dir="dependee" antfile="build.xml" target="publish" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" inheritall="false" inheritrefs="false" />
-        <ant dir="dependee" antfile="build.xml" target="publish" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" inheritall="false" inheritrefs="false" />
-    </target>
-    
-</project>
diff --git a/sigil/ivy/resolver/example/dependence/dependee/build.xml b/sigil/ivy/resolver/example/dependence/dependee/build.xml
deleted file mode 100644
index c2c124b..0000000
--- a/sigil/ivy/resolver/example/dependence/dependee/build.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="dependee" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">
-    <!-- some variables used -->
-    <property name="lib.dir" value="${basedir}/lib" />
-    <property name="build.dir" value="${basedir}/build" />
-    <property name="classes.dir" value="${build.dir}/classes" />
-    <property name="src.dir" value="${basedir}/src" />
-
-    <!-- ivy properties used -->
-    <property name="ivy.settings.dir" value="../settings" />
-    <property file="${ivy.settings.dir}/ivysettings.properties" />
-    
-    <!-- paths used for compilation and run  -->
-    <path id="lib.path.id">
-        <fileset dir="${lib.dir}" />
-	</path>
-    <path id="run.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-    
-    <!-- ================================= 
-          target: init
-         ================================= -->
-    <target name="init">
-	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-		 uri="antlib:org.apache.ivy.ant"
-		 classpath="${ivy.jar}"/>
-
-	<ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />
-
-        <taskdef name="sigil.bundle"
-          classname="org.apache.felix.sigil.ant.BundleTask"
-          classpath="${sigil-ivy-plugin.jar}"/>
-    </target>
-
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="init"
-    	description="--> resolve and retrieve dependencies with ivy">
-        <ivy:retrieve />
-    </target>
-        
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-	
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> description">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="standalone.Main"/>
-    </target>
-    
-    <!-- ================================= 
-          target: jar              
-         ================================= -->
-    <target name="jar" depends="compile" description="--> make a jar file for this project">
-        <propertyfile file="${classes.dir}/version.properties">
-	        <entry  key="version" type="int" operation="+" default="0" />
-		</propertyfile>
-        <property file="${classes.dir}/version.properties" />
-	<!--
-        <jar destfile="${build.dir}/${ant.project.name}.jar">
-            <fileset dir="${classes.dir}" />
-        </jar>
-	-->
-	<sigil.bundle destpattern="${build.dir}/[id].[ext]"
-		      classpathref="run.path.id" />
-    </target>
-
-    <!-- ================================= 
-          target: publish              
-         ================================= -->
-    <target name="publish" depends="jar" description="--> publish this project in the ivy repository">
-        <property name="revision" value="${version}"/>
-        <delete file="${build.dir}/ivy.xml"/>
-		<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-			resolver="projects"
-			pubrevision="${revision}" 
-			status="release"
-		/>
-        <echo message="project ${ant.project.name} released with version ${revision}" />
-    </target>
-
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean the project">
-        <delete includeemptydirs="true">
-            <fileset dir="${basedir}">
-            	<exclude name="src/**" />
-            	<exclude name="build.xml" />
-		<exclude name="ivy.xml" />
-		<exclude name="sigil.properties" />
-	    </fileset>
-    	</delete>
-    </target>
-</project>
diff --git a/sigil/ivy/resolver/example/dependence/dependee/ivy.xml b/sigil/ivy/resolver/example/dependence/dependee/ivy.xml
deleted file mode 100644
index 631338a..0000000
--- a/sigil/ivy/resolver/example/dependence/dependee/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info organisation="org.apache" module="dependee"/>
-    <dependencies>
-        <dependency org="commons-lang" name="commons-lang" rev="2.0"/>
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/dependence/dependee/sigil.properties b/sigil/ivy/resolver/example/dependence/dependee/sigil.properties
deleted file mode 100644
index 619a841..0000000
--- a/sigil/ivy/resolver/example/dependence/dependee/sigil.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# dependee sigil.properties
-
-version: 1.0.0
-
--bundles: dependee
-
--exports: standalone
-
--imports: \
-  org.apache.commons.lang;version="[2.0.0,2.4.0)", \
-
-# add these to -imports to test the resolution process
-#  javax.servlet;version="(2.4,3.0]", \
-#  org.apache.log4j;version="[1.2.14,1.3)", \
-#  org.apache.commons.logging, \
-
-# this is a require-bundle dependency
-#-requires: \
-#  com.springsource.org.apache.commons.lang;version="[2.0.0,2.4.0)", \
-
--resources: \
-  version.properties
-
-# end
diff --git a/sigil/ivy/resolver/example/dependence/dependee/src/standalone/Main.java b/sigil/ivy/resolver/example/dependence/dependee/src/standalone/Main.java
deleted file mode 100644
index 1b7398c..0000000
--- a/sigil/ivy/resolver/example/dependence/dependee/src/standalone/Main.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package standalone;
-
-import java.util.Properties;
-
-import org.apache.commons.lang.WordUtils;
-
-/**
- * TODO write javadoc
- */
-public final class Main {
-    /**
-     * Returns the version of the project
-     * @return a string representation of the version, null if the version could not be retreived
-     */
-    public static String getVersion() {
-        Properties p = new Properties();
-        try {
-            p.load(Main.class.getResourceAsStream("/version.properties"));
-            String version = p.getProperty("version");
-            if (version != null) {
-                return String.valueOf(Integer.parseInt(version));
-            } 
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-    
-    /**
-     * Return the same string with all words capitalized.
-     * @param str the string conatining the words to capitalize
-     * @return null if the string was null, the string with all words capitalized otherwise
-     */
-    public static String capitalizeWords(String str) {
-        System.out.println("    [" + Main.class.getName() + "] capitalizing string \"" 
-            + str + "\" using " + WordUtils.class.getName());
-        return WordUtils.capitalizeFully(str);
-    }
-    public static void main(String[] args) {
-        String message = "sentence to capitalize";
-        System.out.println("standard message : " + message);
-        System.out.println("capitalized message : " + capitalizeWords(message));
-    }
-    
-    private Main() {
-    }
-}
diff --git a/sigil/ivy/resolver/example/dependence/depender/build.xml b/sigil/ivy/resolver/example/dependence/depender/build.xml
deleted file mode 100644
index aebdb1c..0000000
--- a/sigil/ivy/resolver/example/dependence/depender/build.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="depender" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">
-    <!-- some variables used -->
-    <property name="lib.dir" value="${basedir}/lib" />
-    <property name="build.dir" value="${basedir}/build" />
-    <property name="classes.dir" value="${build.dir}/classes" />
-    <property name="src.dir" value="${basedir}/src" />
-
-    <!-- ivy properties used -->
-    <property name="ivy.settings.dir" value="../settings" />
-    <property file="${ivy.settings.dir}/ivysettings.properties" />
-    
-    <!-- paths used for compilation and run  -->
-    <path id="lib.path.id">
-        <fileset dir="${lib.dir}" />
-	</path>
-    <path id="run.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-
-    <!-- ================================= 
-          target: init
-         ================================= -->
-    <target name="init">
-	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-		 uri="antlib:org.apache.ivy.ant"
-		 classpath="${ivy.jar}"/>
-
-	<ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />
-
-        <taskdef name="sigil.bundle"
-          classname="org.apache.felix.sigil.ant.BundleTask"
-          classpath="${sigil-ivy-plugin.jar}"/>
-    </target>
-
-    
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="init"
-    	description="--> resolve and retrieve dependencies with ivy">
-        <ivy:retrieve />
-    </target>
-    
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}" dot="true"/>
-    </target>
-    
-    <!-- ================================= 
-          target: gen-graph
-         ================================= -->
-    <target name="gen-graph" depends="report" description="--> generates a graph of dependencies (requires dot in your path - see http://www.graphviz.org/)">
-    	<property name="dot.file" value="${build.dir}/apache-depending-default.dot" />
-    	<property name="ivygraph.output.file" value="${build.dir}/graph.png" />
-    	<exec executable="dot">
-    	    <arg line="-T png -o ${ivygraph.output.file} ${dot.file}" />
-    	</exec>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> description">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="clean, compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="depending.Main"/>
-    </target>
-    
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean the project">
-        <delete includeemptydirs="true">
-            <fileset dir="${basedir}">
-            	<exclude name="src/**" />
-            	<exclude name="build.xml" />
-		<exclude name="ivy.xml" />
-		<exclude name="sigil.properties" />
-	    </fileset>
-    	</delete>
-    </target>
-</project>
diff --git a/sigil/ivy/resolver/example/dependence/depender/ivy.xml b/sigil/ivy/resolver/example/dependence/depender/ivy.xml
deleted file mode 100644
index d8031f3..0000000
--- a/sigil/ivy/resolver/example/dependence/depender/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info organisation="org.apache" module="depender"/>
-    <dependencies>
-        <dependency name="dependee" rev="latest.integration" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/dependence/depender/sigil.properties b/sigil/ivy/resolver/example/dependence/depender/sigil.properties
deleted file mode 100644
index e76ec83..0000000
--- a/sigil/ivy/resolver/example/dependence/depender/sigil.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# depender sigil.properties
-
--bundles: depender
-
--imports: standalone
-
-# end
diff --git a/sigil/ivy/resolver/example/dependence/depender/src/depending/Main.java b/sigil/ivy/resolver/example/dependence/depender/src/depending/Main.java
deleted file mode 100644
index 59b0399..0000000
--- a/sigil/ivy/resolver/example/dependence/depender/src/depending/Main.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package depending;
-
-/**
- * TODO write javadoc
- */
-public final class Main {
-    public static void main(String[] args) {
-        String standaloneVersion = standalone.Main.getVersion();
-        if (standaloneVersion != null) {
-            System.out.println("you are using version " + standaloneVersion 
-                + " of class " + standalone.Main.class.getName());
-        } else {
-            System.err.println("failed to get version of " + standalone.Main.class.getName());
-        }
-        String message = "i am " + Main.class.getName() 
-            + " and " + standalone.Main.class.getName() + " will do the job for me";
-        System.out.println("standard message : " + message);
-        System.out.println("capitalized message : " + standalone.Main.capitalizeWords(message));
-    }
-    
-    private Main() {
-    }
-}
diff --git a/sigil/ivy/resolver/example/dependence/settings/ivysettings.properties b/sigil/ivy/resolver/example/dependence/settings/ivysettings.properties
deleted file mode 100644
index 737733c..0000000
--- a/sigil/ivy/resolver/example/dependence/settings/ivysettings.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-repository.dir=${ivy.settings.dir}/repository
-sigil-ivy-plugin.jar=${ivy.settings.dir}/../../../lib/sigil-ivy-plugin.jar
-ivy.jar=/opt/apache-ivy-2.0.0-rc2/ivy-2.0.0-rc2.jar
diff --git a/sigil/ivy/resolver/example/dependence/settings/ivysettings.xml b/sigil/ivy/resolver/example/dependence/settings/ivysettings.xml
deleted file mode 100644
index ee0ff48..0000000
--- a/sigil/ivy/resolver/example/dependence/settings/ivysettings.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-    <properties file="${ivy.settings.dir}/ivysettings.properties"/>
-    <settings defaultResolver="projects"/>
-    <caches defaultCacheDir="${ivy.settings.dir}/ivy-cache" />
-
-    <classpath file="${sigil-ivy-plugin.jar}" />
-    <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-    <typedef name="sigil-resolver" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-    <parsers>
-	<sigil-parser/>
-    </parsers>
-
-    <resolvers>
-	<sigil-resolver name="sigil" config="${ivy.settings.dir}/sigil-repos.properties" />
-        <filesystem name="projects">
-            <artifact pattern="${repository.dir}/[artifact]-[revision].[ext]" />
-            <ivy pattern="${repository.dir}/[module]-[revision].xml" />
-        </filesystem>
-        <!--
-        <ibiblio name="libraries" m2compatible="true" usepoms="false" />
-        -->
-    </resolvers>
-    <modules>
-        <module organisation="sigil" name="*" resolver="sigil"/>
-    </modules>
-</ivysettings>
diff --git a/sigil/ivy/resolver/example/dependence/settings/sigil-repos.properties b/sigil/ivy/resolver/example/dependence/settings/sigil-repos.properties
deleted file mode 100644
index 85150e2..0000000
--- a/sigil/ivy/resolver/example/dependence/settings/sigil-repos.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# repository config
-
--repositories:	system, project, spring
-
-system;provider:	system
-system;level:		-1
-
-project;provider:	project
-project;level:	0
-project;pattern:	../*/[sigilproject]
-
-spring;provider:	obr
-spring;level:		2
-spring;url:		http://sigil.codecauldron.org/spring-external.obr
-spring;index:		../settings/spring-external.obr
-
-# end
diff --git a/sigil/ivy/resolver/example/felix-log/README b/sigil/ivy/resolver/example/felix-log/README
deleted file mode 100644
index df71d9b..0000000
--- a/sigil/ivy/resolver/example/felix-log/README
+++ /dev/null
@@ -1,22 +0,0 @@
-# http://sigil.codecauldron.org
-
-This example shows how to build the felix log service, using Ant/Ivy,
-instead of Maven.
-
-sigil.properties has been constructed to produce an identical bundle to the
-one produced by Maven.
-
-The Felix dependencies are obtained from an OBR index of
-http://repo1.maven.org/maven2/org/apache/felix, Maven repos can't be searched
-directly for package import dependencies.
-
-1. checkout felix log code
-  $ cd felix-log
-  $ svn co http://svn.apache.org/repos/asf/felix/trunk/log
-
-2. set ivy.jar location in common/build.properties
-
-3. build
-  $ cd log
-  $ ant
-
diff --git a/sigil/ivy/resolver/example/felix-log/bldcommon/build.properties b/sigil/ivy/resolver/example/felix-log/bldcommon/build.properties
deleted file mode 100644
index ff1bcc1..0000000
--- a/sigil/ivy/resolver/example/felix-log/bldcommon/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-# common properties
-
-# CHANGE ivy.jar TO REFLECT YOUR INSTALLATION
-ivy.jar = /opt/apache-ivy-2.0.0-rc2/ivy-2.0.0-rc2.jar
-
-sigil-ivy-plugin.jar = ${common.dir}/../../../lib/sigil-ivy-plugin.jar
-
-build.dir	= ${basedir}/build
-classes.dir	= ${build.dir}/classes
-deps.dir	= ${build.dir}/deps
-resource.dir	= ${basedir}/xml
-src.dir		= ${basedir}/src
-
-dest.dir	= ${build.dir}
-dest.lib.dir	= ${dest.dir}/lib
-dest.etc.dir	= ${dest.dir}/etc
-
-ivy.file	= ${basedir}/ivy.xml
-module.version.target = 1.0
-
-cache.dir	= ${common.dir}/ivy-cache
-repository.dir	= ${common.dir}/repository
-
-example.version	= 1.0.0
-bundle.version	= ${example.version}
-
diff --git a/sigil/ivy/resolver/example/felix-log/bldcommon/common.xml b/sigil/ivy/resolver/example/felix-log/bldcommon/common.xml
deleted file mode 100644
index aedc2ec..0000000
--- a/sigil/ivy/resolver/example/felix-log/bldcommon/common.xml
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common" 
-         xmlns:ivy="antlib:org.apache.ivy.ant">
-    
-    <dirname property="common.dir" file="${ant.file.common}"/>
-    <property file="${common.dir}/build.properties"/>
-
-    <path id="lib.path.id">
-        <fileset dir="${deps.dir}" />
-    </path>
-
-    <path id="sigil.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-
-    <!-- setup ivy default configuration with some custom info -->
-    <property name="ivy.local.default.root" value="${repository.dir}/local"/>
-    <property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
-
-    <!-- ================================= 
-          target: load-ivy
-         ================================= -->
-    <target name="load-ivy" depends="ivy-taskdefs">
-	<ivy:settings file="${common.dir}/ivysettings.xml" />
-    </target>
-
-    <!-- ================================= 
-          target: ivy-taskdefs
-         ================================= -->
-    <target name="ivy-taskdefs" unless="ivy.loaded">
-    	<property name="ivy.loaded" value="true"/>
-	<echo message="Loading Ivy ... common.dir=${common.dir}"/>
-
-    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-    	         uri="antlib:org.apache.ivy.ant"
-		 classpath="${ivy.jar}"/>
-
-	<taskdef name="sigil.bundle"
-		 classname="oorg.apache.felix.sigil.ant.BundleTask"
-		 classpath="${sigil-ivy-plugin.jar}"/>
-    </target>    
-
-
-
-    <!-- ================================= 
-          target: build (default target)
-         ================================= -->
-    <target name="build" depends="ident, jar, resources" />
-
-    <target name="ident">
-      <echo message="${ant.project.name}"/>
-    </target>
-
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="load-ivy, clean-deps"
-    	description="--> resolve and retrieve dependencies with ivy">
-	<mkdir dir="${deps.dir}"/>
-    	<ivy:resolve file="${ivy.file}"/>
-    	<ivy:retrieve pattern="${deps.dir}/[artifact].[ext]" />
-    </target>
-
-    <!-- ================================= 
-          target: install
-         ================================= -->
-    <target name="install" depends="install-version, build"
-    	description="--> publish this project in the local repository">
-    	<ivy:publish artifactspattern="${dest.lib.dir}/[artifact].[ext]" 
-		       resolver="local"
-		       pubrevision="${version}" 
-		       pubdate="${now}"
-		       forcedeliver="true"
-		       status="integration"/>
-        <echo message="project ${ant.project.name} published locally with version ${version}" />
-    </target>
-
-    <target name="install-version">
-	<tstamp>
-	    <format property="now" pattern="yyyyMMddHHmmss"/>
-	</tstamp>
-        <property name="version"
-	      value="${module.version.target}-local-${now}"/>
-    </target>
-    
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve"
-    	description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve"
-    	description="--> compile the project">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}"
-		destdir="${classes.dir}"
-		classpathref="lib.path.id"
-		target="1.5"
-		debug="true" />
-    </target>
-    
-    <!-- ================================= 
-          target: jar              
-         ================================= -->
-    <target name="jar" depends="compile"
-    	description="--> make a jar file for this project">
-	<mkdir dir="${dest.lib.dir}"/>
-        <sigil.bundle destpattern="${dest.lib.dir}/[id].[ext]"
-                classpathref="sigil.path.id"/>
-    </target>
-
-    <!-- ================================= 
-          target: resources              
-         ================================= -->
-    <available file="${resource.dir}" type="dir"
-               property="resource.dir.present"/>
-
-    <target name="resources" if="resource.dir.present"
-    	description="--> filter xml resources replacing ${VERSION} etc.">
-	<mkdir dir="${dest.etc.dir}"/>
-	<copy todir="${dest.etc.dir}">
-	  <fileset dir="${resource.dir}">
-	    <include name="*.composite"/>
-	    <include name="*.system"/>
-	  </fileset>
-	  <filterset begintoken="$${" endtoken="}">
-	    <filter token="VERSION" value="${bundle.version}"/>
-	    <filter token="BLITZ_VERSION" value="${blitz.version}"/>
-	    <filter token="JINI_VERSION" value="${jini.version}"/>
-	  </filterset>
-	</copy>
-    </target>
-
-    <!-- ================================= 
-      target: clean-local              
-     ================================= -->
-    <target name="clean-local"
-    	description="--> cleans the local repository for the current module">
-       <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
-    </target>
-
-    <!-- ================================= 
-      target: clean-deps              
-     ================================= -->
-    <target name="clean-deps"
-    	description="--> clean the project libraries directory (dependencies)">
-	<delete includeemptydirs="true" dir="${deps.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean-build              
-         ================================= -->
-    <target name="clean-build"
-    	description="--> clean the project built files">
-        <delete includeemptydirs="true" dir="${build.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" depends="clean-build, clean-deps"
-    	description="--> clean the project" />
-
-
-    <!-- ================================= 
-          target: buildlist
-         ================================= -->
-    <fileset id="projects" dir="${basedir}" includes="**/build.xml"/>
-
-    <target name="buildlist" depends="load-ivy">
-      <ivy:buildlist reference="ordered-list"
-		  onMissingDescriptor="skip">
-	<fileset refid="projects"/>
-      </ivy:buildlist>
-    </target>
-
-    <!-- ================================= 
-          target: install-list
-         ================================= -->
-    <target name="install-list" depends="buildlist" 
-	  description="--> compile, jar and install all projects in the right order">
-      <subant target="install" buildpathref="ordered-list">
-	<propertyset>
-	  <propertyref name="ivy.loaded" />
-	</propertyset>
-      </subant>
-    </target>
-
-    <!-- ================================= 
-          target: clean-list
-         ================================= -->
-    <target name="clean-list" depends="clean, buildlist"
-	  description="--> clean all projects">
-      <subant target="clean" buildpathref="ordered-list" />
-    </target>
-
-    <!-- ================================= 
-          target: clean-all
-         ================================= -->
-    <target name="clean-all" depends="clean-list" 
-    description="--> delete repository, ivy cache, and all projects">
-      <delete dir="${repository.dir}"/>
-      <ivy:cleancache />
-    </target>
-
-</project>
diff --git a/sigil/ivy/resolver/example/felix-log/bldcommon/ivysettings.xml b/sigil/ivy/resolver/example/felix-log/bldcommon/ivysettings.xml
deleted file mode 100644
index a1fb903..0000000
--- a/sigil/ivy/resolver/example/felix-log/bldcommon/ivysettings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-  <properties file="${ivy.settings.dir}/build.properties"/>
-  <caches defaultCacheDir="${cache.dir}" />
-
-  <settings defaultResolver="local" circularDependencyStrategy="error" />
-
-  <classpath file="${sigil-ivy-plugin.jar}" />
-  <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-  <typedef name="sigil" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-  <parsers>
-    <sigil-parser config="${ivy.settings.dir}/sigil-repos.properties"
-    		quiet="true"/>
-  </parsers>
-
-  <resolvers>
-    <sigil name="sigil"
-	   config="${ivy.settings.dir}/sigil-repos.properties"
-	   extractBCP="true"/>
-
-    <filesystem name="local">
-      <ivy pattern="${repository.dir}/local/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/local/[artifact]-[revision].[ext]" />
-    </filesystem>
-
-    <filesystem name="shared">
-      <ivy pattern="${repository.dir}/shared/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/shared/[module]/[artifact]-[revision].[ext]" />
-    </filesystem>
-  </resolvers>
-
-  <modules>
-    <module organisation="sigil" resolver="sigil"/>
-  </modules>
-</ivysettings>
diff --git a/sigil/ivy/resolver/example/felix-log/bldcommon/sigil-repos.properties b/sigil/ivy/resolver/example/felix-log/bldcommon/sigil-repos.properties
deleted file mode 100644
index fbc95c6..0000000
--- a/sigil/ivy/resolver/example/felix-log/bldcommon/sigil-repos.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# sigil repository config
-
--repositories:	system, project, felix
-
-system;provider:	system
-system;level:		-1
-
-project;provider:	project
-project;level:		0
-project;pattern:	../*/[sigilproject]
-
-felix;provider:         obr
-felix;level:            1
-felix;url:              http://sigil.codecauldron.org/maven-felix.obr
-felix;index:            ../bldcommon/maven-felix.obr
-
-# end
diff --git a/sigil/ivy/resolver/example/felix-log/log/build.xml b/sigil/ivy/resolver/example/felix-log/log/build.xml
deleted file mode 100644
index c7c19f6..0000000
--- a/sigil/ivy/resolver/example/felix-log/log/build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="felix-log" default="build">
-      <import file="../bldcommon/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/felix-log/log/ivy.xml b/sigil/ivy/resolver/example/felix-log/log/ivy.xml
deleted file mode 100644
index 6e0b4db..0000000
--- a/sigil/ivy/resolver/example/felix-log/log/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.felix"
-        module="felix-log"
-        status="integration"/>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/felix-log/log/sigil.properties b/sigil/ivy/resolver/example/felix-log/log/sigil.properties
deleted file mode 100644
index 3443218..0000000
--- a/sigil/ivy/resolver/example/felix-log/log/sigil.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-# sigil project file, saved by plugin.
-
--activator: ${Bundle-SymbolicName}.impl.Activator
-
-name: org.apache.felix.log
-
-version: 0.9.0.SNAPSHOT
-
--bundles: \
-	felix-log, \
-
--contents: \
-	${Bundle-SymbolicName}.impl, \
-	org.osgi.service.log, \
-
--resources: \
-	=src/main/resources, \
-
--sourcedirs: \
-	src/main/java, \
-
--exports: \
-	org.osgi.service.log, \
-
--imports: \
-	org.osgi.framework;version=1.4, \
-	org.osgi.service.log;version=1.3, \
-
-header;Bundle-Vendor: The Apache Software Foundation
-
-header;Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-
-header;Export-Service: org.osgi.service.log.LogService,org.osgi.service.log.LogReaderService
-
-header;Bundle-Name: Apache Felix Log Service
-
-header;Bundle-DocURL: http://www.apache.org/
-
diff --git a/sigil/ivy/resolver/example/multi-project/README b/sigil/ivy/resolver/example/multi-project/README
deleted file mode 100644
index ed39dc3..0000000
--- a/sigil/ivy/resolver/example/multi-project/README
+++ /dev/null
@@ -1,19 +0,0 @@
-# http://sigil.codecauldron.org
-
-This example is based on the Ivy Tutorial multi-project example:
-http://ant.apache.org/ivy/history/latest-milestone/tutorial/multiproject.html
-
-Dependencies are resolved using an OBR index for the Spring repository,
-hosted at sigil.codecauldron.org.
-
-projects/sigil-defaults.properties specifies default package version ranges,
-which are inherited by the -imports in sigil.properties.
-
-1. set ivy.jar location in common/build.properties
-
-2. test build order (determined automatically from the dependencies)
-$ ant order
-
-3. build
-$ ant publish
-
diff --git a/sigil/ivy/resolver/example/multi-project/build.xml b/sigil/ivy/resolver/example/multi-project/build.xml
deleted file mode 100644
index a04ef74..0000000
--- a/sigil/ivy/resolver/example/multi-project/build.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="all" default="publish" xmlns:ivy="antlib:org.apache.ivy.ant">
-  <property name="common.dir" value="${basedir}/common" />
-  <import file="${common.dir}/common.xml"/>
-
-  <fileset id="projects" dir="projects" includes="**/build.xml"/>
-
-  <path id="unordered-list">
-    <fileset refid="projects"/>
-  </path>
-
-  <target name="buildlist" depends="load-ivy"> 
-    <ivy:buildlist reference="ordered-list">
-      <fileset refid="projects"/>
-    </ivy:buildlist>
-  </target>
-  
-  <target name="publish" depends="buildlist" 
-	description="compile, jar and publish all projects in the right order">
-    <subant target="publish" buildpathref="ordered-list">
-      <propertyset>
-	<propertyref name="ivy.loaded" />
-      </propertyset>
-    </subant>
-  </target>
-
-  <target name="clean" description="clean all projects">
-    <subant target="clean" buildpathref="unordered-list" />
-  </target>
-  
-  <target name="fullclean" depends="clean, load-ivy" 
-  description="clean tutorial: delete repository, ivy cache, and all projects">
-    <delete dir="repository"/>
-  	<ivy:cleancache />
-  </target>
-
-  <target name="order" depends="buildlist"
-      description="test buildlist order">
-    <subant target="hello" buildpathref="ordered-list" />
-  </target>
-
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/common/build.properties b/sigil/ivy/resolver/example/multi-project/common/build.properties
deleted file mode 100644
index 79298b4..0000000
--- a/sigil/ivy/resolver/example/multi-project/common/build.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-
-# CHANGE ivy.jar TO REFLECT YOUR INSTALLATION
-ivy.jar = /opt/apache-ivy-2.0.0-rc2/ivy-2.0.0-rc2.jar
-
-sigil-ivy-plugin.jar = ${common.dir}/../../../lib/sigil-ivy-plugin.jar
-
-lib.dir = ${basedir}/lib
-build.dir = ${basedir}/build
-classes.dir = ${build.dir}/classes
-src.dir = ${basedir}/src
-repository.dir=${common.dir}/../repository
-
-ivy.file = ${basedir}/ivy.xml
-
-jar.file = ${build.dir}/${ant.project.name}.jar
-main.class.name = ${ant.project.name}.Main
-
-module.version.target = 1.0
diff --git a/sigil/ivy/resolver/example/multi-project/common/common.xml b/sigil/ivy/resolver/example/multi-project/common/common.xml
deleted file mode 100644
index 311cffd..0000000
--- a/sigil/ivy/resolver/example/multi-project/common/common.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common" 
-         xmlns:ivy="antlib:org.apache.ivy.ant">
-	<!-- a sample common ant build file, used for ivy multi-project tutorial
-	     feel free to copy and adapt it to your own needs
-	     Note that the only targets specific to ivy are:
-	        load-ivy
-	     	resolve
-	     	report
-	     	ivy-new-version
-	     	publish
-	     	publish-local
-	     	
-	     All other targets are usual ant based targets, which could have been written
-	     in a build not depending at all on ivy: 
-	     resolve constructs a lib directory based upon ivy dependencies, and then the lib dir 
-	     is used as in any classical ant build
-	     -->
-	
-	<property file="${common.dir}/build.properties"/>
-	
-	<!-- ================================= 
-          target: load-ivy         
-            this target is not necessary if you put ivy.jar in your ant lib directory
-            if you already have ivy 2.0 in your ant lib, you can simply remove this
-            target
-         ================================= -->
-
-    <target name="load-ivy" depends="ivy-taskdefs">
-	<ivy:settings file="${common.dir}/ivysettings.xml" />
-    </target>
-
-    <target name="ivy-taskdefs" unless="ivy.loaded">
-    	<property name="ivy.loaded" value="true"/>
-	<echo message="Loading Ivy ..."/>
-    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-    	         uri="antlib:org.apache.ivy.ant"
-		 classpath="${ivy.jar}"/>
-
-	<taskdef name="sigil.bundle"
-		 classname="org.apache.felix.sigil.ant.BundleTask"
-		 classpath="${sigil-ivy-plugin.jar}"/>
-    </target>    
-
-    <path id="lib.path.id">
-        <fileset dir="${lib.dir}" />
-    </path>
-
-    <path id="run.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-
-    
-    <!-- setup ivy default configuration with some custom info -->
-    <property name="ivy.local.default.root" value="${repository.dir}/local"/>
-    <property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
-
-    <!-- here is how we would have configured ivy if we had our own ivysettings file
-    <ivy:settings file="${common.dir}/ivysettings.xml" />
-    -->
-
-    <!-- ================================= 
-          target: hello              
-         ================================= -->
-    <target name="hello" description="--> identify project (useful to test buildlist)">
-	<echo message="${ant.project.name}"/>
-    </target>
-	
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="clean-lib, load-ivy" description="--> resolve and retrieve dependencies with ivy">
-        <mkdir dir="${lib.dir}"/> <!-- not usually necessary, ivy creates the directory IF there are dependencies -->
-    	
-    	<!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't -->
-    	<ivy:resolve file="${ivy.file}"/>
-    	<ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" />
-    </target>
-    
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> compile the project">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" debug="true" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="version, compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="${main.class.name}"/>
-    </target>
-
-	<target name="ivy-new-version" depends="load-ivy" unless="ivy.new.revision">
-    	<!-- default module version prefix value -->
-		<property name="module.version.prefix" value="${module.version.target}-dev-b" />
-		
-    	<!-- asks to ivy an available version number -->
-		<ivy:info file="${ivy.file}" />
-    	<ivy:buildnumber 
-    		organisation="${ivy.organisation}" module="${ivy.module}" 
-    		revision="${module.version.prefix}" defaultBuildNumber="1" revSep=""/>
-	</target>
-
-    <target name="local-version">
-		<tstamp>
-			<format property="now" pattern="yyyyMMddHHmmss"/>
-		</tstamp>
-        <property name="ivy.new.revision" value="${module.version.target}-local-${now}"/>
-    </target>
-	
-	<target name="version" depends="ivy-new-version">
-    	<!-- create version file in classpath for later inclusion in jar -->
-        <mkdir dir="${classes.dir}"/>
-		<echo message="version=${ivy.new.revision}" file="${classes.dir}/${ant.project.name}.properties" append="false" />
-
-		<!-- load generated version properties file -->
-        <property file="${classes.dir}/${ant.project.name}.properties" />
-    </target>
-
-    <!-- ================================= 
-          target: jar              
-         ================================= -->
-    <target name="jar" depends="version, compile" description="--> make a jar file for this project">
-
-	<!--
-        <jar destfile="${jar.file}">
-            <fileset dir="${classes.dir}" />
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="Build-Version" value="${version}" />
-            </manifest>
-        </jar>
-	-->
-
-        <sigil.bundle destpattern="${build.dir}/[id].[ext]"
-                classpathref="run.path.id"/>
-    </target>
-
-    <!-- ================================= 
-          target: publish              
-         ================================= -->
-    <target name="publish" depends="clean-build, jar" description="--> publish this project in the ivy repository">
-    	<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-    			           resolver="shared"
-    			           pubrevision="${version}" 
-    			           status="release"
-    	/>
-        <echo message="project ${ant.project.name} released with version ${version}" />
-    </target>
-
-    <!-- ================================= 
-          target: publish-local              
-         ================================= -->
-    <target name="publish-local" depends="local-version, jar" description="--> publish this project in the local ivy repository">
-    	<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-    			        resolver="local"
-    			        pubrevision="${version}"
-				        pubdate="${now}"
-    			        status="integration"
-    					forcedeliver="true"
-    	/>
-        <echo message="project ${ant.project.name} published locally with version ${version}" />
-    </target>
-
-	<!-- ================================= 
-          target: clean-local              
-         ================================= -->
-	<target name="clean-local" description="--> cleans the local repository for the current module">
-	   <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
-	</target>
-
-	<!-- ================================= 
-          target: clean-lib              
-         ================================= -->
-    <target name="clean-lib" description="--> clean the project libraries directory (dependencies)">
-        <delete includeemptydirs="true" dir="${lib.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean-build              
-         ================================= -->
-    <target name="clean-build" description="--> clean the project built files">
-        <delete includeemptydirs="true" dir="${build.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" depends="clean-build, clean-lib" description="--> clean the project" />
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/common/ivysettings.xml b/sigil/ivy/resolver/example/multi-project/common/ivysettings.xml
deleted file mode 100644
index f2f7454..0000000
--- a/sigil/ivy/resolver/example/multi-project/common/ivysettings.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-  <properties file="${ivy.settings.dir}/build.properties"/>
-  <caches defaultCacheDir="${ivy.settings.dir}/../ivy-cache" />
-
-  <settings defaultResolver="shared" circularDependencyStrategy="error" />
-
-  <classpath file="${ivy.settings.dir}/../../../lib/sigil-ivy-plugin.jar" />
-  <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-  <typedef name="sigil-resolver" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-  <parsers>
-    <sigil-parser quiet="true"/>
-  </parsers>
-
-  <resolvers>
-    <sigil-resolver name="sigil" config="${ivy.settings.dir}/sigil-repos.properties" />
-    <filesystem name="local">
-      <ivy pattern="${repository.dir}/local/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/local/[artifact]-[revision].[ext]" />
-    </filesystem>
-    <filesystem name="shared">
-      <ivy pattern="${repository.dir}/shared/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/shared/[module]/[artifact]-[revision].[ext]" />
-    </filesystem>
-  </resolvers>
-  <modules>
-    <!--<module organisation="org.apache.ivy.example" name=".*" resolver="shared"/>
-    -->
-    <module organisation="sigil" resolver="sigil"/>
-  </modules>
-</ivysettings>
diff --git a/sigil/ivy/resolver/example/multi-project/common/sigil-repos.properties b/sigil/ivy/resolver/example/multi-project/common/sigil-repos.properties
deleted file mode 100644
index bd711fa..0000000
--- a/sigil/ivy/resolver/example/multi-project/common/sigil-repos.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-
-# repository config
-
--repositories:	system, project, spring
-
-system;provider:	system
-system;level:		-1
-#system;framework:	osgi.core.jar
-#system;profile:	J2SE-1.5
-
-project;provider:	project
-project;level:	0
-project;pattern:	../projects/**/[sigilproject]
-
-spring;provider:	obr
-spring;level:		2
-spring;url:		http://sigil.codecauldron.org/spring-external.obr
-spring;index:		../common/spring-external.obr
-
-# end
diff --git a/sigil/ivy/resolver/example/multi-project/projects/console/build.properties b/sigil/ivy/resolver/example/multi-project/projects/console/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/console/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/console/build.xml b/sigil/ivy/resolver/example/multi-project/projects/console/build.xml
deleted file mode 100644
index 5c02cba..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/console/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="console" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/console/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/console/ivy.xml
deleted file mode 100644
index b1eb4f4..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/console/ivy.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="console"
-        status="integration"/>
-    <dependencies>
-      <dependency name="version" rev="latest.integration" conf="default" />
-      <dependency name="list" rev="latest.integration" conf="default->standalone" />
-      <dependency name="find" rev="latest.integration" conf="default->standalone" />
-      <dependency name="sizewhere" rev="latest.integration" conf="default->standalone" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/console/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/console/sigil.properties
deleted file mode 100644
index dea089f..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/console/sigil.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-
--bundles: console
-
--exports: console
-
--imports: list
diff --git a/sigil/ivy/resolver/example/multi-project/projects/console/src/console/Main.java b/sigil/ivy/resolver/example/multi-project/projects/console/src/console/Main.java
deleted file mode 100644
index 678f3ca..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/console/src/console/Main.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package console;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.Collection;
-import java.util.Arrays;
-import java.lang.reflect.Method;
-
-
-public class Main {
-    private static Collection QUIT_COMMANDS = Arrays.asList(new String[] {"quit", "q", "exit"});
-    private static Collection HELP_COMMANDS = Arrays.asList(new String[] {"help", "h", "?"});
-
-    public static void main(String[] a) throws Exception {
-      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-      while (true) {
-        System.out.print("> ");
-        String command = in.readLine().trim();
-        if (QUIT_COMMANDS.contains(command)) {
-          return;
-        }
-        if (HELP_COMMANDS.contains(command)) {
-          help();
-          continue;
-        }
-        String[] split = command.split(" ");
-        if (split.length == 0) {
-          error(command);
-          continue;
-        }
-        
-        try {
-          String[] args = new String[split.length - 1];
-          System.arraycopy(split, 1, args, 0, args.length);
-          Class cl = Class.forName(split[0]+".Main");
-          Method m = cl.getMethod("main", new Class[] {String[].class});
-          m.invoke(null, new Object[] {args});
-        } catch (Exception ex) {
-          error(command);
-          continue;
-        }
-      }
-    }
-    
-    private static void help() {
-      System.out.println("available commands:");
-      System.out.println("\tquit: quit the console");
-      System.out.println("\thelp: displays this message");
-      System.out.println("\tlist -dir <dir>: list files in given directory");
-      System.out.println("\tfind -dir <dir> -name <name>: list files with given name in given dir");
-      System.out.println("\tsizewhere -dir <dir> -name <name>: compute total size of files with given name in given dir");
-      System.out.println("\thelp: displays this message");
-    }
-            
-    private static void error(String command) {
-      System.out.println("unknown command "+command);
-      System.out.println("type ? for help");
-    }
-            
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/build.properties b/sigil/ivy/resolver/example/multi-project/projects/find/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/build.xml b/sigil/ivy/resolver/example/multi-project/projects/find/build.xml
deleted file mode 100644
index 4d23bf5..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="find" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/find/ivy.xml
deleted file mode 100644
index b7f1bc1..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/ivy.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="find"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="find" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency name="list" rev="latest.integration" conf="core" />
-      <dependency org="commons-collections" name="commons-collections" rev="3.1" conf="core->default" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/find/sigil.properties
deleted file mode 100644
index 30c10a7..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
--bundles: find
-
--exports: find
-
--imports:\
-  version, \
-  list, \
-  org.apache.commons.collections, \
-  org.apache.commons.cli
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/src/find/FindFile.java b/sigil/ivy/resolver/example/multi-project/projects/find/src/find/FindFile.java
deleted file mode 100644
index 25fa1af..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/src/find/FindFile.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package find;
-
-import version.Version;
-import list.ListFile;
-
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-import  org.apache.commons.collections.CollectionUtils;
-import  org.apache.commons.collections.Predicate;
-
-public class FindFile {
-  static {
-    Version.register("find");
-  }
-  
-  public static Collection find(File dir, String name) {
-    return find(ListFile.list(dir), name);
-  }
-  
-  private static Collection find(Collection files, final String name) {    
-    return CollectionUtils.select(files, new Predicate() {
-      public boolean evaluate(Object o) {
-        return ((File)o).getName().indexOf(name) != -1;
-      }
-    });
-  }
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/find/src/find/Main.java b/sigil/ivy/resolver/example/multi-project/projects/find/src/find/Main.java
deleted file mode 100644
index a41c136..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/find/src/find/Main.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package find;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName("dir")
-            .hasArg()
-            .withDescription("list files in given dir")
-            .create("dir");
-        Option name = OptionBuilder.withArgName("name")
-            .hasArg()
-            .withDescription("list files with given name")
-            .create("name");
-        Options options = new Options();
-
-        options.addOption(dir);
-        options.addOption(name);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-        Options options = getOptions();
-        try {
-        
-            CommandLineParser parser = new GnuParser();
-    
-            CommandLine line = parser.parse(options, args);
-            File dir = new File(line.getOptionValue("dir", "."));
-            String name = line.getOptionValue("name", "jar");
-            Collection files = FindFile.find(dir, name);
-            System.out.println("listing files in " + dir + " containing " + name);
-            for (Iterator it = files.iterator(); it.hasNext();) {
-                System.out.println("\t" + it.next() + "\n");
-            }
-        } catch(ParseException exp) {
-            // oops, something went wrong
-            System.err.println("Parsing failed.  Reason: " + exp.getMessage());
-              
-            HelpFormatter formatter = new HelpFormatter();
-            formatter.printHelp("find", options);
-        }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/build.properties b/sigil/ivy/resolver/example/multi-project/projects/list/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/build.xml b/sigil/ivy/resolver/example/multi-project/projects/list/build.xml
deleted file mode 100644
index 3926148..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="list" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/list/ivy.xml
deleted file mode 100644
index 6593fb7..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/ivy.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="list"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="list" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/list/sigil.properties
deleted file mode 100644
index 302cba7..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/sigil.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# requirements
-
--imports:\
-  version, \
-  org.apache.commons.cli
-
-# exports
-
--bundles: list
-
-list;name: org.example.list
-list;-exports: list.*
-
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/src/list/ListFile.java b/sigil/ivy/resolver/example/multi-project/projects/list/src/list/ListFile.java
deleted file mode 100644
index 7467152..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/src/list/ListFile.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package list;
-
-import version.Version;
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-public class ListFile {
-  static {
-    Version.register("list");
-  }
-  
-  public static Collection list(File dir) {
-    Collection files = new ArrayList();
-    
-    return list(dir, files);
-  }
-  
-  private static Collection list(File file, Collection files) {
-    if (file.isDirectory()) {
-      File[] f = file.listFiles();
-      for (int i=0; i<f.length; i++) {
-        list(f[i], files);
-      }
-    } else {
-      files.add(file);
-    }
-    return files;
-  }
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/list/src/list/Main.java b/sigil/ivy/resolver/example/multi-project/projects/list/src/list/Main.java
deleted file mode 100644
index 0f8cb14..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/list/src/list/Main.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package list;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName( "dir" )
-            .hasArg()
-            .withDescription(  "list files in given dir" )
-            .create( "dir" );
-        Options options = new Options();
-
-        options.addOption(dir);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-      Options options = getOptions();
-      try {
-        
-        CommandLineParser parser = new GnuParser();
-
-        CommandLine line = parser.parse( options, args );
-        File dir = new File(line.getOptionValue("dir", "."));
-        Collection files = ListFile.list(dir);
-        System.out.println("listing files in "+dir);
-        for (Iterator it = files.iterator(); it.hasNext(); ) {
-          System.out.println("\t"+it.next()+"\n");
-        }
-      } catch( ParseException exp ) {
-          // oops, something went wrong
-          System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
-          
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "list", options );
-      }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sigil-defaults.properties b/sigil/ivy/resolver/example/multi-project/projects/sigil-defaults.properties
deleted file mode 100644
index d61df45..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sigil-defaults.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-# sigil-defaults.properties
-
-package;org.apache.commons.cli: [1.1,1.2)
-package;org.apache.commons.collections: [3.0,4.0)
diff --git a/sigil/ivy/resolver/example/multi-project/projects/size/build.properties b/sigil/ivy/resolver/example/multi-project/projects/size/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/size/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/size/build.xml b/sigil/ivy/resolver/example/multi-project/projects/size/build.xml
deleted file mode 100644
index 2a75fe5..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/size/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="size" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/size/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/size/ivy.xml
deleted file mode 100644
index 7112b7f..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/size/ivy.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="size"
-        status="integration"/>
-    <dependencies>
-      <dependency name="version" rev="latest.integration" conf="default" />
-      <dependency name="list" rev="latest.integration" conf="default->core" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/size/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/size/sigil.properties
deleted file mode 100644
index cf239af..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/size/sigil.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-
--bundles: size
-
--exports: size
-
--imports:\
-  list, \
-  version
diff --git a/sigil/ivy/resolver/example/multi-project/projects/size/src/size/FileSize.java b/sigil/ivy/resolver/example/multi-project/projects/size/src/size/FileSize.java
deleted file mode 100644
index dcd4a1c..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/size/src/size/FileSize.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package size;
-
-import version.Version;
-import java.util.Collection;
-import java.util.Iterator;
-import java.io.File;
-
-public class FileSize {
-  static {
-    Version.register("size");
-  }
-
-  public static long totalSize(File dir) {
-    return totalSize(list.ListFile.list(dir));
-  }
-  
-  public static long totalSize(Collection files) {
-    long total = 0;
-    for (Iterator it = files.iterator(); it.hasNext(); ) {
-      File f = (File)it.next();
-      total += f.length();
-    }
-    return total;
-  }  
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.properties b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.xml b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.xml
deleted file mode 100644
index 0b8ab4c..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="sizewhere" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/ivy.xml
deleted file mode 100644
index d50bddb..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/ivy.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="sizewhere"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="sizewhere" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency name="size" rev="latest.integration" conf="core->default" />
-      <dependency name="find" rev="latest.integration" conf="core" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/sigil.properties
deleted file mode 100644
index c272f9b..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
--bundles: sizewhere
-
--exports: sizewhere
-
--imports:\
-  find, \
-  size, \
-  version, \
-  org.apache.commons.cli
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/Main.java b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/Main.java
deleted file mode 100644
index 131af66..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/Main.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sizewhere;
-
-import java.io.File;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName( "dir" )
-            .hasArg()
-            .withDescription(  "give total size of files in given dir" )
-            .create( "dir" );
-        Option name = OptionBuilder.withArgName( "name" )
-            .hasArg()
-            .withDescription(  "give total size of files with given name" )
-            .create( "name" );
-        Options options = new Options();
-
-        options.addOption(dir);
-        options.addOption(name);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-      Options options = getOptions();
-      try {
-        
-        CommandLineParser parser = new GnuParser();
-
-        CommandLine line = parser.parse( options, args );
-        File dir = new File(line.getOptionValue("dir", "."));
-        String name = line.getOptionValue("name", "jar");
-        System.out.println("total size of files in "+dir+" containing "+name+": "+SizeWhere.totalSize(dir, name));
-      } catch( ParseException exp ) {
-          // oops, something went wrong
-          System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
-          
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "sizewhere", options );
-      }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java b/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java
deleted file mode 100644
index 3594bd9..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sizewhere;
-
-import version.Version;
-import size.FileSize;
-import find.FindFile;
-
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-public class SizeWhere {
-  static {
-    Version.register("sizewhere");
-  }
-  
-  public static long totalSize(File dir, String name) {
-    return FileSize.totalSize(FindFile.find(dir, name));
-  }
-}
diff --git a/sigil/ivy/resolver/example/multi-project/projects/version/build.properties b/sigil/ivy/resolver/example/multi-project/projects/version/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/version/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/example/multi-project/projects/version/build.xml b/sigil/ivy/resolver/example/multi-project/projects/version/build.xml
deleted file mode 100644
index 375db20..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/version/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="version" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/version/ivy.xml b/sigil/ivy/resolver/example/multi-project/projects/version/ivy.xml
deleted file mode 100644
index 16e08f3..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/version/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="version"
-        status="integration"/>
-</ivy-module>
diff --git a/sigil/ivy/resolver/example/multi-project/projects/version/sigil.properties b/sigil/ivy/resolver/example/multi-project/projects/version/sigil.properties
deleted file mode 100644
index a940ffd..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/version/sigil.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-
--bundles: version
-
--exports: version
diff --git a/sigil/ivy/resolver/example/multi-project/projects/version/src/version/Version.java b/sigil/ivy/resolver/example/multi-project/projects/version/src/version/Version.java
deleted file mode 100644
index 0c69bc5..0000000
--- a/sigil/ivy/resolver/example/multi-project/projects/version/src/version/Version.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package version;
-
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.Map;
-import java.util.HashMap;
-
-public class Version {
-    static {
-        versions = new HashMap();
-        register("version");
-    }
-  
-    private static Map versions;
-  
-    public static void register(String module) {
-        try {
-            InputStream moduleVersion = Version.class.getResourceAsStream("/"+module+".properties");
-            Properties props = new Properties();
-            props.load(moduleVersion);
-            String version = (String)props.get("version");
-            versions.put(module, version);
-            System.out.println("--- using "+module+" v"+version);
-        } catch (Exception ex) {
-            System.err.println("an error occured while registering "+module+": "+ex.getMessage());
-            ex.printStackTrace();
-        }
-    }
-}
diff --git a/sigil/ivy/resolver/ivy.xml b/sigil/ivy/resolver/ivy.xml
deleted file mode 100644
index 2c7d0e6..0000000
--- a/sigil/ivy/resolver/ivy.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-  <info 
-        organisation="org.apache"
-        module="felix.sigil.ivy.resolver"
-        status="integration"/>
-   <publications>
-     <artifact name="org.apache.felix.sigil.ivy.resolver" />
-   </publications>
-</ivy-module>
diff --git a/sigil/ivy/resolver/sigil.properties b/sigil/ivy/resolver/sigil.properties
deleted file mode 100644
index db81f20..0000000
--- a/sigil/ivy/resolver/sigil.properties
+++ /dev/null
@@ -1,51 +0,0 @@
-
-# sigil project file, saved by plugin.
-
--bundles: \
-	org.apache.felix.sigil.ivy.resolver, \
-
--contents: \
-	profiles.*, \
-	aQute.bnd*, \
-	aQute.lib*, \
-	aQute.libg*, \
-	org.osgi.framework, \
-	org.apache.felix.sigil.*, \
-
--resources: \
-	DEPENDENCIES, \
-	NOTICE, \
-
--imports: \
-	org.apache.felix.sigil.common.bnd, \
-	org.apache.felix.sigil.common.config, \
-	org.apache.felix.sigil.common.core, \
-	org.apache.felix.sigil.common.core.licence, \
-	org.apache.felix.sigil.common.core.repository, \
-	org.apache.felix.sigil.common.model, \
-	org.apache.felix.sigil.common.model.eclipse, \
-	org.apache.felix.sigil.common.model.osgi, \
-	org.apache.felix.sigil.common.obr, \
-	org.apache.felix.sigil.common.osgi, \
-	org.apache.felix.sigil.common.repository, \
-	org.apache.ivy, \
-	org.apache.ivy.core, \
-	org.apache.ivy.core.module.descriptor, \
-	org.apache.ivy.core.module.id, \
-	org.apache.ivy.core.resolve, \
-	org.apache.ivy.core.settings, \
-	org.apache.ivy.plugins.parser, \
-	org.apache.ivy.plugins.parser.xml, \
-	org.apache.ivy.plugins.repository, \
-	org.apache.ivy.plugins.repository.file, \
-	org.apache.ivy.plugins.repository.url, \
-	org.apache.ivy.plugins.resolver, \
-	org.apache.ivy.plugins.resolver.util, \
-	org.apache.ivy.util, \
-	org.apache.tools.ant, \
-	org.apache.tools.ant.types, \
-	org.osgi.framework, \
-
-header;Class-Path: bndlib.jar org.eclipse.equinox.common.jar
-
-# end
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleInfoTask.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleInfoTask.java
deleted file mode 100644
index ad5bbb4..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleInfoTask.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ant;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-
-public class BundleInfoTask extends Task
-{
-    private File bundle;
-    private String header;
-    private String property;
-    private String defaultValue;
-
-    @Override
-    public void execute() throws BuildException
-    {
-        if (bundle == null)
-            throw new BuildException("missing attribute: bundle");
-        if (header == null)
-            throw new BuildException("missing attribute: header");
-
-        JarFile jar = null;
-
-        try
-        {
-            jar = new JarFile(bundle, false);
-            Manifest mf = jar.getManifest();
-            String value = mf.getMainAttributes().getValue(header);
-            if (property == null)
-            {
-                log(header + "=" + value);
-            }
-            else
-            {
-                if ("Bundle-SymbolicName".equals(header) && value != null)
-                {
-                    // remove singleton flag
-                    int semi = value.indexOf(';');
-                    if (semi > 0)
-                        value = value.substring(0, semi);
-                }
-                if (value == null)
-                {
-                    value = defaultValue;
-                }
-                if (value != null)
-                {
-                    getProject().setNewProperty(property, value);
-                }
-            }
-        }
-        catch (IOException e)
-        {
-            throw new BuildException("Failed to access bundle", e);
-        }
-        finally
-        {
-            if (jar != null)
-            {
-                try
-                {
-                    jar.close();
-                }
-                catch (IOException e)
-                {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-    public void setBundle(String bundle)
-    {
-        this.bundle = new File(bundle);
-    }
-
-    public void setHeader(String header)
-    {
-        this.header = header;
-    }
-
-    public void setProperty(String property)
-    {
-        this.property = property;
-    }
-
-    public void setDefaultValue(String defaultValue)
-    {
-        this.defaultValue = defaultValue;
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java
deleted file mode 100644
index ab2c4c2..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ant;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.bnd.BundleBuilder;
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.IBldProject.IBldBundle;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Path;
-
-public class BundleTask extends Task
-{
-    private File[] classpath;
-    private String destPattern;
-    private boolean force;
-    private String property;
-    private String sigilFile;
-    private String revision;
-
-    @Override
-    public void execute() throws BuildException
-    {
-        if (classpath == null)
-            throw new BuildException("missing: attribute: classpathref");
-        if (destPattern == null)
-            throw new BuildException("missing attribute: destpattern");
-
-        @SuppressWarnings("unchecked")
-        Hashtable<String, String> projectProperties = getProject().getProperties();
-        Properties antProperties = new Properties();
-        antProperties.putAll(projectProperties);
-
-        IBldProject project;
-        try
-        {
-            project = BldFactory.getProject(getSigilFileURI(), antProperties);
-        }
-        catch (IOException e)
-        {
-            throw new BuildException("failed to get project file: " + e);
-        }
-
-        Properties env = new Properties();
-        for (String key : projectProperties.keySet())
-        {
-            if (key.matches("^[a-z].*"))
-            { // avoid props starting with Uppercase - bnd adds them to manifest
-                env.setProperty(key, projectProperties.get(key));
-            }
-        }
-
-        BundleBuilder bb = new BundleBuilder(project, classpath, destPattern, env);
-        boolean anyModified = false;
-
-        for (IBldBundle bundle : project.getBundles())
-        {
-            String id = bundle.getId();
-            log("creating bundle: " + id);
-            int nWarn = 0;
-            int nErr = 0;
-            String msg = "";
-
-            try
-            {
-                boolean modified = (bb.createBundle(bundle, force,
-                    new BundleBuilder.Log()
-                    {
-                        public void warn(String msg)
-                        {
-                            log(msg, Project.MSG_WARN);
-                        }
-
-                        public void verbose(String msg)
-                        {
-                            log(msg, Project.MSG_VERBOSE);
-                        }
-                    }));
-                nWarn = bb.warnings().size();
-                if (modified)
-                {
-                    anyModified = true;
-                }
-                else
-                {
-                    msg = " (not modified)";
-                }
-            }
-            catch (Exception e)
-            {
-                List<String> errors = bb.errors();
-                if (errors != null)
-                {
-                    nErr = errors.size();
-                    for (String err : errors)
-                    {
-                        log(err, Project.MSG_ERR);
-                    }
-                }
-                throw new BuildException("failed to create: " + id + ": " + e, e);
-            }
-            finally
-            {
-                log(id + ": " + count(nErr, "error") + ", " + count(nWarn, "warning")
-                    + msg);
-            }
-
-            if (revision != null)
-            {
-                // FIXME: hopefully if we have multiple bundles they all have the same version
-                getProject().setProperty(revision, bundle.getVersion());
-            }
-        }
-
-        if (anyModified && property != null)
-        {
-            getProject().setProperty(property, "true");
-        }
-    }
-
-    private URI getSigilFileURI()
-    {
-        File file = sigilFile == null ? new File(getProject().getBaseDir(),
-            IBldProject.PROJECT_FILE) : new File(sigilFile);
-        if (!file.isFile())
-        {
-            throw new BuildException("File not found " + file.getAbsolutePath());
-        }
-        return file.toURI();
-    }
-
-    private String count(int count, String msg)
-    {
-        return count + " " + msg + (count == 1 ? "" : "s");
-    }
-
-    public void setDestpattern(String pattern)
-    {
-        this.destPattern = pattern;
-    }
-
-    public void setForce(String force)
-    {
-        this.force = Boolean.parseBoolean(force);
-    }
-
-    public void setProperty(String property)
-    {
-        this.property = property;
-    }
-
-    public void setRevision(String revision)
-    {
-        this.revision = revision;
-    }
-
-    public void setClasspathref(String value)
-    {
-        Path p = (Path) getProject().getReference(value);
-        if (p == null)
-        {
-            throw new BuildException(value + "is not a path reference.");
-        }
-
-        String[] paths = p.list();
-        classpath = new File[paths.length];
-        for (int i = 0; i < paths.length; ++i)
-        {
-            classpath[i] = new File(paths[i]);
-        }
-    }
-
-    public void setSigilFile(String sigilFile)
-    {
-        this.sigilFile = sigilFile;
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldRepositoryManager.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldRepositoryManager.java
deleted file mode 100644
index 4d925de..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldRepositoryManager.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.repository.AbstractRepositoryManager;
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-
-public class BldRepositoryManager extends AbstractRepositoryManager
-{
-    private static Map<String, String> aliases = new HashMap<String, String>();
-
-    static
-    {
-        aliases.put("filesystem",
-            "org.apache.felix.sigil.common.core.repository.FileSystemRepositoryProvider");
-        aliases.put("obr", "org.apache.felix.sigil.common.obr.OBRRepositoryProvider");
-        aliases.put("project", "org.apache.felix.sigil.ivy.ProjectRepositoryProvider");
-        aliases.put("system",
-            "org.apache.felix.sigil.common.core.repository.SystemRepositoryProvider");
-    };
-
-    /**
-     * @param config
-     */
-    public BldRepositoryManager(IRepositoryConfig config)
-    {
-        super(config);
-    }
-
-    @Override
-    protected void loadRepositories()
-    {
-        List<IBundleRepository> list = new ArrayList<IBundleRepository>();
-        scanRepositories(getConfig().getRepositoryPath(), list);
-        setRepositories(list.toArray(new IBundleRepository[list.size()]));
-    }
-    
-    /**
-     * @param list 
-     * @param config2
-     * @param i
-     */
-    private void scanRepositories(List<String> path, List<IBundleRepository> list)
-    {
-        for (String name : path)
-        {
-            if ( IRepositoryConfig.WILD_CARD.equals(name) ) {
-                HashSet<String> defined = new HashSet<String>();
-                for (String n : path) {
-                    if (!IRepositoryConfig.WILD_CARD.equals(n)) {
-                        defined.add(n);
-                    }
-                }
-                List<String> subpath = new LinkedList<String>();
-                for (String key : getConfig().getAllRepositories()) {
-                    if (!defined.contains(key))
-                    {
-                        subpath.add(key);
-                    }
-                }
-                scanRepositories(subpath, list);
-            }
-            else {
-                Properties props = getConfig().getRepositoryConfig(name);
-                if (props != null) {
-                    IBundleRepository repo = buildRepository(name, props);
-                    
-                    if ( repo != null ) {
-                        list.add(repo);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * @param repo
-     * @return 
-     */
-    private static IBundleRepository buildRepository(String name, Properties repo)
-    {
-        String disabled = repo.getProperty("disabled");
-        if ("true".equalsIgnoreCase(disabled == null ? null : disabled.trim())) return null;
-        
-        String optStr = repo.getProperty("optional", "false");
-        boolean optional = Boolean.parseBoolean(optStr.trim());
-
-        String alias = repo.getProperty(IRepositoryConfig.REPOSITORY_PROVIDER);
-        if (alias == null)
-        {
-            String msg = "provider not specified for repository: " + name;
-            
-            if (!optional)
-                throw new IllegalStateException(msg);
-            
-            Log.warn(msg);
-        }
-
-        String provider = (aliases.containsKey(alias) ? aliases.get(alias) : alias);
-
-        if (alias.equals("obr"))
-        {
-            // cache is directory where synchronized bundles are stored;
-            // not needed in ivy.
-            repo.setProperty("cache", "/no-cache");
-            String index = repo.getProperty("index");
-
-            if (index == null)
-            {
-                // index is created to cache OBR url
-                File indexFile = new File(System.getProperty("java.io.tmpdir"),
-                    "obr-index-" + name);
-                indexFile.deleteOnExit();
-                repo.setProperty("index", indexFile.getAbsolutePath());
-            }
-            else
-            {
-                if (!new File(index).getParentFile().mkdirs())
-                {
-                    // ignore - but keeps findbugs happy
-                }
-            }
-        }
-
-        try
-        {
-            IRepositoryProvider instance = (IRepositoryProvider) (Class.forName(provider).newInstance());
-            IBundleRepository repository = instance.createRepository(name, repo);
-            return repository;
-        }
-        catch (Exception e)
-        {
-            String msg = "failed to create repository: ";
-            if (!optional)
-                throw new IllegalStateException(msg + repo + " " + e, e);
-            Log.warn(msg + e);
-        }
-        
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldResolver.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldResolver.java
deleted file mode 100644
index f8a96fd..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/BldResolver.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.core.BldCore;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.IResolutionMonitor;
-import org.apache.felix.sigil.common.repository.ResolutionConfig;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-
-public class BldResolver implements IBldResolver
-{
-    private BldRepositoryManager manager;
-    private final IRepositoryConfig config;
-    
-    static
-    {
-        try
-        {
-            BldCore.init();
-        }
-        catch (Exception e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    };
-
-    /**
-     * @param project
-     */
-    public BldResolver(IRepositoryConfig config)
-    {
-        this.config = config;
-    }
-
-    public IResolution resolve(IModelElement element, boolean transitive)
-    {
-        int options = ResolutionConfig.IGNORE_ERRORS | ResolutionConfig.INCLUDE_OPTIONAL;
-        if (transitive)
-            options |= ResolutionConfig.INCLUDE_DEPENDENTS;
-
-        ResolutionConfig config = new ResolutionConfig(options);
-        try
-        {
-            return resolve(element, config);
-        }
-        catch (ResolutionException e)
-        {
-            throw new IllegalStateException(
-                "eek! this shouldn't happen when ignoreErrors=true", e);
-        }
-    }
-
-    public IResolution resolveOrFail(IModelElement element, boolean transitive)
-        throws ResolutionException
-    {
-        int options = 0;
-        if (transitive)
-            options |= ResolutionConfig.INCLUDE_DEPENDENTS;
-        ResolutionConfig config = new ResolutionConfig(options);
-        return resolve(element, config);
-    }
-
-    private IResolution resolve(IModelElement element, ResolutionConfig config)
-        throws ResolutionException
-    {
-        if (manager == null)
-        {
-            manager = new BldRepositoryManager(this.config);
-        }
-
-        IResolutionMonitor ivyMonitor = new IResolutionMonitor()
-        {
-            public void endResolution(IModelElement requirement, ISigilBundle sigilBundle)
-            {
-                Log.debug("Resolved " + requirement + " -> " + sigilBundle);
-            }
-
-            public boolean isCanceled()
-            {
-                return false;
-            }
-
-            public void startResolution(IModelElement requirement)
-            {
-                Log.verbose("Resolving " + requirement);
-            }
-        };
-
-        return manager.getBundleResolver().resolve(element, config, ivyMonitor);
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/FindUtil.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/FindUtil.java
deleted file mode 100644
index 2a6c7cd..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/FindUtil.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.TreeSet;
-
-public class FindUtil
-{
-    static final String WILD_ANY = "[^.]?.*";
-    static final String WILD_ONE = "[^.]?[^;]*"; // WILD_ONE.endsWith(WILD_ANY) == false
-
-    // example pattern: ${repository}/projects/abc*/*/project.sigil
-    public static Collection<File> findFiles(File workingDir, String pattern)
-        throws IOException
-    {
-        int star = pattern.indexOf("*");
-        if (star == -1)
-        {
-            throw new IOException("pattern doesn't contain '*': " + pattern);
-        }
-        int slash = pattern.lastIndexOf('/', star);
-
-        String regex = pattern.substring((slash == -1) ? 0 : slash + 1);
-        regex = regex.replaceAll("\\*\\*", "-wildany-");
-        regex = regex.replaceAll("\\*", "-wildone-");
-        regex = regex.replaceAll("-wildany-", WILD_ANY);
-        regex = regex.replaceAll("-wildone-", WILD_ONE);
-
-        String[] patterns = regex.split("/");
-
-        TreeSet<File> list = new TreeSet<File>();
-        File root = slash == -1 ? workingDir
-            : new File(pattern.substring(0, slash)).getAbsoluteFile();
-
-        if (root.isDirectory())
-        {
-            findFiles(root, 0, patterns, list);
-        }
-        else
-        {
-            throw new IOException("pattern root directory does not exist: " + root);
-        }
-
-        return list;
-    }
-
-    private static void findFiles(File dir, int level, String[] patterns,
-        Collection<File> list)
-    {
-        final String filePattern = patterns[patterns.length - 1] + "$";
-        final String dirPattern;
-
-        if (level < patterns.length - 1)
-        {
-            dirPattern = patterns[level];
-        }
-        else
-        {
-            dirPattern = "/"; // impossible to match marker
-        }
-
-        final boolean stillWild;
-        if ((level > 0) && (level < patterns.length)
-            && patterns[level - 1].endsWith(WILD_ANY))
-        {
-            stillWild = true;
-        }
-        else
-        {
-            stillWild = false;
-        }
-
-        for (File path : dir.listFiles(new FileFilter()
-        {
-            public boolean accept(File pathname)
-            {
-                String name = pathname.getName();
-                if (pathname.isDirectory())
-                {
-                    return name.matches(dirPattern)
-                        || (stillWild && name.matches(WILD_ANY));
-                }
-                else if (dirPattern.equals("/") || dirPattern.equals(WILD_ANY))
-                {
-                    return name.matches(filePattern);
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }))
-        {
-            if (path.isDirectory())
-            {
-                int inc = path.getName().matches(dirPattern) ? 1 : 0;
-                findFiles(path, level + inc, patterns, list);
-            }
-            else
-            {
-                list.add(path);
-            }
-        }
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/IBldResolver.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/IBldResolver.java
deleted file mode 100644
index f39693d..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/IBldResolver.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-
-public interface IBldResolver
-{
-    IResolution resolveOrFail(IModelElement element, boolean transitive)
-        throws ResolutionException;
-
-    IResolution resolve(IModelElement element, boolean transitive);
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/Log.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/Log.java
deleted file mode 100644
index 7237ac2..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/Log.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import org.apache.ivy.util.Message;
-
-// ensure common prefix to all sigil messages
-public class Log
-{
-    public static final String PREFIX = "Sigil: ";
-
-    private static final boolean highlight = false;
-
-    public static void error(String msg)
-    {
-        if (highlight)
-            Message.deprecated(PREFIX + "[error] " + msg);
-        Message.error(PREFIX + msg);
-    }
-
-    public static void warn(String msg)
-    {
-        if (highlight)
-            Message.deprecated(PREFIX + "[warn] " + msg);
-        else
-            Message.warn(PREFIX + msg);
-    }
-
-    public static void info(String msg)
-    {
-        if (highlight)
-            Message.deprecated(PREFIX + "[info] " + msg);
-        else
-            Message.info(PREFIX + msg);
-    }
-
-    public static void verbose(String msg)
-    {
-        Message.verbose(PREFIX + "[verbose] " + msg);
-    }
-
-    public static void debug(String msg)
-    {
-        if (highlight)
-            Message.deprecated(PREFIX + "[debug] " + msg);
-        else
-            Message.debug(PREFIX + msg);
-    }
-
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepository.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepository.java
deleted file mode 100644
index 75a21fa..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepository.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.config.IBldProject.IBldBundle;
-import org.apache.felix.sigil.common.core.licence.ILicensePolicy;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageExport;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.osgi.VersionTable;
-import org.apache.felix.sigil.common.repository.AbstractBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryVisitor;
-import org.apache.ivy.core.module.descriptor.Artifact;
-import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
-
-import org.osgi.framework.Version;
-
-public class ProjectRepository extends AbstractBundleRepository
-{
-    private ArrayList<ISigilBundle> bundles;
-    private ArrayList<ISigilBundle> wildBundles;
-    private String projectFilePattern;
-
-    /* package */ProjectRepository(String id, String projectFilePattern)
-    {
-        super(id);
-        this.projectFilePattern = projectFilePattern.replaceAll("\\[sigilproject\\]",
-            IBldProject.PROJECT_FILE);
-    }
-
-    @Override
-    public void accept(IRepositoryVisitor visitor, int options)
-    {
-        for (ISigilBundle b : getBundles())
-        {
-            if (!visitor.visit(b))
-            {
-                break;
-            }
-        }
-    }
-
-    // override to provide fuzzy matching for wild-card exports.
-    @Override
-    public Collection<ISigilBundle> findAllProviders(final IPackageImport pi, int options)
-    {
-        return findProviders(pi, options, false);
-    }
-
-    @Override
-    public ISigilBundle findProvider(IPackageImport pi, int options)
-    {
-        Collection<ISigilBundle> found = findProviders(pi, options, true);
-        return found.isEmpty() ? null : found.iterator().next();
-    }
-
-    private Collection<ISigilBundle> findProviders(final IPackageImport pi, int options,
-        boolean findFirst)
-    {
-        ArrayList<ISigilBundle> found = new ArrayList<ISigilBundle>();
-        ILicensePolicy policy = findPolicy(pi);
-        String name = pi.getPackageName();
-        VersionRange versions = pi.getVersions();
-
-        // find exact match(es)
-        for (ISigilBundle bundle : getBundles())
-        {
-            if (policy.accept(bundle))
-            {
-                for (IPackageExport exp : bundle.getBundleInfo().getExports())
-                {
-                    if (name.equals(exp.getPackageName())
-                        && versions.contains(exp.getVersion()))
-                    {
-                        found.add(bundle);
-                        if (findFirst)
-                            return found;
-                    }
-                }
-            }
-        }
-
-        if (!found.isEmpty())
-            return found;
-
-        // find best fuzzy match
-        ISigilBundle fuzzyMatch = null;
-        int fuzzyLen = 0;
-
-        for (ISigilBundle bundle : getWildBundles())
-        {
-            if (policy.accept(bundle))
-            {
-                for (IPackageExport exp : bundle.getBundleInfo().getExports())
-                {
-                    String export = exp.getPackageName();
-                    if (export.endsWith("*"))
-                    {
-                        String export1 = export.substring(0, export.length() - 1);
-                        if ((name.startsWith(export1) || export1.equals(name + "."))
-                            && versions.contains(exp.getVersion()))
-                        {
-                            if (export1.length() > fuzzyLen)
-                            {
-                                fuzzyLen = export1.length();
-                                fuzzyMatch = bundle;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (fuzzyMatch != null)
-            found.add(fuzzyMatch);
-
-        return found;
-    }
-
-    private synchronized void init()
-    {
-        System.out.println("Sigil: loading Project Repository: " + projectFilePattern);
-
-        ArrayList<File> projects = new ArrayList<File>();
-
-        for (String pattern : projectFilePattern.split("\\s+"))
-        {
-            try
-            {
-                Collection<File> files = FindUtil.findFiles(new File(""), pattern);
-                if (files.isEmpty())
-                {
-                    Log.warn("ProjectRepository: no projects match: " + pattern);
-                }
-                else
-                {
-                    projects.addAll(files);
-                }
-            }
-            catch (IOException e)
-            {
-                // pattern root dir does not exist
-                Log.error("ProjectRepository: " + pattern + ": " + e.getMessage());
-            }
-        }
-
-        if (projects.isEmpty())
-        {
-            throw new IllegalArgumentException(
-                "ProjectRepository: no projects found using pattern: "
-                    + projectFilePattern + " pwd=" + new File("").getAbsolutePath());
-        }
-
-        bundles = new ArrayList<ISigilBundle>();
-
-        for (File proj : projects)
-        {
-            try
-            {
-                addBundles(proj, bundles);
-            }
-            catch (IOException e)
-            {
-                Log.warn("Skipping project: " + proj + ": " + e.getMessage());
-            }
-            catch (ParseException e)
-            {
-                Log.warn("Skipping project: " + proj + ": " + e.getMessage());
-            }
-        }
-    }
-
-    private List<ISigilBundle> getBundles()
-    {
-        if (bundles == null)
-        {
-            init();
-        }
-        return bundles;
-    }
-
-    private List<ISigilBundle> getWildBundles()
-    {
-        if (wildBundles == null)
-        {
-            wildBundles = new ArrayList<ISigilBundle>();
-            for (ISigilBundle bundle : getBundles())
-            {
-                for (IPackageExport exp : bundle.getBundleInfo().getExports())
-                {
-                    String export = exp.getPackageName();
-                    if (export.endsWith("*"))
-                    {
-                        wildBundles.add(bundle);
-                        break;
-                    }
-                }
-            }
-        }
-        return wildBundles;
-    }
-
-    public void refresh()
-    {
-        bundles = null;
-        wildBundles = null;
-        notifyChange();
-    }
-
-    private void addBundles(File file, List<ISigilBundle> list) throws IOException,
-        ParseException
-    {
-        URI uri = file.getCanonicalFile().toURI();
-        IBldProject project = BldFactory.getProject(uri);
-
-        for (IBldBundle bb : project.getBundles())
-        {
-            IBundleModelElement info = ModelElementFactory.getInstance().newModelElement(
-                IBundleModelElement.class);
-
-            for (IPackageExport pexport : bb.getExports())
-            {
-                info.addExport(pexport);
-            }
-
-            for (IPackageImport import1 : bb.getImports())
-            {
-                IPackageImport clone = (IPackageImport) import1.clone();
-                clone.setParent(null);
-                info.addImport(clone);
-            }
-
-            for (IRequiredBundle require : bb.getRequires())
-            {
-                IRequiredBundle clone = (IRequiredBundle) require.clone();
-                clone.setParent(null);
-                info.addRequiredBundle(clone);
-            }
-
-            info.setSymbolicName(bb.getSymbolicName());
-
-            Version version = VersionTable.getVersion(bb.getVersion());
-            info.setVersion(version);
-
-            ISigilBundle pb = ModelElementFactory.getInstance().newModelElement(
-                ISigilBundle.class);
-            pb.setBundleInfo(info);
-
-            Map<Object, Object> meta = new HashMap<Object, Object>();
-            ModuleDescriptor md = SigilParser.instance().parseDescriptor(uri.toURL());
-            if (!bb.getId().equals(md.getModuleRevisionId().getName()))
-            { // non-default artifact
-                for (Artifact a : md.getAllArtifacts())
-                {
-                    if (a.getName().equals(bb.getId()))
-                    {
-                        meta.put(Artifact.class, a);
-                        break;
-                    }
-                }
-            }
-
-            meta.put(ModuleDescriptor.class, md);
-            pb.setMeta(meta);
-
-            list.add(pb);
-            Log.debug("ProjectRepository: added " + pb);
-            Log.debug("ProjectRepository: exports " + bb.getExports());
-        }
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepositoryProvider.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepositoryProvider.java
deleted file mode 100644
index 026d981..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepositoryProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.util.HashMap;
-import java.util.Properties;
-
-import org.apache.felix.sigil.common.repository.IBundleRepository;
-import org.apache.felix.sigil.common.repository.IRepositoryProvider;
-import org.apache.felix.sigil.common.repository.RepositoryException;
-
-public class ProjectRepositoryProvider implements IRepositoryProvider
-{
-    private static HashMap<String, ProjectRepository> cache = new HashMap<String, ProjectRepository>();
-
-    public IBundleRepository createRepository(String id, Properties properties)
-        throws RepositoryException
-    {
-        ProjectRepository repository = cache.get(id);
-
-        if (repository == null)
-        {
-            String pattern = properties.getProperty("pattern");
-            if (pattern == null)
-            {
-                throw new RepositoryException("property 'pattern' not specified.");
-            }
-            repository = new ProjectRepository(id, pattern);
-            cache.put(id, repository);
-        }
-
-        return repository;
-    }
-}
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilParser.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilParser.java
deleted file mode 100644
index faf7b23..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilParser.java
+++ /dev/null
@@ -1,711 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.text.ParseException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IBldProject;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IPackageImport;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.ivy.Ivy;
-import org.apache.ivy.core.IvyContext;
-import org.apache.ivy.core.module.descriptor.Artifact;
-import org.apache.ivy.core.module.descriptor.Configuration;
-import org.apache.ivy.core.module.descriptor.DefaultDependencyArtifactDescriptor;
-import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
-import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor;
-import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
-import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
-import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.core.settings.IvySettings;
-import org.apache.ivy.plugins.parser.ModuleDescriptorParser;
-import org.apache.ivy.plugins.parser.ModuleDescriptorParserRegistry;
-import org.apache.ivy.plugins.parser.ParserSettings;
-import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser;
-import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
-import org.apache.ivy.plugins.repository.Resource;
-import org.apache.ivy.plugins.repository.file.FileResource;
-import org.apache.ivy.plugins.repository.url.URLResource;
-import org.apache.ivy.plugins.resolver.DependencyResolver;
-
-public class SigilParser implements ModuleDescriptorParser
-{
-
-    private static DelegateParser instance;
-
-    // used by ProjectRepository
-    static synchronized DelegateParser instance()
-    {
-        if (instance == null)
-            throw new IllegalStateException("SigilParser is not instantiated.");
-
-        return instance;
-    }
-
-    public SigilParser()
-    {
-        synchronized (SigilParser.class)
-        {
-            if (instance == null)
-            {
-                instance = new DelegateParser();
-            }
-        }
-    }
-
-    /**
-     * In IvyDE, IvyContext is not available, so we can't find the SigilResolver.
-     * This allows us to construct one.
-     * @deprecated temporary to support IvyDE
-     */
-    public void setConfig(String config)
-    {
-        instance.config = config;
-    }
-
-    /**
-     * sets delegate parser.
-     * If not set, we delegate to the default Ivy parser.
-     * @param type name returned by desired parser's getType() method.
-     */
-    public void setDelegateType(String type)
-    {
-        for (ModuleDescriptorParser parser : ModuleDescriptorParserRegistry.getInstance().getParsers())
-        {
-            if (parser.getType().equals(type))
-            {
-                instance.delegate = parser;
-                break;
-            }
-        }
-
-        if (instance.delegate == null)
-        {
-            throw new IllegalArgumentException("Can't find parser delegateType=" + type);
-        }
-    }
-
-    /**
-     * sets default file name the delegate parser accepts.
-     * If not set, defaults to "ivy.xml".
-     * @param name
-     */
-    public void setDelegateFile(String name)
-    {
-        instance.ivyFile = name;
-    }
-
-    /**
-     * sets the dependencies to keep from the delegate parser.
-     * If not set, all existing dependencies are dropped.
-     * @param regex pattern matching dependency names to keep.
-     */
-    public void setKeepDependencies(String regex)
-    {
-        instance.keepDependencyPattern = Pattern.compile(regex);
-    }
-
-    /**
-     * reduce level of info logging.
-     * @param quiet
-     */
-    public void setQuiet(String quiet)
-    {
-        instance.quiet = Boolean.parseBoolean(quiet);
-    }
-
-    /**
-     * sets the SigilResolver we use.
-     * If not set, we use the first SigilResolver we find.
-     * @param name
-     */
-    public void setResolver(String name)
-    {
-        instance.resolverName = name;
-    }
-
-    /**
-     * adds override element: <override name="X" pattern="Y" replace="Z"/>. Overrides
-     * Ivy variables using a pattern substitution on the resource directory path.
-     * 
-     * @deprecated
-     * This is only needed when a delegate parser expects Ant variables to be set
-     * during the ivy:buildlist task (or the ProjectRepository initialisation),
-     * which they are not. The delegate parser should really be fixed, as otherwise
-     * the ivy:buildlist task won't work without this workaround.
-     */
-    // e.g. <override name="ant.project.name" pattern=".*/([^/]+)/([^/]+)$" replace="$1-$2"/>
-    public void addConfiguredOverride(Map<String, String> var)
-    {
-        final String name = var.get("name");
-        final String regex = var.get("pattern");
-        final String replace = var.get("replace");
-
-        if (name == null || regex == null || replace == null)
-            throw new IllegalArgumentException(
-                "override must contain name, pattern and replace attributes.");
-
-        instance.varRegex.put(name, Pattern.compile(regex));
-        instance.varReplace.put(name, replace);
-    }
-
-    // implement ModuleDescriptorParser interface by delegation to singleton instance.
-
-    public boolean accept(Resource res)
-    {
-        return instance.accept(res);
-    }
-
-    public Artifact getMetadataArtifact(ModuleRevisionId mrid, Resource res)
-    {
-        return instance.getMetadataArtifact(mrid, res);
-    }
-
-    public String getType()
-    {
-        return instance.getType();
-    }
-
-    public ModuleDescriptor parseDescriptor(ParserSettings settings, URL xmlURL,
-        boolean validate) throws ParseException, IOException
-    {
-        return instance.parseDescriptor(settings, xmlURL, validate);
-    }
-
-    public ModuleDescriptor parseDescriptor(ParserSettings settings, URL xmlURL,
-        Resource res, boolean validate) throws ParseException, IOException
-    {
-        return instance.parseDescriptor(settings, xmlURL, res, validate);
-    }
-
-    public void toIvyFile(InputStream source, Resource res, File destFile,
-        ModuleDescriptor md) throws ParseException, IOException
-    {
-        instance.toIvyFile(source, res, destFile, md);
-    }
-
-    /**
-     * delegating parser.
-     * (optionally) removes original dependencies and augments with sigil-determined dependencies.
-     */
-    static class DelegateParser extends XmlModuleDescriptorParser
-    {
-
-        private static final String SIGIL_BUILDLIST = IBldProject.PROJECT_FILE;
-        private static final String KEEP_ALL = ".*";
-
-        private IBldResolver resolver;
-        private ParserSettings defaultSettings;
-        private Map<String, DefaultModuleDescriptor> rawCache = new HashMap<String, DefaultModuleDescriptor>();
-        private Map<String, DefaultModuleDescriptor> augmentedCache = new HashMap<String, DefaultModuleDescriptor>();
-
-        private HashMap<String, String> varReplace = new HashMap<String, String>();
-        private HashMap<String, Pattern> varRegex = new HashMap<String, Pattern>();
-
-        private ModuleDescriptorParser delegate;
-        private String ivyFile = "ivy.xml";
-        private String resolverName;
-        private Pattern keepDependencyPattern;
-        private boolean quiet;
-        private String config;
-
-        @Override
-        public boolean accept(Resource res)
-        {
-            boolean accept = (res instanceof SigilResolver.SigilIvy)
-                || res.getName().endsWith("/" + SIGIL_BUILDLIST)
-                || ((instance.getSigilURI(res) != null) && ((instance.delegate != null ? instance.delegate.accept(res)
-                    : false) || super.accept(res)));
-            if (accept)
-                Log.verbose("accepted: " + res);
-            return accept;
-        }
-
-        @Override
-        public void toIvyFile(InputStream source, Resource res, File destFile,
-            ModuleDescriptor md) throws ParseException, IOException
-        {
-            Log.verbose("writing resource: " + res + " toIvyFile: " + destFile);
-            // source allows us to keep layout and comments,
-            // but this doesn't work if source is not ivy.xml.
-            // So just write file directly from descriptor.
-            try
-            {
-                XmlModuleDescriptorWriter.write(md, destFile);
-            }
-            finally
-            {
-                if (source != null)
-                    source.close();
-            }
-        }
-
-        @Override
-        public ModuleDescriptor parseDescriptor(ParserSettings settings, URL xmlURL,
-            boolean validate) throws ParseException, IOException
-        {
-            return parseDescriptor(settings, xmlURL, new URLResource(xmlURL), validate);
-        }
-
-        @Override
-        public ModuleDescriptor parseDescriptor(ParserSettings settings, URL xmlURL,
-            Resource res, boolean validate) throws ParseException, IOException
-        {
-            String cacheKey = xmlURL.toString() + settings.hashCode();
-            DefaultModuleDescriptor dmd = augmentedCache.get(cacheKey);
-
-            if (dmd == null)
-            {
-                dmd = rawCache.get(cacheKey);
-                if (dmd == null)
-                {
-                    dmd = delegateParse(settings, xmlURL, res, validate);
-                }
-
-                if (!quiet)
-                    Log.info("augmenting module=" + dmd.getModuleRevisionId().getName()
-                        + " ant.project.name="
-                        + settings.substitute("${ant.project.name}"));
-
-                addDependenciesToDescriptor(res, dmd);
-                augmentedCache.put(cacheKey, dmd);
-
-                Log.verbose("augmented dependencies: "
-                    + Arrays.asList(dmd.getDependencies()));
-            }
-
-            return dmd;
-        }
-
-        // used by ProjectRepository
-        ModuleDescriptor parseDescriptor(URL projectURL) throws ParseException,
-            IOException
-        {
-            if (defaultSettings == null)
-            {
-                Ivy ivy = IvyContext.getContext().peekIvy();
-                if (ivy == null)
-                    throw new IllegalStateException(
-                        "can't get default settings - no ivy context.");
-                defaultSettings = ivy.getSettings();
-            }
-
-            URL ivyURL = new URL(projectURL, ivyFile);
-            String cacheKey = ivyURL.toString() + defaultSettings.hashCode();
-            DefaultModuleDescriptor dmd = rawCache.get(cacheKey);
-
-            if (dmd == null)
-            {
-                URLResource res = new URLResource(ivyURL);
-                // Note: this doesn't contain the augmented dependencies, which is OK,
-                // since the ProjectRepository only needs the id and status.
-                dmd = delegateParse(defaultSettings, ivyURL, res, false);
-                rawCache.put(cacheKey, dmd);
-            }
-
-            return dmd;
-        }
-
-        private DefaultModuleDescriptor delegateParse(ParserSettings settings,
-            URL xmlURL, Resource res, boolean validate) throws ParseException,
-            IOException
-        {
-            String resName = res.getName();
-
-            if (resName.endsWith("/" + SIGIL_BUILDLIST))
-            {
-                String name = resName.substring(0, resName.length()
-                    - SIGIL_BUILDLIST.length());
-                res = res.clone(name + ivyFile);
-                xmlURL = new URL(xmlURL, ivyFile);
-            }
-
-            if (settings instanceof IvySettings)
-            {
-                IvySettings ivySettings = (IvySettings) settings;
-                String dir = new File(res.getName()).getParent();
-
-                for (String name : varRegex.keySet())
-                {
-                    Pattern regex = varRegex.get(name);
-                    String replace = varReplace.get(name);
-
-                    String value = regex.matcher(dir).replaceAll(replace);
-
-                    Log.debug("overriding variable " + name + "=" + value);
-                    ivySettings.setVariable(name, value);
-                }
-            }
-
-            ModuleDescriptor md = null;
-            if (delegate == null || !delegate.accept(res))
-            {
-                md = super.parseDescriptor(settings, xmlURL, res, validate);
-            }
-            else
-            {
-                md = delegate.parseDescriptor(settings, xmlURL, res, validate);
-            }
-
-            return mungeDescriptor(md, res);
-        }
-
-        /**
-         * clones descriptor and removes dependencies, as descriptor MUST have
-         * 'this' as the parser given to its constructor.
-         * Only dependency names matched by keepDependencyPattern are kept,
-         * as we're going to add our own dependencies later.
-         */
-        private DefaultModuleDescriptor mungeDescriptor(ModuleDescriptor md, Resource res)
-        {
-
-            if ((md instanceof DefaultModuleDescriptor) && (md.getParser() == this)
-                && (KEEP_ALL.equals(keepDependencyPattern)))
-            {
-                return (DefaultModuleDescriptor) md;
-            }
-
-            DefaultModuleDescriptor dmd = new DefaultModuleDescriptor(this, res);
-
-            dmd.setModuleRevisionId(md.getModuleRevisionId());
-            dmd.setPublicationDate(md.getPublicationDate());
-
-            for (Configuration c : md.getConfigurations())
-            {
-                String conf = c.getName();
-
-                dmd.addConfiguration(c);
-
-                for (Artifact a : md.getArtifacts(conf))
-                {
-                    dmd.addArtifact(conf, a);
-                }
-            }
-
-            if (keepDependencyPattern != null)
-            {
-                for (DependencyDescriptor dependency : md.getDependencies())
-                {
-                    String name = dependency.getDependencyId().getName();
-                    if (keepDependencyPattern.matcher(name).matches())
-                    {
-                        dmd.addDependency(dependency);
-                    }
-                }
-            }
-
-            return dmd;
-        }
-
-        /*
-         * find URI to Sigil project file. This assumes that it is in the same
-         * directory as the ivy file.
-         */
-        private URI getSigilURI(Resource res)
-        {
-            URI uri = null;
-
-            if (res instanceof URLResource)
-            {
-                URL url = ((URLResource) res).getURL();
-                uri = URI.create(url.toString()).resolve(IBldProject.PROJECT_FILE);
-                try
-                {
-                    InputStream stream = uri.toURL().openStream(); // check file
-                    // exists
-                    stream.close();
-                }
-                catch (IOException e)
-                {
-                    uri = null;
-                }
-            }
-            else if (res instanceof FileResource)
-            {
-                uri = ((FileResource) res).getFile().toURI().resolve(
-                    IBldProject.PROJECT_FILE);
-                if (!(new File(uri).exists()))
-                    uri = null;
-            }
-
-            return uri;
-        }
-
-        /*
-         * add sigil dependencies to ModuleDescriptor.
-         */
-        private void addDependenciesToDescriptor(Resource res, DefaultModuleDescriptor md)
-            throws IOException
-        {
-            // FIXME: transitive should be configurable
-            final boolean transitive = true; // ivy default is true
-            final boolean changing = false;
-            final boolean force = false;
-
-            URI uri = getSigilURI(res);
-            if (uri == null)
-                return;
-
-            IBldProject project;
-
-            project = BldFactory.getProject(uri);
-
-            IBundleModelElement requirements = project.getDependencies();
-            Log.verbose("requirements: " + Arrays.asList(requirements.children()));
-
-            // preserve version range for Require-Bundle
-            // XXX: synthesise bundle version range corresponding to package version ranges?
-            HashMap<String, VersionRange> versions = new HashMap<String, VersionRange>();
-            for (IModelElement child : requirements.children())
-            {
-                if (child instanceof IRequiredBundle)
-                {
-                    IRequiredBundle bundle = (IRequiredBundle) child;
-                    versions.put(bundle.getSymbolicName(), bundle.getVersions());
-                }
-            }
-
-            IBldResolver resolver = findResolver();
-            if (resolver == null)
-            {
-                // this can happen in IvyDE, but it retries and is OK next time.
-                Log.warn("failed to find resolver - IvyContext not yet available.");
-                return;
-            }
-
-            IResolution resolution = resolver.resolve(requirements, false);
-            Log.verbose("resolution: " + resolution.getBundles());
-
-            ModuleRevisionId masterMrid = md.getModuleRevisionId();
-            DefaultDependencyDescriptor dd;
-            ModuleRevisionId mrid;
-
-            for (ISigilBundle bundle : resolution.getBundles())
-            {
-                IBundleModelElement info = bundle.getBundleInfo();
-                String name = info.getSymbolicName();
-
-                if ("system bundle".equals(name))
-                {
-                    // e.g. SystemProvider with framework=null
-                    Log.verbose("Discarding system bundle");
-                    continue;
-                }
-
-                ModuleDescriptor bmd = (ModuleDescriptor) bundle.getMeta().get(
-                    ModuleDescriptor.class);
-                if (bmd != null)
-                {
-                    ModuleRevisionId bmrid = bmd.getModuleRevisionId();
-                    String org = bmrid.getOrganisation();
-                    if (org == null)
-                        org = masterMrid.getOrganisation();
-                    String module = bmrid.getName();
-                    String rev = "latest." + bmd.getStatus();
-
-                    mrid = ModuleRevisionId.newInstance(org, module, rev);
-
-                    dd = new SigilDependencyDescriptor(md, mrid, force, changing,
-                        transitive);
-
-                    Artifact artifact = (Artifact) bundle.getMeta().get(Artifact.class);
-                    if (artifact != null)
-                    {
-                        dd.addDependencyArtifact(mrid.getName(),
-                            new DefaultDependencyArtifactDescriptor(dd,
-                                artifact.getName(), "jar", "jar", null, null));
-                    }
-                }
-                else
-                {
-                    // XXX see FELIX-1395 
-                    // The following code has been commented out as it causes
-                    // problems with require bundle dependencies
-                    // VersionRange version = versions.get( name );
-                    // String rev = version != null ? version.toString() : info.getVersion().toString();
-                    String rev = info.getVersion().toString();
-                    mrid = ModuleRevisionId.newInstance(SigilResolver.ORG_SIGIL, name,
-                        rev);
-                    dd = new SigilDependencyDescriptor(md, mrid, force, changing,
-                        transitive);
-                }
-
-                int nDeps = 0;
-                boolean foundDefault = false;
-
-                // TODO: make dependency configurations configurable SIGIL-176
-                for (String conf : md.getConfigurationsNames())
-                {
-                    if (conf.equals("default"))
-                    {
-                        foundDefault = true;
-                    }
-                    else if (md.getArtifacts(conf).length == 0)
-                    {
-                        dd.addDependencyConfiguration(conf, conf + "(default)");
-                        nDeps++;
-                    }
-                }
-
-                if (nDeps > 0)
-                {
-                    if (foundDefault)
-                        dd.addDependencyConfiguration("default", "default");
-                }
-                else
-                {
-                    dd.addDependencyConfiguration("*", "*"); // all configurations
-                }
-
-                md.addDependency(dd);
-            }
-
-            boolean resolved = true;
-            for (IModelElement child : requirements.children())
-            {
-                ISigilBundle provider = resolution.getProvider(child);
-                if (provider == null)
-                {
-                    resolved = false;
-                    // this is parse phase, so only log verbose message.
-                    // error is produced during resolution phase.
-                    Log.verbose("WARN: can't resolve: " + child);
-
-                    String name;
-                    String version;
-                    if (child instanceof IRequiredBundle)
-                    {
-                        IRequiredBundle rb = (IRequiredBundle) child;
-                        name = rb.getSymbolicName();
-                        version = rb.getVersions().toString();
-                    }
-                    else
-                    {
-                        IPackageImport pi = (IPackageImport) child;
-                        name = "import!" + pi.getPackageName();
-                        version = pi.getVersions().toString();
-                    }
-
-                    mrid = ModuleRevisionId.newInstance("!" + SigilResolver.ORG_SIGIL,
-                        name, version);
-                    dd = new SigilDependencyDescriptor(md, mrid, force, changing,
-                        transitive);
-                    dd.addDependencyConfiguration("*", "*"); // all
-                    // configurations
-                    md.addDependency(dd);
-                }
-            }
-
-            if (!resolved)
-            {
-                // Ivy does not show warnings or errors logged from parse phase, until after resolution.
-                // but <buildlist> ant task doesn't do resolution, so errors would be silently ignored.
-                // Hence, we must use Message.info to ensure this failure is seen.
-                if (!quiet)
-                    Log.info("WARN: resolution failed in: " + masterMrid.getName()
-                        + ". Use -v for details.");
-            }
-        }
-
-        /*
-         * find named resolver, or first resolver that implements IBldResolver.
-         */
-        private IBldResolver findResolver()
-        {
-            if (resolver == null)
-            {
-                Ivy ivy = IvyContext.getContext().peekIvy();
-                if (ivy != null)
-                {
-                    if (resolverName != null)
-                    {
-                        DependencyResolver r = ivy.getSettings().getResolver(resolverName);
-                        if (r == null)
-                        {
-                            throw new Error("SigilParser: resolver \"" + resolverName
-                                + "\" not defined.");
-                        }
-                        else if (r instanceof IBldResolver)
-                        {
-                            resolver = (IBldResolver) r;
-                        }
-                        else
-                        {
-                            throw new Error("SigilParser: resolver \"" + resolverName
-                                + "\" is not a SigilResolver.");
-                        }
-                    }
-                    else
-                    {
-                        for (Object r : ivy.getSettings().getResolvers())
-                        {
-                            if (r instanceof IBldResolver)
-                            {
-                                resolver = (IBldResolver) r;
-                                break;
-                            }
-                        }
-                    }
-
-                    if (resolver == null)
-                    {
-                        throw new Error(
-                            "SigilParser: can't find SigilResolver. Check ivysettings.xml.");
-                    }
-                }
-                else if (config != null)
-                {
-                    Log.warn("creating duplicate resolver to support IvyDE.");
-                    resolver = new SigilResolver();
-                    ((SigilResolver) resolver).setConfig(config);
-                }
-            }
-            return resolver;
-        }
-    }
-
-}
-
-/*
- * this is only needed so that we can distinguish sigil-added dependencies from
- * existing ones.
- */
-class SigilDependencyDescriptor extends DefaultDependencyDescriptor
-{
-    public SigilDependencyDescriptor(DefaultModuleDescriptor md, ModuleRevisionId mrid, boolean force, boolean changing, boolean transitive)
-    {
-        super(md, mrid, force, changing, transitive);
-    }
-}
\ No newline at end of file
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilResolver.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilResolver.java
deleted file mode 100644
index a4b4c57..0000000
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilResolver.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.sigil.ivy;
-
-import static java.lang.String.format;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.jar.Manifest;
-
-import org.apache.felix.sigil.common.config.BldFactory;
-import org.apache.felix.sigil.common.config.IRepositoryConfig;
-import org.apache.felix.sigil.common.model.IModelElement;
-import org.apache.felix.sigil.common.model.ModelElementFactory;
-import org.apache.felix.sigil.common.model.eclipse.ISigilBundle;
-import org.apache.felix.sigil.common.model.osgi.IBundleModelElement;
-import org.apache.felix.sigil.common.model.osgi.IRequiredBundle;
-import org.apache.felix.sigil.common.osgi.VersionRange;
-import org.apache.felix.sigil.common.repository.IResolution;
-import org.apache.felix.sigil.common.repository.ResolutionException;
-import org.apache.ivy.core.module.descriptor.Artifact;
-import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
-import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.core.resolve.ResolveData;
-import org.apache.ivy.plugins.repository.Resource;
-import org.apache.ivy.plugins.repository.url.URLResource;
-import org.apache.ivy.plugins.resolver.BasicResolver;
-import org.apache.ivy.plugins.resolver.util.ResolvedResource;
-import org.apache.ivy.util.FileUtil;
-
-/**
- * This resolver is able to work with Sigil repositories.
- * It does not allow publishing.
- */
-public class SigilResolver extends BasicResolver implements IBldResolver
-{
-    /** the sigil-injected dependency organisation name */
-    static final String ORG_SIGIL = "sigil";
-
-    private IBldResolver resolver;
-    private String config;
-    private boolean extractBCP = false;
-    private Map<String, Resource> resourcesCache = new HashMap<String, Resource>();
-
-    /**
-     * no-args constructor required by Ivy.
-     * 
-     * XXX: It doesn't currently seem to matter that Ivy instantiates this many times,
-     * since SigilParser caches it, and the ProjectRepositoryProvider static cache
-     * prevents it being re-loaded unnecessarily.
-     * 
-     * If this should become a problem, then we will need to delegate to a singleton instance,
-     * as we have done in SigilParser.
-     */
-    public SigilResolver()
-    {
-    }
-
-    public void setConfig(String config)
-    {
-        this.config = config;
-    }
-
-    /**
-     * if true, resolver extracts any jars embedded in Bundle-ClassPath.
-     */
-    public void setExtractBCP(String extract)
-    {
-        this.extractBCP = Boolean.parseBoolean(extract);
-    }
-
-    private IBldResolver getResolver()
-    {
-        if (resolver == null)
-        {
-            if (config == null)
-            {
-                throw new Error(
-                    "SigilResolver: not configured. Specify config=\"PATH\" in ivysettings.xml.");
-            }
-            try
-            {
-                URI uri;
-                File file = new File(config);
-
-                if (file.isAbsolute())
-                {
-                    uri = file.toURI();
-                }
-                else
-                {
-                    URI cwd = new File(".").toURI();
-                    uri = cwd.resolve(config);
-                }
-
-                IRepositoryConfig project = BldFactory.getConfig(uri);
-                resolver = new BldResolver(project);
-            }
-            catch (IOException e)
-            {
-                throw new Error("SigilResolver: failed to configure: " + e);
-            }
-        }
-        return resolver;
-    }
-
-    public IResolution resolveOrFail(IModelElement element, boolean transitive)
-        throws ResolutionException
-    {
-        return getResolver().resolveOrFail(element, transitive);
-    }
-
-    public IResolution resolve(IModelElement element, boolean transitive)
-    {
-        return getResolver().resolve(element, transitive);
-    }
-
-    public String getTypeName()
-    {
-        return "sigil";
-    }
-
-    /*
-     * synthesize an ivy descriptor for a Sigil dependency. called after Sigil
-     * resolution, so descriptor already contains resolved version.
-     */
-    public ResolvedResource findIvyFileRef(DependencyDescriptor dd, ResolveData data)
-    {
-        ResolvedResource ref = null;
-
-        ModuleRevisionId id = dd.getDependencyRevisionId();
-
-        if (!id.getOrganisation().equals(ORG_SIGIL))
-        {
-            return null;
-        }
-
-        ISigilBundle bundle = resolve(id);
-        if (bundle == null)
-        {
-            Log.error("Failed to find bundle for module " + id);
-            return null;
-        }
-
-        String symbolicName = id.getName();
-        String version = bundle.getVersion().toString();
-
-        Resource res = new SigilIvy(extractBCP ? bundle : null, symbolicName, version);
-        ref = new ResolvedResource(res, version);
-
-        Log.debug(format("findIvyFileRef: dd=%s => ref=%s", dd, ref));
-        return ref;
-    }
-
-    @Override
-    protected ResolvedResource findArtifactRef(Artifact artifact, Date date)
-    {
-        String name = artifact.getName();
-        ModuleRevisionId id = artifact.getModuleRevisionId();
-
-        if (!id.getOrganisation().equals(ORG_SIGIL))
-        {
-            return null;
-        }
-
-        ISigilBundle bundle = resolve(id);
-        if (bundle == null)
-        {
-            return null;
-        }
-
-        IBundleModelElement info = bundle.getBundleInfo();
-        URI uri = info.getUpdateLocation();
-        Resource res = null;
-
-        try
-        {
-            URL url = (uri != null) ? uri.toURL() : bundle.getLocation().toURI().toURL();
-            if (name.contains("!"))
-            {
-                String[] split = name.split("!");
-                url = new URL("jar:" + url + "!/" + split[1] + "." + artifact.getExt());
-            }
-            res = new URLResource(url);
-        }
-        catch (MalformedURLException e)
-        {
-            System.out.println("Oops! " + e);
-        }
-
-        String version = bundle.getVersion().toString();
-        ResolvedResource ref = new ResolvedResource(res, version);
-
-        Log.debug(format("findArtifactRef: artifact=%s, date=%s => ref=%s", artifact,
-            date, ref));
-        return ref;
-    }
-
-    private ISigilBundle resolve(ModuleRevisionId id)
-    {
-        String revision = id.getRevision();
-        String range = revision;
-
-        if (revision.indexOf(',') < 0)
-        {
-            // SigilParser has already resolved the revision from the import
-            // version range.
-            // We now need to locate the same bundle to get its download URL.
-            // We must use an OSGi version range to specify the exact version,
-            // otherwise it will resolve to "specified version or above".
-            range = "[" + revision + "," + revision + "]";
-        }
-
-        IRequiredBundle bundle = ModelElementFactory.getInstance().newModelElement(
-            IRequiredBundle.class);
-        bundle.setSymbolicName(id.getName());
-        bundle.setVersions(VersionRange.parseVersionRange(range));
-
-        Log.verbose("searching for " + bundle);
-
-        try
-        {
-            IResolution resolution = resolveOrFail(bundle, false);
-            ISigilBundle[] bundles = resolution.getBundles().toArray(new ISigilBundle[0]);
-            if (bundles.length == 1)
-            {
-                return bundles[0];
-            }
-        }
-        catch (ResolutionException e)
-        {
-            Log.warn(e.getMessage());
-            return null;
-        }
-        return null;
-    }
-
-    /*
-     * Implement BasicResolver abstract methods
-     */
-
-    @Override
-    protected long get(Resource res, File dest) throws IOException
-    {
-        FileUtil.copy(res.openStream(), dest, null);
-        long len = res.getContentLength();
-        Log.debug(format("get(%s, %s) = %d", res, dest, len));
-        return len;
-    }
-
-    @Override
-    public Resource getResource(String source) throws IOException
-    {
-        source = encode(source);
-        Resource res = resourcesCache.get(source);
-        if (res == null)
-        {
-            res = new URLResource(new URL(source));
-            resourcesCache.put(source, res);
-        }
-        Log.debug(format("SIGIL: getResource(%s) = %d", source, res));
-        return res;
-    }
-
-    private static String encode(String source)
-    {
-        return source.trim().replaceAll(" ", "%20");
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected Collection findNames(Map tokenValues, String token)
-    {
-        throw new Error("SigilResolver: findNames not supported.");
-    }
-
-    public void publish(Artifact artifact, File src, boolean overwrite)
-        throws IOException
-    {
-        throw new Error("SigilResolver: publish not supported.");
-    }
-
-    public void beginPublishTransaction(ModuleRevisionId module, boolean overwrite)
-        throws IOException
-    {
-        // stop publish attempts being silently ignored.
-        throw new Error("SigilResolver: publish not supported.");
-    }
-
-    /*
-     * Synthesize a virtual ivy file for a Sigil dependency.
-     */
-    static class SigilIvy implements Resource
-    {
-        private StringBuilder content = new StringBuilder();
-        private String name;
-        private boolean exists = true;
-
-        private SigilIvy()
-        {
-        }
-
-        public SigilIvy(ISigilBundle bundle, String module, String rev)
-        {
-            this.name = "sigil!" + module + "#" + rev;
-
-            String org = ORG_SIGIL;
-            // FIXME: make status and pub configurable
-            String status = "release";
-            String pub = "20080912162859";
-
-            content.append("<ivy-module version=\"1.0\">\n");
-
-            content.append(format(
-                "<info organisation=\"%s\" module=\"%s\" revision=\"%s\" status=\"%s\" publication=\"%s\"/>\n",
-                org, module, rev, status, pub));
-
-            String bcp = readBundleClassPath(bundle);
-            if (bcp != null)
-            {
-                content.append("<publications>\n");
-                for (String j : bcp.split(",\\s*"))
-                {
-                    if (j.equals("."))
-                    {
-                        content.append("<artifact/>\n");
-                    }
-                    else if (j.endsWith(".jar") && bundleContains(bundle, j))
-                    {
-                        j = j.substring(0, j.length() - 4);
-                        content.append(format("<artifact name=\"%s!%s\"/>\n", module, j));
-                    }
-                }
-                content.append("</publications>\n");
-            }
-
-            // TODO: add dependencies?
-            // <dependencies>
-            // <dependency org="org.apache" name="log4j" rev="1.2.12"
-            // revConstraint="[1.2,1.3)"/>
-            // </dependencies>
-
-            content.append("</ivy-module>\n");
-        }
-
-        private boolean bundleContains(ISigilBundle bundle, String j)
-        {
-            InputStream is = null;
-            try
-            {
-                URL url = getURL(bundle);
-                is = url.openStream();
-                JarInputStream js = new JarInputStream(is, false);
-                JarEntry entry;
-                while ((entry = js.getNextJarEntry()) != null)
-                {
-                    if (j.equals(entry.getName()))
-                    {
-                        return true;
-                    }
-                }
-            }
-            catch (IOException e)
-            {
-            }
-            finally
-            {
-                if (is != null)
-                {
-                    try
-                    {
-                        is.close();
-                    }
-                    catch (IOException e2)
-                    {
-                    }
-                }
-            }
-            return false;
-        }
-
-        private String readBundleClassPath(ISigilBundle bundle)
-        {
-            if (bundle == null)
-                return null;
-
-            InputStream is = null;
-            try
-            {
-                URL url = getURL(bundle);
-                is = url.openStream();
-                JarInputStream js = new JarInputStream(is, false);
-                Manifest m = js.getManifest();
-                if (m != null)
-                    return (String) m.getMainAttributes().getValue("Bundle-ClassPath");
-            }
-            catch (IOException e)
-            {
-            }
-            finally
-            {
-                if (is != null)
-                {
-                    try
-                    {
-                        is.close();
-                    }
-                    catch (IOException e2)
-                    {
-                    }
-                }
-            }
-
-            return null;
-        }
-
-        private URL getURL(ISigilBundle bundle) throws MalformedURLException
-        {
-            URI uri = bundle.getBundleInfo().getUpdateLocation();
-            if (uri != null)
-            {
-                return uri.toURL();
-            }
-            else
-            {
-                File path = bundle.getLocation();
-                if (path == null)
-                {
-                    throw new NullPointerException("Missing location for "
-                        + bundle.getSymbolicName());
-                }
-                return path.toURI().toURL();
-            }
-        }
-
-        public String toString()
-        {
-            return "SigilIvy[" + name + "]";
-        }
-
-        // clone is used to read checksum files
-        // so clone(getName() + ".sha1").exists() should be false
-        public Resource clone(String cloneName)
-        {
-            Log.debug("SigilIvy: clone: " + cloneName);
-            SigilIvy clone = new SigilIvy();
-            clone.name = cloneName;
-            clone.exists = false;
-            return clone;
-        }
-
-        public boolean exists()
-        {
-            return exists;
-        }
-
-        public long getContentLength()
-        {
-            return content.length();
-        }
-
-        public long getLastModified()
-        {
-            // TODO Auto-generated method stub
-            Log.debug("NOT IMPLEMENTED: getLastModified");
-            return 0;
-        }
-
-        public String getName()
-        {
-            return name;
-        }
-
-        public boolean isLocal()
-        {
-            return false;
-        }
-
-        @SuppressWarnings("deprecation")
-        public InputStream openStream() throws IOException
-        {
-            return new java.io.StringBufferInputStream(content.toString());
-        }
-    }
-}
diff --git a/sigil/ivy/resolver/test/config/proj1/sigil.properties b/sigil/ivy/resolver/test/config/proj1/sigil.properties
deleted file mode 100644
index 424cd8d..0000000
--- a/sigil/ivy/resolver/test/config/proj1/sigil.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-# proj1 sigil.properties
-
-version: 1.2.3.beta1
-
--bundles: main
-
--exports: standalone
-
--imports: \
-  javax.swing, \
-  javax.servlet, \
-  org.apache.commons.logging, \
-  org.apache.commons.lang, \
-  org.apache.log4j, \
-
-ximports: \
-  !org.cauldron.newton.framework, \
-  !org.osgi.*, \
-  org.apache.log4j;version="1.2.3", \
-
--fragment: \
-  com.springsource.org.apache.commons.lang;version="[2.0.0,2.4.0)"
-
--composites: \
-  ivy.xml
-
--resources: \
-  version.properties
-
-header;Bundle-Vendor: Paremus Limited
-header;Random-Heading: this header is a bit like random
-
-# end
diff --git a/sigil/ivy/resolver/test/config/sigil-defaults.properties b/sigil/ivy/resolver/test/config/sigil-defaults.properties
deleted file mode 100644
index 784ef8e..0000000
--- a/sigil/ivy/resolver/test/config/sigil-defaults.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-# sigil defaults
-
-package;javax.servlet:			(2.4,3.0]
-package;org.apache.log4j:		[1.2.14,1.3)
-package;org.apache.commons.lang:	[2.0.0,2.4.0)
-
diff --git a/sigil/ivy/resolver/test/dependence/build.xml b/sigil/ivy/resolver/test/dependence/build.xml
deleted file mode 100644
index acb37e9..0000000
--- a/sigil/ivy/resolver/test/dependence/build.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="dependence" default="clean">
-    
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean directories">
-        <delete includeemptydirs="true"> 
-            <fileset dir="settings" excludes="ivysettings.*, sigil*.properties" />
-		</delete>
-        <ant dir="dependee" antfile="build.xml" target="clean" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" target="clean" inheritall="false" inheritrefs="false" />
-    </target>
-
-    <!-- ================================= 
-          target: all              
-         ================================= -->
-    <target name="all" depends="clean" description="--> make the whole example of dependency">
-        <ant dir="dependee" antfile="build.xml" target="publish" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" inheritall="false" inheritrefs="false" />
-        <ant dir="dependee" antfile="build.xml" target="publish" inheritall="false" inheritrefs="false" />
-        <ant dir="depender" antfile="build.xml" inheritall="false" inheritrefs="false" />
-    </target>
-    
-</project>
diff --git a/sigil/ivy/resolver/test/dependence/dependee/build.xml b/sigil/ivy/resolver/test/dependence/dependee/build.xml
deleted file mode 100644
index f35c2f9..0000000
--- a/sigil/ivy/resolver/test/dependence/dependee/build.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="dependee" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">
-    <!-- some variables used -->
-    <property name="lib.dir" value="${basedir}/lib" />
-    <property name="build.dir" value="${basedir}/build" />
-    <property name="classes.dir" value="${build.dir}/classes" />
-    <property name="src.dir" value="${basedir}/src" />
-
-    <!-- ivy properties used -->
-    <property name="ivy.settings.dir" value="../settings" />
-    <property file="${ivy.settings.dir}/ivysettings.properties" />
-
-    <!-- paths used for compilation and run -->
-    <path id="lib.path.id">
-	<fileset dir="${lib.dir}" />
-    </path>
-    <path id="run.path.id">
-	<path refid="lib.path.id" />
-	<path location="${classes.dir}" />
-    </path>
-    
-    <property name="ivy.jar.file"
-	     value="/opt/apache-ivy-2.0.0/ivy-2.0.0.jar"/>
-
-    <!-- ================================= 
-          target: init
-         ================================= -->
-    <target name="init">
-      <taskdef resource="org/apache/ivy/ant/antlib.xml"
-		    uri="antlib:org.apache.ivy.ant"
-		    classpath="${ivy.jar.file}"/>
-      <ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />
-
-	<taskdef name="sigil.bundle"
-	  classname="org.apache.felix.sigil.ant.BundleTask"
-	  classpath="${basedir}/../../../target/sigil-ivy-plugin.jar"/>
-    </target>
-
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="init"
-    	description="--> resolve and retrieve dependencies with ivy">
-        <ivy:retrieve />
-    </target>
-
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-	
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> description">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="standalone.Main"/>
-    </target>
-    
-    <!-- ================================= 
-          target: jar              
-         ================================= -->
-    <target name="jar" depends="compile" description="--> make a jar file for this project">
-        <propertyfile file="${classes.dir}/version.properties">
-	        <entry  key="version" type="int" operation="+" default="0" />
-		</propertyfile>
-        <property file="${classes.dir}/version.properties" />
-
-	<!--
-        <jar destfile="${build.dir}/${ant.project.name}.jar">
-            <fileset dir="${classes.dir}" />
-        </jar>
-	-->
-
-        <sigil.bundle destpattern="${build.dir}/[id].[ext]"
-		classpathref="run.path.id" />
-
-    </target>
-
-    <!-- ================================= 
-          target: publish              
-         ================================= -->
-    <target name="publish" depends="jar" description="--> publish this project in the ivy repository">
-        <property name="revision" value="${version}"/>
-        <delete file="${build.dir}/ivy.xml"/>
-		<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-			resolver="projects"
-			pubrevision="${revision}" 
-			status="release"
-		/>
-        <echo message="project ${ant.project.name} released with version ${revision}" />
-    </target>
-
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean the project">
-        <delete includeemptydirs="true">
-            <fileset dir="${basedir}">
-            	<exclude name="src/**" />
-            	<exclude name="build.xml" />
-		    	<exclude name="ivy.xml" />
-		    	<exclude name="sigil.properties" />
-        	</fileset>
-    	</delete>
-    </target>
-</project>
diff --git a/sigil/ivy/resolver/test/dependence/dependee/ivy.xml b/sigil/ivy/resolver/test/dependence/dependee/ivy.xml
deleted file mode 100644
index b250663..0000000
--- a/sigil/ivy/resolver/test/dependence/dependee/ivy.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info organisation="org.apache" module="dependee"/>
-    <dependencies>
-	<!--
-        <dependency org="sigil" name="com.springsource.org.apache.log4j" rev="[1.2,1.3)"/>
-	-->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/dependence/dependee/sigil.properties b/sigil/ivy/resolver/test/dependence/dependee/sigil.properties
deleted file mode 100644
index 9dd7d8a..0000000
--- a/sigil/ivy/resolver/test/dependence/dependee/sigil.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-# dependee sigil.properties
-# all initial comments are retained.
-
-version: 1.2.3.beta1
-
--bundles: dependee
-
--exports: standalone
-
--imports: \
-  org.apache.commons.lang;version="[2.0.0,2.4.0)";resolve=compile;resolution=optional, \
-  org.apache.commons.logging, \
-  javax.servlet;version="(2.4,3.0]", \
-  org.apache.log4j;version="[1.2.14,1.3)", \
-  javax.swing, \
-
--resources: \
-  version.properties
-
-header;Hello: World
-
-X-requires: \
-  com.springsource.org.apache.commons.lang;version="[2.0.0,2.4.0)", \
-
-# end
diff --git a/sigil/ivy/resolver/test/dependence/dependee/src/standalone/Main.java b/sigil/ivy/resolver/test/dependence/dependee/src/standalone/Main.java
deleted file mode 100644
index 12ffa27..0000000
--- a/sigil/ivy/resolver/test/dependence/dependee/src/standalone/Main.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package standalone;
-
-import java.util.Properties;
-
-import org.apache.commons.lang.WordUtils;
-
-/**
- * TODO write javadoc
- */
-public class Main {
-    /**
-     * Returns the version of the project
-     * @return a string representation of the version, null if the version could not be retreived
-     */
-    public static String getVersion() {
-        Properties p = new Properties();
-        try {
-            p.load(Main.class.getResourceAsStream("/version.properties"));
-            String version = p.getProperty("version");
-            if (version != null) {
-                return String.valueOf(Integer.parseInt(version));
-            } 
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-    
-    /**
-     * Return the same string with all words capitalized.
-     * @param str the string conatining the words to capitalize
-     * @return null if the string was null, the string with all words capitalized otherwise
-     */
-    public static String capitalizeWords(String str) {
-        System.out.println("    [" + Main.class.getName() + "] capitalizing string \"" + str + "\" using " + WordUtils.class.getName());
-        return WordUtils.capitalizeFully(str);
-    }
-    public static void main(String[] args) {
-        String message="sentence to capitalize";
-        System.out.println("standard message : " + message);
-        System.out.println("capitalized message : " + capitalizeWords(message));
-    }
-}
diff --git a/sigil/ivy/resolver/test/dependence/depender/build.xml b/sigil/ivy/resolver/test/dependence/depender/build.xml
deleted file mode 100644
index 01216b7..0000000
--- a/sigil/ivy/resolver/test/dependence/depender/build.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="depender" default="run" xmlns:ivy="antlib:org.apache.ivy.ant">
-    <!-- some variables used -->
-    <property name="lib.dir" value="${basedir}/lib" />
-    <property name="build.dir" value="${basedir}/build" />
-    <property name="classes.dir" value="${build.dir}/classes" />
-    <property name="src.dir" value="${basedir}/src" />
-
-    <!-- ivy properties used -->
-    <property name="ivy.settings.dir" value="../settings" />
-    <property file="${ivy.settings.dir}/ivysettings.properties" />
-    
-    <!-- paths used for compilation and run  -->
-    <path id="lib.path.id">
-        <fileset dir="${lib.dir}" />
-	</path>
-    <path id="run.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-
-    <property name="ivy.jar.file"
-	     value="/opt/apache-ivy-2.0.0/ivy-2.0.0.jar"/>
-
-    <!-- ================================= 
-          target: init
-         ================================= -->
-    <target name="init">
-      <taskdef resource="org/apache/ivy/ant/antlib.xml"
-		    uri="antlib:org.apache.ivy.ant"
-		    classpath="${ivy.jar.file}"/>
-      <ivy:settings file="${ivy.settings.dir}/ivysettings.xml" />
-    </target>
-
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="init"
-    	description="--> resolve and retrieve dependencies with ivy">
-        <ivy:retrieve />
-    </target>
-    
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}" dot="true"/>
-    </target>
-    
-    <!-- ================================= 
-          target: gen-graph
-         ================================= -->
-    <target name="gen-graph" depends="report" description="--> generates a graph of dependencies (requires dot in your path - see http://www.graphviz.org/)">
-    	<property name="dot.file" value="${build.dir}/apache-depending-default.dot" />
-    	<property name="ivygraph.output.file" value="${build.dir}/graph.png" />
-    	<exec executable="dot">
-    	    <arg line="-T png -o ${ivygraph.output.file} ${dot.file}" />
-    	</exec>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> description">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="clean, compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="depending.Main"/>
-    </target>
-    
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" description="--> clean the project">
-        <delete includeemptydirs="true">
-            <fileset dir="${basedir}">
-            	<exclude name="src/**" />
-            	<exclude name="build.xml" />
-		    	<exclude name="ivy.xml" />
-		    	<exclude name="sigil.properties" />
-        	</fileset>
-    	</delete>
-    </target>
-</project>
diff --git a/sigil/ivy/resolver/test/dependence/depender/ivy.xml b/sigil/ivy/resolver/test/dependence/depender/ivy.xml
deleted file mode 100644
index f825b21..0000000
--- a/sigil/ivy/resolver/test/dependence/depender/ivy.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info organisation="org.apache" module="depender"/>
-    <dependencies>
-	<!--
-        <dependency name="dependee" rev="latest.integration" />
-	-->
-    </dependencies>
-    <conflicts>
-        <manager name="latest-compatible"/>
-    </conflicts>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/dependence/depender/sigil.properties b/sigil/ivy/resolver/test/dependence/depender/sigil.properties
deleted file mode 100644
index e76ec83..0000000
--- a/sigil/ivy/resolver/test/dependence/depender/sigil.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# depender sigil.properties
-
--bundles: depender
-
--imports: standalone
-
-# end
diff --git a/sigil/ivy/resolver/test/dependence/depender/src/depending/Main.java b/sigil/ivy/resolver/test/dependence/depender/src/depending/Main.java
deleted file mode 100644
index db1b208..0000000
--- a/sigil/ivy/resolver/test/dependence/depender/src/depending/Main.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package depending;
-
-/**
- * TODO write javadoc
- */
-public class Main {
-    public static void main(String[] args) {
-        String standaloneVersion = standalone.Main.getVersion();
-        if (standaloneVersion!=null) {
-            System.out.println("you are using version " + standaloneVersion + " of class " + standalone.Main.class.getName());
-        } else {
-            System.err.println("failed to get version of " + standalone.Main.class.getName());
-        }
-        String message = "i am " + Main.class.getName() + " and " + standalone.Main.class.getName() + " will do the job for me";
-        System.out.println("standard message : " + message);
-        System.out.println("capitalized message : " + standalone.Main.capitalizeWords(message));
-    }
-}
diff --git a/sigil/ivy/resolver/test/dependence/settings/ivysettings.properties b/sigil/ivy/resolver/test/dependence/settings/ivysettings.properties
deleted file mode 100644
index f68f415..0000000
--- a/sigil/ivy/resolver/test/dependence/settings/ivysettings.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-repository.dir=${ivy.settings.dir}/repository
diff --git a/sigil/ivy/resolver/test/dependence/settings/ivysettings.xml b/sigil/ivy/resolver/test/dependence/settings/ivysettings.xml
deleted file mode 100644
index 2127496..0000000
--- a/sigil/ivy/resolver/test/dependence/settings/ivysettings.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-  <properties file="${ivy.settings.dir}/ivysettings.properties"/>
-  <settings defaultResolver="sigil-libs"/>
-
-  <!--<caches defaultCacheDir="${ivy.settings.dir}/ivy-cache" />
-  -->
-  <caches default="mycache" checkUpToDate="false">
-    <cache name="mycache" basedir="${ivy.settings.dir}/ivy-cache" useOrigin="true"/>
-  </caches>
-
-  <classpath file="${ivy.settings.dir}/../../../target/sigil-ivy-plugin.jar" />
-  <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-  <typedef name="sigil" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-  <parsers>
-    <sigil-parser/>
-  </parsers>
-
-  <resolvers>
-    <sigil name="sigil-libs" config="${ivy.settings.dir}/sigil-repos.properties" />
-    <filesystem name="projects">
-      <ivy pattern="${repository.dir}/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/[artifact]-[revision].[ext]" />
-    </filesystem>
-</resolvers>
-<modules>
-  <module organisation="org.apache" name="dependee" resolver="projects"/>
-</modules>
-</ivysettings>
diff --git a/sigil/ivy/resolver/test/dependence/settings/sigil-repos.properties b/sigil/ivy/resolver/test/dependence/settings/sigil-repos.properties
deleted file mode 100644
index f00cfaf..0000000
--- a/sigil/ivy/resolver/test/dependence/settings/sigil-repos.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# repository config
-
--repositories:	system, project, spring
-
-system;provider:	system
-system;level:		-1
-
-project;provider:	project
-project;level:		0
-project;pattern:	${..}/*/[sigilproject]
-
-spring;provider:	obr
-spring;level:		2
-spring;url:		http://sigil.codecauldron.org/spring-external.obr
-spring;index:		${..}/settings/spring-external.obr
-
-# end
diff --git a/sigil/ivy/resolver/test/dependence/sigil-defaults.properties b/sigil/ivy/resolver/test/dependence/sigil-defaults.properties
deleted file mode 100644
index 2bc4bc9..0000000
--- a/sigil/ivy/resolver/test/dependence/sigil-defaults.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-header;Bundle-Vendor: Paremus Limited
-version: 1.2.3.parent
diff --git a/sigil/ivy/resolver/test/multi-project/build.xml b/sigil/ivy/resolver/test/multi-project/build.xml
deleted file mode 100644
index fd2d774..0000000
--- a/sigil/ivy/resolver/test/multi-project/build.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="all" default="order" xmlns:ivy="antlib:org.apache.ivy.ant">
-  <property name="common.dir" value="${basedir}/common" />
-  <import file="${common.dir}/common.xml"/>
-
-  <fileset id="projects" dir="projects" includes="**/build.xml"/>
-
-  <path id="unordered-list">
-    <fileset refid="projects"/>
-  </path>
-
-  <target name="buildlist" depends="load-ivy"> 
-    <ivy:buildlist reference="ordered-list">
-      <fileset refid="projects"/>
-    </ivy:buildlist>
-  </target>
-  
-  <target name="publish" depends="buildlist" 
-	description="compile, jar and publish all projects in the right order">
-    <subant target="publish" buildpathref="ordered-list">
-      <propertyset>
-	<propertyref name="ivy.loaded" />
-      </propertyset>
-    </subant>
-  </target>
-
-  <target name="clean" description="clean all projects">
-    <subant target="clean" buildpathref="unordered-list" />
-  </target>
-  
-  <target name="fullclean" depends="clean, load-ivy" 
-  description="clean tutorial: delete repository, ivy cache, and all projects">
-    <delete dir="repository"/>
-  	<ivy:cleancache />
-  </target>
-
-  <target name="order" depends="buildlist">
-    <subant target="hello" buildpathref="ordered-list" />
-  </target>
-
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/common/build.properties b/sigil/ivy/resolver/test/multi-project/common/build.properties
deleted file mode 100644
index 9552b4a..0000000
--- a/sigil/ivy/resolver/test/multi-project/common/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-lib.dir = ${basedir}/lib
-build.dir = ${basedir}/build
-classes.dir = ${build.dir}/classes
-src.dir = ${basedir}/src
-repository.dir=${common.dir}/../repository
-
-ivy.file = ${basedir}/ivy.xml
-
-jar.file = ${build.dir}/${ant.project.name}.jar
-main.class.name = ${ant.project.name}.Main
-
-module.version.target = 1.0
diff --git a/sigil/ivy/resolver/test/multi-project/common/common.xml b/sigil/ivy/resolver/test/multi-project/common/common.xml
deleted file mode 100644
index 07883a2..0000000
--- a/sigil/ivy/resolver/test/multi-project/common/common.xml
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="common" 
-         xmlns:ivy="antlib:org.apache.ivy.ant">
-	<!-- a sample common ant build file, used for ivy multi-project tutorial
-	     feel free to copy and adapt it to your own needs
-	     Note that the only targets specific to ivy are:
-	        load-ivy
-	     	resolve
-	     	report
-	     	ivy-new-version
-	     	publish
-	     	publish-local
-	     	
-	     All other targets are usual ant based targets, which could have been written
-	     in a build not depending at all on ivy: 
-	     resolve constructs a lib directory based upon ivy dependencies, and then the lib dir 
-	     is used as in any classical ant build
-	     -->
-	
-	<property file="${common.dir}/build.properties"/>
-	
-	<property name="ivy.jar.dir" value="/opt/apache-ivy-2.0.0-rc2" />
-	<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy-2.0.0-rc2.jar" />
-        <property name="sigil-ivy-plugin.jar" value="${common.dir}/../../../target/sigil-ivy-plugin.jar"/>
-
-	<target name="hello">
-	    <echo message="${ant.project.name}"/>
-	</target>
-
-	<!-- ================================= 
-          target: load-ivy         
-            this target is not necessary if you put ivy.jar in your ant lib directory
-            if you already have ivy 2.0 in your ant lib, you can simply remove this
-            target
-         ================================= -->
-    <path id="ivy.lib.path">
-	<path location="${ivy.jar.file}"/>
-	<path location="${sigil-ivy-plugin.jar}"/>
-	<!--
-	<path location="${user.home}/src/tmp/ivy/build/ivy.jar"/>
-	-->
-    </path>
-
-    <target name="load-ivy" depends="ivy-taskdefs">
-	<ivy:settings file="${common.dir}/ivysettings.xml" />
-    </target>
-
-    <target name="ivy-taskdefs" unless="ivy.loaded">
-    	<property name="ivy.loaded" value="true"/>
-	<echo message="Loading Ivy ..."/>
-	<!--
-    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-    	         uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}"/>
-	-->
-    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
-    	         uri="antlib:org.apache.ivy.ant"
-		 loaderRef="ivyLoader"
-		 classpath="${ivy.jar.file}"/>
-
-	<taskdef name="sigil.bundle"
-		 classname="org.apache.felix.sigil.ant.BundleTask"
-		 classpath="${sigil-ivy-plugin.jar}:${bndlib.jar}"/>
-    </target>    
-
-    <path id="lib.path.id">
-        <fileset dir="${lib.dir}" />
-    </path>
-
-    <path id="run.path.id">
-        <path refid="lib.path.id" />
-        <path location="${classes.dir}" />
-    </path>
-
-    
-	<!-- setup ivy default configuration with some custom info -->
-	<property name="ivy.local.default.root" value="${repository.dir}/local"/>
-	<property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
-
-   	<!-- here is how we would have configured ivy if we had our own ivysettings file
-    <ivy:settings file="${common.dir}/ivysettings.xml" />
-    -->
-
-	
-    <!-- ================================= 
-          target: resolve              
-         ================================= -->
-    <target name="resolve" depends="clean-lib, load-ivy" description="--> resolve and retrieve dependencies with ivy">
-        <mkdir dir="${lib.dir}"/> <!-- not usually necessary, ivy creates the directory IF there are dependencies -->
-    	
-    	<!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't -->
-    	<ivy:resolve file="${ivy.file}"/>
-    	<ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" />
-    </target>
-    
-    <!-- ================================= 
-          target: report              
-         ================================= -->
-    <target name="report" depends="resolve" description="--> generates a report of dependencies">
-        <ivy:report todir="${build.dir}"/>
-    </target>
-    
-    <!-- ================================= 
-          target: compile              
-         ================================= -->
-    <target name="compile" depends="resolve" description="--> compile the project">
-        <mkdir dir="${classes.dir}" />
-        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id" debug="true" />
-    </target>
-    
-    <!-- ================================= 
-          target: run
-         ================================= -->
-    <target name="run" depends="version, compile" description="--> compile and run the project">
-        <java classpathref="run.path.id" classname="${main.class.name}"/>
-    </target>
-
-	<target name="ivy-new-version" depends="load-ivy" unless="ivy.new.revision">
-    	<!-- default module version prefix value -->
-		<property name="module.version.prefix" value="${module.version.target}-dev-b" />
-		
-    	<!-- asks to ivy an available version number -->
-		<ivy:info file="${ivy.file}" />
-    	<ivy:buildnumber 
-    		organisation="${ivy.organisation}" module="${ivy.module}" 
-    		revision="${module.version.prefix}" defaultBuildNumber="1" revSep=""/>
-	</target>
-
-    <target name="local-version">
-		<tstamp>
-			<format property="now" pattern="yyyyMMddHHmmss"/>
-		</tstamp>
-        <property name="ivy.new.revision" value="${module.version.target}-local-${now}"/>
-    </target>
-	
-	<target name="version" depends="ivy-new-version">
-    	<!-- create version file in classpath for later inclusion in jar -->
-        <mkdir dir="${classes.dir}"/>
-		<echo message="version=${ivy.new.revision}" file="${classes.dir}/${ant.project.name}.properties" append="false" />
-
-		<!-- load generated version properties file -->
-        <property file="${classes.dir}/${ant.project.name}.properties" />
-    </target>
-
-    <!-- ================================= 
-          target: jar              
-         ================================= -->
-    <target name="jar" depends="version, compile" description="--> make a jar file for this project">
-
-	<!--
-        <jar destfile="${jar.file}">
-            <fileset dir="${classes.dir}" />
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="Build-Version" value="${version}" />
-            </manifest>
-        </jar>
-	-->
-
-        <sigil.bundle destpattern="${build.dir}/[id].[ext]"
-                classpathref="run.path.id"/>
-    </target>
-
-    <!-- ================================= 
-          target: publish              
-         ================================= -->
-    <target name="publish" depends="clean-build, jar" description="--> publish this project in the ivy repository">
-    	<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-    			           resolver="shared"
-    			           pubrevision="${version}" 
-    			           status="release"
-    	/>
-        <echo message="project ${ant.project.name} released with version ${version}" />
-    </target>
-
-    <!-- ================================= 
-          target: publish-local              
-         ================================= -->
-    <target name="publish-local" depends="local-version, jar" description="--> publish this project in the local ivy repository">
-    	<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-    			        resolver="local"
-    			        pubrevision="${version}"
-				        pubdate="${now}"
-    			        status="integration"
-    					forcedeliver="true"
-    	/>
-        <echo message="project ${ant.project.name} published locally with version ${version}" />
-    </target>
-
-	<!-- ================================= 
-          target: clean-local              
-         ================================= -->
-	<target name="clean-local" description="--> cleans the local repository for the current module">
-	   <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
-	</target>
-
-	<!-- ================================= 
-          target: clean-lib              
-         ================================= -->
-    <target name="clean-lib" description="--> clean the project libraries directory (dependencies)">
-        <delete includeemptydirs="true" dir="${lib.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean-build              
-         ================================= -->
-    <target name="clean-build" description="--> clean the project built files">
-        <delete includeemptydirs="true" dir="${build.dir}"/>
-    </target>
-
-    <!-- ================================= 
-          target: clean              
-         ================================= -->
-    <target name="clean" depends="clean-build, clean-lib" description="--> clean the project" />
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/common/ivysettings.xml b/sigil/ivy/resolver/test/multi-project/common/ivysettings.xml
deleted file mode 100644
index 217bab5..0000000
--- a/sigil/ivy/resolver/test/multi-project/common/ivysettings.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivysettings>
-  <properties file="${ivy.settings.dir}/build.properties"/>
-  <caches defaultCacheDir="${ivy.settings.dir}/../ivy-cache" />
-
-  <settings defaultResolver="shared"
-     circularDependencyStrategy="error" />
-
-  <classpath file="${ivy.settings.dir}/../../../target/sigil-ivy-plugin.jar" />
-  <!--
-  Ant tasks "subant" and "ant" cause IvySettings to be re-loaded, 
-  which then re-loads SigilParser in a new URLClassLoader,
-  which causes ProjectRepository to be re-initialised. Outch!
-
-  Better if Ivy classpath cached its classloader, or provided a
-  loaderRef attribute, like ant does.
-
-  Loading sigil-ivy-plugin.jar in ivy-taskdefs, uses the same ClassLoader
-  to load sigil-ivy-plugin, and thus avoids re-initialising ProjectRepositiory.
-  -->
-  <typedef name="sigil-parser" classname="org.apache.felix.sigil.ivy.SigilParser" />
-  <typedef name="sigil" classname="org.apache.felix.sigil.ivy.SigilResolver" />
-
-  <parsers>
-    <sigil-parser quiet="true"/>
-  </parsers>
-
-  <resolvers>
-    <sigil name="sigil" config="${ivy.settings.dir}/sigil-repos.properties" />
-    <filesystem name="local">
-      <ivy pattern="${repository.dir}/local/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/local/[artifact]-[revision].[ext]" />
-    </filesystem>
-    <filesystem name="shared">
-      <ivy pattern="${repository.dir}/shared/[module]-[revision].xml" />
-      <artifact pattern="${repository.dir}/shared/[module]/[artifact]-[revision].[ext]" />
-    </filesystem>
-  </resolvers>
-  <modules>
-    <!--<module organisation="org.apache.ivy.example" name=".*" resolver="shared"/>
-    -->
-    <module organisation="sigil" resolver="sigil"/>
-  </modules>
-</ivysettings>
diff --git a/sigil/ivy/resolver/test/multi-project/common/sigil-gen.sh b/sigil/ivy/resolver/test/multi-project/common/sigil-gen.sh
deleted file mode 100755
index 2f7e184..0000000
--- a/sigil/ivy/resolver/test/multi-project/common/sigil-gen.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/sh
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# sigilgen build.xml ..
-
-function a2s() {
-  find ${1:?} -name '*.java' -o -name '*.spring' -o -name '*.sca' |
-  perl -e '
-    use strict;
-    use FileHandle;
-
-    my %imports;
-    my %exports;
-
-    while (<>) {
-	chomp($_);
-	my $path = $_;
-	my $fh = new FileHandle($path);
-
-	my $testFile = ($path =~ m!Test[^/]+$!);
-
-	while (my $line = <$fh>) {
-	  chomp($line);
-
-	  if ($line =~ /^\s*package\s+([\w.]+)\s*;\s*$/) {
-	    my $exp = $1;
-	    if (!($testFile && ($exp !~ /^test[.]/))) {
-	      $exports{$exp} = 1;
-	    }
-	  } 
-	  elsif ($line =~ /^\s*import\s+([a-z_0-9.]+)([.][A-Z][^.]+)+;\s*$/) {
-	    my $imp = $1;
-	    $imports{$imp} = 1 unless ($imp =~ /^java[.]/);
-	  }
-	  elsif (($line !~ m!^\s*(//|\*|\@)!) &&
-		($line =~ /(\W)((([a-z0-9]{2,})[.]){3,})[A-Z]/)) {
-	    my $quot = $1;
-	    my $imp = $2;
-	    $imp =~ s/.$//;
-
-	    if (($imp !~ /^java[.]/) &&
-	    	($quot ne "\"" || ($path !~ /[.]java$/))) {
-	      $imports{$imp} = 1;
-	    }
-	  }
-	}
-	$fh->close();
-    }
-
-    if (keys(%exports) == () && keys(%imports) == ()) {
-      exit(1);
-    }
-
-    print "-exports: \\\n";
-    foreach my $key (sort keys(%exports)) {
-	print "\t$key, \\\n";
-    }
-    print "\n";
-
-    print "-imports: \\\n";
-    foreach my $key (sort keys(%imports)) {
-	print "\t$key, \\\n";
-    }
-    print "\n";
-
-    exit(0);
-  '
-  return $?
-}
-
-for file in $*; do
-  echo "converting $file"
-  name=$(perl -ne 'print $1 if (/project name="([^"]*)"/);' $file)
-  dir=$(dirname $file)
-
-  if [ -f $dir/sigil.properties ]; then
-    rm -f $dir/sigil.properties.old
-    mv $dir/sigil.properties $dir/sigil.properties.old
-  fi
-
-  (
-    echo "# generated by sigilgen on $(date)"
-    echo
-    echo "-bundles: $name"
-    echo
-    a2s $dir && mv $dir/sigil.properties-part $dir/sigil.properties
-  ) > $dir/sigil.properties-part
-
-  rm -f $dir/sigil.properties-part
-
-done
diff --git a/sigil/ivy/resolver/test/multi-project/common/sigil-repos.properties b/sigil/ivy/resolver/test/multi-project/common/sigil-repos.properties
deleted file mode 100644
index d98b618..0000000
--- a/sigil/ivy/resolver/test/multi-project/common/sigil-repos.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-
-# repository config
-
--repositories:	system, project, newton, spring
-
-system;provider:	system
-system;level:		-1
-#system;framework:	osgi.core.jar
-#system;profile:	J2SE-1.5
-
-project;provider:	project
-project;level:	0
-project;pattern:	../projects/**/[sigilproject]
-
-newton;provider:	filesystem
-newton;level:		1
-newton;recurse:		true
-#newton;dir:		/opt/newton-1.2.5/lib
-newton;dir:		/Users/derek/devl/Newton/src/target/newton-dist.dir/lib
-
-spring;provider:	obr
-spring;level:		2
-spring;url:		http://sigil.codecauldron.org/spring-external.obr
-spring;index:		../settings/spring-external.obr
-
-# end
diff --git a/sigil/ivy/resolver/test/multi-project/projects/console/build.properties b/sigil/ivy/resolver/test/multi-project/projects/console/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/console/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/console/build.xml b/sigil/ivy/resolver/test/multi-project/projects/console/build.xml
deleted file mode 100644
index 5c02cba..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/console/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="console" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/console/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/console/ivy.xml
deleted file mode 100644
index 93b5ee5..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/console/ivy.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="console"
-        status="integration"/>
-    <dependencies>
-      <!--
-      <dependency name="version" rev="latest.integration" conf="default" />
-      <dependency name="list" rev="latest.integration" conf="default->standalone" />
-      <dependency name="find" rev="latest.integration" conf="default->standalone" />
-      <dependency name="sizewhere" rev="latest.integration" conf="default->standalone" />
-      -->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/console/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/console/sigil.properties
deleted file mode 100644
index 1d4bb13..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/console/sigil.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-
--bundles: console
-
--exports: console
-
--requires: org.example.list
diff --git a/sigil/ivy/resolver/test/multi-project/projects/console/src/console/Main.java b/sigil/ivy/resolver/test/multi-project/projects/console/src/console/Main.java
deleted file mode 100644
index 678f3ca..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/console/src/console/Main.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package console;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.Collection;
-import java.util.Arrays;
-import java.lang.reflect.Method;
-
-
-public class Main {
-    private static Collection QUIT_COMMANDS = Arrays.asList(new String[] {"quit", "q", "exit"});
-    private static Collection HELP_COMMANDS = Arrays.asList(new String[] {"help", "h", "?"});
-
-    public static void main(String[] a) throws Exception {
-      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-      while (true) {
-        System.out.print("> ");
-        String command = in.readLine().trim();
-        if (QUIT_COMMANDS.contains(command)) {
-          return;
-        }
-        if (HELP_COMMANDS.contains(command)) {
-          help();
-          continue;
-        }
-        String[] split = command.split(" ");
-        if (split.length == 0) {
-          error(command);
-          continue;
-        }
-        
-        try {
-          String[] args = new String[split.length - 1];
-          System.arraycopy(split, 1, args, 0, args.length);
-          Class cl = Class.forName(split[0]+".Main");
-          Method m = cl.getMethod("main", new Class[] {String[].class});
-          m.invoke(null, new Object[] {args});
-        } catch (Exception ex) {
-          error(command);
-          continue;
-        }
-      }
-    }
-    
-    private static void help() {
-      System.out.println("available commands:");
-      System.out.println("\tquit: quit the console");
-      System.out.println("\thelp: displays this message");
-      System.out.println("\tlist -dir <dir>: list files in given directory");
-      System.out.println("\tfind -dir <dir> -name <name>: list files with given name in given dir");
-      System.out.println("\tsizewhere -dir <dir> -name <name>: compute total size of files with given name in given dir");
-      System.out.println("\thelp: displays this message");
-    }
-            
-    private static void error(String command) {
-      System.out.println("unknown command "+command);
-      System.out.println("type ? for help");
-    }
-            
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/build.properties b/sigil/ivy/resolver/test/multi-project/projects/find/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/build.xml b/sigil/ivy/resolver/test/multi-project/projects/find/build.xml
deleted file mode 100644
index 4d23bf5..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="find" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/find/ivy.xml
deleted file mode 100644
index 8026113..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/ivy.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="find"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="find" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <!--
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency name="list" rev="latest.integration" conf="core" />
-      <dependency org="commons-collections" name="commons-collections" rev="3.1" conf="core->default" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-      -->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/find/sigil.properties
deleted file mode 100644
index 30c10a7..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
--bundles: find
-
--exports: find
-
--imports:\
-  version, \
-  list, \
-  org.apache.commons.collections, \
-  org.apache.commons.cli
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/src/find/FindFile.java b/sigil/ivy/resolver/test/multi-project/projects/find/src/find/FindFile.java
deleted file mode 100644
index 25fa1af..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/src/find/FindFile.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package find;
-
-import version.Version;
-import list.ListFile;
-
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-import  org.apache.commons.collections.CollectionUtils;
-import  org.apache.commons.collections.Predicate;
-
-public class FindFile {
-  static {
-    Version.register("find");
-  }
-  
-  public static Collection find(File dir, String name) {
-    return find(ListFile.list(dir), name);
-  }
-  
-  private static Collection find(Collection files, final String name) {    
-    return CollectionUtils.select(files, new Predicate() {
-      public boolean evaluate(Object o) {
-        return ((File)o).getName().indexOf(name) != -1;
-      }
-    });
-  }
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/find/src/find/Main.java b/sigil/ivy/resolver/test/multi-project/projects/find/src/find/Main.java
deleted file mode 100644
index a41c136..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/find/src/find/Main.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package find;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName("dir")
-            .hasArg()
-            .withDescription("list files in given dir")
-            .create("dir");
-        Option name = OptionBuilder.withArgName("name")
-            .hasArg()
-            .withDescription("list files with given name")
-            .create("name");
-        Options options = new Options();
-
-        options.addOption(dir);
-        options.addOption(name);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-        Options options = getOptions();
-        try {
-        
-            CommandLineParser parser = new GnuParser();
-    
-            CommandLine line = parser.parse(options, args);
-            File dir = new File(line.getOptionValue("dir", "."));
-            String name = line.getOptionValue("name", "jar");
-            Collection files = FindFile.find(dir, name);
-            System.out.println("listing files in " + dir + " containing " + name);
-            for (Iterator it = files.iterator(); it.hasNext();) {
-                System.out.println("\t" + it.next() + "\n");
-            }
-        } catch(ParseException exp) {
-            // oops, something went wrong
-            System.err.println("Parsing failed.  Reason: " + exp.getMessage());
-              
-            HelpFormatter formatter = new HelpFormatter();
-            formatter.printHelp("find", options);
-        }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/build.properties b/sigil/ivy/resolver/test/multi-project/projects/list/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/build.xml b/sigil/ivy/resolver/test/multi-project/projects/list/build.xml
deleted file mode 100644
index 3926148..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="list" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/list/ivy.xml
deleted file mode 100644
index 7fca587..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/ivy.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="list"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="list" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <!--
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-      -->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/list/sigil.properties
deleted file mode 100644
index 302cba7..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/sigil.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# requirements
-
--imports:\
-  version, \
-  org.apache.commons.cli
-
-# exports
-
--bundles: list
-
-list;name: org.example.list
-list;-exports: list.*
-
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/src/list/ListFile.java b/sigil/ivy/resolver/test/multi-project/projects/list/src/list/ListFile.java
deleted file mode 100644
index 7467152..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/src/list/ListFile.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package list;
-
-import version.Version;
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-public class ListFile {
-  static {
-    Version.register("list");
-  }
-  
-  public static Collection list(File dir) {
-    Collection files = new ArrayList();
-    
-    return list(dir, files);
-  }
-  
-  private static Collection list(File file, Collection files) {
-    if (file.isDirectory()) {
-      File[] f = file.listFiles();
-      for (int i=0; i<f.length; i++) {
-        list(f[i], files);
-      }
-    } else {
-      files.add(file);
-    }
-    return files;
-  }
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/list/src/list/Main.java b/sigil/ivy/resolver/test/multi-project/projects/list/src/list/Main.java
deleted file mode 100644
index 0f8cb14..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/list/src/list/Main.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package list;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName( "dir" )
-            .hasArg()
-            .withDescription(  "list files in given dir" )
-            .create( "dir" );
-        Options options = new Options();
-
-        options.addOption(dir);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-      Options options = getOptions();
-      try {
-        
-        CommandLineParser parser = new GnuParser();
-
-        CommandLine line = parser.parse( options, args );
-        File dir = new File(line.getOptionValue("dir", "."));
-        Collection files = ListFile.list(dir);
-        System.out.println("listing files in "+dir);
-        for (Iterator it = files.iterator(); it.hasNext(); ) {
-          System.out.println("\t"+it.next()+"\n");
-        }
-      } catch( ParseException exp ) {
-          // oops, something went wrong
-          System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
-          
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "list", options );
-      }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sigil-defaults.properties b/sigil/ivy/resolver/test/multi-project/projects/sigil-defaults.properties
deleted file mode 100644
index 0000617..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sigil-defaults.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-
-header;Bundle-Vendor: Paremus Limited
-
-package;org.osgi.framework: 1.7.1
-
-bad-key: wibble
diff --git a/sigil/ivy/resolver/test/multi-project/projects/size/build.properties b/sigil/ivy/resolver/test/multi-project/projects/size/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/size/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/size/build.xml b/sigil/ivy/resolver/test/multi-project/projects/size/build.xml
deleted file mode 100644
index 2a75fe5..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/size/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="size" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/size/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/size/ivy.xml
deleted file mode 100644
index 33e9995..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/size/ivy.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="size"
-        status="integration"/>
-    <dependencies>
-      <!--
-      <dependency name="version" rev="latest.integration" conf="default" />
-      <dependency name="list" rev="latest.integration" conf="default->core" />
-      -->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/size/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/size/sigil.properties
deleted file mode 100644
index cf239af..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/size/sigil.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-
--bundles: size
-
--exports: size
-
--imports:\
-  list, \
-  version
diff --git a/sigil/ivy/resolver/test/multi-project/projects/size/src/size/FileSize.java b/sigil/ivy/resolver/test/multi-project/projects/size/src/size/FileSize.java
deleted file mode 100644
index dcd4a1c..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/size/src/size/FileSize.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package size;
-
-import version.Version;
-import java.util.Collection;
-import java.util.Iterator;
-import java.io.File;
-
-public class FileSize {
-  static {
-    Version.register("size");
-  }
-
-  public static long totalSize(File dir) {
-    return totalSize(list.ListFile.list(dir));
-  }
-  
-  public static long totalSize(Collection files) {
-    long total = 0;
-    for (Iterator it = files.iterator(); it.hasNext(); ) {
-      File f = (File)it.next();
-      total += f.length();
-    }
-    return total;
-  }  
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.properties b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.xml b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.xml
deleted file mode 100644
index 0b8ab4c..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="sizewhere" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/ivy.xml
deleted file mode 100644
index 6b86af0..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/ivy.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="sizewhere"
-        status="integration"/>
-    <configurations>
-      <conf name="core"/>
-      <conf name="standalone" extends="core"/>
-    </configurations>
-    <publications>
-      <artifact name="sizewhere" type="jar" conf="core" />
-    </publications>
-    <dependencies>
-      <!--
-      <dependency name="version" rev="latest.integration" conf="core->default" />
-      <dependency name="size" rev="latest.integration" conf="core->default" />
-      <dependency name="find" rev="latest.integration" conf="core" />
-      <dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone->default" />
-      -->
-    </dependencies>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/sigil.properties
deleted file mode 100644
index c272f9b..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/sigil.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
--bundles: sizewhere
-
--exports: sizewhere
-
--imports:\
-  find, \
-  size, \
-  version, \
-  org.apache.commons.cli
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/Main.java b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/Main.java
deleted file mode 100644
index 131af66..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/Main.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sizewhere;
-
-import java.io.File;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-public class Main {
-    private static Options getOptions() {
-        Option dir = OptionBuilder.withArgName( "dir" )
-            .hasArg()
-            .withDescription(  "give total size of files in given dir" )
-            .create( "dir" );
-        Option name = OptionBuilder.withArgName( "name" )
-            .hasArg()
-            .withDescription(  "give total size of files with given name" )
-            .create( "name" );
-        Options options = new Options();
-
-        options.addOption(dir);
-        options.addOption(name);
-        
-        return options;
-    }
-    
-    public static void main(String[] args) throws Exception {
-      Options options = getOptions();
-      try {
-        
-        CommandLineParser parser = new GnuParser();
-
-        CommandLine line = parser.parse( options, args );
-        File dir = new File(line.getOptionValue("dir", "."));
-        String name = line.getOptionValue("name", "jar");
-        System.out.println("total size of files in "+dir+" containing "+name+": "+SizeWhere.totalSize(dir, name));
-      } catch( ParseException exp ) {
-          // oops, something went wrong
-          System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
-          
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "sizewhere", options );
-      }        
-    }
-            
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java b/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java
deleted file mode 100644
index 3594bd9..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/sizewhere/src/sizewhere/SizeWhere.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sizewhere;
-
-import version.Version;
-import size.FileSize;
-import find.FindFile;
-
-import java.util.Collection;
-import java.util.ArrayList;
-import java.io.File;
-
-public class SizeWhere {
-  static {
-    Version.register("sizewhere");
-  }
-  
-  public static long totalSize(File dir, String name) {
-    return FileSize.totalSize(FindFile.find(dir, name));
-  }
-}
diff --git a/sigil/ivy/resolver/test/multi-project/projects/version/build.properties b/sigil/ivy/resolver/test/multi-project/projects/version/build.properties
deleted file mode 100644
index 1b54925..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/version/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#	 ***************************************************************
-#	 * Licensed to the Apache Software Foundation (ASF) under one
-#	 * or more contributor license agreements.  See the NOTICE file
-#	 * distributed with this work for additional information
-#	 * regarding copyright ownership.  The ASF licenses this file
-#	 * to you under the Apache License, Version 2.0 (the
-#	 * "License"); you may not use this file except in compliance
-#	 * with the License.  You may obtain a copy of the License at
-#	 * 
-#	 *   http://www.apache.org/licenses/LICENSE-2.0
-#	 * 
-#	 * Unless required by applicable law or agreed to in writing,
-#	 * software distributed under the License is distributed on an
-#	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#	 * KIND, either express or implied.  See the License for the
-#	 * specific language governing permissions and limitations
-#	 * under the License.
-#	 ***************************************************************
-projects.dir = ${basedir}/..
-wkspace.dir = ${projects.dir}/..
-common.dir = ${wkspace.dir}/common
diff --git a/sigil/ivy/resolver/test/multi-project/projects/version/build.xml b/sigil/ivy/resolver/test/multi-project/projects/version/build.xml
deleted file mode 100644
index 375db20..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/version/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0">
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="version" default="compile">
-	<property file="build.properties"/>
-	
-	<import file="${common.dir}/common.xml"/>
-</project>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/version/ivy.xml b/sigil/ivy/resolver/test/multi-project/projects/version/ivy.xml
deleted file mode 100644
index 16e08f3..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/version/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ivy-module version="1.0">
-    <info 
-        organisation="org.apache.ivy.example"
-        module="version"
-        status="integration"/>
-</ivy-module>
diff --git a/sigil/ivy/resolver/test/multi-project/projects/version/sigil.properties b/sigil/ivy/resolver/test/multi-project/projects/version/sigil.properties
deleted file mode 100644
index a940ffd..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/version/sigil.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-
--bundles: version
-
--exports: version
diff --git a/sigil/ivy/resolver/test/multi-project/projects/version/src/version/Version.java b/sigil/ivy/resolver/test/multi-project/projects/version/src/version/Version.java
deleted file mode 100644
index 0c69bc5..0000000
--- a/sigil/ivy/resolver/test/multi-project/projects/version/src/version/Version.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package version;
-
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.Map;
-import java.util.HashMap;
-
-public class Version {
-    static {
-        versions = new HashMap();
-        register("version");
-    }
-  
-    private static Map versions;
-  
-    public static void register(String module) {
-        try {
-            InputStream moduleVersion = Version.class.getResourceAsStream("/"+module+".properties");
-            Properties props = new Properties();
-            props.load(moduleVersion);
-            String version = (String)props.get("version");
-            versions.put(module, version);
-            System.out.println("--- using "+module+" v"+version);
-        } catch (Exception ex) {
-            System.err.println("an error occured while registering "+module+": "+ex.getMessage());
-            ex.printStackTrace();
-        }
-    }
-}
diff --git a/sigil/ivy/sigil-defaults.properties b/sigil/ivy/sigil-defaults.properties
deleted file mode 100644
index bfc9d0d..0000000
--- a/sigil/ivy/sigil-defaults.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# sigil common default properties
--defaults: ${BLDCOMMON:-../bldcommon}/sigil-defaults.properties
diff --git a/sigil/misc/do_notice b/sigil/misc/do_notice
deleted file mode 100644
index 933e145..0000000
--- a/sigil/misc/do_notice
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-here=$(dirname $0)
-
-find . \
-    ! \( -type d \( -name .svn -o -name build \) -prune \) \
-    ! -name '*.jar'  ! -name .classpath ! -name .project \
-    ! -name '*.gif'  ! -name '*.ico' ! -name '*.png' \
-    ! -name '*.config' ! -name '*.policy' \
-    ! -name '*.swp' ! -name '*.txt' ! -name '*.properties' \
-    -type f |
-xargs $here/notice.pl $*
-
diff --git a/sigil/misc/notice.pl b/sigil/misc/notice.pl
deleted file mode 100755
index 64b40e9..0000000
--- a/sigil/misc/notice.pl
+++ /dev/null
@@ -1,295 +0,0 @@
-#!/usr/bin/env perl
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-use FileHandle;
-
-my $dryrun = 0;
-my $quiet = 0;
-
-#
-# Usage: notice.pl [-n] [-q] files...
-#
-
-my $NOTICE = <<'EOT';
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-EOT
-
-# Note: source code notices must not be changed by code formatter
-
-my $NOTICE_java = $NOTICE;
-$NOTICE_java =~ s/^/ * /gm;
-$NOTICE_java = "/*\n" . $NOTICE_java . " */\n\n";
-
-my $NOTICE_xml = $NOTICE;
-$NOTICE_xml =~ s/^/  /gm;
-$NOTICE_xml = "<!--\n" . $NOTICE_xml . "-->\n";
-
-my $NOTICE_sh = $NOTICE;
-$NOTICE_sh =~ s/^/# /gm;
-
-my $NOTICE_bat = $NOTICE;
-$NOTICE_bat =~ s/^/:: /gm;
-
-sub addNotice {
-    my ($fh, $file, $notice) = @_;
-    print "$file\n";
-
-    return if ($dryrun);
-
-    my $tmp = "$file.tmp";
-    my $fh2 = new FileHandle(">$tmp");
-
-    print $fh2 $notice;
-    while (<$fh>) {
-	print $fh2 $_;
-    }
-
-    unlink($file);
-    rename($tmp, $file);
-}
-
-#
-# locate existing copyright & license
-#	starts at top of file
-#	ends at "package" statement
-#
-sub notice_java {
-    my $file = shift;
-    my $fh = new FileHandle($file);
-    my $header;
-    my $package = undef;
-
-    while (<$fh>) {
-        if (/^package\s+[\w.]+\s*;/) {
-	    $package = $_;
-	    last;
-	}
-	last if ($. > 200);
-	$header .= $_;
-    }
-
-    if (! $package) {
-        print STDERR "$file: ERROR: no package statement.\n";
-	return;
-    }
-
-    return if ($header eq $NOTICE_java);
-
-    # completely replace all before package statement
-    # so DON'T change below, without changing above
-    # to stop at end-of-first-comment.
-    $header = '';
-    #$header = '' if ($header =~ /copyright/im);
-    #$header = "\n" . $header unless ($header =~ /^\n/);
-
-    addNotice($fh, $file, $NOTICE_java . $header . $package);
-}
-
-sub notice_xml {
-    my $file = shift;
-    my $fh = new FileHandle($file);
-    my $header = undef;
-    my $decl = qq(<?xml version="1.0"?>\n);
-    my $end = 0;
-    my $start = 0;
-
-    while (<$fh>) {
-    	if ($. == 1 && /^\<\?/) {
-	    $decl = $_;
-	    next;
-	}
-
-	$header .= $_;
-
-    	if (!$start) {
-	  last unless (/^<!--/);
-	  $start = 1;
-	}
-
-        if (/-->/) {
-	    $end = 1;
-	    last;
-	}
-    }
-
-    return if ($header eq $NOTICE_xml);
-
-    $header = '' if ($header =~ /copyright/im);
-
-    if ($start && !$end) {
-        print STDERR "$file: ERROR: initial comment not terminated.\n";
-	return;
-    }
-
-    addNotice($fh, $file, $decl . $NOTICE_xml . $header);
-}
-
-sub notice_sh {
-    my $file = shift;
-    my $fh = new FileHandle($file);
-    my $header = undef;
-    my $hashbang = undef;
-    my $end = '';
-    my $start = '';
-
-    while (<$fh>) {
-    	if ($. == 1 && /^#!/) {
-	    $hashbang = $_;
-	    next;
-	}
-
-    	if (!$start) {
-	  unless (/^(#|\s*$)/) {
-	    $header = $_;
-	    last;
-	  }
-	  $start = 1;
-	  next if (/^\s*$/);
-	}
-
-        if (!/^#/) {
-	    $end = $_;
-	    last;
-	}
-
-	$header .= $_;
-    }
-
-    return if ($header eq $NOTICE_sh);
-
-    $hashbang .= "\n" if ($hashbang);
-
-    $header = '' if ($header =~ /copyright/im);
-    $header .= $end;
-    $header = "\n" . $header unless ($header =~ /^\n/);
-
-    if ($start && !$end) {
-        print STDERR "$file: ERROR: initial comment not terminated.\n";
-	return;
-    }
-
-    addNotice($fh, $file, $hashbang . $NOTICE_sh . $header);
-}
-
-sub notice_bat {
-    my $file = shift;
-    my $fh = new FileHandle($file);
-    my $header = undef;
-    my $atecho = undef;
-    my $end = '';
-    my $start = '';
-
-    while (<$fh>) {
-	s/\r\n$/\n/;
-    	if ($. == 1 && /^\@echo/) {
-	    $atecho = $_;
-	    next;
-	}
-
-    	if (!$start) {
-	  unless (/^(::|\s*$)/) {
-	    $header = $_;
-	    last;
-	  }
-	  $start = 1;
-	  next if (/^\s*$/);
-	}
-
-        if (!/^::/) {
-	    $end = $_;
-	    last;
-	}
-
-	$header .= $_;
-    }
-
-    return if ($header eq $NOTICE_bat);
-
-    $atecho .= "\n" if ($atecho);
-
-    $header = '' if ($header =~ /copyright/im);
-    $header .= $end;
-    $header = "\n" . $header unless ($header =~ /^\n/);
-
-    if ($start && !$end) {
-        print STDERR "$file: ERROR: initial comment not terminated.\n";
-	return;
-    }
-
-    $header = $atecho . $NOTICE_bat . $header;
-    $header =~ s/\n/\r\n/mg;
-    addNotice($fh, $file, $header);
-}
-
-sub notice_unknown {
-    my $file = shift;
-    my $fh = new FileHandle($file);
-
-    my $line = <$fh>;
-
-    if ($line =~ /^#!/) {
-        notice_sh($file);
-    }
-    elsif ($line =~ /^\<\?xml/) {
-        notice_xml($file);
-    }
-    elsif (! $quiet) {
-	print STDERR "$file: unknown file type.\n";
-    }
-}
-
-foreach my $f (@ARGV) {
-    if ($f eq '-n') {
-	$dryrun++;
-    }
-    elsif ($f eq '-q') {
-	$quiet++;
-    }
-    elsif ($f =~ /\.java$/) {
-	notice_java($f);
-    }
-    elsif ($f =~ /\.(xml|xsd|system|composite)$/) {
-	notice_xml($f);
-    }
-    elsif ($f =~ /\.(sh|app|ini|xargs)$/) {
-	notice_sh($f);
-    }
-    elsif ($f =~ /\.(bat)$/) {
-	notice_bat($f);
-    }
-    else {
-	notice_unknown($f);
-    }
-}
-