runs on 3.7.2.v20120110-1415 still using R4.2 to compile against
diff --git a/Blueprint 2.0 plan b/Blueprint 2.0 plan
new file mode 100644
index 0000000..95a1c77
--- /dev/null
+++ b/Blueprint 2.0 plan
@@ -0,0 +1,10 @@
+Blueprint 2.0 plan
+
+1. upgrade to R4.3 OSGi release.
+	Not r5.0 because Felix is stil on R4.3
+2. Fix bugs.
+3. Add an ability to specify extra intercaces to proxy on import
+	Those interfaces are not to be used in filter criteria. Useful in situations where dealing with frameworks that add aditional interfaces to proxys, i.e. ecf.
+4. Publish p2 update site
+5. Publish releases to maven repo.
+
diff --git a/core/pom.xml b/core/pom.xml
index 8c4b35c..9457153 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -39,23 +39,27 @@
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-aop</artifactId>
+            <artifactId>org.springframework.aop</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-beans</artifactId>
+            <artifactId>org.springframework.beans</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
+            <artifactId>org.springframework.context</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
+            <artifactId>org.springframework.core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-test</artifactId>
+            <artifactId>org.springframework.expression</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>org.springframework.test</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -65,7 +69,12 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-           	<artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/OsgiServiceProxyFactoryBean.java b/core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/OsgiServiceProxyFactoryBean.java
index c38b58a..37f6540 100644
--- a/core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/OsgiServiceProxyFactoryBean.java
+++ b/core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/OsgiServiceProxyFactoryBean.java
@@ -73,12 +73,9 @@
 		}

 

 		public boolean isSatisfied() {

-			if (!mandatory)

-				return true;

-			else

-				return (proxy == null ? true : proxy.getServiceReference().getBundle() != null);

+            return !mandatory || (proxy == null || proxy.getServiceReference().getBundle() != null);

 		}

-	};

+	}

 

 	private static final Log log = LogFactory.getLog(OsgiServiceProxyFactoryBean.class);

 

@@ -147,9 +144,7 @@
 		lookupAdvice.setUseBlueprintExceptions(isUseBlueprintExceptions());

 		lookupAdvice.setSticky(sticky);

 

-		OsgiServiceLifecycleListener[] listeners =

-				(serviceTccl ? (OsgiServiceLifecycleListener[]) ObjectUtils.addObjectToArray(getListeners(),

-						tcclListener) : getListeners());

+		OsgiServiceLifecycleListener[] listeners = (serviceTccl ? ObjectUtils.addObjectToArray(getListeners(), tcclListener) : getListeners());

 

 		lookupAdvice.setListeners(listeners);

 		synchronized (monitor) {

@@ -197,7 +192,6 @@
 				}

 			};

 		}

-

 		return proxy;

 	}

 

diff --git a/core/src/test/java/org/eclipse/gemini/blueprint/service/importer/OsgiSingleServiceProxyFactoryBeanTest.java b/core/src/test/java/org/eclipse/gemini/blueprint/service/importer/OsgiSingleServiceProxyFactoryBeanTest.java
index 3e3bc88..e0d7940 100644
--- a/core/src/test/java/org/eclipse/gemini/blueprint/service/importer/OsgiSingleServiceProxyFactoryBeanTest.java
+++ b/core/src/test/java/org/eclipse/gemini/blueprint/service/importer/OsgiSingleServiceProxyFactoryBeanTest.java
@@ -25,6 +25,7 @@
 import org.eclipse.gemini.blueprint.service.importer.ImportedOsgiServiceProxy;

 import org.eclipse.gemini.blueprint.service.importer.support.ImportContextClassLoaderEnum;

 import org.eclipse.gemini.blueprint.service.importer.support.OsgiServiceProxyFactoryBean;

+import org.junit.Ignore;

 import org.osgi.framework.BundleContext;

 import org.osgi.framework.Constants;

 import org.springframework.aop.SpringProxy;

@@ -103,18 +104,19 @@
 				.isAssignableFrom(this.serviceFactoryBean.getObjectType()));

 	}

 

