killbill-memoizeit

jruby: add new system property for plugins You can now use

5/8/2013 2:35:33 PM

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 d70c7dc..e70c2cc 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
@@ -30,8 +30,12 @@ import com.ning.billing.osgi.api.config.PluginRubyConfig;
 import com.ning.killbill.osgi.libs.killbill.KillbillActivatorBase;
 import com.ning.killbill.osgi.libs.killbill.OSGIKillbillEventDispatcher.OSGIKillbillEventHandler;
 
+import com.google.common.base.Objects;
+
 public class JRubyActivator extends KillbillActivatorBase {
 
+    private static final String jrubyPluginsConfDir = System.getProperty("com.ning.billing.osgi.bundles.jruby.conf.dir");
+
     private JRubyPlugin plugin = null;
 
     public void start(final BundleContext context) throws Exception {
@@ -61,6 +65,8 @@ public class JRubyActivator extends KillbillActivatorBase {
                 final Map<String, Object> killbillServices = retrieveKillbillApis(context);
                 killbillServices.put("root", rubyConfig.getPluginVersionRoot().getAbsolutePath());
                 killbillServices.put("logger", logService);
+                // Default to the plugin root dir if no jruby plugins specific configuration directory was specified
+                killbillServices.put("conf_dir", Objects.firstNonNull(jrubyPluginsConfDir, rubyConfig.getPluginVersionRoot().getAbsolutePath()));
                 plugin.instantiatePlugin(killbillServices);
 
                 logService.log(LogService.LOG_INFO, "Starting JRuby plugin " + plugin.getPluginMainClass());