Skip to content

Commit

Permalink
invoice: See #495. Remove InvoiceMigrationApi and move existing creat…
Browse files Browse the repository at this point in the history
…eMigrationInvoice into InvoiceUserApi (simplification)
  • Loading branch information
sbrossie committed Feb 26, 2016
1 parent fec1a00 commit a48fc6c
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 145 deletions.
Expand Up @@ -22,7 +22,5 @@ public interface InvoiceModule {


public void installInvoicePaymentApi(); public void installInvoicePaymentApi();


public void installInvoiceMigrationApi();

public void installInvoiceInternalApi(); public void installInvoiceInternalApi();
} }

This file was deleted.

This file was deleted.

Expand Up @@ -28,6 +28,7 @@


import javax.annotation.Nullable; import javax.annotation.Nullable;


import org.joda.time.DateTime;
import org.joda.time.LocalDate; import org.joda.time.LocalDate;
import org.killbill.billing.ErrorCode; import org.killbill.billing.ErrorCode;
import org.killbill.billing.ObjectType; import org.killbill.billing.ObjectType;
Expand All @@ -37,7 +38,10 @@
import org.killbill.billing.callcontext.InternalCallContext; import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext; import org.killbill.billing.callcontext.InternalTenantContext;
import org.killbill.billing.catalog.api.Currency; import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.catalog.api.MigrationPlan;
import org.killbill.billing.invoice.InvoiceDispatcher; import org.killbill.billing.invoice.InvoiceDispatcher;
import org.killbill.billing.invoice.InvoiceDispatcher.FutureAccountNotifications;
import org.killbill.billing.invoice.InvoiceDispatcher.FutureAccountNotifications.SubscriptionNotification;
import org.killbill.billing.invoice.api.DryRunArguments; import org.killbill.billing.invoice.api.DryRunArguments;
import org.killbill.billing.invoice.api.Invoice; import org.killbill.billing.invoice.api.Invoice;
import org.killbill.billing.invoice.api.InvoiceApiException; import org.killbill.billing.invoice.api.InvoiceApiException;
Expand All @@ -47,6 +51,7 @@
import org.killbill.billing.invoice.api.InvoiceUserApi; import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.WithAccountLock; import org.killbill.billing.invoice.api.WithAccountLock;
import org.killbill.billing.invoice.dao.InvoiceDao; import org.killbill.billing.invoice.dao.InvoiceDao;
import org.killbill.billing.invoice.dao.InvoiceItemModelDao;
import org.killbill.billing.invoice.dao.InvoiceModelDao; import org.killbill.billing.invoice.dao.InvoiceModelDao;
import org.killbill.billing.invoice.model.CreditAdjInvoiceItem; import org.killbill.billing.invoice.model.CreditAdjInvoiceItem;
import org.killbill.billing.invoice.model.DefaultInvoice; import org.killbill.billing.invoice.model.DefaultInvoice;
Expand Down Expand Up @@ -74,6 +79,7 @@
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Collections2; import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.inject.Inject; import com.google.inject.Inject;


Expand Down Expand Up @@ -447,6 +453,22 @@ public void consumeExstingCBAOnAccountWithUnpaidInvoices(final UUID accountId, f
dao.consumeExstingCBAOnAccountWithUnpaidInvoices(accountId, internalCallContextFactory.createInternalCallContext(accountId, context)); dao.consumeExstingCBAOnAccountWithUnpaidInvoices(accountId, internalCallContextFactory.createInternalCallContext(accountId, context));
} }


@Override
public UUID createMigrationInvoice(final UUID accountId, final LocalDate targetDate, final BigDecimal balance, final Currency currency, final CallContext context) {
final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(accountId, context);

final LocalDate createdDate = internalCallContext.toLocalDate(internalCallContext.getCreatedDate());
final InvoiceModelDao migrationInvoice = new InvoiceModelDao(accountId, createdDate, targetDate, currency, true);
final InvoiceItemModelDao migrationInvoiceItem = new InvoiceItemModelDao(context.getCreatedDate(), InvoiceItemType.FIXED, migrationInvoice.getId(), accountId, null, null,
null, MigrationPlan.MIGRATION_PLAN_NAME, MigrationPlan.MIGRATION_PLAN_PHASE_NAME, null,

This comment has been minimized.

Copy link
@pierre

pierre Feb 29, 2016

Member

Interesting -- wondering what happens with Analytics, which will try to retrieve the catalog entry.

This comment has been minimized.

Copy link
@sbrossie

sbrossie Feb 29, 2016

Author Member

Code has changed in subsequent commit.

targetDate, null, balance, null, currency, null);

dao.createInvoice(migrationInvoice, ImmutableList.<InvoiceItemModelDao>of(migrationInvoiceItem),
true, new FutureAccountNotifications(ImmutableMap.<UUID, List<SubscriptionNotification>>of()), internalCallContext);

return migrationInvoice.getId();
}

