killbill-aplcache
Changes
invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java 18(+18 -0)
pom.xml 2(+1 -1)
Details
diff --git a/api/src/main/java/com/ning/billing/util/template/translation/TranslatorConfig.java b/api/src/main/java/com/ning/billing/util/template/translation/TranslatorConfig.java
index a72d778..14dacf5 100644
--- a/api/src/main/java/com/ning/billing/util/template/translation/TranslatorConfig.java
+++ b/api/src/main/java/com/ning/billing/util/template/translation/TranslatorConfig.java
@@ -19,6 +19,8 @@ package com.ning.billing.util.template.translation;
import org.skife.config.Config;
import org.skife.config.Default;
+import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
+
public interface TranslatorConfig {
@Config("killbill.template.default.locale")
@Default("en_US")
@@ -31,4 +33,8 @@ public interface TranslatorConfig {
@Config("killbill.template.name")
@Default("com/ning/billing/util/email/templates/HtmlInvoiceTemplate.mustache")
String getTemplateName();
+
+ @Config("killbill.template.invoiceFormatterFactoryClass")
+ @Default("com.ning.billing.invoice.template.formatters.DefaultInvoiceFormatterFactory")
+ Class<? extends InvoiceFormatterFactory> getInvoiceFormatterFactoryClass();
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
index 85b009b..918bfa2 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
@@ -88,7 +88,7 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
bind(NextBillingDatePoster.class).to(DefaultNextBillingDatePoster.class).asEagerSingleton();
final TranslatorConfig config = new ConfigurationObjectFactory(System.getProperties()).build(TranslatorConfig.class);
bind(TranslatorConfig.class).toInstance(config);
- bind(InvoiceFormatterFactory.class).to(DefaultInvoiceFormatterFactory.class).asEagerSingleton();
+ bind(InvoiceFormatterFactory.class).to(config.getInvoiceFormatterFactoryClass()).asEagerSingleton();
}
protected void installInvoiceNotifier() {
diff --git a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
index 098bde8..6ed5713 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
@@ -179,4 +179,22 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
public UUID getId() {
return invoice.getId();
}
+
+ // Expose the fields for children classes. This is useful for further customization of the invoices
+
+ protected TranslatorConfig getConfig() {
+ return config;
+ }
+
+ protected DateTimeFormatter getDateFormatter() {
+ return dateFormatter;
+ }
+
+ protected Locale getLocale() {
+ return locale;
+ }
+
+ protected Invoice getInvoice() {
+ return invoice;
+ }
}
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index c5264f7..b3fbb33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -290,7 +290,7 @@
<dependency>
<groupId>org.skife.config</groupId>
<artifactId>config-magic</artifactId>
- <version>0.13</version>
+ <version>0.14</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>