Details
diff --git a/account/src/test/java/com/ning/billing/account/api/user/DefaultAccountUserApiTestWithDB.java b/account/src/test/java/com/ning/billing/account/api/user/DefaultAccountUserApiTestWithDB.java
index 091d07a..e57373c 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/DefaultAccountUserApiTestWithDB.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/DefaultAccountUserApiTestWithDB.java
@@ -48,7 +48,7 @@ public class DefaultAccountUserApiTestWithDB extends AccountDaoTestBase {
// Update the address and leave other fields null
final MutableAccountData mutableAccountData = new DefaultMutableAccountData(null, null, null, 0, null, null, null,
- null, null, null, null, null, null, null,
+ null, null, null, null, null, null,
null, null, null, null, false, false);
final String newAddress1 = UUID.randomUUID().toString();
mutableAccountData.setAddress1(newAddress1);
diff --git a/api/src/main/java/com/ning/billing/account/api/DefaultMutableAccountData.java b/api/src/main/java/com/ning/billing/account/api/DefaultMutableAccountData.java
index 694297b..e61c803 100644
--- a/api/src/main/java/com/ning/billing/account/api/DefaultMutableAccountData.java
+++ b/api/src/main/java/com/ning/billing/account/api/DefaultMutableAccountData.java
@@ -21,7 +21,6 @@ import java.util.UUID;
import org.joda.time.DateTimeZone;
import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.util.tag.TagStore;
public class DefaultMutableAccountData implements MutableAccountData {
@@ -47,7 +46,7 @@ public class DefaultMutableAccountData implements MutableAccountData {
public DefaultMutableAccountData(final String externalKey, final String email, final String name,
final int firstNameLength, final Currency currency, final BillCycleDay billCycleDay,
- final UUID paymentMethodId, final TagStore tags, final DateTimeZone timeZone,
+ final UUID paymentMethodId, final DateTimeZone timeZone,
final String locale, final String address1, final String address2,
final String companyName, final String city, final String stateOrProvince,
final String country, final String postalCode, final String phone,
diff --git a/junction/src/main/java/com/ning/billing/junction/dao/BlockingStateSqlDao.java b/junction/src/main/java/com/ning/billing/junction/dao/BlockingStateSqlDao.java
index c1edb7e..0f45bfd 100644
--- a/junction/src/main/java/com/ning/billing/junction/dao/BlockingStateSqlDao.java
+++ b/junction/src/main/java/com/ning/billing/junction/dao/BlockingStateSqlDao.java
@@ -22,30 +22,17 @@ import java.util.List;
import java.util.UUID;
import org.joda.time.DateTime;
-import org.skife.jdbi.v2.SQLStatement;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.BindBean;
-import org.skife.jdbi.v2.sqlobject.Binder;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
-import org.skife.jdbi.v2.sqlobject.SqlUpdate;
-import org.skife.jdbi.v2.sqlobject.customizers.Mapper;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
-import org.skife.jdbi.v2.sqlobject.mixins.CloseMe;
-import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
-import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
-import com.ning.billing.junction.api.Blockable;
+import com.ning.billing.junction.api.Blockable.Type;
import com.ning.billing.junction.api.BlockingApiException;
import com.ning.billing.junction.api.BlockingState;
-import com.ning.billing.junction.api.Blockable.Type;
-import com.ning.billing.overdue.OverdueState;
-import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.callcontext.InternalTenantContextBinder;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.dao.BinderBase;
import com.ning.billing.util.dao.MapperBase;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoStringTemplate;
@@ -60,7 +47,7 @@ public interface BlockingStateSqlDao extends EntitySqlDao<BlockingStateModelDao,
@SqlQuery
public abstract List<BlockingStateModelDao> getBlockingHistoryFor(@Bind("blockableId") UUID blockableId,
- @BindBean final InternalTenantContext context);
+ @BindBean final InternalTenantContext context);
public class BlockingHistorySqlMapper extends MapperBase implements ResultSetMapper<BlockingStateModelDao> {
@@ -94,7 +81,7 @@ public interface BlockingStateSqlDao extends EntitySqlDao<BlockingStateModelDao,
} catch (BlockingApiException e) {
throw new SQLException(e);
}
- return new BlockingStateModelDao(id, blockableId, type, stateName, service, blockChange,blockEntitlement, blockBilling, createdDate, createdDate);
+ return new BlockingStateModelDao(id, blockableId, type, stateName, service, blockChange, blockEntitlement, blockBilling, createdDate, createdDate);
}
}
}
diff --git a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
index 22b3efd..d3a06d3 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
@@ -310,6 +310,7 @@ public class PaymentProcessor extends ProcessorBase {
}
public void retryFailedPayment(final UUID paymentId, final InternalCallContext context) {
+ log.info("STEPH retrying failed payment " + paymentId + " time = " + clock.getUTCNow());
retryFailedPaymentInternal(paymentId, context, PaymentStatus.PAYMENT_FAILURE);
}
@@ -449,6 +450,7 @@ public class PaymentProcessor extends ProcessorBase {
break;
case ERROR:
+ log.info("STEPH payment failure...");
allAttempts = paymentDao.getAttemptsForPayment(paymentInput.getId(), context);
// Schedule if non instant payment and max attempt for retry not reached yet
if (!isInstantPayment) {
@@ -504,7 +506,12 @@ public class PaymentProcessor extends ProcessorBase {
final List<PaymentAttemptModelDao> allAttempts = paymentDao.getAttemptsForPayment(paymentId, context);
final int retryAttempt = getNumberAttemptsInState(paymentId, allAttempts,
PaymentStatus.UNKNOWN, PaymentStatus.PAYMENT_FAILURE);
+
+
final boolean isScheduledForRetry = failedPaymentRetryService.scheduleRetry(paymentId, retryAttempt);
+
+ log.info("STEPH scheduleRetryOnPaymentFailure id = " + paymentId + ", retryAttempt = " + retryAttempt + ", retry :" + isScheduledForRetry);
+
return isScheduledForRetry ? PaymentStatus.PAYMENT_FAILURE : PaymentStatus.PAYMENT_FAILURE_ABORTED;
}
diff --git a/payment/src/main/java/com/ning/billing/payment/retry/BaseRetryService.java b/payment/src/main/java/com/ning/billing/payment/retry/BaseRetryService.java
index e6b9a86..2828c63 100644
--- a/payment/src/main/java/com/ning/billing/payment/retry/BaseRetryService.java
+++ b/payment/src/main/java/com/ning/billing/payment/retry/BaseRetryService.java
@@ -20,17 +20,16 @@ import java.io.IOException;
import java.util.UUID;
import org.joda.time.DateTime;
-import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ning.billing.ObjectType;
-import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.payment.glue.DefaultPaymentService;
import com.ning.billing.util.callcontext.CallOrigin;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.callcontext.UserType;
+import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoWrapperFactory;
import com.ning.billing.util.notificationq.NotificationKey;
@@ -54,8 +53,8 @@ public abstract class BaseRetryService implements RetryService {
private NotificationQueue retryQueue;
public BaseRetryService(final NotificationQueueService notificationQueueService,
- final PaymentConfig config,
- final InternalCallContextFactory internalCallContextFactory) {
+ final PaymentConfig config,
+ final InternalCallContextFactory internalCallContextFactory) {
this.notificationQueueService = notificationQueueService;
this.config = config;
this.internalCallContextFactory = internalCallContextFactory;
@@ -64,20 +63,20 @@ public abstract class BaseRetryService implements RetryService {
@Override
public void initialize(final String svcName) throws NotificationQueueAlreadyExists {
retryQueue = notificationQueueService.createNotificationQueue(svcName,
- getQueueName(),
- new NotificationQueueHandler() {
- @Override
- public void handleReadyNotification(final NotificationKey notificationKey, final DateTime eventDateTime, final Long accountRecordId, final Long tenantRecordId) {
- if (!(notificationKey instanceof PaymentRetryNotificationKey)) {
- log.error("Payment service got an unexpected notification type {}", notificationKey.getClass().getName());
- return;
- }
- final PaymentRetryNotificationKey key = (PaymentRetryNotificationKey) notificationKey;
- final InternalCallContext callContext = internalCallContextFactory.createInternalCallContext(tenantRecordId, accountRecordId, PAYMENT_RETRY_SERVICE, CallOrigin.INTERNAL, UserType.SYSTEM, null);
- retry(key.getUuidKey(), callContext);
- }
- },
- config);
+ getQueueName(),
+ new NotificationQueueHandler() {
+ @Override
+ public void handleReadyNotification(final NotificationKey notificationKey, final DateTime eventDateTime, final Long accountRecordId, final Long tenantRecordId) {
+ if (!(notificationKey instanceof PaymentRetryNotificationKey)) {
+ log.error("Payment service got an unexpected notification type {}", notificationKey.getClass().getName());
+ return;
+ }
+ final PaymentRetryNotificationKey key = (PaymentRetryNotificationKey) notificationKey;
+ final InternalCallContext callContext = internalCallContextFactory.createInternalCallContext(tenantRecordId, accountRecordId, PAYMENT_RETRY_SERVICE, CallOrigin.INTERNAL, UserType.SYSTEM, null);
+ retry(key.getUuidKey(), callContext);
+ }
+ },
+ config);
}
@Override
@@ -103,7 +102,7 @@ public abstract class BaseRetryService implements RetryService {
@Inject
public RetryServiceScheduler(final NotificationQueueService notificationQueueService,
- final InternalCallContextFactory internalCallContextFactory) {
+ final InternalCallContextFactory internalCallContextFactory) {
this.notificationQueueService = notificationQueueService;
this.internalCallContextFactory = internalCallContextFactory;
}
diff --git a/payment/src/main/java/com/ning/billing/payment/retry/PluginFailureRetryService.java b/payment/src/main/java/com/ning/billing/payment/retry/PluginFailureRetryService.java
index 150cf9c..9217abd 100644
--- a/payment/src/main/java/com/ning/billing/payment/retry/PluginFailureRetryService.java
+++ b/payment/src/main/java/com/ning/billing/payment/retry/PluginFailureRetryService.java
@@ -19,15 +19,14 @@ package com.ning.billing.payment.retry;
import java.util.UUID;
import org.joda.time.DateTime;
-import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.payment.core.PaymentProcessor;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoWrapperFactory;
import com.ning.billing.util.notificationq.NotificationQueueService;
diff --git a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
index 5a25746..2365c5e 100644
--- a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
+++ b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
@@ -54,12 +54,12 @@ import com.ning.billing.util.glue.CustomFieldModule;
import com.ning.billing.util.glue.ExportModule;
import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.NotificationQueueModule;
-import com.ning.billing.util.glue.TagStoreModule;
import com.ning.jetty.jdbi.guice.providers.DBIProvider;
import com.google.inject.AbstractModule;
public class KillbillServerModule extends AbstractModule {
+
@Override
protected void configure() {
configureDao();
@@ -78,7 +78,7 @@ public class KillbillServerModule extends AbstractModule {
protected void configureDao() {
// Load mysql driver if needed
try {
- Class.forName ("com.mysql.jdbc.Driver").newInstance ();
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (final Exception ignore) {
}
bind(IDBI.class).to(DBI.class).asEagerSingleton();
@@ -107,7 +107,6 @@ public class KillbillServerModule extends AbstractModule {
install(new EmailModule());
install(new GlobalLockerModule());
install(new CustomFieldModule());
- install(new TagStoreModule());
install(new AuditModule());
install(new CatalogModule());
install(new BusModule());
diff --git a/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDao.java b/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDao.java
index 48e1e83..ef1ae2d 100644
--- a/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDao.java
+++ b/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDao.java
@@ -34,6 +34,9 @@ import com.ning.billing.util.dao.HistorySqlDao;
import com.ning.billing.util.entity.Entity;
import com.ning.billing.util.entity.EntityPersistenceException;
+// TODO get rid of Transmogrifier, but code does not compile even if we create the
+// method public <T> T become(Class<T> typeToBecome); ?
+//
@EntitySqlDaoStringTemplate
public interface EntitySqlDao<M extends EntityModelDao<E>, E extends Entity> extends AuditSqlDao, HistorySqlDao<M, E>, Transmogrifier, Transactional<EntitySqlDao<M, E>>, CloseMe {