package net.jxta.impl.endpoint.netty; import java.io.IOException; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import net.jxta.peer.PeerID; import net.jxta.document.Advertisement; import net.jxta.endpoint.EndpointAddress; import net.jxta.endpoint.EndpointListener; import net.jxta.endpoint.EndpointService; import net.jxta.endpoint.Message; import net.jxta.endpoint.MessageFilterListener; import net.jxta.endpoint.MessageTransport; import net.jxta.endpoint.Messenger; import net.jxta.endpoint.MessengerEventListener; import net.jxta.exception.PeerGroupException; import net.jxta.id.ID; import net.jxta.peergroup.PeerGroup; import net.jxta.service.Service; public class FakeEndpointService implements EndpointService { public Queue<ReceivedMessage> received; public PeerGroup group; private List<MessageTransport> transports; public List<Messenger> messengers; private boolean refuseRegistration = false; public FakeEndpointService(PeerGroup group) { this.group = group; received = new ConcurrentLinkedQueue<ReceivedMessage>(); transports = new LinkedList<MessageTransport>(); messengers = Collections.synchronizedList(new LinkedList<Messenger>()); } public PeerGroup getGroup() { return group; } public void processIncomingMessage(Message message, EndpointAddress srcAddr, EndpointAddress dstAddr) { received.offer(new ReceivedMessage(message, srcAddr, dstAddr)); } public class ReceivedMessage { public Message msg; public EndpointAddress srcAddr; public EndpointAddress dstAddr; public ReceivedMessage(Message msg, EndpointAddress srcAddr, EndpointAddress dstAddr) { this.msg = msg; this.srcAddr = srcAddr; this.dstAddr = dstAddr; } } /* UNIMPLEMENTED, IRRELEVANT METHODS BEYOND THIS POINT */ public void addIncomingMessageFilterListener(MessageFilterListener listener, String namespace, String name) { throw new RuntimeException("not implemented"); } public boolean addIncomingMessageListener(EndpointListener listener, String serviceName, String serviceParam) { throw new RuntimeException("not implemented"); } public MessengerEventListener addMessageTransport(MessageTransport transport) { if(refuseRegistration) { return null; } this.transports.add(transport); return new FakeMessengerEventListener(this); } public boolean addMessengerEventListener(MessengerEventListener listener, int priority) { throw new RuntimeException("not implemented"); } public void addOutgoingMessageFilterListener(MessageFilterListener listener, String namespace, String name) { throw new RuntimeException("not implemented"); } public void demux(Message msg) { throw new RuntimeException("not implemented"); } public Iterator<MessageTransport> getAllMessageTransports() { throw new RuntimeException("not implemented"); } public Messenger getCanonicalMessenger(EndpointAddress addr, Object hint) { throw new RuntimeException("not implemented"); } public Messenger getDirectMessenger(EndpointAddress addr, Object hint, boolean exclusive) { throw new RuntimeException("not implemented"); } public EndpointListener getIncomingMessageListener(String serviceName, String serviceParam) { throw new RuntimeException("not implemented"); } public MessageTransport getMessageTransport(String name) { throw new RuntimeException("not implemented"); } public Messenger getMessenger(EndpointAddress addr, Object hint) { throw new RuntimeException("not implemented"); } public Messenger getMessenger(EndpointAddress addr) { throw new RuntimeException("not implemented"); } public boolean getMessenger(MessengerEventListener listener, EndpointAddress addr, Object hint) { throw new RuntimeException("not implemented"); } public Messenger getMessengerImmediate(EndpointAddress addr, Object hint) { throw new RuntimeException("not implemented"); } public boolean ping(EndpointAddress addr) { throw new RuntimeException("not implemented"); } public void propagate(Message message, String serviceName, String serviceParam) throws IOException { throw new RuntimeException("not implemented"); } public void propagate(Message message, String serviceName, String serviceParam, int initialTTL) { throw new RuntimeException("not implemented"); } public MessageFilterListener removeIncomingMessageFilterListener(MessageFilterListener listener, String namespace, String name) { throw new RuntimeException("not implemented"); } public EndpointListener removeIncomingMessageListener(String serviceName, String serviceParam) { throw new RuntimeException("not implemented"); } public boolean removeMessageTransport(MessageTransport transpt) { throw new RuntimeException("not implemented"); } public boolean removeMessengerEventListener(MessengerEventListener listener, int priority) { throw new RuntimeException("not implemented"); } public MessageFilterListener removeOutgoingMessageFilterListener(MessageFilterListener listener, String namespace, String name) { throw new RuntimeException("not implemented"); } public Advertisement getImplAdvertisement() { throw new RuntimeException("not implemented"); } public Service getInterface() { throw new RuntimeException("not implemented"); } public void init(PeerGroup group, ID assignedID, Advertisement implAdv) throws PeerGroupException { throw new RuntimeException("not implemented"); } public int startApp(String[] args) { throw new RuntimeException("not implemented"); } public void stopApp() { throw new RuntimeException("not implemented"); } public void refuseRegistration() { refuseRegistration = true; } public void processIncomingMessage(Message msg) { // do nothing } public boolean isReachable(PeerID pid, boolean tryToConnect) { throw new RuntimeException("not implemented"); } }