patch for FELIX-1583 - refactored LDAP and VersionRange classes into own bundle


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@814023 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/bldcommon/common.xml b/sigil/bldcommon/common.xml
index 915f6b4..cfe3508 100644
--- a/sigil/bldcommon/common.xml
+++ b/sigil/bldcommon/common.xml
@@ -57,7 +57,7 @@
     <!-- ================================= 
           target: build (default target)
          ================================= -->
-    <target name="build" depends="publish-local, composites" />
+    <target name="build" depends="publish-local" />
 
     <target name="ident">
       <echo message="${ant.project.name}"/>
@@ -145,36 +145,12 @@
     </target>
 
     <!-- ================================= 
-          target: composites              
-         ================================= -->
-    <available file="${composite.dir}" type="dir"
-               property="composite.dir.present"/>
-
-    <target name="composites" if="composite.dir.present"
-    	description="--> filter xml composites replacing ${VERSION} etc.">
-	<mkdir dir="${build.etc.dir}"/>
-	<copy todir="${build.etc.dir}">
-	  <fileset dir="${composite.dir}">
-	    <exclude name="*-template.composite"/>
-	    <include name="*.composite"/>
-	    <include name="*.system"/>
-	  </fileset>
-	  <filterset begintoken="@" endtoken="@">
-	    <filter token="VERSION" value="${bundle.version}"/>
-	    <filter token="COMMUNITY_VERSION" value="${community.version}"/>
-	    <filter token="JINI_VERSION" value="${jini.version}"/>
-	    <filter token="PAREMUS_VERSION" value="${paremus.version}"/>
-	  </filterset>
-	</copy>
-    </target>
-
-    <!-- ================================= 
           target: install              
 	  install-bin, install-etc deprecated in favour of single
 	  assemble/bin, assemble/etc dirs
          ================================= -->
     <target name="install"
-    	 depends="install-lib, install-composites"/>
+    	 depends="install-lib"/>
 
     <available file="bin" type="dir"
                property="bin.dir.present"/>
@@ -196,19 +172,6 @@
 	</copy>
     </target>
 
-    <target name="composites-available">
-      <available file="${build.etc.dir}" type="dir"
-               property="build.etc.dir.present"/>
-    </target>
-
-    <target name="install-composites"
-	 depends="composites, composites-available"
-	      if="build.etc.dir.present">
-	<copy todir="${install.dir}/etc">
-	  <fileset dir="${build.etc.dir}" />
-	</copy>
-    </target>
-
     <target name="libs-available">
       <available file="${build.lib.dir}" type="dir"
                property="build.lib.dir.present"/>
@@ -297,6 +260,16 @@
     </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"
diff --git a/sigil/build.xml b/sigil/build.xml
index 3ef1fd1..1eef0db 100644
--- a/sigil/build.xml
+++ b/sigil/build.xml
@@ -37,11 +37,14 @@
 
   <target name="build" depends="build-list" />
 
+  <target name="report" depends="report-list" />
+
   <target name="site" depends="common-init">
     <!-- eclipse -->
     <ivy:retrieve organisation="org.apache" module="felix.sigil.common.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
     <ivy:retrieve organisation="org.apache" module="felix.sigil.common.junit" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
     <ivy:retrieve organisation="org.apache" module="felix.sigil.common.obr" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
+    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.osgi" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
     <ivy:retrieve organisation="org.apache" module="felix.sigil.common.runtime" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
     <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
     <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.help" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact].[ext]" transitive="false"/>
diff --git a/sigil/common/core.tests/sigil.properties b/sigil/common/core.tests/sigil.properties
index c7a4504..52d143a 100644
--- a/sigil/common/core.tests/sigil.properties
+++ b/sigil/common/core.tests/sigil.properties
@@ -12,6 +12,7 @@
 
 -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/core/BundleModelElementTest.java b/sigil/common/core.tests/src/org/apache/felix/sigil/core/BundleModelElementTest.java
