Details
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/glue/DefaultJaxrsModule.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/glue/DefaultJaxrsModule.java
index f19b31d..e8292d4 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/glue/DefaultJaxrsModule.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/glue/DefaultJaxrsModule.java
@@ -20,6 +20,7 @@ package org.killbill.billing.jaxrs.glue;
import org.killbill.billing.jaxrs.DefaultJaxrsService;
import org.killbill.billing.jaxrs.JaxrsExecutors;
import org.killbill.billing.jaxrs.JaxrsService;
+import org.killbill.billing.jaxrs.util.JaxrsUriBuilder;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.glue.KillBillModule;
@@ -36,7 +37,7 @@ public class DefaultJaxrsModule extends KillBillModule {
final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(skifeConfigSource);
final JaxrsConfig jaxrsConfig = factory.build(JaxrsConfig.class);
bind(JaxrsConfig.class).toInstance(jaxrsConfig);
-
+ bind(JaxrsUriBuilder.class).asEagerSingleton();
bind(JaxrsExecutors.class).asEagerSingleton();
bind(JaxrsService.class).to(DefaultJaxrsService.class).asEagerSingleton();
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
index 6d4c2ce..ca85ff4 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
@@ -333,7 +333,7 @@ public class AccountResource extends JaxRsResourceBase {
final AccountData data = json.toAccountData();
final Account account = accountUserApi.createAccount(data, context.createContext(createdBy, reason, comment, request));
- return uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", account.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", account.getId());
}
@TimedResource
@@ -979,7 +979,7 @@ public class AccountResource extends JaxRsResourceBase {
default:
return Response.status(Status.PRECONDITION_FAILED).entity("TransactionType " + transactionType + " is not allowed for an account").build();
}
- return createPaymentResponse(uriInfo, result, transactionType, json.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, result, transactionType, json.getTransactionExternalKey());
}
/*
@@ -1033,7 +1033,7 @@ public class AccountResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields, context.createContext(createdBy, reason,
- comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ comment, request), uriInfo);
}
@TimedResource
@@ -1207,7 +1207,7 @@ public class AccountResource extends JaxRsResourceBase {
accountUserApi.addEmail(accountId, json.toAccountEmail(UUIDs.randomUUID()), callContext);
}
- return uriBuilder.buildResponse(uriInfo, AccountResource.class, "getEmails", json.getAccountId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, AccountResource.class, "getEmails", json.getAccountId());
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
index ec604c3..d74eacd 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
@@ -68,7 +68,6 @@ import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AccountAuditLogs;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -91,7 +90,6 @@ public class BundleResource extends JaxRsResourceBase {
private final SubscriptionApi subscriptionApi;
private final EntitlementApi entitlementApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public BundleResource(final JaxrsUriBuilder uriBuilder,
@@ -103,12 +101,10 @@ public class BundleResource extends JaxRsResourceBase {
final EntitlementApi entitlementApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.entitlementApi = entitlementApi;
this.subscriptionApi = subscriptionApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -321,7 +317,7 @@ public class BundleResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ context.createContext(createdBy, reason, comment, request), uriInfo);
}
@TimedResource
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 fe1a911..eddf1b9 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
@@ -51,7 +51,6 @@ import org.killbill.billing.util.api.CustomFieldUserApi;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
import org.killbill.xmlloader.XMLWriter;
@@ -71,7 +70,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_XML;
public class CatalogResource extends JaxRsResourceBase {
private final CatalogUserApi catalogUserApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public CatalogResource(final JaxrsUriBuilder uriBuilder,
@@ -82,11 +80,9 @@ public class CatalogResource extends JaxRsResourceBase {
final PaymentApi paymentApi,
final CatalogUserApi catalogUserApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.catalogUserApi = catalogUserApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -112,7 +108,7 @@ public class CatalogResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
catalogUserApi.uploadCatalog(catalogXML, callContext);
- return uriBuilder.buildResponse(uriInfo, CatalogResource.class, null, null, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, CatalogResource.class, null, null);
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
index c0b896a..bfad1b1 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
@@ -47,7 +47,6 @@ import org.killbill.billing.util.api.CustomFieldUserApi;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import com.google.inject.Inject;
@@ -66,7 +65,6 @@ public class CreditResource extends JaxRsResourceBase {
private final InvoiceUserApi invoiceUserApi;
private final AccountUserApi accountUserApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public CreditResource(final InvoiceUserApi invoiceUserApi,
@@ -77,12 +75,10 @@ public class CreditResource extends JaxRsResourceBase {
final AuditUserApi auditUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.invoiceUserApi = invoiceUserApi;
this.accountUserApi = accountUserApi;
- this.jaxrsConfig = jaxrsConfig;
}
@GET
@@ -132,7 +128,7 @@ public class CreditResource extends JaxRsResourceBase {
account.getCurrency(), callContext);
}
- return uriBuilder.buildResponse(uriInfo, CreditResource.class, "getCredit", credit.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, CreditResource.class, "getCredit", credit.getId());
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
index c34dd2f..a7b2c9a 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
@@ -66,7 +66,6 @@ import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AccountAuditLogs;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -88,7 +87,6 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
private static final String ID_PARAM_NAME = "paymentId";
private final InvoicePaymentApi invoicePaymentApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public InvoicePaymentResource(final AccountUserApi accountUserApi,
@@ -99,11 +97,9 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
final AuditUserApi auditUserApi,
final InvoicePaymentApi invoicePaymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.invoicePaymentApi = invoicePaymentApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -211,7 +207,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
final Payment result = paymentApi.createChargebackWithPaymentControl(account, payment.getId(), json.getAmount(), account.getCurrency(),
transactionExternalKey, createInvoicePaymentControlPluginApiPaymentOptions(false), callContext);
- return uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getId());
}
@TimedResource
@@ -241,7 +237,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ context.createContext(createdBy, reason, comment, request), uriInfo);
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index 1ebc646..dcb2738 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -103,7 +103,6 @@ import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AccountAuditLogs;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import org.killbill.clock.ClockUtil;
@@ -141,7 +140,6 @@ public class InvoiceResource extends JaxRsResourceBase {
private final InvoiceNotifier invoiceNotifier;
private final TenantUserApi tenantApi;
private final Locale defaultLocale;
- private final JaxrsConfig jaxrsConfig;
private static final Ordering<InvoicePaymentJson> INVOICE_PAYMENT_ORDERING = Ordering.from(new Comparator<InvoicePaymentJson>() {
@Override
@@ -161,14 +159,12 @@ public class InvoiceResource extends JaxRsResourceBase {
final CustomFieldUserApi customFieldUserApi,
final AuditUserApi auditUserApi,
final TenantUserApi tenantApi,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.invoiceApi = invoiceApi;
this.invoiceNotifier = invoiceNotifier;
this.tenantApi = tenantApi;
this.defaultLocale = Locale.getDefault();
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -311,7 +307,7 @@ public class InvoiceResource extends JaxRsResourceBase {
try {
final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(UUID.fromString(accountId), inputDate, null,
callContext);
- return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", generatedInvoice.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", generatedInvoice.getId());
} catch (InvoiceApiException e) {
if (e.getCode() == ErrorCode.INVOICE_NOTHING_TO_DO.getCode()) {
return Response.status(Status.NOT_FOUND).build();
@@ -448,7 +444,7 @@ public class InvoiceResource extends JaxRsResourceBase {
callContext);
}
- return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", adjustmentItem.getInvoiceId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", adjustmentItem.getInvoiceId());
}
@TimedResource
@@ -618,7 +614,7 @@ public class InvoiceResource extends JaxRsResourceBase {
final Payment result = createPurchaseForInvoice(account, invoiceId, payment.getPurchasedAmount(), paymentMethodId, externalPayment, pluginProperties, callContext);
return result != null ?
- uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl()) :
+ uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getId()) :
Response.status(Status.NO_CONTENT).build();
}
@@ -833,7 +829,7 @@ public class InvoiceResource extends JaxRsResourceBase {
}
}
tenantApi.addTenantKeyValue(tenantKeyStr, templateResource, callContext);
- return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, getMethodStr, localeStr, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, getMethodStr, localeStr);
}
private Response getTemplateResource(@Nullable final String localeStr,
@@ -874,7 +870,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ context.createContext(createdBy, reason, comment, request), uriInfo);
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
index cc836b0..19a8d26 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
@@ -83,7 +83,6 @@ import org.killbill.billing.util.audit.AccountAuditLogsForObjectType;
import org.killbill.billing.util.audit.AuditLog;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.customfield.CustomField;
import org.killbill.billing.util.customfield.StringCustomField;
import org.killbill.billing.util.entity.Entity;
@@ -219,8 +218,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
protected Response createCustomFields(final UUID id,
final List<CustomFieldJson> customFields,
final CallContext context,
- final UriInfo uriInfo,
- final boolean jaxrsPathLikeUrl) throws CustomFieldApiException {
+ final UriInfo uriInfo) throws CustomFieldApiException {
final LinkedList<CustomField> input = new LinkedList<CustomField>();
for (final CustomFieldJson cur : customFields) {
verifyNonNullOrEmpty(cur.getName(), "CustomFieldJson name needs to be set");
@@ -229,7 +227,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
}
customFieldUserApi.addCustomFields(input, context);
- return uriBuilder.buildResponse(uriInfo, this.getClass(), "getCustomFields", id, jaxrsPathLikeUrl);
+ return uriBuilder.buildResponse(uriInfo, this.getClass(), "getCustomFields", id);
}
/**
@@ -547,7 +545,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
}
protected Response createPaymentResponse(final UriInfo uriInfo, final Payment payment, final TransactionType transactionType,
- @Nullable final String transactionExternalKey, final boolean jaxrsPathLikeUrl) {
+ @Nullable final String transactionExternalKey) {
final PaymentTransaction createdTransaction = findCreatedTransaction(payment, transactionType, transactionExternalKey);
Preconditions.checkNotNull(createdTransaction, "No transaction of type '%s' found", transactionType);
@@ -556,7 +554,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
switch (createdTransaction.getTransactionStatus()) {
case PENDING:
case SUCCESS:
- return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", payment.getId(), jaxrsPathLikeUrl);
+ return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", payment.getId());
case PAYMENT_FAILURE:
// 402 - Payment Required
responseBuilder = Response.status(402);
@@ -583,7 +581,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
exception = createBillingException("This should never have happened!!!");
}
addExceptionToResponse(responseBuilder, exception);
- return responseBuilder.location(getPaymentLocation(uriInfo, payment, jaxrsPathLikeUrl)).build();
+ return responseBuilder.location(getPaymentLocation(uriInfo, payment)).build();
}
private void addExceptionToResponse(final ResponseBuilder responseBuilder, final BillingExceptionJson exception) {
@@ -601,8 +599,8 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
return exception;
}
- private URI getPaymentLocation(final UriInfo uriInfo, final Payment payment, final boolean jaxrsPathLikeUrl) {
- return uriBuilder.buildLocation(uriInfo, PaymentResource.class, "getPayment", payment.getId(), jaxrsPathLikeUrl);
+ private URI getPaymentLocation(final UriInfo uriInfo, final Payment payment) {
+ return uriBuilder.buildLocation(uriInfo, PaymentResource.class, "getPayment", payment.getId());
}
private PaymentTransaction findCreatedTransaction(final Payment payment, final TransactionType transactionType, @Nullable final String transactionExternalKey) {
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 481fc4a..bfe8b11 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
@@ -43,7 +43,6 @@ import org.killbill.billing.util.api.CustomFieldUserApi;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
import org.killbill.xmlloader.XMLLoader;
@@ -63,7 +62,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_XML;
public class OverdueResource extends JaxRsResourceBase {
private final OverdueApi overdueApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public OverdueResource(final JaxrsUriBuilder uriBuilder,
@@ -74,11 +72,9 @@ public class OverdueResource extends JaxRsResourceBase {
final PaymentApi paymentApi,
final OverdueApi overdueApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.overdueApi = overdueApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -108,6 +104,6 @@ public class OverdueResource extends JaxRsResourceBase {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
overdueApi.uploadOverdueConfig(overdueXML, callContext);
- return uriBuilder.buildResponse(uriInfo, OverdueResource.class, null, null, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, OverdueResource.class, null, null);
}
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
index 4b632ff..731db34 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
@@ -59,7 +59,6 @@ import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AccountAuditLogs;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -81,8 +80,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
@Api(value = JaxrsResource.PAYMENT_METHODS_PATH, description = "Operations on payment methods")
public class PaymentMethodResource extends JaxRsResourceBase {
- private final JaxrsConfig jaxrsConfig;
-
@Inject
public PaymentMethodResource(final AccountUserApi accountUserApi,
final JaxrsUriBuilder uriBuilder,
@@ -91,10 +88,8 @@ public class PaymentMethodResource extends JaxRsResourceBase {
final AuditUserApi auditUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource(name = "getPaymentMethod")
@@ -307,7 +302,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(paymentMethodId), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ context.createContext(createdBy, reason, comment, request), uriInfo);
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
index c7742a4..bf820e2 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
@@ -66,7 +66,6 @@ import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AccountAuditLogs;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.MetricTag;
@@ -86,8 +85,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
@Api(value = JaxrsResource.PAYMENTS_PATH, description = "Operations on payments")
public class PaymentResource extends ComboPaymentResource {
- private final JaxrsConfig jaxrsConfig;
-
@Inject
public PaymentResource(final JaxrsUriBuilder uriBuilder,
final TagUserApi tagUserApi,
@@ -96,10 +93,8 @@ public class PaymentResource extends ComboPaymentResource {
final AccountUserApi accountUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource(name = "getPayment")
@@ -337,7 +332,7 @@ public class PaymentResource extends ComboPaymentResource {
default:
return Response.status(Status.PRECONDITION_FAILED).entity("TransactionType " + pendingTransaction.getTransactionType() + " cannot be completed").build();
}
- return createPaymentResponse(uriInfo, result, pendingTransaction.getTransactionType(), pendingTransaction.getExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, result, pendingTransaction.getTransactionType(), pendingTransaction.getExternalKey());
}
@TimedResource(name = "captureAuthorization")
@@ -413,7 +408,7 @@ public class PaymentResource extends ComboPaymentResource {
final Payment payment = paymentApi.createCaptureWithPaymentControl(account, initialPayment.getId(), json.getAmount(), currency,
json.getTransactionExternalKey(), pluginProperties, paymentOptions, callContext);
- return createPaymentResponse(uriInfo, payment, TransactionType.CAPTURE, json.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, payment, TransactionType.CAPTURE, json.getTransactionExternalKey());
}
@TimedResource(name = "refundPayment")
@@ -492,7 +487,7 @@ public class PaymentResource extends ComboPaymentResource {
final Payment payment = paymentApi.createRefundWithPaymentControl(account, initialPayment.getId(), json.getAmount(), currency,
json.getTransactionExternalKey(), pluginProperties, paymentOptions, callContext);
- return createPaymentResponse(uriInfo, payment, TransactionType.REFUND, json.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, payment, TransactionType.REFUND, json.getTransactionExternalKey());
}
@TimedResource(name = "voidPayment")
@@ -564,7 +559,7 @@ public class PaymentResource extends ComboPaymentResource {
final Payment payment = paymentApi.createVoidWithPaymentControl(account, initialPayment.getId(), transactionExternalKey,
pluginProperties, paymentOptions, callContext);
- return createPaymentResponse(uriInfo, payment, TransactionType.VOID, json.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, payment, TransactionType.VOID, json.getTransactionExternalKey());
}
@TimedResource(name = "chargebackPayment")
@@ -640,7 +635,7 @@ public class PaymentResource extends ComboPaymentResource {
final Payment payment = paymentApi.createChargebackWithPaymentControl(account, initialPayment.getId(), json.getAmount(), currency,
json.getTransactionExternalKey(), paymentOptions, callContext);
- return createPaymentResponse(uriInfo, payment, TransactionType.CHARGEBACK, json.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, payment, TransactionType.CHARGEBACK, json.getTransactionExternalKey());
}
@TimedResource
@@ -700,7 +695,7 @@ public class PaymentResource extends ComboPaymentResource {
default:
return Response.status(Status.PRECONDITION_FAILED).entity("TransactionType " + transactionType + " is not allowed for an account").build();
}
- return createPaymentResponse(uriInfo, result, transactionType, paymentTransactionJson.getTransactionExternalKey(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return createPaymentResponse(uriInfo, result, transactionType, paymentTransactionJson.getTransactionExternalKey());
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
index 4f77ac7..0efacbc 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
@@ -48,7 +48,6 @@ import org.killbill.billing.account.api.AccountUserApi;
import org.killbill.billing.catalog.api.BillingActionPolicy;
import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.CatalogApiException;
-import org.killbill.billing.catalog.api.CatalogUserApi;
import org.killbill.billing.catalog.api.PhaseType;
import org.killbill.billing.catalog.api.PlanPhasePriceOverride;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
@@ -86,7 +85,6 @@ import org.killbill.billing.util.api.TagDefinitionApiException;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.userrequest.CompletionUserRequestBase;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -114,7 +112,6 @@ public class SubscriptionResource extends JaxRsResourceBase {
private final KillbillEventHandler killbillHandler;
private final EntitlementApi entitlementApi;
private final SubscriptionApi subscriptionApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public SubscriptionResource(final KillbillEventHandler killbillHandler,
@@ -127,13 +124,11 @@ public class SubscriptionResource extends JaxRsResourceBase {
final AccountUserApi accountUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.killbillHandler = killbillHandler;
this.entitlementApi = entitlementApi;
this.subscriptionApi = subscriptionApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -223,7 +218,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@Override
public Response doResponseOk(final Entitlement createdEntitlement) {
- return uriBuilder.buildResponse(uriInfo, SubscriptionResource.class, "getEntitlement", createdEntitlement.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, SubscriptionResource.class, "getEntitlement", createdEntitlement.getId());
}
};
@@ -334,7 +329,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@Override
public Response doResponseOk(final Entitlement entitlement) {
- return uriBuilder.buildResponse(uriInfo, BundleResource.class, "getBundle", entitlement.getBundleId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, BundleResource.class, "getBundle", entitlement.getBundleId());
}
};
@@ -624,7 +619,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ context.createContext(createdBy, reason, comment, request), uriInfo);
}
@DELETE
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
index 59c8186..f5536f2 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
@@ -48,7 +48,6 @@ import org.killbill.billing.util.api.TagDefinitionApiException;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.audit.AuditLog;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.billing.util.tag.TagDefinition;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -67,8 +66,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
@Api(value = JaxrsResource.TAG_DEFINITIONS_PATH, description = "Operations on tag definitions")
public class TagDefinitionResource extends JaxRsResourceBase {
- private final JaxrsConfig jaxrsConfig;
-
@Inject
public TagDefinitionResource(final JaxrsUriBuilder uriBuilder,
final TagUserApi tagUserApi,
@@ -77,10 +74,8 @@ public class TagDefinitionResource extends JaxRsResourceBase {
final AccountUserApi accountUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -136,7 +131,7 @@ public class TagDefinitionResource extends JaxRsResourceBase {
json.getDescription(), "TagDefinition description needs to be set");
final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), context.createContext(createdBy, reason, comment, request));
- return uriBuilder.buildResponse(uriInfo, TagDefinitionResource.class, "getTagDefinition", createdTagDef.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, TagDefinitionResource.class, "getTagDefinition", createdTagDef.getId());
}
@TimedResource
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
index d68388c..8ff2b14 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
@@ -51,7 +51,6 @@ import org.killbill.billing.util.api.CustomFieldUserApi;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -71,7 +70,6 @@ import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
public class TenantResource extends JaxRsResourceBase {
private final TenantUserApi tenantApi;
- private final JaxrsConfig jaxrsConfig;
@Inject
public TenantResource(final TenantUserApi tenantApi,
@@ -82,11 +80,9 @@ public class TenantResource extends JaxRsResourceBase {
final AccountUserApi accountUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
this.tenantApi = tenantApi;
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -129,7 +125,7 @@ public class TenantResource extends JaxRsResourceBase {
final TenantData data = json.toTenantData();
final Tenant tenant = tenantApi.createTenant(data, context.createContext(createdBy, reason, comment, request));
- return uriBuilder.buildResponse(uriInfo, TenantResource.class, "getTenant", tenant.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, TenantResource.class, "getTenant", tenant.getId());
}
@TimedResource
@@ -228,7 +224,7 @@ public class TenantResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo) throws TenantApiException {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
tenantApi.addTenantKeyValue(key, value, callContext);
- return uriBuilder.buildResponse(uriInfo, TenantResource.class, "getUserKeyValue", key, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, TenantResource.class, "getUserKeyValue", key);
}
@TimedResource
@@ -276,7 +272,7 @@ public class TenantResource extends JaxRsResourceBase {
final String tenantKey = keyPostfix != null ? key.toString() + keyPostfix : key.toString();
tenantApi.addTenantKeyValue(tenantKey, value, callContext);
- return uriBuilder.buildResponse(uriInfo, TenantResource.class, getMethodStr, keyPostfix, jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, TenantResource.class, getMethodStr, keyPostfix);
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
index a4d27dd..f994dd7 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
@@ -46,7 +46,6 @@ import org.killbill.billing.util.api.AuditUserApi;
import org.killbill.billing.util.api.CustomFieldUserApi;
import org.killbill.billing.util.api.TagUserApi;
import org.killbill.billing.util.callcontext.CallContext;
-import org.killbill.billing.util.config.JaxrsConfig;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
@@ -62,8 +61,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
@Api(value = JaxrsResource.PAYMENT_TRANSACTIONS_PATH, description = "Operations on payment transactions")
public class TransactionResource extends JaxRsResourceBase {
- private final JaxrsConfig jaxrsConfig;
-
@Inject
public TransactionResource(final JaxrsUriBuilder uriBuilder,
final TagUserApi tagUserApi,
@@ -72,10 +69,8 @@ public class TransactionResource extends JaxRsResourceBase {
final AccountUserApi accountUserApi,
final PaymentApi paymentApi,
final Clock clock,
- final JaxrsConfig jaxrsConfig,
final Context context) {
super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, paymentApi, clock, context);
- this.jaxrsConfig = jaxrsConfig;
}
@TimedResource
@@ -105,7 +100,7 @@ public class TransactionResource extends JaxRsResourceBase {
final boolean success = TransactionStatus.SUCCESS.name().equals(json.getStatus());
final Payment result = paymentApi.notifyPendingTransactionOfStateChanged(account, UUID.fromString(transactionIdStr), success, callContext);
- return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", result.getId(), jaxrsConfig.getJaxrsReturnPathLikeUrl());
+ return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", result.getId());
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/JaxrsUriBuilder.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/JaxrsUriBuilder.java
index 6146fe7..d4449fc 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/JaxrsUriBuilder.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/JaxrsUriBuilder.java
@@ -20,6 +20,7 @@ import java.net.URI;
import java.util.Map;
import javax.annotation.Nullable;
+import javax.inject.Inject;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
@@ -27,20 +28,28 @@ import javax.ws.rs.core.UriInfo;
import org.killbill.billing.jaxrs.resources.JaxRsResourceBase;
import org.killbill.billing.jaxrs.resources.JaxrsResource;
+import org.killbill.billing.util.config.JaxrsConfig;
public class JaxrsUriBuilder {
+ private final JaxrsConfig jaxrsConfig;
+
+ @Inject
+ public JaxrsUriBuilder(JaxrsConfig jaxrsConfig) {
+ this.jaxrsConfig = jaxrsConfig;
+ }
+
public Response buildResponse(final UriInfo uriInfo, final Class<? extends JaxrsResource> theClass,
- final String getMethodName, final Object objectId, final boolean pathLikeUrl) {
- final URI location = buildLocation(uriInfo, theClass, getMethodName, objectId, pathLikeUrl);
- return pathLikeUrl ? Response.ok().header("Location", location.getPath()).build() : Response.created(location).build();
+ final String getMethodName, final Object objectId) {
+ final URI location = buildLocation(uriInfo, theClass, getMethodName, objectId);
+ return !jaxrsConfig.isJaxrsLocationFullUrl() ? Response.ok().header("Location", location.getPath()).build() : Response.created(location).build();
}
public URI buildLocation(final UriInfo uriInfo, final Class<? extends JaxrsResource> theClass,
- final String getMethodName, final Object objectId, final boolean pathLikeUrl) {
+ final String getMethodName, final Object objectId) {
final UriBuilder uriBuilder = getUriBuilder(uriInfo.getBaseUri().getPath(), theClass, getMethodName);
- if (!pathLikeUrl) {
+ if (jaxrsConfig.isJaxrsLocationFullUrl()) {
uriBuilder.scheme(uriInfo.getAbsolutePath().getScheme())
.host(uriInfo.getAbsolutePath().getHost())
.port(uriInfo.getAbsolutePath().getPort());
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestBuildResponse.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestBuildResponse.java
index b9eb768..f66334f 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestBuildResponse.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestBuildResponse.java
@@ -1,7 +1,5 @@
/*
- * Copyright 2010-2013 Ning, Inc.
- * Copyright 2014 Groupon, Inc
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -20,6 +18,8 @@ package org.killbill.billing.jaxrs;
import org.killbill.billing.jaxrs.resources.AccountResource;
import org.killbill.billing.jaxrs.util.JaxrsUriBuilder;
+import org.killbill.billing.server.log.ServerTestSuiteNoDB;
+import org.killbill.billing.util.config.JaxrsConfig;
import org.testng.annotations.Test;
import javax.ws.rs.core.Response;
@@ -31,8 +31,9 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
-public class TestBuildResponse {
- @Test(groups = "fast", description = "Tests Uri Builder with Path Like URL and Root location")
+public class TestBuildResponse extends ServerTestSuiteNoDB {
+
+ @Test(groups = "fast", description = "Tests Uri Builder with Path Like URL and root Location")
public void testUriBuilderWithPathLikeUrlAndRoot() throws Exception {
UUID objectId = UUID.randomUUID();
@@ -40,8 +41,10 @@ public class TestBuildResponse {
URI uri = URI.create("http://localhost:8080");
when(uriInfo.getBaseUri()).thenReturn(uri);
- JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder();
- Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId, true);
+ JaxrsConfig jaxrsConfig = mock(JaxrsConfig.class);
+ when(jaxrsConfig.isJaxrsLocationFullUrl()).thenReturn(false);
+ JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder(jaxrsConfig);
+ Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId);
assertEquals(response.getMetadata().get("Location").get(0), "/1.0/kb/accounts/" + objectId.toString());
}
@@ -54,13 +57,15 @@ public class TestBuildResponse {
URI uri = URI.create("http://localhost:8080/killbill");
when(uriInfo.getBaseUri()).thenReturn(uri);
- JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder();
- Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId, true);
+ JaxrsConfig jaxrsConfig = mock(JaxrsConfig.class);
+ when(jaxrsConfig.isJaxrsLocationFullUrl()).thenReturn(false);
+ JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder(jaxrsConfig);
+ Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId);
assertEquals(response.getMetadata().get("Location").get(0), "/killbill/1.0/kb/accounts/" + objectId.toString());
}
- @Test(groups = "fast", description = "Tests Uri Builder without Path Like URL and root Location")
+ @Test(groups = "fast", description = "Tests Uri Builder with Full URL and root Location")
public void testUriBuilderWithoutPathLikeUrlAndRoot() throws Exception {
UUID objectId = UUID.randomUUID();
@@ -69,13 +74,15 @@ public class TestBuildResponse {
when(uriInfo.getBaseUri()).thenReturn(uri);
when(uriInfo.getAbsolutePath()).thenReturn(uri);
- JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder();
- Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId, false);
+ JaxrsConfig jaxrsConfig = mock(JaxrsConfig.class);
+ when(jaxrsConfig.isJaxrsLocationFullUrl()).thenReturn(true);
+ JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder(jaxrsConfig);
+ Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId);
assertEquals(response.getMetadata().get("Location").get(0).toString(), uri.toString() + "/1.0/kb/accounts/" + objectId.toString());
}
- @Test(groups = "fast", description = "Tests Uri Builder without Path Like URL and root Location")
+ @Test(groups = "fast", description = "Tests Uri Builder with Full URL and non root Location")
public void testUriBuilderWithoutPathLikeUrlAndNonRoot() throws Exception {
UUID objectId = UUID.randomUUID();
@@ -84,8 +91,10 @@ public class TestBuildResponse {
when(uriInfo.getBaseUri()).thenReturn(uri);
when(uriInfo.getAbsolutePath()).thenReturn(uri);
- JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder();
- Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId, false);
+ JaxrsConfig jaxrsConfig = mock(JaxrsConfig.class);
+ when(jaxrsConfig.isJaxrsLocationFullUrl()).thenReturn(true);
+ JaxrsUriBuilder uriBuilder = new JaxrsUriBuilder(jaxrsConfig);
+ Response response = uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", objectId);
assertEquals(response.getMetadata().get("Location").get(0).toString(), uri.toString() + "/1.0/kb/accounts/" + objectId.toString());
}
diff --git a/util/src/main/java/org/killbill/billing/util/config/JaxrsConfig.java b/util/src/main/java/org/killbill/billing/util/config/JaxrsConfig.java
index 38fb3b6..42e5b91 100644
--- a/util/src/main/java/org/killbill/billing/util/config/JaxrsConfig.java
+++ b/util/src/main/java/org/killbill/billing/util/config/JaxrsConfig.java
@@ -34,9 +34,9 @@ public interface JaxrsConfig extends KillbillConfig {
@Description("Total timeout for all callables associated to a given api call (parallel mode)")
TimeSpan getJaxrsTimeout();
- @Config("org.killbill.jaxrs.return.path.like.url")
+ @Config("org.killbill.jaxrs.location.full.url")
@Default("false")
- @Description("Type of return for the jaxrs response location")
- boolean getJaxrsReturnPathLikeUrl();
+ @Description("Type of return for the jaxrs response location URL")
+ boolean isJaxrsLocationFullUrl();
}