diff --git a/framework/pom.xml b/framework/pom.xml
index 63121d7..3ea3080 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>2.1</version>
+    <version>3</version>
     <relativePath>../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -30,6 +30,7 @@
   <version>5.1.0-SNAPSHOT</version>
   <properties>
     <dollar>$</dollar>
+    <felix.java.version>6</felix.java.version>
   </properties>
   <scm>
       <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/framework</connection>
@@ -40,15 +41,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <target>1.5</target>
-          <source>1.5</source>
-        </configuration>
-      </plugin>
-
-      <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <version>2.5.0</version>
@@ -65,7 +57,7 @@
                 org.osgi.resource.dto;-split-package:=first,                
                 org.osgi.service.packageadmin;-split-package:=first,
                 org.osgi.service.startlevel;-split-package:=first,
-	        org.osgi.service.url;-split-package:=first,
+	            org.osgi.service.url;-split-package:=first,
                 org.osgi.service.resolver,
                 org.osgi.util.tracker;-split-package:=first,
                 org.osgi.dto
@@ -144,11 +136,5 @@
         <version>4.2</version>
         <scope>test</scope>
     </dependency>
-    <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
-        <version>1.10.19</version>
-        <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/framework/src/test/java/org/apache/felix/framework/BundleWiringImplTest.java b/framework/src/test/java/org/apache/felix/framework/BundleWiringImplTest.java
index a2ddf68..9f301aa 100644
--- a/framework/src/test/java/org/apache/felix/framework/BundleWiringImplTest.java
+++ b/framework/src/test/java/org/apache/felix/framework/BundleWiringImplTest.java
@@ -222,10 +222,10 @@
         assertEquals("There should be 2 state changes fired by the weaving", 2,
                 dummyWovenClassListener.stateList.size());
         assertEquals("The first state change should transform the class",
-                WovenClass.TRANSFORMED,
+                (Object)WovenClass.TRANSFORMED,
                 dummyWovenClassListener.stateList.get(0));
         assertEquals("The second state change should define the class",
-                WovenClass.DEFINED, dummyWovenClassListener.stateList.get(1));
+                (Object)WovenClass.DEFINED, dummyWovenClassListener.stateList.get(1));
     }
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
@@ -292,7 +292,7 @@
                 dummyWovenClassListener.stateList.size());
         assertEquals(
                 "The only state change should be a failed transform on the class",
-                WovenClass.TRANSFORMING_FAILED,
+                (Object)WovenClass.TRANSFORMING_FAILED,
                 dummyWovenClassListener.stateList.get(0));
 
     }
@@ -358,10 +358,10 @@
         assertEquals("There should be 2 state changes fired by the weaving", 2,
                 dummyWovenClassListener.stateList.size());
         assertEquals("The first state change should transform the class",
-                WovenClass.TRANSFORMED,
+                (Object)WovenClass.TRANSFORMED,
                 dummyWovenClassListener.stateList.get(0));
         assertEquals("The second state change failed the define on the class",
-                WovenClass.DEFINE_FAILED,
+                (Object)WovenClass.DEFINE_FAILED,
                 dummyWovenClassListener.stateList.get(1));
     }
 
