killbill-memoizeit

Details

diff --git a/api/src/main/java/com/ning/billing/catalog/api/PriceList.java b/api/src/main/java/com/ning/billing/catalog/api/PriceList.java
index 7ba912a..8dc46b4 100644
--- a/api/src/main/java/com/ning/billing/catalog/api/PriceList.java
+++ b/api/src/main/java/com/ning/billing/catalog/api/PriceList.java
@@ -16,7 +16,6 @@
 
 package com.ning.billing.catalog.api;
 
-
 public interface PriceList {
 
     public abstract String getName();
@@ -25,4 +24,5 @@ public interface PriceList {
 
     public abstract Plan findPlan(Product product, BillingPeriod period);
 
+    public Plan[] getPlans();
 }
diff --git a/catalog/src/main/java/com/ning/billing/catalog/DefaultPriceList.java b/catalog/src/main/java/com/ning/billing/catalog/DefaultPriceList.java
index 9c9ce54..f2bd4e1 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/DefaultPriceList.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/DefaultPriceList.java
@@ -54,10 +54,12 @@ public class DefaultPriceList extends ValidatingConfig<StandaloneCatalog> implem
         this.name = name;
     }
 
-    protected DefaultPlan[] getPlans() {
+    @Override
+    public DefaultPlan[] getPlans() {
         return plans;
     }
 
+    @Override
     public boolean isRetired() {
         return retired;
     }
diff --git a/catalog/src/main/java/com/ning/billing/catalog/StandaloneCatalog.java b/catalog/src/main/java/com/ning/billing/catalog/StandaloneCatalog.java
index 3b3869f..8be724f 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/StandaloneCatalog.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/StandaloneCatalog.java
@@ -351,10 +351,11 @@ public class StandaloneCatalog extends ValidatingConfig<StandaloneCatalog> imple
         for (Plan plan : getCurrentPlans()) {
             if (plan.getProduct().getCategory().equals(ProductCategory.BASE)) {
                 for (PriceList priceList : getPriceLists().getAllPriceLists()) {
-                    Plan planInList = priceList.findPlan(plan.getProduct(), plan.getBillingPeriod());
-
-                    if (planInList != null) {
-                        availBasePlans.add(new DefaultListing(plan, priceList));
+                    for (Plan priceListPlan : priceList.getPlans()) {
+                        if (priceListPlan.getName().equals(plan.getName()) &&
+                            priceListPlan.getProduct().getName().equals(plan.getProduct().getName())) {
+                            availBasePlans.add(new DefaultListing(priceListPlan, priceList));
+                        }
                     }
                 }
             }
diff --git a/util/src/test/java/com/ning/billing/mock/MockPriceList.java b/util/src/test/java/com/ning/billing/mock/MockPriceList.java
index 8903a3c..6b2fe31 100644
--- a/util/src/test/java/com/ning/billing/mock/MockPriceList.java
+++ b/util/src/test/java/com/ning/billing/mock/MockPriceList.java
@@ -56,4 +56,9 @@ public class MockPriceList implements PriceList {
     public Plan getPlan() {
         return plan;
     }
+
+    @Override
+    public Plan[] getPlans() {
+        return new Plan[] { plan };
+    }
 }