Search in sources :

Example 6 with MonitoringPlugin

use of org.jivesoftware.openfire.plugin.MonitoringPlugin in project Openfire by igniterealtime.

the class SendConversationEventsTask method run.

public void run() {
    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin(MonitoringConstants.NAME);
    ConversationManager conversationManager = (ConversationManager) plugin.getModule(ConversationManager.class);
    for (ConversationEvent event : events) {
        try {
            event.run(conversationManager);
        } catch (Exception e) {
            Log.error("Error while processing chat archiving event", e);
        }
    }
}
Also used : MonitoringPlugin(org.jivesoftware.openfire.plugin.MonitoringPlugin) ConversationManager(org.jivesoftware.openfire.archive.ConversationManager) ConversationEvent(org.jivesoftware.openfire.archive.ConversationEvent) IOException(java.io.IOException)

Example 7 with MonitoringPlugin

use of org.jivesoftware.openfire.plugin.MonitoringPlugin in project Openfire by igniterealtime.

the class GetGroupConversationTranscript method execute.

@Override
public void execute(SessionData data, Element command) {
    Element note = command.addElement("note");
    // Get handle on the Monitoring plugin
    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin(MonitoringConstants.NAME);
    ConversationManager conversationManager = (ConversationManager) plugin.getModule(ConversationManager.class);
    if (!conversationManager.isArchivingEnabled()) {
        note.addAttribute("type", "error");
        note.setText("Message archiving is not enabled.");
        DataForm form = new DataForm(DataForm.Type.result);
        FormField field = form.addField();
        field.setType(FormField.Type.hidden);
        field.setVariable("FORM_TYPE");
        field.addValue("http://jabber.org/protocol/admin");
        field = form.addField();
        field.setLabel("Conversation Found?");
        field.setVariable("found");
        field.addValue(false);
        // Add form to reply
        command.add(form.getElement());
        return;
    }
    try {
        JID participant = new JID(data.getData().get("participant").get(0));
        JID room = new JID(data.getData().get("room").get(0));
        Date time = DataForm.parseDate(data.getData().get("time").get(0));
        boolean includePDF = DataForm.parseBoolean(data.getData().get("includePDF").get(0));
        // Get archive searcher module
        ArchiveSearcher archiveSearcher = (ArchiveSearcher) plugin.getModule(ArchiveSearcher.class);
        ArchiveSearch search = new ArchiveSearch();
        search.setParticipants(participant);
        search.setIncludeTimestamp(time);
        search.setRoom(room);
        Collection<Conversation> conversations = archiveSearcher.search(search);
        DataForm form = new DataForm(DataForm.Type.result);
        FormField field = form.addField();
        field.setType(FormField.Type.hidden);
        field.setVariable("FORM_TYPE");
        field.addValue("http://jabber.org/protocol/admin");
        field = form.addField();
        field.setLabel("Conversation Found?");
        field.setVariable("found");
        field.addValue(!conversations.isEmpty());
        if (includePDF) {
            ByteArrayOutputStream stream = null;
            if (!conversations.isEmpty()) {
                stream = new ConversationUtils().getConversationPDF(conversations.iterator().next());
            }
            if (stream != null) {
                field = form.addField();
                field.setLabel("PDF");
                field.setVariable("pdf");
                field.addValue(StringUtils.encodeBase64(stream.toByteArray()));
            }
        }
        // Add form to reply
        command.add(form.getElement());
    } catch (Exception e) {
        Log.error("Error occurred while running the command", e);
        note.addAttribute("type", "error");
        note.setText("Error while processing the command.");
    }
}
Also used : JID(org.xmpp.packet.JID) Element(org.dom4j.Element) ConversationManager(org.jivesoftware.openfire.archive.ConversationManager) Conversation(org.jivesoftware.openfire.archive.Conversation) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Date(java.util.Date) ConversationUtils(org.jivesoftware.openfire.archive.ConversationUtils) MonitoringPlugin(org.jivesoftware.openfire.plugin.MonitoringPlugin) ArchiveSearch(org.jivesoftware.openfire.archive.ArchiveSearch) DataForm(org.xmpp.forms.DataForm) FormField(org.xmpp.forms.FormField) ArchiveSearcher(org.jivesoftware.openfire.archive.ArchiveSearcher)

