You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/07/09 15:44:00 UTC

git commit: - fixed injection of ExceptionMapper instances (they are not proxyable by CDI because they use generic types, so they need to be @Dependent)

Updated Branches:
  refs/heads/develop 12e7195ec -> f6264636e


- fixed injection of ExceptionMapper instances (they are not proxyable by CDI because they use generic types, so they need to be @Dependent)


Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/f6264636
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/f6264636
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/f6264636

Branch: refs/heads/develop
Commit: f6264636e4d69e9cf460490ca297c0c716c7460a
Parents: 12e7195
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Tue Jul 9 15:43:54 2013 +0200
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Tue Jul 9 15:43:54 2013 +0200

----------------------------------------------------------------------
 .../platform/core/api/jaxrs/ExceptionMapperService.java  |  3 +++
 .../platform/core/jaxrs/IllegalStateExceptionMapper.java |  3 ++-
 .../platform/core/jaxrs/MarmottaExceptionMapper.java     |  3 ++-
 .../core/jaxrs/MarmottaImportExceptionMapper.java        |  3 ++-
 .../platform/core/jaxrs/RepositoryExceptionMapper.java   |  3 ++-
 .../platform/core/jaxrs/URISyntaxExceptionMapper.java    |  2 ++
 .../core/jaxrs/UnsupportedOperationExceptionMapper.java  |  3 ++-
 .../core/services/jaxrs/ExceptionMapperServiceImpl.java  | 11 ++++++++---
 8 files changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/jaxrs/ExceptionMapperService.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/jaxrs/ExceptionMapperService.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/jaxrs/ExceptionMapperService.java
index d5a9cf4..970f6ee 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/jaxrs/ExceptionMapperService.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/jaxrs/ExceptionMapperService.java
@@ -21,6 +21,9 @@ package org.apache.marmotta.platform.core.api.jaxrs;
  * This service auto-registers JAX-RS exception mappers implementing the CDIExceptionMapper interface and
  * registers them with RESTEasy. This allows applications based on Marmotta to easily implement and register their
  * own ExceptionMapppers without needing to go into RESTEasy.
+ * <p/>
+ * Note that ExceptionMappers that are injected via CDI need to be annotated with @Dependent, or otherwise
+ * they will be proxied by the CDI implementation and then the generic type cannot be determined.
  *
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/IllegalStateExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/IllegalStateExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/IllegalStateExceptionMapper.java
index 8af0c0a..9dfe1c6 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/IllegalStateExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/IllegalStateExceptionMapper.java
@@ -18,6 +18,7 @@
 package org.apache.marmotta.platform.core.jaxrs;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 
@@ -27,7 +28,7 @@ import javax.ws.rs.ext.Provider;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
-@ApplicationScoped
+@Dependent
 public class IllegalStateExceptionMapper implements CDIExceptionMapper<IllegalStateException> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaExceptionMapper.java
index 1a84e70..51b3d88 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaExceptionMapper.java
@@ -20,6 +20,7 @@ package org.apache.marmotta.platform.core.jaxrs;
 import org.apache.marmotta.platform.core.exception.MarmottaException;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 
@@ -29,7 +30,7 @@ import javax.ws.rs.ext.Provider;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
-@ApplicationScoped
+@Dependent
 public class MarmottaExceptionMapper implements CDIExceptionMapper<MarmottaException> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaImportExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaImportExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaImportExceptionMapper.java
index 665ae9b..9b67df1 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaImportExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/MarmottaImportExceptionMapper.java
@@ -20,6 +20,7 @@ package org.apache.marmotta.platform.core.jaxrs;
 import org.apache.marmotta.platform.core.exception.io.MarmottaImportException;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 
@@ -29,7 +30,7 @@ import javax.ws.rs.ext.Provider;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
-@ApplicationScoped
+@Dependent
 public class MarmottaImportExceptionMapper implements CDIExceptionMapper<MarmottaImportException> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/RepositoryExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/RepositoryExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/RepositoryExceptionMapper.java
index 32aeb78..42ddb08 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/RepositoryExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/RepositoryExceptionMapper.java
@@ -20,6 +20,7 @@ package org.apache.marmotta.platform.core.jaxrs;
 import org.openrdf.repository.RepositoryException;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 
@@ -29,7 +30,7 @@ import javax.ws.rs.ext.Provider;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
-@ApplicationScoped
+@Dependent
 public class RepositoryExceptionMapper implements CDIExceptionMapper<RepositoryException> {
 
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/URISyntaxExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/URISyntaxExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/URISyntaxExceptionMapper.java
index 98d643e..ffbc66f 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/URISyntaxExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/URISyntaxExceptionMapper.java
@@ -17,6 +17,7 @@
 
 package org.apache.marmotta.platform.core.jaxrs;
 
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 import java.net.URISyntaxException;
@@ -27,6 +28,7 @@ import java.net.URISyntaxException;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
+@Dependent
 public class URISyntaxExceptionMapper implements CDIExceptionMapper<URISyntaxException> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/UnsupportedOperationExceptionMapper.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/UnsupportedOperationExceptionMapper.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/UnsupportedOperationExceptionMapper.java
index a2c88e8..1a0f65e 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/UnsupportedOperationExceptionMapper.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/jaxrs/UnsupportedOperationExceptionMapper.java
@@ -18,6 +18,7 @@
 package org.apache.marmotta.platform.core.jaxrs;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
 
@@ -27,7 +28,7 @@ import javax.ws.rs.ext.Provider;
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
 @Provider
-@ApplicationScoped
+@Dependent
 public class UnsupportedOperationExceptionMapper implements CDIExceptionMapper<UnsupportedOperationException> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/f6264636/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/jaxrs/ExceptionMapperServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/jaxrs/ExceptionMapperServiceImpl.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/jaxrs/ExceptionMapperServiceImpl.java
index 88c3bf2..cfa0fa7 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/jaxrs/ExceptionMapperServiceImpl.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/jaxrs/ExceptionMapperServiceImpl.java
@@ -14,7 +14,12 @@ import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
 
 /**
- * Add file description here!
+ * This service auto-registers JAX-RS exception mappers implementing the CDIExceptionMapper interface and
+ * registers them with RESTEasy. This allows applications based on Marmotta to easily implement and register their
+ * own ExceptionMapppers without needing to go into RESTEasy.
+ * <p/>
+ * Note that ExceptionMappers that are injected via CDI need to be annotated with @Dependent, or otherwise
+ * they will be proxied by the CDI implementation and then the generic type cannot be determined.
  *
  * @author Sebastian Schaffert (sschaffert@apache.org)
  */
@@ -25,7 +30,7 @@ public class ExceptionMapperServiceImpl implements ExceptionMapperService {
     private Logger log;
 
     @Inject
-    private Instance<CDIExceptionMapper> mappers;
+    private Instance<CDIExceptionMapper<?>> mappers;
 
     /**
      * Register Exception Mappers
@@ -36,7 +41,7 @@ public class ExceptionMapperServiceImpl implements ExceptionMapperService {
 
         ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance();
 
-        for(CDIExceptionMapper mapper : mappers) {
+        for(CDIExceptionMapper<?> mapper : mappers) {
             log.debug("registering exception mapper: {}", mapper.getClass().getName());
 
             factory.registerProviderInstance(mapper);