📄 jgroupstransport.java
字号:
package org.jgroups.tests.perf.transports;import org.jgroups.Address;import org.jgroups.JChannel;import org.jgroups.Message;import org.jgroups.jmx.JmxConfigurator;import org.jgroups.tests.perf.Receiver;import org.jgroups.tests.perf.Transport;import org.jgroups.util.Util;import javax.management.MBeanServer;import java.util.Map;import java.util.Properties;/** * @author Bela Ban Jan 22 * @author 2004 * @version $Id: JGroupsTransport.java,v 1.14 2006/07/31 09:21:59 belaban Exp $ */public class JGroupsTransport extends org.jgroups.ReceiverAdapter implements Transport { Properties config=null; JChannel channel=null; Thread t=null; String props=null; String group_name="perf"; Receiver receiver=null; boolean jmx=false; public JGroupsTransport() { } public Object getLocalAddress() { return channel != null? channel.getLocalAddress() : null; } public void create(Properties properties) throws Exception { this.config=properties; props=config.getProperty("props"); jmx=new Boolean(this.config.getProperty("jmx")).booleanValue(); channel=new JChannel(props); channel.setReceiver(this); } public void start() throws Exception { channel.connect(group_name); if(jmx) { MBeanServer server=Util.getMBeanServer(); if(server == null) { throw new Exception("No MBeanServers found;" + "\nneeds to be run with an MBeanServer present, or inside JDK 5"); } JmxConfigurator.registerChannel(channel, server, "jgroups.perf", channel.getClusterName() , true); } } public void stop() { if(channel != null) { channel.shutdown(); // will cause thread to terminate anyways } t=null; } public void destroy() { if(channel != null) { channel.close(); channel=null; } } public void setReceiver(Receiver r) { this.receiver=r; } public Map dumpStats() { return channel != null? channel.dumpStats() : null; } public void send(Object destination, byte[] payload) throws Exception { Message msg=new Message((Address)destination, null, payload); if(channel != null) channel.send(msg); } public void receive(Message msg) { Address sender=msg.getSrc(); byte[] payload=msg.getBuffer(); if(receiver != null) { try { receiver.receive(sender, payload); } catch(Throwable tt) { tt.printStackTrace(); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -