killbill-memoizeit
Changes
invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java 12(+12 -0)
Details
diff --git a/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java b/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
index 69f6df1..20bf9b8 100644
--- a/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
+++ b/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2011 Ning, Inc.
- * Copyright 2014-2016 Groupon, Inc
- * Copyright 2014-2016 The Billing Project, LLC
+ * Copyright 2014-2018 Groupon, Inc
+ * Copyright 2014-2018 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
@@ -83,4 +83,6 @@ public interface InvoiceInternalApi {
public List<InvoicePayment> getInvoicePayments(UUID paymentId, TenantContext context);
public List<InvoicePayment> getInvoicePaymentsByAccount(UUID accountId, TenantContext context);
+
+ public List<InvoicePayment> getInvoicePaymentsByCookieId(String cookieId, TenantContext context);
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java b/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
index b648f1b..0a41e22 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
@@ -216,4 +216,16 @@ public class DefaultInvoiceInternalApi implements InvoiceInternalApi {
}
));
}
+
+ @Override
+ public List<InvoicePayment> getInvoicePaymentsByCookieId(final String cookieId, final TenantContext context) {
+ return ImmutableList.<InvoicePayment>copyOf(Collections2.transform(dao.getInvoicePaymentsByCookieId(cookieId, internalCallContextFactory.createInternalTenantContext(context.getAccountId(), ObjectType.ACCOUNT, context)),
+ new Function<InvoicePaymentModelDao, InvoicePayment>() {
+ @Override
+ public InvoicePayment apply(final InvoicePaymentModelDao input) {
+ return new DefaultInvoicePayment(input);
+ }
+ }
+ ));
+ }
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
index fd7d11a..7a98a26 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
@@ -539,6 +539,16 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
}
@Override
+ public List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(final String cookieId, final InternalTenantContext context) {
+ return transactionalSqlDao.execute(true, new EntitySqlDaoTransactionWrapper<List<InvoicePaymentModelDao>>() {
+ @Override
+ public List<InvoicePaymentModelDao> inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception {
+ return entitySqlDaoWrapperFactory.become(InvoicePaymentSqlDao.class).getInvoicePaymentsByPaymentCookieId(cookieId, context);
+ }
+ });
+ }
+
+ @Override
public InvoicePaymentModelDao createRefund(final UUID paymentId, final BigDecimal requestedRefundAmount, final boolean isInvoiceAdjusted,
final Map<UUID, BigDecimal> invoiceItemIdsWithNullAmounts, final String transactionExternalKey,
final InternalCallContext context) throws InvoiceApiException {
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
index 205c55f..ed85e64 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
@@ -64,6 +64,8 @@ public interface InvoiceDao extends EntityDao<InvoiceModelDao, Invoice, InvoiceA
List<InvoicePaymentModelDao> getInvoicePaymentsByAccount(InternalTenantContext context);
+ List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(String cookieId, InternalTenantContext internalTenantContext);
+
BigDecimal getAccountBalance(UUID accountId, InternalTenantContext context);
BigDecimal getAccountCBA(UUID accountId, InternalTenantContext context);
@@ -174,7 +176,6 @@ public interface InvoiceDao extends EntityDao<InvoiceModelDao, Invoice, InvoiceA
*/
List<InvoiceParentChildModelDao> getChildInvoicesByParentInvoiceId(UUID parentInvoiceId, final InternalCallContext context) throws InvoiceApiException;
-
/**
* Retrieve parent invoice by the parent account id
*
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
index 994eb58..237d51a 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2016 Groupon, Inc
- * Copyright 2014-2016 The Billing Project, LLC
+ * Copyright 2014-2018 Groupon, Inc
+ * Copyright 2014-2018 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
@@ -27,9 +27,9 @@ import org.killbill.billing.callcontext.InternalTenantContext;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.invoice.api.InvoicePayment;
import org.killbill.billing.util.entity.dao.EntitySqlDao;
+import org.killbill.commons.jdbi.binder.SmartBindBean;
import org.killbill.commons.jdbi.template.KillBillSqlDaoStringTemplate;
import org.skife.jdbi.v2.sqlobject.Bind;
-import org.killbill.commons.jdbi.binder.SmartBindBean;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
@@ -50,6 +50,10 @@ public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePaymentModelDa
@SmartBindBean final InternalTenantContext context);
@SqlQuery
+ List<InvoicePaymentModelDao> getInvoicePaymentsByPaymentCookieId(@Bind("paymentCookieId") final String paymentId,
+ @SmartBindBean final InternalTenantContext context);
+
+ @SqlQuery
InvoicePaymentModelDao getPaymentForCookieId(@Bind("paymentCookieId") final String paymentCookieId,
@SmartBindBean final InternalTenantContext context);
diff --git a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
index 140ff05..e30386f 100644
--- a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
+++ b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
@@ -73,6 +73,14 @@ getAllPaymentsForInvoiceIncludedInit() ::= <<
>>
+getInvoicePaymentsByPaymentCookieId() ::= <<
+ SELECT <allTableFields("")>
+ FROM <tableName()>
+ WHERE payment_cookie_id = :paymentCookieId
+ <AND_CHECK_TENANT("")>
+ <defaultOrderBy("")>
+ ;
+>>
getInvoicePayments() ::= <<
SELECT <allTableFields("")>
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
index 4ce8e42..20bf691 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2016 Groupon, Inc
- * Copyright 2014-2016 The Billing Project, LLC
+ * Copyright 2014-2018 Groupon, Inc
+ * Copyright 2014-2018 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
@@ -245,6 +245,11 @@ public class MockInvoiceDao extends MockEntityDaoBase<InvoiceModelDao, Invoice,
}
@Override
+ public List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(final String cookieId, final InternalTenantContext internalTenantContext) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public void notifyOfPaymentCompletion(final InvoicePaymentModelDao invoicePayment, final InternalCallContext context) {
synchronized (monitor) {
payments.put(invoicePayment.getId(), invoicePayment);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceHelper.java b/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceHelper.java
index 30d07e7..431f709 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceHelper.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceHelper.java
@@ -38,6 +38,7 @@ import org.killbill.billing.account.api.AccountUserApi;
import org.killbill.billing.account.api.ImmutableAccountInternalApi;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext;
+import org.killbill.billing.callcontext.MutableCallContext;
import org.killbill.billing.callcontext.MutableInternalCallContext;
import org.killbill.billing.catalog.MockPlan;
import org.killbill.billing.catalog.MockPlanPhase;
@@ -264,16 +265,18 @@ public class TestInvoiceHelper {
.paymentMethodId(UUID.randomUUID())
.timeZone(DateTimeZone.UTC)
.createdDate(clock.getUTCNow())
+
.build();
+ final MutableCallContext mutableCallContext = new MutableCallContext(internalCallContext);
final Account account;
if (isFastTest()) {
- account = GuicyKillbillTestSuiteNoDB.createMockAccount(accountData, accountUserApi, accountApi, immutableAccountApi, nonEntityDao, clock, internalCallContextFactory, callContext, internalCallContext);
+ account = GuicyKillbillTestSuiteNoDB.createMockAccount(accountData, accountUserApi, accountApi, immutableAccountApi, nonEntityDao, clock, internalCallContextFactory, mutableCallContext, internalCallContext);
} else {
account = accountUserApi.createAccount(accountData, callContext);
}
- GuicyKillbillTestSuite.refreshCallContext(account.getId(), clock, internalCallContextFactory, callContext, internalCallContext);
+ GuicyKillbillTestSuite.refreshCallContext(account.getId(), clock, internalCallContextFactory, mutableCallContext, internalCallContext);
return account;
}
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 30b16f9..19b7656 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
@@ -701,7 +701,7 @@ public class InvoiceResource extends JaxRsResourceBase {
final InvoicePayment result = createPurchaseForInvoice(account, invoiceId, payment.getPurchasedAmount(), paymentMethodId, externalPayment,
payment.getPaymentExternalKey(), null, pluginProperties, callContext);
return result != null ?
- uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getId(), request) :
+ uriBuilder.buildResponse(uriInfo, InvoicePaymentResource.class, "getInvoicePayment", result.getPaymentId(), request) :
Response.status(Status.NO_CONTENT).build();
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java b/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
index 0194518..5a9d924 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
@@ -101,17 +101,17 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
final Collection<PluginProperty> pluginProperties = preparePluginPropertiesForRefundOrCredit(isAdjusted, adjustments, originalProperties);
final String paymentTransactionExternalKey = MoreObjects.firstNonNull(originalPaymentTransactionExternalKey, UUIDs.randomUUID().toString());
- final Payment payment = paymentApi.createRefundWithPaymentControl(account,
- paymentId,
- amount,
- currency,
- effectiveDate,
- paymentTransactionExternalKey,
- pluginProperties,
- InvoicePaymentPaymentOptions.create(paymentOptions),
- context);
-
- return getInvoicePayment(payment.getId(), paymentTransactionExternalKey, context);
+ paymentApi.createRefundWithPaymentControl(account,
+ paymentId,
+ amount,
+ currency,
+ effectiveDate,
+ paymentTransactionExternalKey,
+ pluginProperties,
+ InvoicePaymentPaymentOptions.create(paymentOptions),
+ context);
+
+ return getInvoicePayment(paymentTransactionExternalKey, context);
}
@Override
@@ -134,19 +134,19 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
final String paymentTransactionExternalKey = MoreObjects.firstNonNull(originalPaymentTransactionExternalKey, UUIDs.randomUUID().toString());
- final Payment payment = paymentApi.createCreditWithPaymentControl(account,
- paymentMethodId,
- paymentId,
- amount,
- currency,
- effectiveDate,
- paymentExternalKey,
- paymentTransactionExternalKey,
- pluginProperties,
- InvoicePaymentPaymentOptions.create(paymentOptions),
- context);
-
- return getInvoicePayment(payment.getId(), paymentTransactionExternalKey, context);
+ paymentApi.createCreditWithPaymentControl(account,
+ paymentMethodId,
+ paymentId,
+ amount,
+ currency,
+ effectiveDate,
+ paymentExternalKey,
+ paymentTransactionExternalKey,
+ pluginProperties,
+ InvoicePaymentPaymentOptions.create(paymentOptions),
+ context);
+
+ return getInvoicePayment(paymentTransactionExternalKey, context);
}
@Override
@@ -175,12 +175,8 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
return pluginProperties;
}
- private InvoicePayment getInvoicePayment(final UUID paymentId, final String paymentTransactionExternalKey, final TenantContext context) {
- for (final InvoicePayment invoicePayment : getInvoicePayments(paymentId, context)) {
- if (invoicePayment.getPaymentCookieId().compareTo(paymentTransactionExternalKey) == 0) {
- return invoicePayment;
- }
- }
- return null;
+ private InvoicePayment getInvoicePayment(final String paymentTransactionExternalKey, final TenantContext context) {
+ final List<InvoicePayment> invoicePayments = invoiceInternalApi.getInvoicePaymentsByCookieId(paymentTransactionExternalKey, context);
+ return invoicePayments.isEmpty() ? null : invoicePayments.get(invoicePayments.size() - 1);
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java b/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
index 22930b0..38710ca 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
@@ -47,7 +47,6 @@ import org.killbill.billing.util.config.definition.PaymentConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.MoreObjects;
import com.google.inject.Inject;
import static org.killbill.billing.payment.logging.PaymentLoggingHelper.logEnterAPICall;
@@ -147,15 +146,11 @@ public class DefaultInvoicePaymentInternalApi extends DefaultApiBase implements
exception);
}
- return paymentTransaction != null ? getInvoicePayment(payment.getId(), paymentTransaction.getExternalKey(), callContext) : null;
+ return paymentTransaction != null ? getInvoicePayment(paymentTransaction.getExternalKey(), callContext) : null;
}
- private InvoicePayment getInvoicePayment(final UUID paymentId, final String paymentTransactionExternalKey, final TenantContext context) {
- for (final InvoicePayment invoicePayment : invoiceInternalApi.getInvoicePayments(paymentId, context)) {
- if (invoicePayment.getPaymentCookieId().compareTo(paymentTransactionExternalKey) == 0) {
- return invoicePayment;
- }
- }
- return null;
+ private InvoicePayment getInvoicePayment(final String paymentTransactionExternalKey, final TenantContext context) {
+ final List<InvoicePayment> invoicePayments = invoiceInternalApi.getInvoicePaymentsByCookieId(paymentTransactionExternalKey, context);
+ return invoicePayments.isEmpty() ? null : invoicePayments.get(invoicePayments.size() - 1);
}
}
diff --git a/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java b/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
index 5114550..0ecd4e3 100644
--- a/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
+++ b/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
@@ -30,6 +30,7 @@ import org.killbill.billing.account.api.AccountUserApi;
import org.killbill.billing.account.api.ImmutableAccountInternalApi;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext;
+import org.killbill.billing.callcontext.MutableCallContext;
import org.killbill.billing.callcontext.MutableInternalCallContext;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.events.InvoiceCreationInternalEvent;
@@ -148,14 +149,16 @@ public class TestPaymentHelper {
Mockito.when(accountData.getCreatedDate()).thenReturn(clock.getUTCNow());
Mockito.when(accountData.getReferenceTime()).thenReturn(clock.getUTCNow());
+ final MutableCallContext mutableCallContext = new MutableCallContext(internalCallContext);
+
Account account;
if (isFastTest()) {
- account = GuicyKillbillTestSuiteNoDB.createMockAccount(accountData, accountApi, accountInternalApi, immutableAccountInternalApi, nonEntityDao, clock, internalCallContextFactory, context, internalCallContext);
+ account = GuicyKillbillTestSuiteNoDB.createMockAccount(accountData, accountApi, accountInternalApi, immutableAccountInternalApi, nonEntityDao, clock, internalCallContextFactory, mutableCallContext, internalCallContext);
} else {
account = accountApi.createAccount(accountData, context);
}
- GuicyKillbillTestSuite.refreshCallContext(account.getId(), clock, internalCallContextFactory, context, internalCallContext);
+ GuicyKillbillTestSuite.refreshCallContext(account.getId(), clock, internalCallContextFactory, mutableCallContext, internalCallContext);
if (addPaymentMethod) {
final PaymentMethodPlugin pm = new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), true, null);
diff --git a/util/src/test/java/org/killbill/billing/callcontext/MutableCallContext.java b/util/src/test/java/org/killbill/billing/callcontext/MutableCallContext.java
index 725df20..b79ffba 100644
--- a/util/src/test/java/org/killbill/billing/callcontext/MutableCallContext.java
+++ b/util/src/test/java/org/killbill/billing/callcontext/MutableCallContext.java
@@ -26,7 +26,7 @@ import org.killbill.billing.util.callcontext.UserType;
public class MutableCallContext implements CallContext {
- private final CallContext delegate;
+ private CallContext delegate;
private DateTime createdDate;
public MutableCallContext(final MutableInternalCallContext internalCallContext) {
@@ -34,6 +34,10 @@ public class MutableCallContext implements CallContext {
this.createdDate = delegate.getCreatedDate();
}
+ public void setDelegate(final UUID accountId, final MutableInternalCallContext internalCallContext) {
+ this.delegate = internalCallContext.toCallContext(accountId, null);
+ }
+
@Override
public UUID getUserToken() {
return delegate.getUserToken();
diff --git a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
index a8f886a..f2b2a72 100644
--- a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
+++ b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
@@ -105,7 +105,7 @@ public class GuicyKillbillTestSuite implements IHookable {
public static void refreshCallContext(final UUID accountId,
final Clock clock,
final InternalCallContextFactory internalCallContextFactory,
- final TenantContext callContext,
+ final MutableCallContext callContext,
final MutableInternalCallContext internalCallContext) {
final InternalTenantContext tmp = internalCallContextFactory.createInternalTenantContext(accountId, callContext);
internalCallContext.setAccountRecordId(tmp.getAccountRecordId());
@@ -113,6 +113,8 @@ public class GuicyKillbillTestSuite implements IHookable {
internalCallContext.setReferenceTime(tmp.getReferenceLocalTime());
internalCallContext.setCreatedDate(clock.getUTCNow());
internalCallContext.setUpdatedDate(clock.getUTCNow());
+
+ callContext.setDelegate(accountId, internalCallContext);
}
protected KillbillConfigSource getConfigSource() {
diff --git a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuiteNoDB.java b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuiteNoDB.java
index a337c8f..06c00ad 100644
--- a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuiteNoDB.java
+++ b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuiteNoDB.java
@@ -27,6 +27,7 @@ import org.killbill.billing.account.api.AccountInternalApi;
import org.killbill.billing.account.api.AccountUserApi;
import org.killbill.billing.account.api.ImmutableAccountInternalApi;
import org.killbill.billing.callcontext.InternalTenantContext;
+import org.killbill.billing.callcontext.MutableCallContext;
import org.killbill.billing.callcontext.MutableInternalCallContext;
import org.killbill.billing.dao.MockNonEntityDao;
import org.killbill.billing.util.callcontext.CallContext;
@@ -44,7 +45,7 @@ public class GuicyKillbillTestSuiteNoDB extends GuicyKillbillTestSuite {
final NonEntityDao nonEntityDao,
final Clock clock,
final InternalCallContextFactory internalCallContextFactory,
- final CallContext callContext,
+ final MutableCallContext callContext,
final MutableInternalCallContext internalCallContext) throws AccountApiException {
final Account account = accountUserApi.createAccount(accountData, callContext);