killbill-aplcache

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
index ff9c9fe..6595ca7 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
@@ -110,22 +110,39 @@ public class CatalogResource extends JaxRsResourceBase {
         this.subscriptionApi = subscriptionApi;
     }
 
+    //
+    // We mark this resource as hidden from a swagger point of view and create another one with a different Path below
+    // to hack around the restrictions of having only one type of HTTP verb per Path
+    // see https://github.com/killbill/killbill/issues/913
+    //
     @TimedResource
     @GET
     @Produces(TEXT_XML)
-    @ApiOperation(value = "Retrieve the full catalog as XML", response = String.class)
+    @ApiOperation(value = "Retrieve the full catalog as XML", response = String.class, hidden = true)
     @ApiResponses(value = {})
-    public Response getCatalogXml(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
+    public Response getCatalogXmlOriginal(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
         final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
         return Response.status(Status.OK).entity(XMLWriter.writeXML((VersionedCatalog) catalogUserApi.getCatalog(catalogName, tenantContext), VersionedCatalog.class)).build();
     }
 
     @TimedResource
+    @Path("/xml")
+    @GET
+    @Produces(TEXT_XML)
+    @ApiOperation(value = "Retrieve the full catalog as XML", response = String.class)
+    @ApiResponses(value = {})
+    public Response getCatalogXml(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
+        return getCatalogXmlOriginal(request);
+    }
+
+
+
+    @TimedResource
     @POST
     @Consumes(TEXT_XML)
-    @ApiOperation(value = "Upload the full catalog as XML")
+    @ApiOperation(value = "Upload the full catalog as XML", hidden=true)
     @ApiResponses(value = {})
-    public Response uploadCatalogXml(final String catalogXML,
+    public Response uploadCatalogXmlOriginal(final String catalogXML,
                                      @HeaderParam(HDR_CREATED_BY) final String createdBy,
                                      @HeaderParam(HDR_REASON) final String reason,
                                      @HeaderParam(HDR_COMMENT) final String comment,
@@ -137,9 +154,25 @@ public class CatalogResource extends JaxRsResourceBase {
     }
 
     @TimedResource
+    @POST
+    @Path("/xml")
+    @Consumes(TEXT_XML)
+    @ApiOperation(value = "Upload the full catalog as XML")
+    @ApiResponses(value = {})
+    public Response uploadCatalogXml(final String catalogXML,
+                                     @HeaderParam(HDR_CREATED_BY) final String createdBy,
+                                     @HeaderParam(HDR_REASON) final String reason,
+                                     @HeaderParam(HDR_COMMENT) final String comment,
+                                     @javax.ws.rs.core.Context final HttpServletRequest request,
+                                     @javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
+        return uploadCatalogXmlOriginal(catalogXML, createdBy, reason, comment, request, uriInfo);
+    }
+
+
+    @TimedResource
     @GET
     @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve the catalog as JSON", response = StaticCatalog.class)
+    @ApiOperation(value = "Retrieve the catalog as JSON", responseContainer = "List", response = CatalogJson.class)
     @ApiResponses(value = {})
     public Response getCatalogJson(@QueryParam(QUERY_REQUESTED_DT) final String requestedDate,
                                    @javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/KillBillApiDefinition.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/KillBillApiDefinition.java
index ef77f0d..b7b9530 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/KillBillApiDefinition.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/KillBillApiDefinition.java
@@ -19,13 +19,9 @@ package org.killbill.billing.jaxrs.resources;
 
 import java.util.List;
 
-import javax.annotation.Nullable;
-
 import org.killbill.billing.util.api.AuditLevel;
-import org.killbill.billing.util.audit.AuditLog;
 
 import com.google.common.base.Function;
-import com.google.common.base.Functions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import io.swagger.annotations.SwaggerDefinition;
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
index 9292e62..576cd76 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
@@ -80,27 +80,63 @@ public class OverdueResource extends JaxRsResourceBase {
         this.overdueApi = overdueApi;
     }
 
+    //
+    // We mark this resource as hidden from a swagger point of view and create another one with a different Path below
+    // to hack around the restrictions of having only one type of HTTP verb per Path
+    // see https://github.com/killbill/killbill/issues/913
+    //
     @TimedResource
     @GET
     @Produces(TEXT_XML)
+    @ApiOperation(value = "Retrieve the overdue config as XML", response = String.class, hidden=true)
+    @ApiResponses(value = {})
+    public Response getOverdueConfigXmlOriginal(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
+        final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
+        return Response.status(Status.OK).entity(XMLWriter.writeXML((DefaultOverdueConfig) overdueApi.getOverdueConfig(tenantContext), DefaultOverdueConfig.class)).build();
+    }
+
+    @TimedResource
+    @GET
+    @Path("/xml")
+    @Produces(TEXT_XML)
     @ApiOperation(value = "Retrieve the overdue config as XML", response = String.class)
     @ApiResponses(value = {})
     public Response getOverdueConfigXml(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
+        return getOverdueConfigXmlOriginal(request);
+    }
+
+
+
+    @TimedResource
+    @GET
+    @Produces(APPLICATION_JSON)
+    @ApiOperation(value = "Retrieve the overdue config as JSON", response = OverdueJson.class)
+    @ApiResponses(value = {})
+    public Response getOverdueConfigJson(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
         final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
-        return Response.status(Status.OK).entity(XMLWriter.writeXML((DefaultOverdueConfig) overdueApi.getOverdueConfig(tenantContext), DefaultOverdueConfig.class)).build();
+        final OverdueConfig overdueConfig = overdueApi.getOverdueConfig(tenantContext);
+        final OverdueJson result = new OverdueJson(overdueConfig);
+        return Response.status(Status.OK).entity(result).build();
     }
 
+
+
+    //
+    // We mark this resource as hidden from a swagger point of view and create another one with a different Path below
+    // to hack around the restrictions of having only one type of HTTP verb per Path
+    // see https://github.com/killbill/killbill/issues/913
+    //
     @TimedResource
     @POST
     @Consumes(TEXT_XML)
-    @ApiOperation(value = "Upload the full overdue config as XML")
+    @ApiOperation(value = "Upload the full overdue config as XML", hidden=true)
     @ApiResponses(value = {})
-    public Response uploadOverdueConfigXml(final String overdueXML,
-                                           @HeaderParam(HDR_CREATED_BY) final String createdBy,
-                                           @HeaderParam(HDR_REASON) final String reason,
-                                           @HeaderParam(HDR_COMMENT) final String comment,
-                                           @javax.ws.rs.core.Context final HttpServletRequest request,
-                                           @javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
+    public Response uploadOverdueConfigXmlOriginal(final String overdueXML,
+                                                   @HeaderParam(HDR_CREATED_BY) final String createdBy,
+                                                   @HeaderParam(HDR_REASON) final String reason,
+                                                   @HeaderParam(HDR_COMMENT) final String comment,
+                                                   @javax.ws.rs.core.Context final HttpServletRequest request,
+                                                   @javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
         // Validation purpose:  Will throw if bad XML or catalog validation fails
         final InputStream stream = new ByteArrayInputStream(overdueXML.getBytes());
         XMLLoader.getObjectFromStream(new URI(JaxrsResource.OVERDUE_PATH), stream, DefaultOverdueConfig.class);
@@ -111,17 +147,21 @@ public class OverdueResource extends JaxRsResourceBase {
     }
 
     @TimedResource
-    @GET
-    @Produces(APPLICATION_JSON)
-    @ApiOperation(value = "Retrieve the overdue config as JSON", response = OverdueJson.class)
+    @POST
+    @Path("/xml")
+    @Consumes(TEXT_XML)
+    @ApiOperation(value = "Upload the full overdue config as XML")
     @ApiResponses(value = {})
-    public Response getOverdueConfigJson(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
-        final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
-        final OverdueConfig overdueConfig = overdueApi.getOverdueConfig(tenantContext);
-        final OverdueJson result = new OverdueJson(overdueConfig);
-        return Response.status(Status.OK).entity(result).build();
+    public Response uploadOverdueConfigXml(final String overdueXML,
+                                                   @HeaderParam(HDR_CREATED_BY) final String createdBy,
+                                                   @HeaderParam(HDR_REASON) final String reason,
+                                                   @HeaderParam(HDR_COMMENT) final String comment,
+                                                   @javax.ws.rs.core.Context final HttpServletRequest request,
+                                                   @javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
+        return uploadOverdueConfigXmlOriginal(overdueXML, createdBy, reason, comment, request, uriInfo);
     }
 
+
     @TimedResource
     @POST
     @Consumes(APPLICATION_JSON)