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);