/**********************************************************\
| |
| hprose |
| |
| Official WebSite: http://www.hprose.com/ |
| http://www.hprose.org/ |
| |
\**********************************************************/
/**********************************************************\
* *
* HproseTcpServiceExporter.java *
* *
* HproseTcpServiceExporter for Java Spring Framework. *
* *
* LastModified: Mar 13, 2016 *
* Author: Ma Bingyao <andot@hprose.com> *
* *
\**********************************************************/
package org.springframework.remoting.hprose;
import hprose.common.FilterHandler;
import hprose.common.HproseFilter;
import hprose.common.InvokeHandler;
import hprose.io.HproseMode;
import hprose.server.HproseServiceEvent;
import hprose.server.HproseTcpServer;
import java.io.IOException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.remoting.support.RemoteExporter;
public class HproseTcpServiceExporter extends RemoteExporter implements InitializingBean {
private HproseTcpServer tcpServer;
private String host;
private int port = 0;
private boolean debug = true;
private HproseServiceEvent event = null;
private HproseMode mode = HproseMode.MemberMode;
private HproseFilter filter = null;
private InvokeHandler invokeHandler = null;
private FilterHandler beforeFilterHandler = null;
private FilterHandler afterFilterHandler = null;
@Override
public void afterPropertiesSet() throws Exception {
checkService();
checkServiceInterface();
Object service = getService();
Class cls = getServiceInterface();
tcpServer = new HproseTcpServer(host, port);
tcpServer.add(service, cls);
tcpServer.setDebugEnabled(debug);
tcpServer.setEvent(event);
tcpServer.setMode(mode);
tcpServer.setFilter(filter);
tcpServer.use(invokeHandler);
tcpServer.beforeFilter.use(beforeFilterHandler);
tcpServer.afterFilter.use(afterFilterHandler);
}
public void setDebugEnabled(boolean value) {
debug = value;
}
public void setEvent(HproseServiceEvent value) {
event = value;
}
public void setMode(HproseMode value) {
mode = value;
}
public void setFilter(HproseFilter value) {
filter = value;
}
public void setInvokeHandler(InvokeHandler value) {
invokeHandler = value;
}
public void setBeforeFilterHandler(FilterHandler value) {
beforeFilterHandler = value;
}
public void setAfterFilterHandler(FilterHandler value) {
afterFilterHandler = value;
}
public void setHost(String value) {
host = value;
}
public void setPort(int value) {
port = value;
}
public void start() throws IOException {
tcpServer.start();
}
public void stop() {
tcpServer.stop();
}
}