killbill-memoizeit

Details

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 1540012..b28fc18 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
@@ -108,7 +108,7 @@ public class JRubyActivator extends KillbillActivatorBase {
         killbillUserApis.put("analytics_user_api", killbillAPI.getAnalyticsUserApi());
         killbillUserApis.put("catalog_user_api", killbillAPI.getCatalogUserApi());
         killbillUserApis.put("entitlement_migration_api", killbillAPI.getEntitlementMigrationApi());
-        killbillUserApis.put("entitlement_timeline_api", killbillAPI.getEntitlementMigrationApi());
+        killbillUserApis.put("entitlement_timeline_api", killbillAPI.getEntitlementTimelineApi());
         killbillUserApis.put("entitlement_transfer_api", killbillAPI.getEntitlementTransferApi());
         killbillUserApis.put("entitlement_user_api", killbillAPI.getEntitlementUserApi());
         killbillUserApis.put("invoice_migration_api", killbillAPI.getInvoiceMigrationApi());
@@ -116,7 +116,7 @@ public class JRubyActivator extends KillbillActivatorBase {
         killbillUserApis.put("invoice_user_api", killbillAPI.getInvoiceUserApi());
         killbillUserApis.put("overdue_user_api", killbillAPI.getOverdueUserApi());
         killbillUserApis.put("payment_api", killbillAPI.getPaymentApi());
-        killbillUserApis.put("tenant_user_api", killbillAPI.getTagUserApi());
+        killbillUserApis.put("tenant_user_api", killbillAPI.getTenantUserApi());
         killbillUserApis.put("usage_user_api", killbillAPI.getUsageUserApi());
         killbillUserApis.put("audit_user_api", killbillAPI.getAuditUserApi());
         killbillUserApis.put("custom_field_user_api", killbillAPI.getCustomFieldUserApi());
diff --git a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyPlugin.java b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyPlugin.java
index 0922ba5..13eda28 100644
--- a/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyPlugin.java
+++ b/osgi-bundles/bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/JRubyPlugin.java
@@ -43,7 +43,7 @@ public abstract class JRubyPlugin {
 
     // Magic ruby variables
     private static final String KILLBILL_SERVICES = "java_apis";
-    private static final String ACTIVE = "@active";
+    private static final String KILLBILL_PLUGIN_CLASS_NAME = "plugin_class_name";
 
     protected final LogService logger;
     protected final BundleContext bundleContext;
@@ -87,12 +87,13 @@ public abstract class JRubyPlugin {
 
         // Register all killbill APIs
         container.put(KILLBILL_SERVICES, killbillApis);
+        container.put(KILLBILL_PLUGIN_CLASS_NAME, pluginMainClass);
 
         // Note that the KILLBILL_SERVICES variable will be available once only!
         // Don't put any code here!
 
         // Start the plugin
-        pluginInstance = (RubyObject) container.runScriptlet(pluginMainClass + ".new(" + KILLBILL_SERVICES + ")");
+        pluginInstance = (RubyObject) container.runScriptlet("Killbill::Plugin::JPlugin.new(" + KILLBILL_PLUGIN_CLASS_NAME + "," + KILLBILL_SERVICES + ")");
     }
 
     public void startPlugin(final BundleContext context) {
@@ -129,13 +130,13 @@ public abstract class JRubyPlugin {
     }
 
     protected void checkPluginIsRunning() {
-        if (pluginInstance == null || !pluginInstance.getInstanceVariable(ACTIVE).isTrue()) {
+        if (pluginInstance == null || ! (Boolean) pluginInstance.callMethod("is_active").toJava(Boolean.class)) {
             throw new IllegalStateException(String.format("Plugin %s didn't start properly", pluginMainClass));
         }
     }
 
     protected void checkPluginIsStopped() {
-        if (pluginInstance == null || pluginInstance.getInstanceVariable(ACTIVE).isTrue()) {
+        if (pluginInstance == null || (Boolean) pluginInstance.callMethod("is_active").toJava(Boolean.class)) {
             throw new IllegalStateException(String.format("Plugin %s didn't stop properly", pluginMainClass));
         }
     }