-	public void testObjectTypeWOCompositeInterface() {

-		this.serviceFactoryBean.setInterfaces(new Class<?>[] { AbstractApplicationContext.class });

-		this.serviceFactoryBean.setBundleContext(this.bundleContext);

-		this.serviceFactoryBean.afterPropertiesSet();

-

-		try {

-			this.serviceFactoryBean.getObjectType();

-			fail("should not be able to create composite interface when a class is specified since CGLIB is not in the classpath");

-		} catch (Exception ex) {

-

-		}

-	}

+//    @Ignore("Ignored for spring 3.2.2 as cglib is inlined in spring-core in now.")

+//	public void testObjectTypeWOCompositeInterface() {

+//		this.serviceFactoryBean.setInterfaces(new Class<?>[] { AbstractApplicationContext.class });

+//		this.serviceFactoryBean.setBundleContext(this.bundleContext);

+//		this.serviceFactoryBean.afterPropertiesSet();

+//

+//		try {

+//			this.serviceFactoryBean.getObjectType();

+//			fail("should not be able to create composite interface when a class is specified since CGLIB is not in the classpath");

+//		} catch (Exception ex) {

+//

+//		}

+//	}

 

 	// OsgiServiceUtils are tested independently in error cases, here we

 	// test the

diff --git a/core/src/test/java/org/eclipse/gemini/blueprint/util/ClassUtilsTest.java b/core/src/test/java/org/eclipse/gemini/blueprint/util/ClassUtilsTest.java
index 593a97b..57509bd 100644
--- a/core/src/test/java/org/eclipse/gemini/blueprint/util/ClassUtilsTest.java
+++ b/core/src/test/java/org/eclipse/gemini/blueprint/util/ClassUtilsTest.java
@@ -14,6 +14,7 @@
 

 package org.eclipse.gemini.blueprint.util;

 

+import java.io.Closeable;

 import java.io.Serializable;

 import java.util.AbstractMap;

 import java.util.HashMap;

