Search in sources :

Example 1 with GatewayPlugin

use of org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin in project Spark by igniterealtime.

the class Workspace method loadPlugins.

/**
 * Starts the Loading of all Spark Plugins.
 */
public void loadPlugins() {
    // Send Available status
    SparkManager.getSessionManager().changePresence(statusBox.getPresence());
    // Add presence and message listeners
    // we listen for these to force open a 1-1 peer chat window from other operators if
    // one isn't already open
    StanzaFilter workspaceMessageFilter = new StanzaTypeFilter(Message.class);
    // Add the packetListener to this instance
    SparkManager.getSessionManager().getConnection().addAsyncStanzaListener(this, workspaceMessageFilter);
    // Make presence available to anonymous requests, if from anonymous user in the system.
    StanzaListener workspacePresenceListener = stanza -> {
        Presence presence = (Presence) stanza;
        JivePropertiesExtension extension = (JivePropertiesExtension) presence.getExtension(JivePropertiesExtension.NAMESPACE);
        if (extension != null && extension.getProperty("anonymous") != null) {
            boolean isAvailable = statusBox.getPresence().getMode() == Presence.Mode.available;
            Presence reply = new Presence(Presence.Type.available);
            if (!isAvailable) {
                reply.setType(Presence.Type.unavailable);
            }
            reply.setTo(presence.getFrom());
            try {
                SparkManager.getSessionManager().getConnection().sendStanza(reply);
            } catch (SmackException.NotConnectedException e) {
                Log.warning("Unable to send presence reply to " + reply.getTo(), e);
            }
        }
    };
    SparkManager.getSessionManager().getConnection().addAsyncStanzaListener(workspacePresenceListener, new StanzaTypeFilter(Presence.class));
    // Until we have better plugin management, will init after presence updates.
    gatewayPlugin = new GatewayPlugin();
    gatewayPlugin.initialize();
    // Load all non-presence related items.
    conferences.loadConferenceBookmarks();
    SearchManager.getInstance();
    transcriptPlugin = new ChatTranscriptPlugin();
    // Load Broadcast Plugin
    broadcastPlugin = new BroadcastPlugin();
    broadcastPlugin.initialize();
    // Load BookmarkPlugin
    bookmarkPlugin = new BookmarkPlugin();
    bookmarkPlugin.initialize();
    // Schedule loading of the plugins after two seconds.
    TaskEngine.getInstance().schedule(new TimerTask() {

        public void run() {
            final PluginManager pluginManager = PluginManager.getInstance();
            SparkManager.getMainWindow().addMainWindowListener(pluginManager);
            pluginManager.initializePlugins();
            // Subscriptions are always manual
            Roster roster = Roster.getInstanceFor(SparkManager.getConnection());
            roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
        }
    }, 2000);
    // Check URI Mappings
    SparkManager.getChatManager().handleURIMapping(Spark.ARGUMENTS);
}
Also used : Color(java.awt.Color) SmackException(org.jivesoftware.smack.SmackException) CommandPanel(org.jivesoftware.spark.ui.CommandPanel) ChatRoomNotFoundException(org.jivesoftware.spark.ui.ChatRoomNotFoundException) Log(org.jivesoftware.spark.util.log.Log) ContactItem(org.jivesoftware.spark.ui.ContactItem) MainWindow(org.jivesoftware.MainWindow) TimerTask(java.util.TimerTask) Enterprise(org.jivesoftware.sparkimpl.plugin.manager.Enterprise) KeyStroke(javax.swing.KeyStroke) TaskEngine(org.jivesoftware.spark.util.TaskEngine) ModelUtil(org.jivesoftware.spark.util.ModelUtil) BorderFactory(javax.swing.BorderFactory) SparkTabbedPane(org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane) GridBagConstraints(java.awt.GridBagConstraints) Spark(org.jivesoftware.Spark) GatewayPlugin(org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin) AbstractAction(javax.swing.AbstractAction) Roster(org.jivesoftware.smack.roster.Roster) DelayInformation(org.jivesoftware.smackx.delay.packet.DelayInformation) GridBagLayout(java.awt.GridBagLayout) JPanel(javax.swing.JPanel) StanzaListener(org.jivesoftware.smack.StanzaListener) Stanza(org.jivesoftware.smack.packet.Stanza) BroadcastPlugin(org.jivesoftware.sparkimpl.plugin.alerts.BroadcastPlugin) Insets(java.awt.Insets) CardLayout(java.awt.CardLayout) ChatRoom(org.jivesoftware.spark.ui.ChatRoom) UIComponentRegistry(org.jivesoftware.spark.util.UIComponentRegistry) MainWindowListener(org.jivesoftware.MainWindowListener) SwingUtilities(javax.swing.SwingUtilities) VCard(org.jivesoftware.smackx.vcardtemp.packet.VCard) Default(org.jivesoftware.resource.Default) JTabbedPane(javax.swing.JTabbedPane) StatusBar(org.jivesoftware.spark.ui.status.StatusBar) EnhancedDebuggerWindow(org.jivesoftware.smackx.debugger.EnhancedDebuggerWindow) BookmarkPlugin(org.jivesoftware.sparkimpl.plugin.bookmarks.BookmarkPlugin) ChatContainer(org.jivesoftware.spark.ui.ChatContainer) JComponent(javax.swing.JComponent) StanzaFilter(org.jivesoftware.smack.filter.StanzaFilter) Presence(org.jivesoftware.smack.packet.Presence) SearchManager(org.jivesoftware.spark.search.SearchManager) SparkTransferManager(org.jivesoftware.spark.filetransfer.SparkTransferManager) ActionEvent(java.awt.event.ActionEvent) ConferenceServices(org.jivesoftware.spark.ui.conferences.ConferenceServices) XmppStringUtils(org.jxmpp.util.XmppStringUtils) StanzaTypeFilter(org.jivesoftware.smack.filter.StanzaTypeFilter) ContactList(org.jivesoftware.spark.ui.ContactList) Message(org.jivesoftware.smack.packet.Message) ChatTranscriptPlugin(org.jivesoftware.sparkimpl.plugin.transcripts.ChatTranscriptPlugin) JivePropertiesExtension(org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension) ChatTranscriptPlugin(org.jivesoftware.sparkimpl.plugin.transcripts.ChatTranscriptPlugin) StanzaFilter(org.jivesoftware.smack.filter.StanzaFilter) StanzaListener(org.jivesoftware.smack.StanzaListener) JivePropertiesExtension(org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension) StanzaTypeFilter(org.jivesoftware.smack.filter.StanzaTypeFilter) BroadcastPlugin(org.jivesoftware.sparkimpl.plugin.alerts.BroadcastPlugin) BookmarkPlugin(org.jivesoftware.sparkimpl.plugin.bookmarks.BookmarkPlugin) TimerTask(java.util.TimerTask) Roster(org.jivesoftware.smack.roster.Roster) GatewayPlugin(org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin) Presence(org.jivesoftware.smack.packet.Presence)

Aggregations

CardLayout (java.awt.CardLayout)1 Color (java.awt.Color)1 GridBagConstraints (java.awt.GridBagConstraints)1 GridBagLayout (java.awt.GridBagLayout)1 Insets (java.awt.Insets)1 ActionEvent (java.awt.event.ActionEvent)1 TimerTask (java.util.TimerTask)1 AbstractAction (javax.swing.AbstractAction)1 BorderFactory (javax.swing.BorderFactory)1 JComponent (javax.swing.JComponent)1 JPanel (javax.swing.JPanel)1 JTabbedPane (javax.swing.JTabbedPane)1 KeyStroke (javax.swing.KeyStroke)1 SwingUtilities (javax.swing.SwingUtilities)1 MainWindow (org.jivesoftware.MainWindow)1 MainWindowListener (org.jivesoftware.MainWindowListener)1 Spark (org.jivesoftware.Spark)1 Default (org.jivesoftware.resource.Default)1 SmackException (org.jivesoftware.smack.SmackException)1 StanzaListener (org.jivesoftware.smack.StanzaListener)1