Example 8 with MonitoringPlugin

use of org.jivesoftware.openfire.plugin.MonitoringPlugin in project Openfire by igniterealtime.

the class ConversationUtils method getBuildProgress.

/**
     * Returns the status of the rebuilding of the messaging/metadata archives. This is done
     * asynchronously.
     *
     * @return the status the rebuilding (0 - 100) where 100 is complete.
     */
public int getBuildProgress() {
    // Get handle on the Monitoring plugin
    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin(MonitoringConstants.NAME);
    ArchiveIndexer archiveIndexer = (ArchiveIndexer) plugin.getModule(ArchiveIndexer.class);
    Future<Integer> future = archiveIndexer.getIndexRebuildProgress();
    if (future != null) {
        try {
            return future.get();
        } catch (Exception e) {
            Log.error(e.getMessage(), e);
        }
    }
    return -1;
}
Also used : MonitoringPlugin(org.jivesoftware.openfire.plugin.MonitoringPlugin) NotFoundException(org.jivesoftware.util.NotFoundException) DocumentException(com.lowagie.text.DocumentException)

Example 9 with MonitoringPlugin

use of org.jivesoftware.openfire.plugin.MonitoringPlugin in project Openfire by igniterealtime.

the class ConversationUtils method getConversations.

/**
     * Retrieves all the existing conversations from the system.
     *
     * @return a Map of ConversationInfo objects.
     */
public Map<String, ConversationInfo> getConversations(boolean formatParticipants) {
    Map<String, ConversationInfo> cons = new HashMap<String, ConversationInfo>();
    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin(MonitoringConstants.NAME);
    ConversationManager conversationManager = (ConversationManager) plugin.getModule(ConversationManager.class);
    Collection<Conversation> conversations = conversationManager.getConversations();
    List<Conversation> lConversations = Arrays.asList(conversations.toArray(new Conversation[conversations.size()]));
    for (Iterator<Conversation> i = lConversations.iterator(); i.hasNext(); ) {
        Conversation con = i.next();
        ConversationInfo info = toConversationInfo(con, formatParticipants);
        cons.put(Long.toString(con.getConversationID()), info);
    }
    return cons;
}
Also used : MonitoringPlugin(org.jivesoftware.openfire.plugin.MonitoringPlugin) HashMap(java.util.HashMap)

Example 10 with MonitoringPlugin

use of org.jivesoftware.openfire.plugin.MonitoringPlugin in project Openfire by igniterealtime.

the class StatsAction method getUpdatedStat.

private Map getUpdatedStat(String statkey, long[] timePeriod) {
    MonitoringPlugin plugin = (MonitoringPlugin) XMPPServer.getInstance().getPluginManager().getPlugin(MonitoringConstants.NAME);
    StatsViewer viewer = (StatsViewer) plugin.getModule(StatsViewer.class);
    String[] lowHigh = getLowAndHigh(statkey, timePeriod);
    Map stat = new HashMap();
    stat.put("low", lowHigh[0]);
    stat.put("high", lowHigh[1]);
    stat.put("count", (int) viewer.getCurrentValue(statkey)[0]);
    return stat;
}
Also used : MonitoringPlugin(org.jivesoftware.openfire.plugin.MonitoringPlugin) HashMap(java.util.HashMap) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

MonitoringPlugin (org.jivesoftware.openfire.plugin.MonitoringPlugin)15 ConversationManager (org.jivesoftware.openfire.archive.ConversationManager)6 NotFoundException (org.jivesoftware.util.NotFoundException)5 Date (java.util.Date)3 HashMap (java.util.HashMap)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 Map (java.util.Map)2 Conversation (org.jivesoftware.openfire.archive.Conversation)2 Statistic (org.jivesoftware.openfire.stats.Statistic)2 JID (org.xmpp.packet.JID)2 DocumentException (com.lowagie.text.DocumentException)1 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 Connection (java.sql.Connection)1 PreparedStatement (java.sql.PreparedStatement)1 SQLException (java.sql.SQLException)1 NumberFormat (java.text.NumberFormat)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 TimerTask (java.util.TimerTask)1