@@ -78,6 +79,7 @@
 	}

 

 	public void testInterfacesHierarchy() {

+        //Closeable.class,

 		Class<?>[] clazz = ClassUtils.getAllInterfaces(DelegatedExecutionOsgiBundleApplicationContext.class);

 		Class<?>[] expected =

 				{ ConfigurableOsgiBundleApplicationContext.class, ConfigurableApplicationContext.class,

@@ -92,6 +94,7 @@
 		Class<?>[] clazz =

 				ClassUtils.getClassHierarchy(OsgiBundleXmlApplicationContext.class, ClassUtils.ClassSet.ALL_CLASSES);

 

+        //Closeable.class,

 		Class<?>[] expected =

 				new Class<?>[] { OsgiBundleXmlApplicationContext.class,

 						AbstractDelegatedExecutionApplicationContext.class, AbstractOsgiBundleApplicationContext.class,

diff --git a/extender/pom.xml b/extender/pom.xml
index 4fb0c95..1293aa1 100644
--- a/extender/pom.xml
+++ b/extender/pom.xml
@@ -49,8 +49,12 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
-            <version>4.2.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/blueprint/activator/support/BlueprintConfigurationScanner.java b/extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/blueprint/activator/support/BlueprintConfigurationScanner.java
index 5a51912..6c3e503 100644
--- a/extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/blueprint/activator/support/BlueprintConfigurationScanner.java
+++ b/extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/blueprint/activator/support/BlueprintConfigurationScanner.java
@@ -54,27 +54,27 @@
 		boolean debug = log.isDebugEnabled();

 

 		if (debug)

-			log.debug("Scanning bundle " + bundleName + " for blueprint configurations...");

+			log.debug("Scanning bundle '" + bundleName + "' for blueprint configurations...");

 

 		String[] locations = BlueprintConfigUtils.getBlueprintHeaderLocations(bundle.getHeaders());

 

 		// if no location is specified in the header, try the defaults

 		if (locations == null) {

 			if (trace) {

-				log.trace("Bundle " + bundleName + " has no declared locations; trying default " + DEFAULT_CONFIG);

+				log.trace("Bundle '" + bundleName + "' has no declared locations; trying default " + DEFAULT_CONFIG);

 			}

 			locations = new String[] { DEFAULT_CONFIG };

 		} else {

 			// check whether the header is empty

 			if (ObjectUtils.isEmpty(locations)) {

-				log.info("Bundle " + bundleName + " has an empty blueprint header - ignoring bundle...");

+				log.info("Bundle '" + bundleName + "' has an empty blueprint header - ignoring bundle...");

 				return new String[0];

 			}

 		}

 

 		String[] configs = findValidBlueprintConfigs(bundle, locations);

 		if (debug)

-			log.debug("Discovered in bundle" + bundleName + " blueprint configurations=" + Arrays.toString(configs));

+			log.debug("Discovered in bundle '" + bundleName + "' blueprint configurations=" + Arrays.toString(configs));

 		return configs;

 	}

 

diff --git a/integration-tests/bundles/pom.xml b/integration-tests/bundles/pom.xml
index 66c0e1a..e0e880d 100644
--- a/integration-tests/bundles/pom.xml
+++ b/integration-tests/bundles/pom.xml
@@ -32,6 +32,11 @@
             <artifactId>gemini-blueprint-core</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <modules>
@@ -72,7 +77,7 @@
         <module>jdk5</module>
         <module>recursive.type.bundle</module>
 
-			<!-- blueprint bundles  -->
+        <!-- blueprint bundles  -->
         <module>blueprint</module>
     </modules>
 
diff --git a/integration-tests/bundles/trivial.test.bundle/pom.xml b/integration-tests/bundles/trivial.test.bundle/pom.xml
index 7738376..eec2385 100644
--- a/integration-tests/bundles/trivial.test.bundle/pom.xml
+++ b/integration-tests/bundles/trivial.test.bundle/pom.xml
@@ -32,7 +32,6 @@
         <dependency>
             <groupId>org.junit</groupId>
             <artifactId>com.springsource.org.junit</artifactId>
-            <version>4.9.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/integration-tests/tests/pom.xml b/integration-tests/tests/pom.xml
index 4a64ed3..1e60c9d 100644
--- a/integration-tests/tests/pom.xml
+++ b/integration-tests/tests/pom.xml
@@ -199,17 +199,17 @@
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.osgi</groupId>-->
+            <!--<artifactId>org.osgi.compendium</artifactId>-->
+            <!--<scope>provided</scope>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>org.eclipse.gemini.blueprint.iandt</groupId>
             <artifactId>component.scan.bundle</artifactId>
             <version>${project.parent.version}</version>
-            <scope>compile</scope>
+            <scope>provided</scope>
         </dependency>
 
     </dependencies>
@@ -227,6 +227,9 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
+                    <!--<includes>-->
+                        <!--<include>**/ScopingTest.java</include>-->
+                    <!--</includes>-->
                     <forkMode>pertest</forkMode>
                     <forkedProcessTimeoutInSeconds>2700</forkedProcessTimeoutInSeconds>
                     <systemProperties>
@@ -242,6 +245,10 @@
                             <name>org.springframework.osgi.integration.testing.clover</name>
                             <value>${clover.enabled}</value>
                         </property>
+                        <property>
+                            <name>logback.configurationFile</name>
+                            <value>${project.build.testOutputDirectory}/logback-test.xml</value>
+                        </property>
                     </systemProperties>
                     <argLine>${clover.argLine} ${security.argLine}</argLine>
                     <!--argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=2111,server=y,suspend=y</argLine-->
diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/CallingResourceOnDifferentBundlesTest.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/CallingResourceOnDifferentBundlesTest.java
index f7d6c4d..9b8aef0 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/CallingResourceOnDifferentBundlesTest.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/CallingResourceOnDifferentBundlesTest.java
@@ -16,6 +16,7 @@
 
 import java.io.IOException;
 import java.net.URL;
+import java.security.Permission;
 import java.util.Enumeration;
 import java.util.List;
 
@@ -69,14 +70,14 @@
 	}
 
 	public void testCallGetResourceOnADifferentBundleRetrievedThroughBundleEvent() throws Exception {
-		String EXTRA_BUNDLE = "spring-core";
+		String EXTRA_BUNDLE = "org.springframework.core";
 
 		Bundle[] bundles = bundleContext.getBundles();
 		Bundle bundle = null;
 		// find cglib library as we don't use it
 		for (int i = 1; bundle == null && i < bundles.length; i++) {
 			String location = bundles[i].getLocation();
-			if (location != null && location.indexOf(EXTRA_BUNDLE) > -1)
+			if (location != null && location.contains(EXTRA_BUNDLE))
 				bundle = bundles[i];
 		}
 
@@ -117,15 +118,15 @@
 	private boolean isFelix() {
 		String platformName = getPlatformName();
 		System.out.println("Platform name is " + platformName);
-		return (platformName.indexOf("Felix") > -1);
+		return (platformName.contains("Felix"));
 	}
 
 	private boolean isKF() {
-		return (getPlatformName().indexOf("Knopflerfish") > -1);
+		return (getPlatformName().contains("Knopflerfish"));
 	}
 
-	protected List getTestPermissions() {
-		List list = super.getTestPermissions();
+	protected List<Permission> getTestPermissions() {
+		List<Permission> list = super.getTestPermissions();
 		list.add(new AdminPermission("*", AdminPermission.METADATA));
 		list.add(new AdminPermission("*", AdminPermission.LISTENER));
 		list.add(new AdminPermission("*", AdminPermission.EXECUTE));
diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/lifecycle/LifecycleTest.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/lifecycle/LifecycleTest.java
index 8109937..646ffa9 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/lifecycle/LifecycleTest.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/lifecycle/LifecycleTest.java
@@ -103,7 +103,7 @@
 //            logger.info("tracking count = " + tracker.getTrackingCount());
 //            AbstractRefreshableApplicationContext appContext = (AbstractRefreshableApplicationContext) tracker.getService();
 
-            ServiceReference[] refs = bundleContext.getServiceReferences(null, filter.toString());
+            ServiceReference[] refs = bundleContext.getServiceReferences((String)null, filter.toString());
             assertEquals("Should have a single service matched", 1, refs.length);
 
             AbstractRefreshableApplicationContext appContext = (AbstractRefreshableApplicationContext)bundleContext.getService(refs[0]);
diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/serviceproxy/ServiceCollectionTest.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/serviceproxy/ServiceCollectionTest.java
index 48a5d14..5860635 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/serviceproxy/ServiceCollectionTest.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/serviceproxy/ServiceCollectionTest.java
@@ -61,7 +61,7 @@
 	public void testCollectionListener() throws Exception {

 		Collection collection = createCollection();

 

-		ServiceReference[] refs = bundleContext.getServiceReferences(null, null);

+		ServiceReference[] refs = bundleContext.getServiceReferences((String)null, null);

 

 		assertEquals(refs.length, collection.size());

 		int size = collection.size();

@@ -80,7 +80,7 @@
 

 	public void testCollectionContent() throws Exception {

 		Collection collection = createCollection();

-		ServiceReference[] refs = bundleContext.getServiceReferences(null, null);

+		ServiceReference[] refs = bundleContext.getServiceReferences((String)null, null);

 

 		assertEquals(refs.length, collection.size());

 		int size = collection.size();

diff --git a/integration-tests/tests/src/test/resources/logback-test.xml b/integration-tests/tests/src/test/resources/logback-test.xml
index 67fe5f1..db15e3e 100644
--- a/integration-tests/tests/src/test/resources/logback-test.xml
+++ b/integration-tests/tests/src/test/resources/logback-test.xml
@@ -12,9 +12,6 @@
         <encoder>
             <pattern>%-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} : %line - %msg %ex%n</pattern>
         </encoder>
-        <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
-            <!--<level>TRACE</level>-->
-        <!--</filter>-->
     </appender>
     <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
@@ -22,35 +19,32 @@
         <encoder>
             <pattern>%-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32}:%line - %msg %ex%n</pattern>
         </encoder>
-        <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
-            <!--<level>TRACE</level>-->
-        <!--</filter>-->
         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
             <maxIndex>2</maxIndex>
             <FileNamePattern>./target/out.log.%i</FileNamePattern>
         </rollingPolicy>
         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <MaxFileSize>100KB</MaxFileSize>
+            <MaxFileSize>10MB</MaxFileSize>
         </triggeringPolicy>
     </appender>
-    <logger name="org.eclipse.gemini.blueprint.test.AbstractOnTheFlyBundleCreatorTests" level="WARN"/>
-    <logger name="org.apache.felix" level="DEBUG"/>
-    <logger name="org.springframework" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.context.support.DelegatedNamespaceHandlerResolver" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.service.exporter.support.internal.support" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.service.dependency.internal" level="WARN"/>
-    <logger name="org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.iandt" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.test" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.activator" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.service.exporter.support" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.blueprint.activator.support" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.service.importer.support.internal.aop" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.support" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.blueprint" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.support.NamespaceManager" level="WARN"/>
-    <logger name="org.eclipse.gemini.blueprint.extender.internal.support.NamespacePlugins" level="WARN"/>
-    <root level="WARN">
+    <!--<logger name="org.eclipse.gemini.blueprint.test.AbstractOnTheFlyBundleCreatorTests" level="WARN"/>-->
+    <!--<logger name="org.apache.felix" level="DEBUG"/>-->
+    <logger name="org.springframework" level="INFO"/>
+    <!--<logger name="org.eclipse.gemini.blueprint.context.support.DelegatedNamespaceHandlerResolver" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.service.exporter.support.internal.support" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.service.dependency.internal" level="WARN"/>-->
+    <!--<logger name="org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.iandt" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.test" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.activator" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.service.exporter.support" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.blueprint.activator.support" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.service.importer.support.internal.aop" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.support" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.blueprint" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.support.NamespaceManager" level="WARN"/>-->
+    <!--<logger name="org.eclipse.gemini.blueprint.extender.internal.support.NamespacePlugins" level="WARN"/>-->
+    <root level="TRACE">
         <appender-ref ref="stdout"/>
         <appender-ref ref="file"/>
     </root>
diff --git a/io/pom.xml b/io/pom.xml
index 7f6447d..7236032 100644
--- a/io/pom.xml
+++ b/io/pom.xml
@@ -36,7 +36,12 @@
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
+            <artifactId>org.springframework.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/mock/pom.xml b/mock/pom.xml
index 03e851e..f9ee25b 100644
--- a/mock/pom.xml
+++ b/mock/pom.xml
@@ -23,6 +23,14 @@
         <bundlor.enabled>true</bundlor.enabled>
         <bundle.description>${project.description}</bundle.description>
     </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
     <build>
         <plugins>
             <plugin>
diff --git a/pom.xml b/pom.xml
index 2dd3c90..13837a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,14 +42,19 @@
         <logback.version>1.0.13</logback.version>
         <env.buildPlan></env.buildPlan>
         <env.buildNumber></env.buildNumber>
-        <!-- change that to gitVersion and add a way to get git version of the build -->
-        <env.svnRevision></env.svnRevision>
 
+        <!-- compiled against osgi Revision -->
+        <osgi.ver>4.2.0</osgi.ver>
         <!-- platform versions -->
-        <equinox.ver>3.6.2.R36x_v20110210</equinox.ver>
-        <!-- Knopflerfish 3.5 -->
-        <kf.ver>5.3.3</kf.ver>
-        <felix.ver>3.2.2</felix.ver>
+        <!-- equinox 3.7 is R4.3 impl -->
+        <equinox.ver>3.7.2.v20120110-1415</equinox.ver>
+        <!--<equinox.ver>3.6.2.R36x_v20110210</equinox.ver>-->
+        <!-- Knopflerfish 4.0.1 -->
+        <kf.ver>6.0.4</kf.ver>
+        <!-- Felix 4.x supports OSGi R4.3 -->
+        <felix.ver>4.0.3</felix.ver>
+        <!--<kf.ver>5.3.3</kf.ver>-->
+        <!--<felix.ver>3.2.2</felix.ver>-->
 
         <!-- javadoc configuration -->
         <javadoc.loc>${basedir}/docs/src/javadoc</javadoc.loc>
@@ -103,9 +108,9 @@
     <!--</ciManagement>-->
 
     <scm>
-        <connection>scm:git://git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git</connection>
+        <connection>scm:git:git//git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git</connection>
         <developerConnection>
-            ssh://${user.name}@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
+            ssh://{user.name}@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
         </developerConnection>
     </scm>
 
@@ -214,76 +219,72 @@
             <!-- Spring -->
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-aop</artifactId>
+                <artifactId>org.springframework.aop</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>aopalliance</groupId>
-                        <artifactId>aopalliance</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
 
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-beans</artifactId>
+                <artifactId>org.springframework.beans</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
 
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-core</artifactId>
+                <artifactId>org.springframework.core</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
 
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-context</artifactId>
+                <artifactId>org.springframework.context</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
 
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-context-support</artifactId>
+                <artifactId>org.springframework.expression</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
 
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-test</artifactId>
+                <artifactId>org.springframework.test</artifactId>
                 <version>${spring.maven.artifact.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
+                        <groupId>org.apache.commons</groupId>
+                        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
@@ -296,8 +297,32 @@
 
             <dependency>
                 <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.core</artifactId>
+                <version>${osgi.ver}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.osgi</groupId>
                 <artifactId>org.osgi.compendium</artifactId>
-                <version>4.2.0</version>
+                <version>${osgi.ver}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.junit</groupId>
+                <artifactId>com.springsource.org.junit</artifactId>
+                <version>4.9.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.eclipse.osgi</groupId>
+                <artifactId>org.eclipse.osgi</artifactId>
+                <version>${equinox.ver}</version>
+                <type>jar</type>
+                <scope>provided</scope>
+                <!--<scope>system</scope>-->
+                <!--<systemPath>-->
+                    <!--/Users/dsklyut/Projects/sources/osgi/gemini/blueprint/lib/org.eclipse.osgi_3.7.2.v20120110-1415.jar-->
+                <!--</systemPath>-->
             </dependency>
 
         </dependencies>
@@ -306,11 +331,10 @@
 
     <!-- shared dependencies across modules -->
     <dependencies>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>4.2.0</version>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.osgi</groupId>-->
+            <!--<artifactId>org.osgi.core</artifactId>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>javax.inject</groupId>
@@ -322,7 +346,6 @@
         <dependency>
             <groupId>org.junit</groupId>
             <artifactId>com.springsource.org.junit</artifactId>
-            <version>4.9.0</version>
             <scope>test</scope>
         </dependency>
 
@@ -376,14 +399,6 @@
     </dependencies>
 
     <build>
-        <extensions>
-            <extension>
-                <groupId>org.springframework.build.aws</groupId>
-                <artifactId>org.springframework.build.aws.maven</artifactId>
-                <version>2.0.0.RELEASE</version>
-            </extension>
-        </extensions>
-
         <resources>
             <resource>
                 <filtering>true</filtering>
@@ -833,7 +848,7 @@
         </plugins>
     </build>
 
-    <!-- profiles for equinox, knoplerfish, and felix                 -->
+    <!-- profiles for equinox, knopflerfish, and felix                 -->
     <!-- to use these profiles invoke maven with -Pprofile-name, e.g. -->
     <!-- mvn -Pfelix test                                             -->
     <profiles>
@@ -843,9 +858,6 @@
                 <dependency>
                     <groupId>org.eclipse.osgi</groupId>
                     <artifactId>org.eclipse.osgi</artifactId>
-                    <version>${equinox.ver}</version>
-                    <type>jar</type>
-                    <scope>provided</scope>
                 </dependency>
             </dependencies>
             <properties>
@@ -879,30 +891,16 @@
                     <version>${felix.ver}</version>
                     <type>jar</type>
                     <scope>provided</scope>
-                    <!-- required to prevent felix to pull in stuff -->
                     <exclusions>
                         <exclusion>
                             <groupId>org.apache.felix</groupId>
                             <artifactId>org.apache.felix.framework</artifactId>
                         </exclusion>
-                        <!--<exclusion>-->
-                        <!--<groupId>org.apache.felix</groupId>-->
-                        <!--<artifactId>org.apache.felix.shell</artifactId>-->
-                        <!--</exclusion>-->
-                        <!--<exclusion>-->
-                        <!--<groupId>org.apache.felix</groupId>-->
-                        <!--<artifactId>org.apache.felix.shell.tui</artifactId>-->
-                        <!--</exclusion>-->
-                        <!--<exclusion>-->
-                        <!--<groupId>org.apache.felix</groupId>-->
-                        <!--<artifactId>org.apache.felix.bundlerepository</artifactId>-->
-                        <!--</exclusion>-->
                     </exclusions>
                 </dependency>
             </dependencies>
             <properties>
                 <osgi.test.platform>org.eclipse.gemini.blueprint.test.platform.FelixPlatform</osgi.test.platform>
-                <!-- <log4j.ignoreTCL>true</log4j.ignoreTCL> -->
             </properties>
         </profile>
 
@@ -1033,6 +1031,18 @@
         </repository>
 
         <repository>
+            <id>knopflerfish</id>
+            <name>knopflerfish repo</name>
+            <url>http://www.knopflerfish.org/maven2/</url>
+        </repository>
+
+        <repository>
+            <id>dmitry-local</id>
+            <name>Just Cause equinox 3.7.2 is not in central</name>
+            <url>http://localhost:9091/nexus/content/repositories/thirdparty/</url>
+        </repository>
+
+        <repository>
             <id>com.springsource.repository.bundles.release</id>
             <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
             <url>http://repository.springsource.com/maven/bundles/release/</url>
diff --git a/test-support/pom.xml b/test-support/pom.xml
index 806a09e..75d4d7f 100644
--- a/test-support/pom.xml
+++ b/test-support/pom.xml
@@ -38,24 +38,11 @@
         <dependency>
             <groupId>org.junit</groupId>
             <artifactId>com.springsource.org.junit</artifactId>
-            <version>4.9.0</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-test</artifactId>
-            <version>${spring.maven.artifact.version}</version>
-            <exclusions>
-                <!-- exclude spring-test junit (3.8.1) -->
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>junit</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
+            <artifactId>org.springframework.test</artifactId>
         </dependency>
 
         <dependency>
@@ -81,10 +68,10 @@
         <dependency>
             <groupId>org.eclipse.osgi</groupId>
             <artifactId>org.eclipse.osgi</artifactId>
-            <version>${equinox.ver}</version>
-            <type>jar</type>
-            <scope>provided</scope>
-            <optional>true</optional>
+            <!--<version>${equinox.ver}</version>-->
+            <!--<type>jar</type>-->
+            <!--<scope>provided</scope>-->
+            <!--<optional>true</optional>-->
         </dependency>
         <dependency>
             <groupId>org.knopflerfish</groupId>
@@ -173,7 +160,6 @@
                             <goal>shade</goal>
                         </goals>
                         <configuration>
-
                             <finalName>${project.build.finalName}</finalName>
                             <artifactSet>
                                 <includes>
diff --git a/test-support/src/main/resources/org/eclipse/gemini/blueprint/test/internal/boot-bundles.properties b/test-support/src/main/resources/org/eclipse/gemini/blueprint/test/internal/boot-bundles.properties
index c1069cb..4799a47 100644
--- a/test-support/src/main/resources/org/eclipse/gemini/blueprint/test/internal/boot-bundles.properties
+++ b/test-support/src/main/resources/org/eclipse/gemini/blueprint/test/internal/boot-bundles.properties
@@ -50,13 +50,13 @@
 org.objectweb.asm,com.springsource.org.objectweb.asm,${ignore.asm.version}=
 
 # spring libs
-${ignore.spring.groupId},spring-asm,${ignore.spring.version}=
-${ignore.spring.groupId},spring-beans,${ignore.spring.version}=
-${ignore.spring.groupId},spring-core,${ignore.spring.version}=
-${ignore.spring.groupId},spring-context,${ignore.spring.version}=
-${ignore.spring.groupId},spring-expression,${ignore.spring.version}=
-${ignore.spring.groupId},spring-aop,${ignore.spring.version}=
-${ignore.spring.groupId},spring-test,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.asm,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.beans,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.core,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.context,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.expression,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.aop,${ignore.spring.version}=
+${ignore.spring.groupId},org.springframework.test,${ignore.spring.version}=
 
 # gemini blueprint libs
 ${ignore.gemini.blueprint.groupId},gemini-blueprint-io,${ignore.gemini.blueprint.version}=