killbill-memoizeit

jaxrs: add sane default response for all mappers Signed-off-by:

7/18/2012 6:53:12 PM

Details

diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BillingExceptionBaseMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BillingExceptionBaseMapper.java
index 865aefe..fc19514 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BillingExceptionBaseMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BillingExceptionBaseMapper.java
@@ -16,17 +16,27 @@
 
 package com.ning.billing.jaxrs.mappers;
 
+import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
 import com.ning.billing.BillingExceptionBase;
 
+@Singleton
 @Provider
 public class BillingExceptionBaseMapper extends ExceptionMapperBase implements ExceptionMapper<BillingExceptionBase> {
 
+    private final UriInfo uriInfo;
+
+    public BillingExceptionBaseMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final BillingExceptionBase exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BlockingApiExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BlockingApiExceptionMapper.java
index c52dbf3..cf38364 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BlockingApiExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/BlockingApiExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.junction.api.BlockingApiException;
 @Provider
 public class BlockingApiExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<BlockingApiException> {
 
+    private final UriInfo uriInfo;
+
+    public BlockingApiExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final BlockingApiException exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CatalogApiExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CatalogApiExceptionMapper.java
index 096978d..7a4cf86 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CatalogApiExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CatalogApiExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.catalog.api.CatalogApiException;
 @Provider
 public class CatalogApiExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<CatalogApiException> {
 
+    private final UriInfo uriInfo;
+
+    public CatalogApiExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final CatalogApiException exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CurrencyValueNullMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CurrencyValueNullMapper.java
index d985847..6ec1e78 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CurrencyValueNullMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/CurrencyValueNullMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.catalog.api.CurrencyValueNull;
 @Provider
 public class CurrencyValueNullMapper extends ExceptionMapperBase implements ExceptionMapper<CurrencyValueNull> {
 
+    private final UriInfo uriInfo;
+
+    public CurrencyValueNullMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final CurrencyValueNull exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EmailApiExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EmailApiExceptionMapper.java
index 4154b27..2b47f7a 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EmailApiExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EmailApiExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.util.email.EmailApiException;
 @Provider
 public class EmailApiExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<EmailApiException> {
 
+    private final UriInfo uriInfo;
+
+    public EmailApiExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final EmailApiException exception) {
-        return null;
+        return buildInternalErrorResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntitlementBillingApiExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntitlementBillingApiExceptionMapper.java
index f9b1c32..9ca7de6 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntitlementBillingApiExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntitlementBillingApiExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.entitlement.api.billing.EntitlementBillingApiException;
 @Provider
 public class EntitlementBillingApiExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<EntitlementBillingApiException> {
 
+    private final UriInfo uriInfo;
+
+    public EntitlementBillingApiExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final EntitlementBillingApiException exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntityPersistenceExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntityPersistenceExceptionMapper.java
index 51e46a6..b68f6ad 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntityPersistenceExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/EntityPersistenceExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.util.entity.EntityPersistenceException;
 @Provider
 public class EntityPersistenceExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<EntityPersistenceException> {
 
+    private final UriInfo uriInfo;
+
+    public EntityPersistenceExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final EntityPersistenceException exception) {
-        return null;
+        return buildInternalErrorResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/IllegalPlanChangeMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/IllegalPlanChangeMapper.java
index f680110..cab1d81 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/IllegalPlanChangeMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/IllegalPlanChangeMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.catalog.api.IllegalPlanChange;
 @Provider
 public class IllegalPlanChangeMapper extends ExceptionMapperBase implements ExceptionMapper<IllegalPlanChange> {
 
+    private final UriInfo uriInfo;
+
+    public IllegalPlanChangeMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final IllegalPlanChange exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueApiExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueApiExceptionMapper.java
index f1cb69f..bbfac5f 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueApiExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueApiExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.overdue.OverdueApiException;
 @Provider
 public class OverdueApiExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<OverdueApiException> {
 
+    private final UriInfo uriInfo;
+
+    public OverdueApiExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final OverdueApiException exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueErrorMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueErrorMapper.java
index 9ca2de5..98ac732 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueErrorMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/OverdueErrorMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -27,8 +29,14 @@ import com.ning.billing.overdue.config.api.OverdueError;
 @Provider
 public class OverdueErrorMapper extends ExceptionMapperBase implements ExceptionMapper<OverdueError> {
 
+    private final UriInfo uriInfo;
+
+    public OverdueErrorMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final OverdueError exception) {
-        return null;
+        return buildBadRequestResponse(exception, uriInfo);
     }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/RuntimeExceptionMapper.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/RuntimeExceptionMapper.java
index 757448c..533ff16 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/RuntimeExceptionMapper.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/mappers/RuntimeExceptionMapper.java
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.mappers;
 
 import javax.inject.Singleton;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 
@@ -25,8 +27,14 @@ import javax.ws.rs.ext.Provider;
 @Provider
 public class RuntimeExceptionMapper extends ExceptionMapperBase implements ExceptionMapper<RuntimeException> {
 
+    private final UriInfo uriInfo;
+
+    public RuntimeExceptionMapper(@Context final UriInfo uriInfo) {
+        this.uriInfo = uriInfo;
+    }
+
     @Override
     public Response toResponse(final RuntimeException exception) {
-        return null;
+        return buildInternalErrorResponse(exception, uriInfo);
     }
 }