diff --git a/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/datasource/AnnotationsInMemoryDsTest.java b/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/datasource/AnnotationsInMemoryDsTest.java
index fe75049..c1fc882 100644
--- a/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/datasource/AnnotationsInMemoryDsTest.java
+++ b/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/datasource/AnnotationsInMemoryDsTest.java
@@ -700,7 +700,7 @@
     photo.setImageType("image/png");
     datasource.createData(edmEntitySet, photo);
 
-    List photos = datasource.readData(edmEntitySet);
+    List<?> photos = datasource.readData(edmEntitySet);
     Photo readPhoto = (Photo) photos.get(0);
     Assert.assertEquals(automaticNameKeyValue + ":" + typeKeyValue,
             readPhoto.getName() + ":" + readPhoto.getType());
@@ -737,7 +737,7 @@
     photo2.setImageType("image/png");
     datasource.createData(edmEntitySet, photo2);
 
-    List photos = datasource.readData(edmEntitySet);
+    List<?> photos = datasource.readData(edmEntitySet);
     Assert.assertEquals(2, photos.size());
 
     // Check photo 1 has specified key values.
@@ -764,7 +764,7 @@
     testEntity.setName(entityName);
     datasource.createData(edmEntitySet, testEntity);
 
-    List entities = datasource.readData(edmEntitySet);
+    List<?> entities = datasource.readData(edmEntitySet);
     GuidKeyEntity readEntity = (GuidKeyEntity) entities.get(0);
     Assert.assertEquals(entityName, readEntity.getName());
   }
diff --git a/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/model/GuidKeyEntity.java b/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/model/GuidKeyEntity.java
index 36feabe..ce62894 100644
--- a/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/model/GuidKeyEntity.java
+++ b/odata2-annotation-processor/annotation-processor-core/src/test/java/org/apache/olingo/odata2/annotation/processor/core/model/GuidKeyEntity.java
@@ -15,6 +15,8 @@
  */
 package org.apache.olingo.odata2.annotation.processor.core.model;
 
+import java.util.UUID;
+
 import org.apache.olingo.odata2.api.annotation.edm.EdmEntitySet;
 import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
 import org.apache.olingo.odata2.api.annotation.edm.EdmFacets;
@@ -22,9 +24,6 @@
 import org.apache.olingo.odata2.api.annotation.edm.EdmProperty;
 import org.apache.olingo.odata2.api.annotation.edm.EdmType;
 
-import java.util.AbstractMap;
-import java.util.UUID;
-
 @EdmEntityType(name = "GuidKeyEntity", namespace = ModelSharedConstants.NAMESPACE_1)
 @EdmEntitySet(name = GuidKeyEntity.GUID_KEY_ENTITIES)
 public class GuidKeyEntity {
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/listeners/CustomerQueryExtension.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/listeners/CustomerQueryExtension.java
index ef385fe..1babccd 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/listeners/CustomerQueryExtension.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/listeners/CustomerQueryExtension.java
@@ -18,6 +18,11 @@
  ******************************************************************************/
 package org.apache.olingo.odata2.jpa.processor.ref.listeners;
 
+import java.util.Locale;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
 import org.apache.olingo.odata2.api.uri.expression.FilterExpression;
 import org.apache.olingo.odata2.api.uri.info.GetEntitySetUriInfo;
 import org.apache.olingo.odata2.api.uri.info.GetEntityUriInfo;
@@ -28,10 +33,6 @@
 import org.apache.olingo.odata2.jpa.processor.api.jpql.JPQLContextType;
 import org.apache.olingo.odata2.jpa.processor.api.jpql.JPQLStatement;
 
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.Locale;
-
 public class CustomerQueryExtension extends ODataJPAQueryExtensionEntityListener {
 
   @Override
diff --git a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
index 845875b..8fd9bfa 100644
--- a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
+++ b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
@@ -27,7 +27,6 @@
 import org.apache.olingo.odata2.jpa.processor.api.ODataJPAServiceFactory;
 import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent;
 import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
-import org.apache.olingo.odata2.jpa.processor.api.factory.ODataJPAAccessFactory;
 import org.apache.olingo.odata2.jpa.processor.ref.extension.OnDBWriteContent;
 import org.apache.olingo.odata2.jpa.processor.ref.extension.SalesOrderProcessingExtension;
 import org.apache.olingo.odata2.jpa.processor.ref.factory.JPAEntityManagerFactory;