index 430d14e..5e9ff23 100644
--- a/sigil/common/core.tests/src/org/apache/felix/sigil/core/BundleModelElementTest.java
+++ b/sigil/common/core.tests/src/org/apache/felix/sigil/core/BundleModelElementTest.java
@@ -22,10 +22,10 @@
 
 import java.util.Arrays;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.core.internal.model.osgi.BundleModelElement;
 import org.apache.felix.sigil.core.internal.model.osgi.PackageImport;
 import org.apache.felix.sigil.core.internal.model.osgi.RequiredBundle;
-import org.apache.felix.sigil.model.common.VersionRange;
 
 import junit.framework.TestCase;
 
diff --git a/sigil/common/core.tests/src/org/apache/felix/sigil/core/ConfigTest.java b/sigil/common/core.tests/src/org/apache/felix/sigil/core/ConfigTest.java
index 9a5596a..17c9450 100644
--- a/sigil/common/core.tests/src/org/apache/felix/sigil/core/ConfigTest.java
+++ b/sigil/common/core.tests/src/org/apache/felix/sigil/core/ConfigTest.java
@@ -26,10 +26,10 @@
 
 import junit.framework.TestCase;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.BldFactory;
 import org.apache.felix.sigil.config.IBldProject;
 import org.apache.felix.sigil.core.internal.model.osgi.PackageImport;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
diff --git a/sigil/common/core/sigil.properties b/sigil/common/core/sigil.properties
index d475031..0d741b9 100644
--- a/sigil/common/core/sigil.properties
+++ b/sigil/common/core/sigil.properties
@@ -29,7 +29,6 @@
 	org.apache.felix.sigil.core.licence, \
 	org.apache.felix.sigil.core.repository, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.repository, \
@@ -37,12 +36,12 @@
 -imports: \
 	aQute.lib.osgi, \
 	org.apache.felix.sigil.bnd, \
+	org.apache.felix.sigil.common.osgi, \
 	org.apache.felix.sigil.config, \
 	org.apache.felix.sigil.core, \
 	org.apache.felix.sigil.core.licence, \
 	org.apache.felix.sigil.core.repository, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.repository, \
diff --git a/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java b/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
index 39b0137..a89c99f 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
@@ -33,11 +33,11 @@
 import java.util.Set;
 import java.util.jar.Attributes;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.BldAttr;
 import org.apache.felix.sigil.config.IBldProject;
 import org.apache.felix.sigil.config.IBldProject.IBldBundle;
 import org.apache.felix.sigil.core.repository.SystemRepositoryProvider;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 import org.apache.felix.sigil.model.osgi.IRequiredBundle;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/config/BldConverter.java b/sigil/common/core/src/org/apache/felix/sigil/config/BldConverter.java
index 7a26cb7..dcfde4b 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/config/BldConverter.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/config/BldConverter.java
@@ -31,11 +31,11 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.IBldProject.IBldBundle;
 import org.apache.felix.sigil.core.BldCore;
 import org.apache.felix.sigil.core.internal.model.eclipse.SigilBundle;
 import org.apache.felix.sigil.core.internal.model.osgi.BundleModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/config/BldProject.java b/sigil/common/core/src/org/apache/felix/sigil/config/BldProject.java
index 9b1a445..e2f3556 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/config/BldProject.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/config/BldProject.java
@@ -42,12 +42,12 @@
 import java.util.Properties;
 import java.util.TreeSet;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.core.internal.model.osgi.BundleModelElement;
 import org.apache.felix.sigil.core.internal.model.osgi.PackageExport;
 import org.apache.felix.sigil.core.internal.model.osgi.PackageImport;
 import org.apache.felix.sigil.core.internal.model.osgi.RequiredBundle;
 import org.apache.felix.sigil.model.IModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/eclipse/LibraryImport.java b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/eclipse/LibraryImport.java