private void notifyBusOfInvoiceAdjustment(final UUID invoiceId, final UUID accountId, final InternalCallContext context) { private void notifyBusOfInvoiceAdjustment(final UUID invoiceId, final UUID accountId, final InternalCallContext context) {
try { try {
eventBus.post(new DefaultInvoiceAdjustmentEvent(invoiceId, accountId, context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken())); eventBus.post(new DefaultInvoiceAdjustmentEvent(invoiceId, accountId, context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken()));
Expand Down
Expand Up @@ -25,15 +25,13 @@
import org.killbill.billing.invoice.api.DefaultInvoiceService; import org.killbill.billing.invoice.api.DefaultInvoiceService;
import org.killbill.billing.invoice.api.InvoiceApiHelper; import org.killbill.billing.invoice.api.InvoiceApiHelper;
import org.killbill.billing.invoice.api.InvoiceInternalApi; import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoiceNotifier; import org.killbill.billing.invoice.api.InvoiceNotifier;
import org.killbill.billing.invoice.api.InvoicePaymentApi; import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceService; import org.killbill.billing.invoice.api.InvoiceService;
import org.killbill.billing.invoice.api.InvoiceUserApi; import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.formatters.InvoiceFormatterFactory; import org.killbill.billing.invoice.api.formatters.InvoiceFormatterFactory;
import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory; import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory;
import org.killbill.billing.invoice.api.invoice.DefaultInvoicePaymentApi; import org.killbill.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import org.killbill.billing.invoice.api.migration.DefaultInvoiceMigrationApi;
import org.killbill.billing.invoice.api.svcs.DefaultInvoiceInternalApi; import org.killbill.billing.invoice.api.svcs.DefaultInvoiceInternalApi;
import org.killbill.billing.invoice.api.user.DefaultInvoiceUserApi; import org.killbill.billing.invoice.api.user.DefaultInvoiceUserApi;
import org.killbill.billing.invoice.dao.CBADao; import org.killbill.billing.invoice.dao.CBADao;
Expand Down Expand Up @@ -104,10 +102,6 @@ protected void installResourceBundleFactory() {
bind(ResourceBundleFactory.class).to(DefaultResourceBundleFactory.class).asEagerSingleton(); bind(ResourceBundleFactory.class).to(DefaultResourceBundleFactory.class).asEagerSingleton();
} }


@Override
public void installInvoiceMigrationApi() {
bind(InvoiceMigrationApi.class).to(DefaultInvoiceMigrationApi.class).asEagerSingleton();
}


protected void installNotifiers() { protected void installNotifiers() {
bind(NextBillingDateNotifier.class).to(DefaultNextBillingDateNotifier.class).asEagerSingleton(); bind(NextBillingDateNotifier.class).to(DefaultNextBillingDateNotifier.class).asEagerSingleton();
Expand Down Expand Up @@ -163,7 +157,6 @@ protected void configure() {
installInvoiceUserApi(); installInvoiceUserApi();
installInvoiceInternalApi(); installInvoiceInternalApi();
installInvoicePaymentApi(); installInvoicePaymentApi();
installInvoiceMigrationApi();
installResourceBundleFactory(); installResourceBundleFactory();
bind(RawUsageOptimizer.class).asEagerSingleton(); bind(RawUsageOptimizer.class).asEagerSingleton();
bind(InvoiceApiHelper.class).asEagerSingleton(); bind(InvoiceApiHelper.class).asEagerSingleton();
Expand Down
Expand Up @@ -22,7 +22,6 @@
import org.killbill.billing.account.api.AccountInternalApi; import org.killbill.billing.account.api.AccountInternalApi;
import org.killbill.billing.currency.api.CurrencyConversionApi; import org.killbill.billing.currency.api.CurrencyConversionApi;
import org.killbill.billing.invoice.api.InvoiceInternalApi; import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi; import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceUserApi; import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory; import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory;
Expand Down Expand Up @@ -66,8 +65,6 @@ public abstract class InvoiceTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
@Inject @Inject
protected InvoicePaymentApi invoicePaymentApi; protected InvoicePaymentApi invoicePaymentApi;
@Inject @Inject
protected InvoiceMigrationApi migrationApi;
@Inject
protected InvoiceGenerator generator; protected InvoiceGenerator generator;
@Inject @Inject
protected BillingInternalApi billingApi; protected BillingInternalApi billingApi;
Expand Down
Expand Up @@ -24,19 +24,15 @@
import org.killbill.billing.catalog.api.Currency; import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.invoice.api.DefaultInvoiceService; import org.killbill.billing.invoice.api.DefaultInvoiceService;
import org.killbill.billing.invoice.api.InvoiceInternalApi; import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi; import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceService; import org.killbill.billing.invoice.api.InvoiceService;
import org.killbill.billing.invoice.api.InvoiceUserApi; import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.calculator.InvoiceCalculatorUtils;
import org.killbill.billing.invoice.dao.InvoiceDao; import org.killbill.billing.invoice.dao.InvoiceDao;
import org.killbill.billing.invoice.generator.InvoiceGenerator; import org.killbill.billing.invoice.generator.InvoiceGenerator;
import org.killbill.billing.invoice.glue.TestInvoiceModuleWithEmbeddedDb; import org.killbill.billing.invoice.glue.TestInvoiceModuleWithEmbeddedDb;
import org.killbill.billing.invoice.notification.NextBillingDateNotifier; import org.killbill.billing.invoice.notification.NextBillingDateNotifier;
import org.killbill.billing.invoice.plugin.api.InvoicePluginApi;
import org.killbill.billing.junction.BillingInternalApi; import org.killbill.billing.junction.BillingInternalApi;
import org.killbill.billing.lifecycle.api.BusService; import org.killbill.billing.lifecycle.api.BusService;
import org.killbill.billing.osgi.api.OSGIServiceRegistration;
import org.killbill.billing.platform.api.KillbillConfigSource; import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi; import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.util.api.TagUserApi; import org.killbill.billing.util.api.TagUserApi;
Expand Down Expand Up @@ -75,8 +71,6 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
@Inject @Inject
protected InvoicePaymentApi invoicePaymentApi; protected InvoicePaymentApi invoicePaymentApi;
@Inject @Inject
protected InvoiceMigrationApi migrationApi;
@Inject
protected InvoiceGenerator generator; protected InvoiceGenerator generator;
@Inject @Inject
protected BillingInternalApi billingApi; protected BillingInternalApi billingApi;
Expand Down
Expand Up @@ -65,7 +65,7 @@ public void beforeMethod() throws Exception {
} }


private UUID createAndCheckMigrationInvoice(final UUID accountId) throws InvoiceApiException { private UUID createAndCheckMigrationInvoice(final UUID accountId) throws InvoiceApiException {
final UUID migrationInvoiceId = migrationApi.createMigrationInvoice(accountId, date_migrated, MIGRATION_INVOICE_AMOUNT, final UUID migrationInvoiceId = invoiceUserApi.createMigrationInvoice(accountId, date_migrated, MIGRATION_INVOICE_AMOUNT,
MIGRATION_INVOICE_CURRENCY, callContext); MIGRATION_INVOICE_CURRENCY, callContext);
Assert.assertNotNull(migrationInvoiceId); Assert.assertNotNull(migrationInvoiceId);
//Double check it was created and values are correct //Double check it was created and values are correct
Expand Down
Expand Up @@ -20,7 +20,6 @@


import org.killbill.billing.glue.InvoiceModule; import org.killbill.billing.glue.InvoiceModule;
import org.killbill.billing.invoice.api.InvoiceInternalApi; import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi; import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceUserApi; import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.platform.api.KillbillConfigSource; import org.killbill.billing.platform.api.KillbillConfigSource;
Expand All @@ -43,17 +42,11 @@ public void installInvoicePaymentApi() {
bind(InvoicePaymentApi.class).toInstance(Mockito.mock(InvoicePaymentApi.class)); bind(InvoicePaymentApi.class).toInstance(Mockito.mock(InvoicePaymentApi.class));
} }


@Override
public void installInvoiceMigrationApi() {
bind(InvoiceMigrationApi.class).toInstance(Mockito.mock(InvoiceMigrationApi.class));
}

@Override @Override
protected void configure() { protected void configure() {
installInvoiceUserApi(); installInvoiceUserApi();
installInvoiceInternalApi(); installInvoiceInternalApi();
installInvoicePaymentApi(); installInvoicePaymentApi();
installInvoiceMigrationApi();
} }


@Override @Override
Expand Down

1 comment on commit a48fc6c

@pierre
Copy link
Member

@pierre pierre commented on a48fc6c Feb 29, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.