package org.societies.comm.test; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.api.comm.xmpp.datatypes.Stanza; import org.societies.api.comm.xmpp.datatypes.XMPPInfo; import org.societies.api.comm.xmpp.exceptions.CommunicationException; import org.societies.api.comm.xmpp.exceptions.XMPPError; import org.societies.api.comm.xmpp.interfaces.ICommCallback; import org.societies.api.comm.xmpp.interfaces.ICommManager; import org.societies.api.identity.IIdentityManager; import org.societies.api.identity.INetworkNode; import org.societies.test.Testnode; import org.societies.test.event.Eventnode; public class Test3PServiceClient extends Thread implements ICommCallback { private final static List<String> NAMESPACES = Collections .unmodifiableList(Arrays.asList( "http://societies.org/test#event", "http://societies.org/test")); private static final List<String> PACKAGES = Collections .unmodifiableList(Arrays.asList( "org.societies.test.event", "org.societies.test")); private static Logger LOG = LoggerFactory .getLogger(Test3PServiceClient.class); private IIdentityManager idm; private ICommManager endpoint; private INetworkNode thisNode; public Test3PServiceClient(ICommManager endpoint) { this.endpoint = endpoint; idm = endpoint.getIdManager(); thisNode = idm.getThisNetworkNode(); try { endpoint.register(this); LOG.info("Test3PServiceClient initialized! Launching test thread..."); start(); } catch (CommunicationException e) { LOG.error("CommunicationException",e); } } private Testnode createTestItem() { Testnode tn = new Testnode(); tn.setTestattribute("clientTestValue"); return tn; } @Override public void run() { try { Thread.sleep(2000); LOG.info("Sending IQ..."); Object o = createTestItem(); Stanza s = new Stanza(thisNode); endpoint.sendIQGet(s, o, this); } catch (InterruptedException e) { LOG.error("InterruptedException",e); } catch (CommunicationException e) { LOG.error("CommunicationException",e); } } @Override public List<String> getJavaPackages() { return PACKAGES; } @Override public List<String> getXMLNamespaces() { return NAMESPACES; } @Override public void receiveError(Stanza arg0, XMPPError arg1) { LOG.info("Got Error!"); } @Override public void receiveInfo(Stanza arg0, String arg1, XMPPInfo arg2) { LOG.info("Got Info!"); } @Override public void receiveItems(Stanza arg0, String arg1, List<String> arg2) { LOG.info("Got Items!"); } @Override public void receiveMessage(Stanza arg0, Object arg1) { LOG.info("Got Message! Eventnode:"+((Eventnode)arg1).getTestattribute()); } @Override public void receiveResult(Stanza arg0, Object arg1) { LOG.info("Got IQ result! Testnode:"+((Testnode)arg1).getTestattribute()); } }