renamed JRubyProxyFunction to JRubyTridentFunction

This commit is contained in:
Colin Surprenant 2014-03-02 19:43:10 -05:00
parent b67c445456
commit ddb49f4f90
2 changed files with 10 additions and 12 deletions

View File

@ -31,6 +31,7 @@ java_import 'backtype.storm.tuple.Values'
# java_import 'redstorm.storm.jruby.JRubyTransactionalSpout' # java_import 'redstorm.storm.jruby.JRubyTransactionalSpout'
# java_import 'redstorm.storm.jruby.JRubyTransactionalBolt' # java_import 'redstorm.storm.jruby.JRubyTransactionalBolt'
# java_import 'redstorm.storm.jruby.JRubyTransactionalCommitterBolt' # java_import 'redstorm.storm.jruby.JRubyTransactionalCommitterBolt'
# java_import 'redstorm.storm.jruby.JRubyProxyFunction'
java_package 'redstorm' java_package 'redstorm'

View File

@ -14,45 +14,42 @@ import org.jruby.javasupport.JavaUtil;
import org.jruby.RubyModule; import org.jruby.RubyModule;
import org.jruby.exceptions.RaiseException; import org.jruby.exceptions.RaiseException;
public class JRubyProxyFunction implements Function { public class JRubyTridentFunction implements Function {
private final String _realClassName; private final String _realClassName;
private final String _bootstrap; private final String _bootstrap;
// transient to avoid serialization // transient to avoid serialization
private transient IRubyObject _proxy; private transient IRubyObject _ruby_function;
private transient Ruby __ruby__; private transient Ruby __ruby__;
public JRubyProxyFunction(final String baseClassPath, final String realClassName) { public JRubyTridentFunction(final String baseClassPath, final String realClassName) {
_realClassName = realClassName; _realClassName = realClassName;
_bootstrap = "require '" + baseClassPath + "'"; _bootstrap = "require '" + baseClassPath + "'";
} }
@Override @Override
public void execute(final TridentTuple tuple, final TridentCollector collector) { public void execute(final TridentTuple tuple, final TridentCollector collector) {
if(_proxy == null) {
_proxy = initialize_proxy();
}
IRubyObject ruby_tuple = JavaUtil.convertJavaToRuby(__ruby__, tuple); IRubyObject ruby_tuple = JavaUtil.convertJavaToRuby(__ruby__, tuple);
IRubyObject ruby_collector = JavaUtil.convertJavaToRuby(__ruby__, collector); IRubyObject ruby_collector = JavaUtil.convertJavaToRuby(__ruby__, collector);
Helpers.invoke(__ruby__.getCurrentContext(), _proxy, "execute", ruby_tuple, ruby_collector); Helpers.invoke(__ruby__.getCurrentContext(), _ruby_function, "execute", ruby_tuple, ruby_collector);
} }
@Override @Override
public void cleanup() { public void cleanup() {
Helpers.invoke(__ruby__.getCurrentContext(), _proxy, "cleanup"); Helpers.invoke(__ruby__.getCurrentContext(), _ruby_function, "cleanup");
} }
@Override @Override
public void prepare(final Map conf, final TridentOperationContext context) { public void prepare(final Map conf, final TridentOperationContext context) {
if(_proxy == null) { if(_ruby_function == null) {
_proxy = initialize_proxy(); _ruby_function = initialize_ruby_function();
} }
IRubyObject ruby_conf = JavaUtil.convertJavaToRuby(__ruby__, conf); IRubyObject ruby_conf = JavaUtil.convertJavaToRuby(__ruby__, conf);
IRubyObject ruby_context = JavaUtil.convertJavaToRuby(__ruby__, context); IRubyObject ruby_context = JavaUtil.convertJavaToRuby(__ruby__, context);
Helpers.invoke(__ruby__.getCurrentContext(), _proxy, "prepare", ruby_conf, ruby_context); Helpers.invoke(__ruby__.getCurrentContext(), _ruby_function, "prepare", ruby_conf, ruby_context);
} }
private IRubyObject initialize_proxy() { private IRubyObject initialize_ruby_function() {
__ruby__ = Ruby.getGlobalRuntime(); __ruby__ = Ruby.getGlobalRuntime();
RubyModule ruby_class; RubyModule ruby_class;