index 2c48601..d8ef81d 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/eclipse/LibraryImport.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/eclipse/LibraryImport.java
@@ -20,8 +20,8 @@
 package org.apache.felix.sigil.core.internal.model.eclipse;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.AbstractModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ILibraryImport;
 
 
diff --git a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/PackageImport.java b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/PackageImport.java
index adf6314..f6cfdaf 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/PackageImport.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/PackageImport.java
@@ -20,10 +20,10 @@
 package org.apache.felix.sigil.core.internal.model.osgi;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.AbstractModelElement;
 import org.apache.felix.sigil.model.IModelElement;
 import org.apache.felix.sigil.model.InvalidModelException;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 
diff --git a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/RequiredBundle.java b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/RequiredBundle.java
index af41438..3cd7aa8 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/RequiredBundle.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/core/internal/model/osgi/RequiredBundle.java
@@ -20,9 +20,9 @@
 package org.apache.felix.sigil.core.internal.model.osgi;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.AbstractModelElement;
 import org.apache.felix.sigil.model.IModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IRequiredBundle;
 
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/eclipse/ILibraryImport.java b/sigil/common/core/src/org/apache/felix/sigil/model/eclipse/ILibraryImport.java
index 664e32f..79e5fa2 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/eclipse/ILibraryImport.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/model/eclipse/ILibraryImport.java
@@ -20,8 +20,8 @@
 package org.apache.felix.sigil.model.eclipse;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.IModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 
 
 public interface ILibraryImport extends IModelElement
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IRequiredBundle.java b/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IRequiredBundle.java
index d039c84..fa64308 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IRequiredBundle.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IRequiredBundle.java
@@ -20,9 +20,9 @@
 package org.apache.felix.sigil.model.osgi;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.IModelElement;
 import org.apache.felix.sigil.model.IRequirementModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 
 
 public interface IRequiredBundle extends IModelElement, IRequirementModelElement, Comparable<IRequiredBundle>
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IVersionRangeModelElement.java b/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IVersionRangeModelElement.java
index 83d8bf4..5e3bea5 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IVersionRangeModelElement.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/model/osgi/IVersionRangeModelElement.java
@@ -19,9 +19,7 @@
 
 package org.apache.felix.sigil.model.osgi;
 
