package org.kevoree.library.xmpp.cmp; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.filter.PacketTypeFilter; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.packet.Presence; import org.kevoree.annotation.*; import org.kevoree.framework.AbstractChannelFragment; import org.kevoree.framework.ChannelFragmentSender; import org.kevoree.framework.message.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Library(name = "JavaSE") @ChannelTypeFragment @ThirdParties({ @ThirdParty(name = "org.kevoree.extra.marshalling", url = "mvn:org.kevoree.extra/org.kevoree.extra.marshalling") }) @DictionaryType({ @DictionaryAttribute(name = "userName"), @DictionaryAttribute(name = "password") }) public class XmppChannel extends AbstractChannelFragment implements ConnectionListener { private static final Logger logger = LoggerFactory.getLogger(XmppChannel.class); ConnectionConfiguration config = null; XMPPConnection connection = null; @Start public void startChannel() { try { config = new ConnectionConfiguration("talk.google.com", 5222, "Work"); connection = new XMPPConnection(config); connection.connect(); connection.login(this.getDictionary().get("userName").toString(), this.getDictionary().get("password").toString()); connection.addConnectionListener(this); connection.sendPacket(new Presence(Presence.Type.available)); PacketTypeFilter filter = new PacketTypeFilter(org.jivesoftware.smack.packet.Message.class); PacketListener myListener = new PacketListener() { public void processPacket(Packet packet) { String name = packet.getFrom().substring(0, packet.getFrom().indexOf("/")); logger.debug("rec" + name + "=" + packet.getPropertyNames()); } }; connection.addPacketListener(myListener, filter); } catch (Exception e) { // e.printStackTrace(); logger.error("", e); } } @Stop public void stopChannel() { connection.disconnect(); } @Override public Object dispatch(Message message) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public ChannelFragmentSender createSender(String s, String s1) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public void connectionClosed() { //To change body of implemented methods use File | Settings | File Templates. } @Override public void connectionClosedOnError(Exception e) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void reconnectingIn(int i) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void reconnectionSuccessful() { //To change body of implemented methods use File | Settings | File Templates. } @Override public void reconnectionFailed(Exception e) { //To change body of implemented methods use File | Settings | File Templates. } }