diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/build.properties b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/build.properties index 34d2e4d2da..3fc17076de 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/build.properties +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/build.properties @@ -1,4 +1,5 @@ -source.. = src/ +source.. = java/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + plugin.xml diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/HttpdCollaborationConfigurationPlugin.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/HttpdCollaborationConfigurationPlugin.java index 038d321c23..ce68a73d10 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/HttpdCollaborationConfigurationPlugin.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/HttpdCollaborationConfigurationPlugin.java @@ -1,27 +1,44 @@ /** - * @author bkowal - */ + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ package com.raytheon.openfire.plugin.configuration.collaboration; import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.jivesoftware.util.JiveGlobals; -import org.jivesoftware.util.TaskEngine; +import org.apache.commons.configuration.ConfigurationException; import org.jivesoftware.openfire.MessageRouter; import org.jivesoftware.openfire.XMPPServer; import org.jivesoftware.openfire.container.Plugin; import org.jivesoftware.openfire.container.PluginManager; import org.jivesoftware.openfire.event.SessionEventDispatcher; +import org.jivesoftware.util.JiveGlobals; +import org.jivesoftware.util.TaskEngine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.xmpp.packet.JID; -import org.apache.commons.configuration.ConfigurationException; +import com.raytheon.openfire.plugin.configuration.collaboration.configuration.ConfigurationPacket; import com.raytheon.openfire.plugin.configuration.collaboration.configuration.HttpdCollaborationConfiguration; -import com.raytheon.openfire.plugin.configuration.collaboration.httpd.HttpdCollaborationStatusMonitor; import com.raytheon.openfire.plugin.configuration.collaboration.httpd.HttpdCollaborationConfReader; +import com.raytheon.openfire.plugin.configuration.collaboration.httpd.HttpdCollaborationStatusMonitor; import com.raytheon.openfire.plugin.configuration.collaboration.listener.HttpdCollaborationSessionEventListener; /** @@ -34,7 +51,9 @@ import com.raytheon.openfire.plugin.configuration.collaboration.listener.HttpdCo * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Aug 7, 2012 bkowal Initial creation + * Aug 07, 2012 bkowal Initial creation + * Jan 06, 2013 2563 bclement replaced TaskEngine shutdown with cancel task + * added legacy format setter/accessor * * * @@ -84,7 +103,10 @@ public class HttpdCollaborationConfigurationPlugin implements Plugin { } if ((this.monitorTaskEngine == null) == false) { - this.monitorTaskEngine.shutdown(); + // we don't want to shutdown the engine since it is a singleton + // if we do, we can't reload the plugin + this.monitorTaskEngine + .cancelScheduledTask(this.httpdCollaborationStatusMonitor); this.monitorTaskEngine = null; } } @@ -189,24 +211,24 @@ public class HttpdCollaborationConfigurationPlugin implements Plugin { .cancelScheduledTask(this.httpdCollaborationStatusMonitor); } - /** - * Sets the configurable installation location of awips2-httpd-collaboration - * - * @param _location - * the location of awips2-httpd-collaboration - */ - public void setHttpdCollaborationLocation(String _location) { - JiveGlobals.setProperty(LOCATION, _location); - } + /** + * Sets the configurable installation location of awips2-httpd-collaboration + * + * @param _location + * the location of awips2-httpd-collaboration + */ + public void setHttpdCollaborationLocation(String _location) { + JiveGlobals.setProperty(LOCATION, _location); + } - /** - * Returns the installation location of awips2-httpd-collaboration from the - * openfire configuration - * - * @return the installation root of awips2-httpd-collaboration - */ + /** + * Returns the installation location of awips2-httpd-collaboration from the + * openfire configuration + * + * @return the installation root of awips2-httpd-collaboration + */ public String getHttpdCollaborationLocation() { - return JiveGlobals.getProperty(LOCATION, DEFAULT_LOCATION); + return JiveGlobals.getProperty(LOCATION, DEFAULT_LOCATION); } /** @@ -234,4 +256,23 @@ public class HttpdCollaborationConfigurationPlugin implements Plugin { public long getHttpdMonitorInterval() { return JiveGlobals.getLongProperty(INTERVAL, DEFAULT_INTERVAL_MS); } + + /** + * Sets the global value for toggling pre 14.3 message format support + * + * @param legacy + */ + public void setLegacySupport(boolean legacy) { + JiveGlobals.setProperty(ConfigurationPacket.LEGACY_KEY, + Boolean.toString(legacy)); + } + + /** + * @return true if configured to support pre 14.3 message format + */ + public boolean hasLegacySupport() { + return JiveGlobals.getBooleanProperty(ConfigurationPacket.LEGACY_KEY, + true); + } + } \ No newline at end of file diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/ConfigurationPacket.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/ConfigurationPacket.java new file mode 100644 index 0000000000..ca332ecc6c --- /dev/null +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/ConfigurationPacket.java @@ -0,0 +1,167 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.openfire.plugin.configuration.collaboration.configuration; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; +import org.dom4j.Element; +import org.jivesoftware.util.JiveGlobals; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xmpp.packet.Message; +import org.xmpp.packet.PacketExtension; + +/** + * Packet extension for collaboration configuration messages to clients + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Dec 20, 2013            bclement     Initial creation
+ * 
+ * 
+ * + * @author bclement + * @version 1.0 + */ + +public class ConfigurationPacket extends PacketExtension { + + private static final Logger log = LoggerFactory + .getLogger(ConfigurationPacket.class); + + // format property file + + public static final String CONFIG_FILE_KEY = "plugin.collaboration.packet.format.file"; + + private static final String DEFAULT_PLUGIN_CONFIG_FILE = "conf" + + File.separator + "configurationPacketFormat.properties"; + + private static final Properties properties = new Properties(); + + static { + String confFile = JiveGlobals.getProperty(CONFIG_FILE_KEY, + DEFAULT_PLUGIN_CONFIG_FILE); + File f = new File(JiveGlobals.getHomeDirectory(), confFile); + if (f.exists()) { + try { + properties.load(new FileInputStream(f)); + } catch (IOException e) { + // defaults will be used + log.error("Problem loading packet format configuration file: " + + f.getAbsolutePath(), e); + } + } else { + log.info("Using default config packet format since there was no format file at " + + f.getAbsolutePath()); + } + } + + // property keys + + public static final String XMLNS_KEY = "plugin.collaboration.packet.xmlns"; + + public static final String ELEMENT_KEY = "plugin.collaboration.packet.element"; + + public static final String ATTRIBUTES_KEY = "plugin.collaboration.packet.attributes"; + + public static final String LEGACY_KEY = "plugin.collaboration.packet.legacy"; + + // property value defaults + + public static final String XMLNS_DEFAULT = "urn:uf:viz:collaboration"; + + public static final String ELEMENT_DEFAULT = "SessionData"; + + public static final String ATTRIBUTES_DEFAULT = "payloadtype=Config,encoding=STRING"; + + // legacy + + private static final String LEGACY_PREAMBLE = "[[CONFIG#"; + + private static final String LEGACY_SUFFIX = "]]"; + + /** + * @param element + */ + public ConfigurationPacket(Element element) { + super(element); + } + + + /** + * @param body + * configuration payload for packet + */ + public ConfigurationPacket(String body) { + super(create(body)); + } + + /** + * Create packet extension element + * + * @param body + * configuration payload for packet + * @return + */ + private static Element create(String body) { + String element = properties.getProperty(ELEMENT_KEY, ELEMENT_DEFAULT); + String xmlns = properties.getProperty(XMLNS_KEY, XMLNS_DEFAULT); + Element rval = docFactory.createElement(element, xmlns); + String attributes = properties.getProperty(ATTRIBUTES_KEY, + ATTRIBUTES_DEFAULT); + for (String keyval : StringUtils.split(attributes, ',')) { + String[] separated = StringUtils.split(keyval, '='); + if (separated.length != 2) { + log.error("Malformed key-value pair in configuration: " + + keyval); + continue; + } + rval.addAttribute(separated[0].trim(), separated[1].trim()); + } + rval.addText(body); + return rval; + } + + /** + * Create extended message packet with configuration payload + * + * @param body + * configuration payload for packet + * @return + */ + public static Message createMessage(String body) { + Message rval = new Message(); + rval.addExtension(new ConfigurationPacket(body)); + // pre 14.3 message format support + if (JiveGlobals.getBooleanProperty(LEGACY_KEY, true)) { + rval.setBody(LEGACY_PREAMBLE + body + LEGACY_SUFFIX); + } + return rval; + } + +} diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/HttpdCollaborationConfiguration.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/HttpdCollaborationConfiguration.java index 38cca8c3f4..c1da2f4682 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/HttpdCollaborationConfiguration.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/configuration/HttpdCollaborationConfiguration.java @@ -1,9 +1,24 @@ /** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. * - */ + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ package com.raytheon.openfire.plugin.configuration.collaboration.configuration; -import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollaborationUtil; /** * Used to store and format the information retrieved from the @@ -15,7 +30,8 @@ import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollab * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Aug 7, 2012 bkowal Initial creation + * Aug 07, 2012 bkowal Initial creation + * Jan 06, 2013 2563 bclement removed config preamble * * * @@ -41,9 +57,7 @@ public class HttpdCollaborationConfiguration { @Override public String toString() { - return HttpdCollaborationUtil.CONFIG_PREAMBLE + URL_PARAMETER_NAME - + " : " + this.getHttpdCollaborationURL() - + HttpdCollaborationUtil.DIRECTIVE_SUFFIX; + return URL_PARAMETER_NAME + " : " + this.getHttpdCollaborationURL(); } public String getHttpdCollaborationURL() { diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationConfReader.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationConfReader.java index fc986dc6f5..7a253b6c7b 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationConfReader.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationConfReader.java @@ -1,6 +1,22 @@ /** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. * - */ + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ package com.raytheon.openfire.plugin.configuration.collaboration.httpd; import org.apache.commons.configuration.ConfigurationException; diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationPropertiesConfiguration.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationPropertiesConfiguration.java index ba476b096c..23afdecbfe 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationPropertiesConfiguration.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationPropertiesConfiguration.java @@ -1,6 +1,22 @@ /** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. * - */ + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ package com.raytheon.openfire.plugin.configuration.collaboration.httpd; import java.io.File; @@ -10,13 +26,22 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; /** + * This class was created because version 1.6 of commons configuration does not + * allow you to decide whether you want to allow includes or not. There is a + * 'setIncludesAllowed' method; however, it is protected. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------    
+ * Aug 2012                bkowal     Initial creation
+ * 
+ * 
+ * * @author bkowal - * - * This class was created because version 1.6 of commons configuration - * does not allow you to decide whether you want to allow includes or - * not. There is a 'setIncludesAllowed' method; however, it is - * protected. - * + * @version 1.0 */ public class HttpdCollaborationPropertiesConfiguration extends PropertiesConfiguration { /** diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationStatusMonitor.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationStatusMonitor.java index 69e0c7b54a..54bd8681ac 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationStatusMonitor.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/httpd/HttpdCollaborationStatusMonitor.java @@ -23,24 +23,25 @@ import java.io.File; import java.io.IOException; import java.util.TimerTask; -import org.jivesoftware.openfire.SessionManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xmpp.packet.Message; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.http.HttpStatus; +import org.jivesoftware.openfire.SessionManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xmpp.packet.Message; +import com.raytheon.openfire.plugin.configuration.collaboration.configuration.ConfigurationPacket; import com.raytheon.openfire.plugin.configuration.collaboration.exception.HttpdCollaborationNotRunningException; import com.raytheon.openfire.plugin.configuration.collaboration.exception.HttpdCollaborationStatusException; import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollaborationUtil; /** - * Runs a series of checks to determine if httpd-collaboration is still - * running on-demand and on a scheduled basis. The checks include: - * verifying that a pid file exists for httpd-collaboration and - * executing an http GET request against the httpd-collaboration server. + * Runs a series of checks to determine if httpd-collaboration is still running + * on-demand and on a scheduled basis. The checks include: verifying that a pid + * file exists for httpd-collaboration and executing an http GET request against + * the httpd-collaboration server. * *
  * 
@@ -48,7 +49,8 @@ import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollab
  * 
  * Date         Ticket#    Engineer    Description
  * ------------ ---------- ----------- --------------------------
- * Jul 26, 2012            bkowal     Initial creation
+ * Jul 26, 2012            bkowal      Initial creation
+ * Jan 06, 2013  2563      bclement    replaced chat message with packet extension
  * 
  * 
* @@ -141,7 +143,7 @@ public class HttpdCollaborationStatusMonitor extends TimerTask { @Override public void run() { - logger.info("Verifying that httpd-collaboration is still available ..."); + logger.debug("Verifying that httpd-collaboration is still available ..."); String errorMessage = null; try { @@ -172,8 +174,7 @@ public class HttpdCollaborationStatusMonitor extends TimerTask { } private synchronized void broadcastMessage(String body) { - Message message = new Message(); - message.setBody(body); + Message message = ConfigurationPacket.createMessage(body); this.sessionManager.broadcast(message); } } \ No newline at end of file diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/listener/HttpdCollaborationSessionEventListener.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/listener/HttpdCollaborationSessionEventListener.java index 115326f00a..5754237409 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/listener/HttpdCollaborationSessionEventListener.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/listener/HttpdCollaborationSessionEventListener.java @@ -1,23 +1,40 @@ /** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. * - */ + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ package com.raytheon.openfire.plugin.configuration.collaboration.listener; import java.util.TimerTask; +import org.jivesoftware.openfire.MessageRouter; import org.jivesoftware.openfire.event.SessionEventListener; import org.jivesoftware.openfire.session.Session; import org.jivesoftware.util.TaskEngine; -import org.jivesoftware.openfire.MessageRouter; -import org.xmpp.packet.JID; -import org.xmpp.packet.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.xmpp.packet.JID; +import org.xmpp.packet.Message; -import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollaborationUtil; -import com.raytheon.openfire.plugin.configuration.collaboration.httpd.HttpdCollaborationStatusMonitor; +import com.raytheon.openfire.plugin.configuration.collaboration.configuration.ConfigurationPacket; import com.raytheon.openfire.plugin.configuration.collaboration.exception.HttpdCollaborationNotRunningException; import com.raytheon.openfire.plugin.configuration.collaboration.exception.HttpdCollaborationStatusException; +import com.raytheon.openfire.plugin.configuration.collaboration.httpd.HttpdCollaborationStatusMonitor; +import com.raytheon.openfire.plugin.configuration.collaboration.util.HttpdCollaborationUtil; /** * Impelements @{link SessionEventListener} to wait for new users to connect to @@ -29,7 +46,8 @@ import com.raytheon.openfire.plugin.configuration.collaboration.exception.HttpdC * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Aug 7, 2012 bkowal Initial creation + * Aug 07, 2012 bkowal Initial creation + * Jan 06, 2013 2563 bclement replaced chat message with packet extension * * * @@ -111,10 +129,10 @@ public class HttpdCollaborationSessionEventListener implements */ @Override public void sessionCreated(Session session) { - final Message message = new Message(); + final Message message = ConfigurationPacket.createMessage(this + .composeMessageBody()); message.setTo(session.getAddress()); message.setFrom(this.serverAddress); - message.setBody(this.composeMessageBody()); TimerTask messageTask = new TimerTask() { @Override diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/util/HttpdCollaborationUtil.java b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/util/HttpdCollaborationUtil.java index aa7860dc9e..ce1434d14a 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/util/HttpdCollaborationUtil.java +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/java/com/raytheon/openfire/plugin/configuration/collaboration/util/HttpdCollaborationUtil.java @@ -20,28 +20,27 @@ package com.raytheon.openfire.plugin.configuration.collaboration.util; import java.io.File; + /** * Various utility methods that are utilized by the Httpd Collaboration plugin * that do not require a class to be instantiated. * *
- *
+ * 
  * SOFTWARE HISTORY
- *
+ * 
  * Date         Ticket#    Engineer    Description
  * ------------ ---------- ----------- --------------------------
- * Aug 7, 2012            bkowal     Initial creation
- *
+ * Aug 07, 2012            bkowal      Initial creation
+ * Jan 06, 2013  2563      bclement    removed config preamble
+ * 
  * 
- * + * * @author bkowal - * @version 1.0 + * @version 1.0 */ public abstract class HttpdCollaborationUtil { - public static final String CONFIG_PREAMBLE = "[[CONFIG#"; - - public static final String DIRECTIVE_SUFFIX = "]]"; public static String encodeErrorMessage(Throwable e) { String content = e.getMessage(); @@ -50,7 +49,7 @@ public abstract class HttpdCollaborationUtil { content = e.toString(); } - return CONFIG_PREAMBLE + "error : " + content + DIRECTIVE_SUFFIX; + return "error : " + content; } public static String endPathIfNecessary(String _path) { @@ -60,4 +59,5 @@ public abstract class HttpdCollaborationUtil { return _path + File.separator; } + } \ No newline at end of file diff --git a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/web/httpd-collaboration-monitor-admin.jsp b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/web/httpd-collaboration-monitor-admin.jsp index 4d6be2f33a..35e81226cc 100644 --- a/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/web/httpd-collaboration-monitor-admin.jsp +++ b/javaUtilities/com.raytheon.openfire.plugin.configuration.collaboration/web/httpd-collaboration-monitor-admin.jsp @@ -16,19 +16,21 @@ // Currently, users are not allowed to modify the httpd-collaboration location // because the rpm is not relocatable. long interval = ParamUtils.getLongParameter(request, "txtInterval", DEFAULT_INTERVAL_S); + boolean legacy = ParamUtils.getBooleanParameter(request, "chkLegacy", false); HttpdCollaborationConfigurationPlugin plugin = (HttpdCollaborationConfigurationPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("com.raytheon.openfire.plugin.configuration.collaboration"); if (save) { plugin.setHttpdMonitorInterval(interval * 1000); - + plugin.setLegacySupport(legacy); response.sendRedirect("httpd-collaboration-monitor-admin.jsp?settingsSaved=true"); return; } String location = plugin.getHttpdCollaborationLocation(); interval = (plugin.getHttpdMonitorInterval() / 1000); + String legacyChkValue = plugin.hasLegacySupport() ? "checked" : ""; %> @@ -118,6 +120,21 @@ +


+

+ Legacy message format support. If enabled, configuration is sent in chat message to support clients older than version 14.3. +

+ + + + + + + + +
legacy message format:  + > +