Merge branch 'OLINGO-709-InjectODataServiceFactory'
diff --git a/odata2-annotation-processor/annotation-processor-ref/src/main/java/org/apache/olingo/odata2/annotation/processor/ref/AnnotationRefServiceFactory.java b/odata2-annotation-processor/annotation-processor-ref/src/main/java/org/apache/olingo/odata2/annotation/processor/ref/AnnotationRefServiceFactory.java
index 9130a19..a7cc61d 100644
--- a/odata2-annotation-processor/annotation-processor-ref/src/main/java/org/apache/olingo/odata2/annotation/processor/ref/AnnotationRefServiceFactory.java
+++ b/odata2-annotation-processor/annotation-processor-ref/src/main/java/org/apache/olingo/odata2/annotation/processor/ref/AnnotationRefServiceFactory.java
@@ -77,7 +77,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     return (T) (callbackInterface.isAssignableFrom(ScenarioErrorCallback.class)
         ? new ScenarioErrorCallback() : callbackInterface.isAssignableFrom(ODataDebugCallback.class)
             ? new ScenarioDebugCallback() : super.getCallback(callbackInterface));
diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java
index bb982b8..5566ada 100644
--- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java
+++ b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java
@@ -159,7 +159,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     if (setDetailErrors == true) {
       if (callbackInterface.isAssignableFrom(ODataErrorCallback.class)) {
         return (T) new ODataJPAErrorCallback();
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ODataServiceFactory.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ODataServiceFactory.java
index 4b408c5..57736c7 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ODataServiceFactory.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ODataServiceFactory.java
@@ -75,7 +75,7 @@
    * @param callbackInterface a interface type to query for implementation
    * @return a callback implementation for this interface or null
    */
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     return null;
   }
 
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataExceptionWrapperTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataExceptionWrapperTest.java
index a2fe86c..98c6b26 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataExceptionWrapperTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataExceptionWrapperTest.java
@@ -118,7 +118,7 @@
 
     @SuppressWarnings("unchecked")
     @Override
-    public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+    public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
       if (callbackInterface == ODataErrorCallback.class) {
         if (errorCallback == null) {
           return (T) new ODataErrorHandlerCallbackImpl();
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataServiceFactoryWithCallbackImpl.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataServiceFactoryWithCallbackImpl.java
index c210de6..0d24da4 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataServiceFactoryWithCallbackImpl.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataServiceFactoryWithCallbackImpl.java
@@ -38,7 +38,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     T callback = null;
 
     if (callbackInterface == ODataErrorCallback.class) {
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/misc/ODataApplicationFactory.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/misc/ODataApplicationFactory.java
index e28aad2..7577cc8 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/misc/ODataApplicationFactory.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/misc/ODataApplicationFactory.java
@@ -33,7 +33,7 @@
   }
 
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     return new ScenarioServiceFactory().getCallback(callbackInterface);
   }
 
diff --git a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioServiceFactory.java b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioServiceFactory.java
index d3075da..add23f9 100644
--- a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioServiceFactory.java
+++ b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioServiceFactory.java
@@ -44,7 +44,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     return (T) (callbackInterface.isAssignableFrom(ScenarioErrorCallback.class) ?
         new ScenarioErrorCallback() : callbackInterface.isAssignableFrom(ODataDebugCallback.class) ?
             new ScenarioDebugCallback() : super.getCallback(callbackInterface));
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryFlase.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryFlase.java
index 9e7cdc6..fc71390 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryFlase.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryFlase.java
@@ -25,7 +25,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     if (callbackInterface.isAssignableFrom(FitErrorCallback.class)) {
       return (T) new FitErrorCallback();
     } else if (callbackInterface.isAssignableFrom(ODataDebugCallback.class)) {
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryTrue.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryTrue.java
index 66f483d..ba7248b 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryTrue.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/DebugCallbackFactoryTrue.java
@@ -25,7 +25,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     if (callbackInterface.isAssignableFrom(FitErrorCallback.class)) {
       return (T) new FitErrorCallback();
     } else if (callbackInterface.isAssignableFrom(ODataDebugCallback.class)) {
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/FitStaticServiceFactory.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/FitStaticServiceFactory.java
index 0a86faf..fd8a9ea 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/FitStaticServiceFactory.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/FitStaticServiceFactory.java
@@ -40,7 +40,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     if (callbackInterface.isAssignableFrom(FitErrorCallback.class)) {
       return (T) new FitErrorCallback();
     }
diff --git a/odata2-sample/cars-annotation-archetype/src/main/resources/archetype-resources/src/main/java/processor/AnnotationSampleServiceFactory.java b/odata2-sample/cars-annotation-archetype/src/main/resources/archetype-resources/src/main/java/processor/AnnotationSampleServiceFactory.java
index fc8ebb2..c244bf6 100644
--- a/odata2-sample/cars-annotation-archetype/src/main/resources/archetype-resources/src/main/java/processor/AnnotationSampleServiceFactory.java
+++ b/odata2-sample/cars-annotation-archetype/src/main/resources/archetype-resources/src/main/java/processor/AnnotationSampleServiceFactory.java
@@ -69,7 +69,7 @@
 
   @SuppressWarnings("unchecked")
   @Override
-  public <T extends ODataCallback> T getCallback(final Class<? extends ODataCallback> callbackInterface) {
+  public <T extends ODataCallback> T getCallback(final Class<T> callbackInterface) {
     return (T) (callbackInterface.isAssignableFrom(ScenarioErrorCallback.class)
             ? new ScenarioErrorCallback() : callbackInterface.isAssignableFrom(ODataDebugCallback.class)
             ? new ScenarioDebugCallback() : super.getCallback(callbackInterface));