package org.jgroups.tests; import org.jgroups.*; import org.jgroups.protocols.*; import org.jgroups.protocols.pbcast.GMS; import org.jgroups.protocols.pbcast.NAKACK2; import org.jgroups.protocols.pbcast.STABLE; import org.jgroups.stack.Protocol; import org.jgroups.util.Util; import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; /** * @author Bela Ban */ @Test(groups=Global.FUNCTIONAL,singleThreaded=true) public class ProgrammaticApiTest { protected JChannel ch; @AfterMethod void destroy() { Util.close(ch); } public void testChannelCreation() throws Exception { ch=new JChannel(new SHARED_LOOPBACK(), new MockProtocol1(), new MockProtocol2()).name("A"); MyReceiver receiver=new MyReceiver(); ch.setReceiver(receiver); ch.connect("demo"); Protocol transport=ch.getProtocolStack().getTransport(); transport.up(new Message(null, "hello world").src(Util.createRandomAddress())); assert receiver.num_msgs_received == 1; } protected static class MockProtocol1 extends Protocol { } protected static class MockProtocol2 extends Protocol { } static Protocol[] createProtocols() { return new Protocol[] { new PING(), new MERGE3(), new FD_SOCK(), new FD_ALL().setValue("timeout", 12000).setValue("interval", 3000), new VERIFY_SUSPECT(), new BARRIER(), new NAKACK2(), new UNICAST3(), new STABLE(), new GMS(), new UFC(), new MFC(), new FRAG2() }; } static class MyReceiver extends ReceiverAdapter { int num_msgs_received; public void receive(Message msg) { System.out.println("<< " + msg.getObject()); num_msgs_received++; } } }