killbill-memoizeit
Changes
beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestJrubyCurrencyPlugin.java 2(+1 -1)
osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyActivator.java 1(+1 -0)
osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyCurrencyPlugin.java 2(+1 -1)
pom.xml 2(+1 -1)
Details
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestJrubyCurrencyPlugin.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestJrubyCurrencyPlugin.java
index 3444c34..dcba30a 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestJrubyCurrencyPlugin.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestJrubyCurrencyPlugin.java
@@ -28,8 +28,8 @@ import org.testng.annotations.Test;
import com.ning.billing.beatrix.osgi.SetupBundleWithAssertion;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.currency.api.Rate;
import com.ning.billing.currency.plugin.api.CurrencyPluginApi;
-import com.ning.billing.currency.plugin.api.Rate;
import com.ning.billing.osgi.api.OSGIServiceRegistration;
import static org.testng.Assert.assertEquals;
diff --git a/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversion.java b/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversion.java
index 1bdafd2..56178ad 100644
--- a/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversion.java
+++ b/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversion.java
@@ -16,34 +16,29 @@
package com.ning.billing.currency.api;
+import java.util.Set;
+
import org.joda.time.DateTime;
import com.ning.billing.catalog.api.Currency;
public class DefaultCurrencyConversion implements CurrencyConversion {
- private final DateTime conversionDate;
private final Currency baseCurrency;
- private final Rates rates;
+ private final Set<Rate> rates;
- public DefaultCurrencyConversion(final DateTime conversionDate, final Currency baseCurrency, final Rates rates) {
- this.conversionDate = conversionDate;
+ public DefaultCurrencyConversion(final Currency baseCurrency, final Set<Rate> rates) {
this.baseCurrency = baseCurrency;
this.rates = rates;
}
@Override
- public DateTime getConversionDate() {
- return conversionDate;
- }
-
- @Override
public Currency getBaseCurrency() {
return baseCurrency;
}
@Override
- public Rates getRates() {
+ public final Set<Rate> getRates() {
return rates;
}
}
diff --git a/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversionApi.java b/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversionApi.java
index c678a65..3c73d4a 100644
--- a/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversionApi.java
+++ b/currency/src/main/java/com/ning/billing/currency/api/DefaultCurrencyConversionApi.java
@@ -16,9 +16,6 @@
package com.ning.billing.currency.api;
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
@@ -28,7 +25,6 @@ import org.joda.time.DateTime;
import com.ning.billing.ErrorCode;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.currency.plugin.api.CurrencyPluginApi;
-import com.ning.billing.currency.plugin.api.Rate;
import com.ning.billing.osgi.api.OSGIServiceRegistration;
import com.ning.billing.util.config.CurrencyConfig;
@@ -71,16 +67,7 @@ public class DefaultCurrencyConversionApi implements CurrencyConversionApi {
}
private CurrencyConversion getCurrencyConversionInternal(final Currency baseCurrency, final Set<Rate> allRates) {
- final Map<Currency, BigDecimal> rateMap = new HashMap<Currency, BigDecimal>();
- DateTime conversionDate = null;
- for (Rate cur : allRates) {
- // We expect all those dates to be the same but if that were not the case we take the min -- what looks like the oldest
- conversionDate = (conversionDate == null || conversionDate.isAfter(cur.getConversionDate())) ? cur.getConversionDate() : conversionDate;
- rateMap.put(cur.getCurrency(), cur.getValue());
- }
-
- final Rates rates = new DefaultRates(rateMap);
- final CurrencyConversion result = new DefaultCurrencyConversion(conversionDate, baseCurrency, rates);
+ final CurrencyConversion result = new DefaultCurrencyConversion(baseCurrency, allRates);
return result;
}
}
diff --git a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyActivator.java b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyActivator.java
index 38fc7cb..d97ceca 100644
--- a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyActivator.java
+++ b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyActivator.java
@@ -182,6 +182,7 @@ public class JRubyActivator extends KillbillActivatorBase {
killbillUserApis.put("payment_api", killbillAPI.getPaymentApi());
killbillUserApis.put("custom_field_user_api", killbillAPI.getCustomFieldUserApi());
killbillUserApis.put("tag_user_api", killbillAPI.getTagUserApi());
+ killbillUserApis.put("currency_conversion_api", killbillAPI.getCurrencyConversionApi());
return killbillUserApis;
}
diff --git a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyCurrencyPlugin.java b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyCurrencyPlugin.java
index 3f19e8f..7e752d3 100644
--- a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyCurrencyPlugin.java
+++ b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyCurrencyPlugin.java
@@ -28,8 +28,8 @@ import org.osgi.framework.ServiceRegistration;
import org.osgi.service.log.LogService;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.currency.api.Rate;
import com.ning.billing.currency.plugin.api.CurrencyPluginApi;
-import com.ning.billing.currency.plugin.api.Rate;
import com.ning.billing.osgi.api.OSGIPluginProperties;
import com.ning.billing.osgi.api.config.PluginRubyConfig;
import com.ning.billing.payment.plugin.api.PaymentPluginApiException;
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index 43ac377..33db792 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>killbill-oss-parent</artifactId>
<groupId>com.ning.billing</groupId>
- <version>0.5.3</version>
+ <version>0.5.4</version>
</parent>
<artifactId>killbill</artifactId>
<version>0.7.2-SNAPSHOT</version>