-
-import org.apache.felix.sigil.model.common.VersionRange;
-
+import org.apache.felix.sigil.common.osgi.VersionRange;
 
 public interface IVersionRangeModelElement
 {
diff --git a/sigil/common/core/src/org/apache/felix/sigil/repository/AbstractBundleRepository.java b/sigil/common/core/src/org/apache/felix/sigil/repository/AbstractBundleRepository.java
index 2d459a7..dbd81ad 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/repository/AbstractBundleRepository.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/repository/AbstractBundleRepository.java
@@ -29,6 +29,7 @@
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.core.BldCore;
 import org.apache.felix.sigil.core.licence.ILicenseManager;
 import org.apache.felix.sigil.core.licence.ILicensePolicy;
@@ -36,7 +37,6 @@
 import org.apache.felix.sigil.model.IModelElement;
 import org.apache.felix.sigil.model.ModelElementFactory;
 import org.apache.felix.sigil.model.ModelElementFactoryException;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ILibrary;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
diff --git a/sigil/common/obr/build.xml b/sigil/common/obr/build.xml
index 06aa3b3..39cb53f 100644
--- a/sigil/common/obr/build.xml
+++ b/sigil/common/obr/build.xml
@@ -17,6 +17,6 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project name="core" default="build">
+<project name="common.obr" default="build">
       <import file="../build.xml"/>
 </project>
diff --git a/sigil/common/obr/sigil.properties b/sigil/common/obr/sigil.properties
index dd301d9..95d3813 100644
--- a/sigil/common/obr/sigil.properties
+++ b/sigil/common/obr/sigil.properties
@@ -11,8 +11,8 @@
 	org.apache.felix.sigil.obr, \
 
 -imports: \
+	org.apache.felix.sigil.common.osgi;version=0.9.0, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.obr, \
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
index 0e7a8cf..860ccb9 100644
--- a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
+++ b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
@@ -29,12 +29,12 @@
 import java.util.HashSet;
 import java.util.List;
 
+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.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.LDAPExpr;
-import org.apache.felix.sigil.model.common.LDAPParseException;
-import org.apache.felix.sigil.model.common.LDAPParser;
-import org.apache.felix.sigil.model.common.SimpleTerm;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/VersionRangeHelper.java b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/VersionRangeHelper.java
index a5ceadc..bf72f64 100644
--- a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/VersionRangeHelper.java
+++ b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/VersionRangeHelper.java
@@ -23,13 +23,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.felix.sigil.model.common.LDAPExpr;
-import org.apache.felix.sigil.model.common.LDAPParseException;
-import org.apache.felix.sigil.model.common.LDAPParser;
-import org.apache.felix.sigil.model.common.Not;
-import org.apache.felix.sigil.model.common.Ops;
-import org.apache.felix.sigil.model.common.SimpleTerm;
-import org.apache.felix.sigil.model.common.VersionRange;
+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.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.osgi.framework.Version;
 
 
diff --git a/sigil/common/osgi/.classpath b/sigil/common/osgi/.classpath
new file mode 100644
index 0000000..c9ffd60
--- /dev/null
+++ b/sigil/common/osgi/.classpath
@@ -0,0 +1,7 @@
+<?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
new file mode 100644
index 0000000..9702092
--- /dev/null
+++ b/sigil/common/osgi/.project
@@ -0,0 +1,23 @@
+<?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/build.xml b/sigil/common/osgi/build.xml
new file mode 100644
index 0000000..8f55817
--- /dev/null
+++ b/sigil/common/osgi/build.xml
@@ -0,0 +1,22 @@
+<?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
new file mode 100644
index 0000000..a28cff4
--- /dev/null
+++ b/sigil/common/osgi/ivy.xml
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 0000000..2422c42
--- /dev/null
+++ b/sigil/common/osgi/sigil.properties
@@ -0,0 +1,17 @@
+
+# sigil project file, saved by plugin.
+
+-bundles: \
+	org.apache.felix.sigil.common.osgi, \
+
+-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/core/src/org/apache/felix/sigil/model/common/And.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java
similarity index 98%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/And.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java
index 9e1bc0a..026dd8e 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/And.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/And.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.util.Map;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Cardinality.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Cardinality.java
similarity index 98%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Cardinality.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Cardinality.java
index 07220cc..b0ad6cb 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Cardinality.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Cardinality.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.io.Serializable;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/ExprVisitor.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java
similarity index 95%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/ExprVisitor.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java
index 4a1b95c..c208f87 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/ExprVisitor.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ExprVisitor.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 public interface ExprVisitor
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Expressions.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java
similarity index 97%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Expressions.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java
index 976d4b5..6dab3ae 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Expressions.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Expressions.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.util.Map;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/FilterValidator.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java
similarity index 95%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/FilterValidator.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java
index a5bbb1d..7b21e3d 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/FilterValidator.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/FilterValidator.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 public interface FilterValidator
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPExpr.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java
similarity index 96%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPExpr.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java
index 8e9214c..7d911b6 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPExpr.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPExpr.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.io.Serializable;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParseException.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java
similarity index 97%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParseException.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java
index b72aa2f..109a791 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParseException.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParseException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 public class LDAPParseException extends Exception
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParser.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java
similarity index 92%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParser.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java
index 98b4bda..11086dd 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/LDAPParser.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/LDAPParser.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
-import static org.apache.felix.sigil.model.common.Expressions.and;
-import static org.apache.felix.sigil.model.common.Expressions.not;
-import static org.apache.felix.sigil.model.common.Expressions.or;
-import static org.apache.felix.sigil.model.common.Ops.APPROX;
-import static org.apache.felix.sigil.model.common.Ops.EQ;
-import static org.apache.felix.sigil.model.common.Ops.GE;
-import static org.apache.felix.sigil.model.common.Ops.GT;
-import static org.apache.felix.sigil.model.common.Ops.LE;
-import static org.apache.felix.sigil.model.common.Ops.LT;
+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;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Not.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java
similarity index 97%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Not.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java
index f8cd608..661bd43 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Not.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Not.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.util.Map;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Ops.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java
similarity index 96%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Ops.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java
index 29a0a8c..200e497 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Ops.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Ops.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 public enum Ops
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Or.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java
similarity index 98%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Or.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java
index dc4af04..0d2cc03 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Or.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Or.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.util.Map;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/ParseState.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java
similarity index 97%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/ParseState.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java
index 298cd7f..46e98fd 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/ParseState.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/ParseState.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.io.Serializable;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/SimpleTerm.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java
similarity index 99%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/SimpleTerm.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java
index a347539..0ebd791 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/SimpleTerm.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/SimpleTerm.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.lang.reflect.Constructor;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/Utils.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java
similarity index 97%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/Utils.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java
index 14a4d04..9720702 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/Utils.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/Utils.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.util.ArrayList;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRange.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java
similarity index 99%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRange.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java
index 9448088..a4a1558 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRange.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRange.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 import java.io.Serializable;
diff --git a/sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRangeBoundingRule.java b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java
similarity index 94%
rename from sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRangeBoundingRule.java
rename to sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java
index c1f6f14..5ee45da 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/model/common/VersionRangeBoundingRule.java
+++ b/sigil/common/osgi/src/org/apache/felix/sigil/common/osgi/VersionRangeBoundingRule.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.sigil.model.common;
+package org.apache.felix.sigil.common.osgi;
 
 
 public enum VersionRangeBoundingRule
diff --git a/sigil/eclipse/core/sigil.properties b/sigil/eclipse/core/sigil.properties
index 3ec7bda..0248280 100644
--- a/sigil/eclipse/core/sigil.properties
+++ b/sigil/eclipse/core/sigil.properties
@@ -3,6 +3,8 @@
 
 -activator: org.apache.felix.sigil.eclipse.SigilCore
 
+-singleton: true
+
 -bundles: \
 	org.apache.felix.sigil.eclipse.core, \
 
@@ -28,6 +30,7 @@
 	org.apache.commons.lang, \
 	org.apache.commons.lang.text, \
 	org.apache.felix.sigil.bnd, \
+	org.apache.felix.sigil.common.osgi;version=0.9.0, \
 	org.apache.felix.sigil.config, \
 	org.apache.felix.sigil.core, \
 	org.apache.felix.sigil.core.repository, \
@@ -39,7 +42,6 @@
 	org.apache.felix.sigil.eclipse.model.util, \
 	org.apache.felix.sigil.eclipse.preferences, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.repository, \
@@ -76,6 +78,4 @@
 
 option;addMissingImports: false
 
--singleton: true
-
 # end
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
index d560c74..081d751 100644
--- 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
@@ -41,13 +41,13 @@
 import java.util.jar.JarInputStream;
 import java.util.regex.Pattern;
 
+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.apache.felix.sigil.model.IModelElement;
 import org.apache.felix.sigil.model.IModelWalker;
 import org.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/SigilPreferencesInitializer.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/SigilPreferencesInitializer.java
index 1548d02..22e4271 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/SigilPreferencesInitializer.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/preferences/SigilPreferencesInitializer.java
@@ -20,9 +20,9 @@
 package org.apache.felix.sigil.eclipse.preferences;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRangeBoundingRule;
 import org.apache.felix.sigil.eclipse.SigilCore;
 import org.apache.felix.sigil.eclipse.internal.model.repository.RepositoryConfiguration;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
 
diff --git a/sigil/eclipse/search/sigil.properties b/sigil/eclipse/search/sigil.properties
index 3b8ce94..0687284 100644
--- a/sigil/eclipse/search/sigil.properties
+++ b/sigil/eclipse/search/sigil.properties
@@ -3,10 +3,10 @@
 
 -activator: org.apache.felix.sigil.search.SigilSearch
 
+-singleton: true
+
 -bundles: \
 	org.apache.felix.sigil.eclipse.search, \
-	
--singleton: true
 
 -sourcedirs: \
 	src, \
@@ -15,11 +15,11 @@
 	org.apache.felix.sigil.search, \
 
 -imports: \
+	org.apache.felix.sigil.common.osgi, \
 	org.apache.felix.sigil.eclipse, \
 	org.apache.felix.sigil.eclipse.model.project, \
 	org.apache.felix.sigil.eclipse.model.util, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.repository, \
@@ -34,7 +34,7 @@
 
 -requires: \
 	org.eclipse.core.runtime;version=3.4.0, \
-	
+
 header;Bundle-ActivationPolicy: lazy	
 
 # end
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
index b08885f..84688e7 100644
--- 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
@@ -32,8 +32,8 @@
 import java.util.regex.Pattern;
 
 import org.apache.bcel.classfile.JavaClass;
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IRequiredBundle;
diff --git a/sigil/eclipse/ui/sigil.properties b/sigil/eclipse/ui/sigil.properties
index b602994..46c1592 100644
--- a/sigil/eclipse/ui/sigil.properties
+++ b/sigil/eclipse/ui/sigil.properties
@@ -3,6 +3,8 @@
 
 -activator: org.apache.felix.sigil.ui.eclipse.ui.SigilUI
 
+-singleton: true
+
 -bundles: \
 	org.apache.felix.sigil.eclipse.ui, \
 
@@ -21,6 +23,7 @@
 	org.apache.felix.sigil.ui.eclipse.ui.wizard.repository, \
 
 -imports: \
+	org.apache.felix.sigil.common.osgi, \
 	org.apache.felix.sigil.eclipse, \
 	org.apache.felix.sigil.eclipse.install, \
 	org.apache.felix.sigil.eclipse.job, \
@@ -29,7 +32,6 @@
 	org.apache.felix.sigil.eclipse.model.util, \
 	org.apache.felix.sigil.eclipse.preferences, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.repository, \
@@ -99,6 +101,4 @@
 
 option;addMissingImports: false
 
--singleton: true
-
 # end
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java
index 255fdae..15a7048 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java
@@ -26,11 +26,11 @@
 import java.util.Map;
 import java.util.Set;
 
+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.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
index 8754d06..e0f2f9c 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
@@ -23,12 +23,12 @@
 import java.util.Iterator;
 import java.util.List;
 
+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.apache.felix.sigil.model.ModelElementFactory;
 import org.apache.felix.sigil.model.ModelElementFactoryException;
-import org.apache.felix.sigil.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java
index 26ec83f..b5ec9a8 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java
@@ -20,9 +20,9 @@
 package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
 
 
+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.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.osgi.IVersionedModelElement;
 import org.apache.felix.sigil.ui.eclipse.ui.util.BackgroundLoadingSelectionDialog;
 import org.apache.felix.sigil.ui.eclipse.ui.util.IValidationListener;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ResourceImportDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ResourceImportDialog.java
index 6bab7da..c31b7f7 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ResourceImportDialog.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ResourceImportDialog.java
@@ -20,8 +20,8 @@
 package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
 
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 import org.eclipse.jface.viewers.IContentProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
index 0e91a61..2bcf3b5 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
@@ -26,11 +26,11 @@
 import java.util.Iterator;
 import java.util.Set;
 
+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.model.IModelElement;
 import org.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 import org.apache.felix.sigil.model.osgi.IRequiredBundle;
 import org.apache.felix.sigil.ui.eclipse.ui.SigilUI;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionRangeComponent.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionRangeComponent.java
index 3f1cd60..d38578b 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionRangeComponent.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionRangeComponent.java
@@ -23,7 +23,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.felix.sigil.model.common.VersionRange;
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.ui.eclipse.ui.util.IValidationListener;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.swt.SWT;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionsChangeListener.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionsChangeListener.java
index 2c2ee5c..ee65b32 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionsChangeListener.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/VersionsChangeListener.java
@@ -19,9 +19,7 @@
 
 package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
 
-
-import org.apache.felix.sigil.model.common.VersionRange;
-
+import org.apache.felix.sigil.common.osgi.VersionRange;
 
 public interface VersionsChangeListener
 {
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/LibraryConfigurationDialog.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/LibraryConfigurationDialog.java
index 6cf9db7..1c1584f 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/LibraryConfigurationDialog.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/LibraryConfigurationDialog.java
@@ -25,13 +25,9 @@
 import java.util.TreeSet;
 
 import org.apache.felix.sigil.model.ModelElementFactory;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ILibrary;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
-import org.apache.felix.sigil.model.osgi.IPackageModelElement;
-import org.apache.felix.sigil.ui.eclipse.ui.editors.project.NewResourceSelectionDialog;
 import org.apache.felix.sigil.ui.eclipse.ui.util.DefaultTableProvider;
-import org.apache.felix.sigil.ui.eclipse.ui.util.ResourcesDialogHelper;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
@@ -40,7 +36,6 @@
 import org.eclipse.jface.viewers.LabelProvider;
 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.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/VersionsPreferencePage.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/VersionsPreferencePage.java
index 30db1fa..1ec4892 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/VersionsPreferencePage.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/VersionsPreferencePage.java
@@ -20,9 +20,9 @@
 package org.apache.felix.sigil.ui.eclipse.ui.preferences;
 
 
+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.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.ui.eclipse.ui.SigilUI;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java
index 92dcec2..f2461b4 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java
@@ -20,12 +20,12 @@
 package org.apache.felix.sigil.ui.eclipse.ui.quickfix;
 
 
+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.apache.felix.sigil.model.ModelElementFactory;
 import org.apache.felix.sigil.model.ModelElementFactoryException;
-import org.apache.felix.sigil.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 import org.apache.felix.sigil.ui.eclipse.ui.SigilUI;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportSearchResultProposal.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportSearchResultProposal.java
index 9ea358e..ae2ad44 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportSearchResultProposal.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportSearchResultProposal.java
@@ -20,12 +20,12 @@
 package org.apache.felix.sigil.ui.eclipse.ui.quickfix;
 
 
+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.apache.felix.sigil.model.ModelElementFactory;
 import org.apache.felix.sigil.model.ModelElementFactoryException;
-import org.apache.felix.sigil.model.common.VersionRange;
-import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
 import org.apache.felix.sigil.search.ISearchResult;
diff --git a/sigil/ivy/resolver/sigil.properties b/sigil/ivy/resolver/sigil.properties
index 18622f6..820e8c4 100644
--- a/sigil/ivy/resolver/sigil.properties
+++ b/sigil/ivy/resolver/sigil.properties
@@ -5,18 +5,18 @@
 	org.apache.felix.sigil.ivy.resolver, \
 
 -contents: \
-  org.apache.felix.sigil.*, \
-  profiles.*, \
-  org.osgi.framework, \
+	profiles.*, \
+	org.osgi.framework, \
+	org.apache.felix.sigil.*, \
 
 -imports: \
 	org.apache.felix.sigil.bnd, \
+	org.apache.felix.sigil.common.osgi, \
 	org.apache.felix.sigil.config, \
 	org.apache.felix.sigil.core, \
 	org.apache.felix.sigil.core.licence, \
 	org.apache.felix.sigil.core.repository, \
 	org.apache.felix.sigil.model, \
-	org.apache.felix.sigil.model.common, \
 	org.apache.felix.sigil.model.eclipse, \
 	org.apache.felix.sigil.model.osgi, \
 	org.apache.felix.sigil.obr, \
@@ -37,6 +37,7 @@
 	org.apache.ivy.util, \
 	org.apache.tools.ant, \
 	org.apache.tools.ant.types, \
+	org.eclipse.core.runtime;version=3.4.0, \
 	org.osgi.framework, \
 
 -requires: \
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
index dec8b2b..004b4d5 100644
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepository.java
+++ b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/ProjectRepository.java
@@ -28,13 +28,13 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.BldFactory;
 import org.apache.felix.sigil.config.IBldProject;
 import org.apache.felix.sigil.config.IBldProject.IBldBundle;
 import org.apache.felix.sigil.core.internal.model.eclipse.SigilBundle;
 import org.apache.felix.sigil.core.internal.model.osgi.BundleModelElement;
 import org.apache.felix.sigil.core.licence.ILicensePolicy;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageExport;
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
index 54555e7..1bb30b9 100644
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilParser.java
+++ b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilParser.java
@@ -31,10 +31,10 @@
 import java.util.Map;
 import java.util.regex.Pattern;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.BldFactory;
 import org.apache.felix.sigil.config.IBldProject;
 import org.apache.felix.sigil.model.IModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.model.osgi.IPackageImport;
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
index f41a3aa..5daad06 100644
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilResolver.java
+++ b/sigil/ivy/resolver/src/org/apache/felix/sigil/ivy/SigilResolver.java
@@ -37,10 +37,10 @@
 import java.util.jar.JarInputStream;
 import java.util.jar.Manifest;
 
+import org.apache.felix.sigil.common.osgi.VersionRange;
 import org.apache.felix.sigil.config.BldFactory;
 import org.apache.felix.sigil.core.internal.model.osgi.RequiredBundle;
 import org.apache.felix.sigil.model.IModelElement;
-import org.apache.felix.sigil.model.common.VersionRange;
 import org.apache.felix.sigil.model.eclipse.ISigilBundle;
 import org.apache.felix.sigil.model.osgi.IBundleModelElement;
 import org.apache.felix.sigil.repository.IResolution;
@@ -54,6 +54,7 @@
 import org.apache.ivy.plugins.resolver.BasicResolver;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
 import org.apache.ivy.util.FileUtil;
+import org.eclipse.core.runtime.IPath;
 
 
 /**
@@ -386,11 +387,10 @@
 
         private boolean bundleContains( ISigilBundle bundle, String j )
         {
-            URI uri = bundle.getBundleInfo().getUpdateLocation();
             InputStream is = null;
             try
             {
-                URL url = ( uri != null ) ? uri.toURL() : bundle.getLocation().toFile().toURL();
+                URL url = getURL( bundle );
                 is = url.openStream();
                 JarInputStream js = new JarInputStream( is, false );
                 JarEntry entry;
@@ -427,11 +427,10 @@
             if ( bundle == null )
                 return null;
 
-            URI uri = bundle.getBundleInfo().getUpdateLocation();
             InputStream is = null;
             try
             {
-                URL url = ( uri != null ) ? uri.toURL() : bundle.getLocation().toFile().toURL();
+                URL url = getURL( bundle );
                 is = url.openStream();
                 JarInputStream js = new JarInputStream( is, false );
                 Manifest m = js.getManifest();
@@ -459,6 +458,22 @@
         }
 
 
+        private URL getURL( ISigilBundle bundle ) throws MalformedURLException
+        {
+            URI uri = bundle.getBundleInfo().getUpdateLocation();
+            if ( uri != null ) {
+                return uri.toURL();
+            }
+            else {
+                IPath path = bundle.getLocation();
+                if ( path == null ) {
+                    throw new NullPointerException( "Missing location for " + bundle.getSymbolicName() );
+                }
+                return path.toFile().toURI().toURL();
+            }
+        }
+
+
         public String toString()
         {
             return "SigilIvy[" + name + "]";