package com.nodexy.im.openfire.plugin; import java.io.File; import java.sql.Connection; import java.sql.SQLException; import org.jivesoftware.database.DbConnectionManager; import org.jivesoftware.openfire.XMPPServer; import org.jivesoftware.openfire.container.Plugin; import org.jivesoftware.openfire.container.PluginManager; /** * Openfire LBS plugin * * @author Chris, node@github * */ public class OpenfireLBSPlugin implements Plugin { private static final String MODULE_NAME_LOCATION = "location"; private XMPPServer server; Connection openfireDBConn; private LocationHandler locationHandler; @Override public void initializePlugin(PluginManager manager, File pluginDirectory) { try { openfireDBConn = DbConnectionManager.getConnection(); } catch (SQLException e) { e.printStackTrace(); } server = XMPPServer.getInstance(); server.getIQRouter().addHandler(new LocationHandler(MODULE_NAME_LOCATION)); } @Override public void destroyPlugin() { server = XMPPServer.getInstance(); if (locationHandler != null) { server.getIQRouter().removeHandler(locationHandler); locationHandler = null; } if (openfireDBConn != null) { try { openfireDBConn.close(); openfireDBConn = null; } catch (SQLException e) { e.printStackTrace(); } } } }