killbill-aplcache
Changes
bin/start-server 2(+1 -1)
catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java 28(+15 -13)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionModelDao.java 3(+0 -3)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageModelDao.java 1(+0 -1)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.java 4(+1 -3)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionModelDao.java 1(+0 -1)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.java 4(+2 -2)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageDefinitionModelDao.java 4(+0 -4)
catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierModelDao.java 2(+0 -2)
catalog/src/main/java/org/killbill/billing/catalog/dao/PhaseUsageKeysCollectionBinder.java 40(+40 -0)
catalog/src/main/java/org/killbill/billing/catalog/dao/TierBlockKeysCollectionBinder.java 40(+40 -0)
catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionSqlDao.sql.stg 4(+0 -4)
catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.sql.stg 5(+1 -4)
catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.sql.stg 5(+1 -4)
catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.sql.stg 2(+0 -2)
Details
bin/start-server 2(+1 -1)
diff --git a/bin/start-server b/bin/start-server
index f6c4786..064ea13 100755
--- a/bin/start-server
+++ b/bin/start-server
@@ -41,7 +41,7 @@ HOSTNAME=`hostname`
PORT=8080
JMX_PORT=8989
START=
-DEBUG=8080
+DEBUG=
WAIT_DEBUGGER=
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
index 273fa61..dcc41ec 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
@@ -91,7 +91,6 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
final PlanPhasePriceOverride[] result = new PlanPhasePriceOverride[defaultPlan.getAllPhases().length];
for (int i = 0; i < defaultPlan.getAllPhases().length; i++) {
-
final PlanPhase curPhase = defaultPlan.getAllPhases()[i];
final CatalogOverridePhaseDefinitionModelDao overriddenPhase = Iterables.tryFind(phaseDefs, new Predicate<CatalogOverridePhaseDefinitionModelDao>() {
@Override
@@ -100,9 +99,12 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
}
}).orNull();
- result[i] = (overriddenPhase != null) ?
- new DefaultPlanPhasePriceOverride(curPhase.getName(), Currency.valueOf(overriddenPhase.getCurrency()), overriddenPhase.getFixedPrice(), overriddenPhase.getRecurringPrice(), getUsagePriceOverrides(curPhase, overriddenPhase, context)) :
- null;
+ if(overriddenPhase != null){
+ List<UsagePriceOverride> usagePriceOverrides = getUsagePriceOverrides(curPhase, overriddenPhase, context);
+ result[i] = new DefaultPlanPhasePriceOverride(curPhase.getName(), Currency.valueOf(overriddenPhase.getCurrency()), overriddenPhase.getFixedPrice(), overriddenPhase.getRecurringPrice(), usagePriceOverrides);
+ }
+ else
+ result[i] = null;
}
return result;
}
@@ -122,13 +124,14 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
}
}).orNull();
- if(overriddenUsage != null)
- usagePriceOverrides.add(new DefaultUsagePriceOverride(overriddenUsage.getParentUsageName(), curUsage.getUsageType(), getTierPriceOverrides(curUsage, overriddenUsage, context)));
+ if(overriddenUsage != null) {
+ List<TierPriceOverride> tierPriceOverrides = getTierPriceOverrides(curUsage, overriddenUsage, context);
+ usagePriceOverrides.add(new DefaultUsagePriceOverride(overriddenUsage.getParentUsageName(), curUsage.getUsageType(),tierPriceOverrides));
+ }
else
usagePriceOverrides.add(null);
}
return usagePriceOverrides;
-
}
List<TierPriceOverride> getTierPriceOverrides(Usage curUsage, CatalogOverrideUsageDefinitionModelDao overriddenUsage, final InternalTenantContext context) {
@@ -162,13 +165,14 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
}).orNull();
- if(overriddenTier != null)
- tierPriceOverrides.add(new DefaultTierPriceOverride(getTieredBlockPriceOverrides(curTier, overriddenTier, context)));
+ if(overriddenTier != null) {
+ List<TieredBlockPriceOverride> tieredBlockPriceOverrides = getTieredBlockPriceOverrides(curTier, overriddenTier, context);
+ tierPriceOverrides.add(new DefaultTierPriceOverride(tieredBlockPriceOverrides));
+ }
else
tierPriceOverrides.add(null);
}
return tierPriceOverrides;
-
}
List<TieredBlockPriceOverride> getTieredBlockPriceOverrides(Tier curTier, CatalogOverrideTierDefinitionModelDao overriddenTier, final InternalTenantContext context) {
@@ -186,12 +190,10 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
}).orNull();
if(overriddenTierBlock != null)
- blockPriceOverrides.add(new DefaultTieredBlockPriceOverride(overriddenTierBlock.getParentUnitName(),overriddenTierBlock.getSize(),overriddenTierBlock.getPrice(),overriddenTierBlock.getMax()));
+ blockPriceOverrides.add(new DefaultTieredBlockPriceOverride(overriddenTierBlock.getParentUnitName(), overriddenTierBlock.getSize(), overriddenTierBlock.getPrice(), overriddenTierBlock.getMax()));
else
blockPriceOverrides.add(null);
}
return blockPriceOverrides;
-
}
-
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionModelDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionModelDao.java
index f5e252a..6b9ee0b 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionModelDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionModelDao.java
@@ -69,7 +69,6 @@ public class CatalogOverrideBlockDefinitionModelDao {
this.size = size;
}
-
public double getMax() {
return max;
}
@@ -102,7 +101,6 @@ public class CatalogOverrideBlockDefinitionModelDao {
this.createdBy = createdBy;
}
-
public Long getTenantRecordId() {
return tenantRecordId;
}
@@ -115,7 +113,6 @@ public class CatalogOverrideBlockDefinitionModelDao {
}
public CatalogOverrideBlockDefinitionModelDao(String parentUnitName, String currency, BigDecimal price, double size, double max, DateTime effectiveDate) {
-
this.parentUnitName = parentUnitName;
this.currency = currency;
this.price = price;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageModelDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageModelDao.java
index 97275d8..f2b54d8 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageModelDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageModelDao.java
@@ -32,7 +32,6 @@ public class CatalogOverridePhaseUsageModelDao {
return usageNumber;
}
-
public Long getUsageDefRecordId() {
return usageDefRecordId;
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.java
index 3041193..b5df5f3 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.java
@@ -30,12 +30,10 @@ public interface CatalogOverridePhaseUsageSqlDao extends Transactional<CatalogOv
@SmartBindBean final InternalTenantContext context);
@SqlQuery
- public List<Long> getTargetPhaseDefinition(@PlanPhaseKeysCollectionBinder final Collection<String> concatUsageNumAndUsageDefRecordId,
+ public List<Long> getTargetPhaseDefinition(@PhaseUsageKeysCollectionBinder final Collection<String> concatUsageNumAndUsageDefRecordId,
@Bind("targetCount") final Integer targetCount,
@SmartBindBean final InternalTenantContext context);
-
-
@SqlQuery
public Long getLastInsertId();
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.java
index f5eef71..64ddbe5 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.java
@@ -30,12 +30,10 @@ public interface CatalogOverrideTierBlockSqlDao extends Transactional<CatalogOve
@SmartBindBean final InternalTenantContext context);
@SqlQuery
- public Long getTargetTierDefinition(@PlanPhaseKeysCollectionBinder final Collection<String> concatBlockNumAndBlockDefRecordId,
+ public Long getTargetTierDefinition(@TierBlockKeysCollectionBinder final Collection<String> concatBlockNumAndBlockDefRecordId,
@Bind("targetCount") final Integer targetCount,
@SmartBindBean final InternalTenantContext context);
-
-
@SqlQuery
public Long getLastInsertId();
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionModelDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionModelDao.java
index f2c770a..cba6fbb 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionModelDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionModelDao.java
@@ -91,5 +91,4 @@ public class CatalogOverrideTierDefinitionModelDao {
public void setTenantRecordId(Long tenantRecordId) {
this.tenantRecordId = tenantRecordId;
}
-
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.java
index 64f4fb1..8939428 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.java
@@ -25,8 +25,8 @@ public interface CatalogOverrideTierDefinitionSqlDao extends Transactional<Catal
@SqlQuery
public List<CatalogOverrideTierDefinitionModelDao> getOverriddenUsageTiers(@Bind("targetUsageDefRecordId") Long targetUsageDefRecordId,
- @SmartBindBean final InternalTenantContext context);
+ @SmartBindBean final InternalTenantContext context);
@SqlQuery
public Long getLastInsertId();
-}
\ No newline at end of file
+}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageDefinitionModelDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageDefinitionModelDao.java
index 17c3e7a..568be92 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageDefinitionModelDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageDefinitionModelDao.java
@@ -50,8 +50,6 @@ public class CatalogOverrideUsageDefinitionModelDao {
this.parentUsageType = parentUsageType;
}
-
-
public void setCurrency(String currency) {
this.currency = currency;
}
@@ -89,8 +87,6 @@ public class CatalogOverrideUsageDefinitionModelDao {
return parentUsageType;
}
-
-
public String getCurrency() {
return currency;
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierModelDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierModelDao.java
index 45f0ea9..8061f63 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierModelDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierModelDao.java
@@ -15,7 +15,6 @@ public class CatalogOverrideUsageTierModelDao {
private String createdBy;
private Long tenantRecordId;
-
public CatalogOverrideUsageTierModelDao() {
}
@@ -81,5 +80,4 @@ public class CatalogOverrideUsageTierModelDao {
public Long getTenantRecordId() {
return tenantRecordId;
}
-
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/DefaultCatalogOverrideDao.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/DefaultCatalogOverrideDao.java
index 3696b2f..f3dcbf0 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/dao/DefaultCatalogOverrideDao.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/DefaultCatalogOverrideDao.java
@@ -127,7 +127,7 @@ public class DefaultCatalogOverrideDao implements CatalogOverrideDao {
final CatalogOverridePhaseDefinitionSqlDao sqlDao = inTransactionHandle.attach(CatalogOverridePhaseDefinitionSqlDao.class);
if(override.getUsagePriceOverrides() != null && isUsageOverrideListHasOnlyNull(override.getUsagePriceOverrides())) {
- getOrCreatePhaseDefinitionFromTransactionWithoutUsageOverrides(parentPhaseName, catalogEffectiveDate, override, inTransactionHandle, context);
+ return getOrCreatePhaseDefinitionFromTransactionWithoutUsageOverrides(parentPhaseName, catalogEffectiveDate, override, inTransactionHandle, context);
}
final CatalogOverrideUsageDefinitionModelDao[] overrideUsageDefinitionModelDaos = new CatalogOverrideUsageDefinitionModelDao[override.getUsagePriceOverrides().size()];
@@ -281,7 +281,6 @@ public class DefaultCatalogOverrideDao implements CatalogOverrideDao {
}
}
return resultTierDef;
-
}
private void createCatalogOverrideTierBlockFromTransaction(final short blockNum, final CatalogOverrideBlockDefinitionModelDao blockDef, final CatalogOverrideTierDefinitionModelDao tierDef, final Handle inTransactionHandle, final InternalCallContext context) {
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/PhaseUsageKeysCollectionBinder.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/PhaseUsageKeysCollectionBinder.java
new file mode 100644
index 0000000..afe73f3
--- /dev/null
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/PhaseUsageKeysCollectionBinder.java
@@ -0,0 +1,40 @@
+package org.killbill.billing.catalog.dao;
+
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.Collection;
+
+import org.killbill.billing.catalog.dao.PhaseUsageKeysCollectionBinder.PhaseUsageKeysCollectionBinderFactory;
+import org.skife.jdbi.v2.SQLStatement;
+import org.skife.jdbi.v2.sqlobject.Binder;
+import org.skife.jdbi.v2.sqlobject.BinderFactory;
+import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
+
+@BindingAnnotation(PhaseUsageKeysCollectionBinderFactory.class)
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.PARAMETER})
+public @interface PhaseUsageKeysCollectionBinder {
+
+ public static class PhaseUsageKeysCollectionBinderFactory implements BinderFactory {
+
+ @Override
+ public Binder build(Annotation annotation) {
+ return new Binder<PhaseUsageKeysCollectionBinder, Collection<String>>() {
+
+ @Override
+ public void bind(SQLStatement<?> query, PhaseUsageKeysCollectionBinder bind, Collection<String> keys) {
+ query.define("keys", keys);
+
+ int idx = 0;
+ for (String state : keys) {
+ query.bind("key_" + idx, state);
+ idx++;
+ }
+ }
+ };
+ }
+ }
+}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/dao/TierBlockKeysCollectionBinder.java b/catalog/src/main/java/org/killbill/billing/catalog/dao/TierBlockKeysCollectionBinder.java
new file mode 100644
index 0000000..ed3fc62
--- /dev/null
+++ b/catalog/src/main/java/org/killbill/billing/catalog/dao/TierBlockKeysCollectionBinder.java
@@ -0,0 +1,40 @@
+package org.killbill.billing.catalog.dao;
+
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.Collection;
+
+import org.killbill.billing.catalog.dao.TierBlockKeysCollectionBinder.TierBlockKeysCollectionBinderFactory;
+import org.skife.jdbi.v2.SQLStatement;
+import org.skife.jdbi.v2.sqlobject.Binder;
+import org.skife.jdbi.v2.sqlobject.BinderFactory;
+import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
+
+@BindingAnnotation(TierBlockKeysCollectionBinderFactory.class)
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.PARAMETER})
+public @interface TierBlockKeysCollectionBinder {
+
+ public static class TierBlockKeysCollectionBinderFactory implements BinderFactory {
+
+ @Override
+ public Binder build(Annotation annotation) {
+ return new Binder<TierBlockKeysCollectionBinder, Collection<String>>() {
+
+ @Override
+ public void bind(SQLStatement<?> query, TierBlockKeysCollectionBinder bind, Collection<String> keys) {
+ query.define("keys", keys);
+
+ int idx = 0;
+ for (String state : keys) {
+ query.bind("key_" + idx, state);
+ idx++;
+ }
+ }
+ };
+ }
+ }
+}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
index 112c7c3..f6a4e69 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
@@ -90,17 +90,15 @@ public class DefaultBlock extends ValidatingConfig<StandaloneCatalog> implements
return errors;
}
+ public DefaultBlock() {
+ }
public DefaultBlock(final DefaultUnit unit, final Double size, final DefaultInternationalPrice prices, final BigDecimal overriddenPrice, Currency currency) {
-
this.unit = unit;
this.size = size;
this.prices = prices != null ? new DefaultInternationalPrice(prices, overriddenPrice, currency) : null;
}
- public DefaultBlock() {
- }
-
public DefaultBlock setType(final BlockType type) {
this.type = type;
return this;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
index 78968cb..d66d331 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
@@ -12,15 +12,12 @@ import java.math.BigDecimal;
*/
public class DefaultBlockPriceOverride implements BlockPriceOverride {
-
private String unitName;
private Double size;
private BigDecimal price;
-
-
@Override
public String getUnitName() {
return unitName;
@@ -41,5 +38,4 @@ public class DefaultBlockPriceOverride implements BlockPriceOverride {
this.size = size;
this.price = price;
}
-
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
index 42b1b03..eb64e2b 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
@@ -65,14 +65,12 @@ public class DefaultPlanPhase extends ValidatingConfig<StandaloneCatalog> implem
this.duration = (DefaultDuration) in.getDuration();
this.fixed = override != null && override.getFixedPrice() != null ? new DefaultFixed((DefaultFixed) in.getFixed(), override) : (DefaultFixed) in.getFixed();
this.recurring = override != null && override.getRecurringPrice() != null ? new DefaultRecurring((DefaultRecurring) in.getRecurring(), override) : (DefaultRecurring) in.getRecurring();
- this.usages = new DefaultUsage[in.getUsages().length];
+ this.usages = new DefaultUsage[in.getUsages().length];
for (int i = 0; i < in.getUsages().length; i++) {
-
if(override != null && override.getUsagePriceOverrides().get(i)!= null) {
usages[i] = new DefaultUsage(in.getUsages()[i], override.getUsagePriceOverrides().get(i), override.getCurrency());
}
else {
-
usages[i] = (DefaultUsage) in.getUsages()[i];
}
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
index d19c86d..50ae522 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
@@ -61,16 +61,12 @@ public class DefaultTier extends ValidatingConfig<StandaloneCatalog> implements
public DefaultTier(Tier in, TierPriceOverride override, Currency currency) {
this.limits = (DefaultLimit[])in.getLimits();
this.blocks = new DefaultTieredBlock[in.getTieredBlocks().length];
-
for (int i = 0; i < in.getTieredBlocks().length; i++) {
-
if(override != null && override.getTieredBlockPriceOverrides().get(i)!=null)
blocks[i] = new DefaultTieredBlock(in.getTieredBlocks()[i], override.getTieredBlockPriceOverrides().get(i), currency) ;
else
blocks[i] = (DefaultTieredBlock) in.getTieredBlocks()[i];
-
}
-
}
@Override
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
index 2043107..80e6bc9 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
@@ -88,17 +88,14 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
this.limits = (DefaultLimit[]) in.getLimits();
this.blocks = (DefaultBlock[]) in.getBlocks();
this.tiers = new DefaultTier[in.getTiers().length];
- for (int i = 0; i < in.getTiers().length; i++) {
-
- if(override != null && override.getTierPriceOverrides().get(i)!=null)
- tiers[i] = new DefaultTier(in.getTiers()[i], override.getTierPriceOverrides().get(i), currency) ;
- else
+ for (int i = 0; i < in.getTiers().length; i++) {
+ if(override != null && override.getTierPriceOverrides().get(i)!=null)
+ tiers[i] = new DefaultTier(in.getTiers()[i], override.getTierPriceOverrides().get(i), currency);
+ else
tiers[i] = (DefaultTier) in.getTiers()[i];
- }
+ }
}
-
-
@Override
public String getName() {
return name;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java b/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
index 1f7ccdd..856f035 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
@@ -70,9 +70,12 @@ public class DefaultPriceOverride implements PriceOverride {
}
}).orNull();
- resolvedOverride[index++] = curOverride != null ?
- new DefaultPlanPhasePriceOverride(curPhase.getName(), curOverride.getCurrency(), curOverride.getFixedPrice(), curOverride.getRecurringPrice(), getResolvedUsageOverrides(curPhase.getUsages(), curOverride.getUsagePriceOverrides())) :
- null;
+ if(curOverride != null) {
+ List<UsagePriceOverride> resolvedUsageOverrides = getResolvedUsageOverrides(curPhase.getUsages(), curOverride.getUsagePriceOverrides());
+ resolvedOverride[index++] = new DefaultPlanPhasePriceOverride(curPhase.getName(), curOverride.getCurrency(), curOverride.getFixedPrice(), curOverride.getRecurringPrice(), resolvedUsageOverrides);
+ }
+ else
+ resolvedOverride[index++] = null;
}
for (int i = 0; i < resolvedOverride.length; i++) {
@@ -98,7 +101,6 @@ public class DefaultPriceOverride implements PriceOverride {
return result;
}
-
public List<UsagePriceOverride> getResolvedUsageOverrides(Usage[] usages, List<UsagePriceOverride> usagePriceOverrides) throws CatalogApiException{
List<UsagePriceOverride> resolvedUsageOverrides = new ArrayList<UsagePriceOverride>();
@@ -109,9 +111,10 @@ public class DefaultPriceOverride implements PriceOverride {
return input.getName() != null && input.getName().equals(curUsage.getName());
}
}).orNull();
- if(curOverride != null)
- resolvedUsageOverrides.add(new DefaultUsagePriceOverride(curUsage.getName(), curUsage.getUsageType(), getResolvedTierOverrides(curUsage.getTiers(), curOverride.getTierPriceOverrides())));
- else
+ if(curOverride != null) {
+ List<TierPriceOverride> tierPriceOverrides = getResolvedTierOverrides(curUsage.getTiers(), curOverride.getTierPriceOverrides());
+ resolvedUsageOverrides.add(new DefaultUsagePriceOverride(curUsage.getName(), curUsage.getUsageType(),tierPriceOverrides));
+ } else
resolvedUsageOverrides.add(null);
}
@@ -146,8 +149,10 @@ public class DefaultPriceOverride implements PriceOverride {
}
}).orNull();
- if(curOverride != null)
- resolvedTierOverrides.add(new DefaultTierPriceOverride(getResolvedTieredBlockPriceOverrides(curTier.getTieredBlocks(),curOverride.getTieredBlockPriceOverrides())));
+ if(curOverride != null) {
+ List<TieredBlockPriceOverride> tieredBlockPriceOverrides = getResolvedTieredBlockPriceOverrides(curTier.getTieredBlocks(),curOverride.getTieredBlockPriceOverrides());
+ resolvedTierOverrides.add(new DefaultTierPriceOverride(tieredBlockPriceOverrides));
+ }
else
resolvedTierOverrides.add(null);
}
@@ -177,18 +182,6 @@ public class DefaultPriceOverride implements PriceOverride {
resolvedTieredBlockPriceOverrides.add(null);
}
- for (int i = 0; i < resolvedTieredBlockPriceOverrides.size(); i++) {
- final TieredBlockPriceOverride curOverride = resolvedTieredBlockPriceOverrides.get(i);
- if (curOverride != null) {
- final DefaultTieredBlock curTieredBlock = (DefaultTieredBlock)tieredBlocks[i];
-
- if (curTieredBlock.getPrice() == null && curOverride.getPrice() != null) {
- final String error = String.format("There is no existing price for the tiered block %s", curTieredBlock.getUnit().getName());
- throw new CatalogApiException(ErrorCode.CAT_INVALID_INVALID_UNIT_PRICE_OVERRIDE, curTieredBlock.getUnit().getName() , error);
- }
- }
- }
-
return resolvedTieredBlockPriceOverrides;
}
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionSqlDao.sql.stg
index c599660..217209a 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideBlockDefinitionSqlDao.sql.stg
@@ -2,7 +2,6 @@ group CatalogOverrideBlockDefinitionSqlDao;
tableName() ::= "catalog_override_block_definition"
-
tableFields(prefix) ::= <<
<prefix>parent_unit_name
, <prefix>size
@@ -20,7 +19,6 @@ allTableFields(prefix) ::= <<
, <tableFields(prefix)>
>>
-
tableValues() ::= <<
:parentUnitName
, :size
@@ -33,7 +31,6 @@ tableValues() ::= <<
, :tenantRecordId
>>
-
allTableValues() ::= <<
:recordId
, <tableValues()>
@@ -78,7 +75,6 @@ and tb.tenant_record_id = :tenantRecordId
;
>>
-
getLastInsertId() ::= <<
select LAST_INSERT_ID();
>>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.sql.stg
index 67055d1..127e89b 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseUsageSqlDao.sql.stg
@@ -1,9 +1,7 @@
group CatalogOverridePhaseUsageSqlDao;
-
tableName() ::= "catalog_override_phase_usage"
-
tableFields(prefix) ::= <<
<prefix>usage_number
, <prefix>usage_def_record_id
@@ -18,7 +16,6 @@ allTableFields(prefix) ::= <<
, <tableFields(prefix)>
>>
-
tableValues() ::= <<
:usageNumber
, :usageDefRecordId
@@ -28,7 +25,6 @@ tableValues() ::= <<
, :tenantRecordId
>>
-
allTableValues() ::= <<
:recordId
, <tableValues()>
@@ -70,6 +66,7 @@ where
and tmp.count = :targetCount
;
>>
+
getLastInsertId() ::= <<
select LAST_INSERT_ID();
>>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.sql.stg
index 9340433..34e52da 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierBlockSqlDao.sql.stg
@@ -1,9 +1,7 @@
group CatalogOverrideTierBlockSqlDao;
-
tableName() ::= "catalog_override_tier_block"
-
tableFields(prefix) ::= <<
<prefix>block_number
, <prefix>block_def_record_id
@@ -18,7 +16,6 @@ allTableFields(prefix) ::= <<
, <tableFields(prefix)>
>>
-
tableValues() ::= <<
:blockNumber
, :blockDefRecordId
@@ -28,7 +25,6 @@ tableValues() ::= <<
, :tenantRecordId
>>
-
allTableValues() ::= <<
:recordId
, <tableValues()>
@@ -70,6 +66,7 @@ where
and tmp.count = :targetCount
;
>>
+
getLastInsertId() ::= <<
select LAST_INSERT_ID();
>>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.sql.stg
index c9582cc..dbf1b54 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideTierDefinitionSqlDao.sql.stg
@@ -17,7 +17,6 @@ allTableFields(prefix) ::= <<
, <tableFields(prefix)>
>>
-
tableValues() ::= <<
:fixedPrice
, :recurringPrice
@@ -28,7 +27,6 @@ tableValues() ::= <<
, :tenantRecordId
>>
-
allTableValues() ::= <<
:recordId
, <tableValues()>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierSqlDao.sql.stg
index d273c86..18aa401 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverrideUsageTierSqlDao.sql.stg
@@ -1,9 +1,7 @@
group CatalogOverrideUsageTierSqlDao;
-
tableName() ::= "catalog_override_usage_tier"
-
tableFields(prefix) ::= <<
<prefix>tier_number
, <prefix>tier_def_record_id
@@ -18,7 +16,6 @@ allTableFields(prefix) ::= <<
, <tableFields(prefix)>
>>
-
tableValues() ::= <<
:tierNumber
, :tierDefRecordId
@@ -28,7 +25,6 @@ tableValues() ::= <<
, :tenantRecordId
>>
-
allTableValues() ::= <<
:recordId
, <tableValues()>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/ddl.sql b/catalog/src/main/resources/org/killbill/billing/catalog/ddl.sql
index aa2c415..380d7ad 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/ddl.sql
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/ddl.sql
@@ -107,11 +107,9 @@ PRIMARY KEY(record_id)
);
CREATE INDEX catalog_override_phase_usage_idx ON catalog_override_phase_usage(tenant_record_id, usage_number, usage_def_record_id);
-
DROP TABLE IF EXISTS catalog_override_usage_tier;
create table catalog_override_usage_tier
(
-
record_id serial unique,
tier_number smallint(5) unsigned,
tier_def_record_id bigint /*! unsigned */ not null,
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/BlockPriceOverrideJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/BlockPriceOverrideJson.java
index 54e8eb6..21f1d7f 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/BlockPriceOverrideJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/BlockPriceOverrideJson.java
@@ -10,7 +10,6 @@ import java.math.BigDecimal;
public class BlockPriceOverrideJson {
-
private String unitName;
private Double size;
@@ -84,6 +83,4 @@ public class BlockPriceOverrideJson {
}
return true;
}
-
-
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/UsagePriceOverrideJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/UsagePriceOverrideJson.java
index c7bcdc5..8d4b020 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/UsagePriceOverrideJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/UsagePriceOverrideJson.java
@@ -12,14 +12,12 @@ import java.util.List;
public class UsagePriceOverrideJson {
-
private final String usageName;
private final UsageType usageType;
private final BillingMode billingMode;
-
private final List<TierPriceOverrideJson> tierPriceOverrides;
public String getUsageName() {
@@ -48,6 +46,4 @@ public class UsagePriceOverrideJson {
this.billingMode = billingMode;
this.tierPriceOverrides = tierPriceOverrides;
}
-
-
}
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
index f09efa0..947473c 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
@@ -35,7 +35,7 @@ import static org.killbill.billing.jaxrs.JaxrsTestUtils.createAuditLogsJson;
public class TestBundleJsonWithSubscriptions extends JaxrsTestSuiteNoDB {
- /* @Test(groups = "fast")
+ @Test(groups = "fast")
public void testJson() throws Exception {
final String someUUID = UUID.randomUUID().toString();
final UUID bundleId = UUID.randomUUID();
@@ -56,7 +56,7 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuiteNoDB {
UUID.randomUUID().toString(),
null);
- final PhasePriceOverrideJson priceOverride = new PhasePriceOverrideJson(null, "somePhaseType", BigDecimal.ONE, null);
+ final PhasePriceOverrideJson priceOverride = new PhasePriceOverrideJson(null, "somePhaseType", BigDecimal.ONE, null, null);
final SubscriptionJson subscription = new SubscriptionJson(UUID.randomUUID().toString(),
UUID.randomUUID().toString(),
@@ -88,5 +88,5 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuiteNoDB {
final BundleJson fromJson = mapper.readValue(asJson, BundleJson.class);
Assert.assertEquals(fromJson, bundleJson);
- } */
+ }
}