renamed JRubyProxyFunction to JRubyTridentFunction
This commit is contained in:
parent
b67c445456
commit
ddb49f4f90
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue