/* * Copyright 2011. Pablo Palazon (pablo.palazon@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.serinus.connection; import javax.enterprise.inject.Default; import javax.inject.Inject; import org.jboss.weld.logging.Category; import org.jboss.weld.logging.LoggerFactory; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.Roster.SubscriptionMode; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smackx.filetransfer.FileTransferManager; import org.serinus.config.SerinusBotConfig; import org.serinus.xmpp.SerinusChatListener; import org.serinus.xmpp.SerinusConnection; import org.serinus.xmpp.SerinusConnectionListener; import org.serinus.xmpp.SerinusFileTransferListener; import org.serinus.xmpp.SerinusRosterListener; import org.slf4j.cal10n.LocLogger; @Default public class Connection { private LocLogger log = LoggerFactory.loggerFactory().getLogger( Category.BEAN); @Inject SerinusBotConfig serinusBotConfig; @Inject SerinusConnectionListener serinusConnectionListener; @Inject SerinusChatListener serinusChatListener; @Inject SerinusRosterListener serinusRosterListener; @Inject SerinusFileTransferListener serinusFileTransferListener; @Inject SerinusConnection serinusConnection; public void connect() throws XMPPException { ConnectionConfiguration cc = new ConnectionConfiguration( serinusBotConfig.getHost(), serinusBotConfig.getPort()); cc.setCompressionEnabled(true); cc.setReconnectionAllowed(true); cc.setRosterLoadedAtLogin(true); cc.setSASLAuthenticationEnabled(true); // Create a connection to the igniterealtime.org XMPP server. XMPPConnection con = new XMPPConnection(cc); serinusConnection.setXmppConnection(con); // Connect to the server con.connect(); // Most servers require you to login before performing other // tasks. con.login(serinusBotConfig.getUserBot(), serinusBotConfig.getPasswordBot(), "SerinusBot"); Presence presence = new Presence(Presence.Type.available); presence.setStatus("What's in your mind?"); // Send the packet (assume we have a Connection instance called // "con"). con.sendPacket(presence); con.addConnectionListener(serinusConnectionListener); con.getChatManager().addChatListener(serinusChatListener); con.getRoster().setSubscriptionMode(SubscriptionMode.accept_all); con.getRoster().addRosterListener(serinusRosterListener); FileTransferManager ftm = new FileTransferManager(con); ftm.addFileTransferListener(serinusFileTransferListener); } }