Commit 4330808e authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

Refactoring work. Name changed.

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@7655 b35dd754-fafc-0310-a699-88a17e54d16e
parent 0bff500e
This diff is collapsed.
...@@ -77,7 +77,7 @@ static bool wildfireIsRunning() ...@@ -77,7 +77,7 @@ static bool wildfireIsRunning()
} }
} }
static void toggleStartWildfireAtBoot() static void toggleStartOpenfireAtBoot()
{ {
CFURLRef propFile = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFURLRef propFile = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
CFSTR("/Library/LaunchDaemons/org.jivesoftware.wildfire.plist"), CFSTR("/Library/LaunchDaemons/org.jivesoftware.wildfire.plist"),
...@@ -108,7 +108,7 @@ static void toggleStartWildfireAtBoot() ...@@ -108,7 +108,7 @@ static void toggleStartWildfireAtBoot()
CFQRelease(propFile); CFQRelease(propFile);
} }
static void toggleWildfire() static void toggleOpenfire()
{ {
char *args[4]; char *args[4];
args[0] = "launchctl"; args[0] = "launchctl";
...@@ -126,14 +126,14 @@ int main(int inArgsCount, char * const inArgs[]) ...@@ -126,14 +126,14 @@ int main(int inArgsCount, char * const inArgs[])
{ {
char* selfPath = NULL; char* selfPath = NULL;
int err = GetPathToSelf(&selfPath); int err = GetPathToSelf(&selfPath);
const char* correctPath = "/Library/PreferencePanes/Wildfire.prefPane/Contents/MacOS/HelperTool"; const char* correctPath = "/Library/PreferencePanes/Openfire.prefPane/Contents/MacOS/HelperTool";
if(err == 0 && strncmp(correctPath, selfPath, strlen(correctPath)) == 0) { if(err == 0 && strncmp(correctPath, selfPath, strlen(correctPath)) == 0) {
setuid(0); setuid(0);
if(inArgs[1] && strlen(inArgs[1]) == strlen("boot") && strncmp("boot", inArgs[1], strlen("boot")) == 0) { if(inArgs[1] && strlen(inArgs[1]) == strlen("boot") && strncmp("boot", inArgs[1], strlen("boot")) == 0) {
toggleStartWildfireAtBoot(); toggleStartOpenfireAtBoot();
} else { } else {
toggleWildfire(); toggleOpenfire();
} }
} }
......
// //
// wildfirePrefPane.h // wildfirePrefPane.h
// Preference panel for Wildfire // Preference panel for Openfire
// //
// Created by Daniel Henninger on 7/7/06. // Created by Daniel Henninger on 7/7/06.
// Copyright (c) 2006 Jive Software. All rights reserved. // Copyright (c) 2006 Jive Software. All rights reserved.
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#import <SecurityInterface/SFAuthorizationView.h> #import <SecurityInterface/SFAuthorizationView.h>
#include <unistd.h> #include <unistd.h>
// 'ps' command to use to check for running wildfire daemon // 'ps' command to use to check for running openfire daemon
char *pscmd = "/bin/ps auxww | fgrep -v 'fgrep' | fgrep wildfire/lib/startup.jar"; char *pscmd = "/bin/ps auxww | fgrep -v 'fgrep' | fgrep wildfire/lib/startup.jar";
// The path to the plist file // The path to the plist file
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
<html> <html>
<head> <head>
<title>Wildfire License: GPL</title> <title>Openfire License: GPL</title>
</head> </head>
<body> <body>
<pre> <pre>
Please see README.html for full licensing terms for Wildfire. Please see README.html for full licensing terms for Openfire.
--------------------------------------------------------------------- ---------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire Readme</title> <title>Openfire Readme</title>
<style type="text/css"> <style type="text/css">
/* global font and body settings */ /* global font and body settings */
body { body {
...@@ -153,7 +153,7 @@ hr { ...@@ -153,7 +153,7 @@ hr {
<div id="pageContainer"> <div id="pageContainer">
<div id="pageHeader"> <div id="pageHeader">
<h1>Wildfire Readme</h1> <h1>Openfire Readme</h1>
</div> </div>
<div class="navigation"> <div class="navigation">
<a href="README.html"><strong>Readme</strong></a>|<a href="changelog.html">Changelog</a>|<a href="LICENSE.html">License</a> <a href="README.html"><strong>Readme</strong></a>|<a href="changelog.html">Changelog</a>|<a href="LICENSE.html">License</a>
...@@ -176,14 +176,14 @@ hr { ...@@ -176,14 +176,14 @@ hr {
<br> <br>
<p> <p>
Thank you for downloading Wildfire! Thank you for downloading Openfire!
<p> <p>
Wildfire is an instant messaging (IM) and groupchat server that uses the Openfire is an instant messaging (IM) and groupchat server that uses the
XMPP protocol. Start off by viewing the <a href="documentation/index.html"><strong>Wildfire Documentation</strong></a> XMPP protocol. Start off by viewing the <a href="documentation/index.html"><strong>Openfire Documentation</strong></a>
that can be found in the "documentation" directory included with this distribution. that can be found in the "documentation" directory included with this distribution.
<p> <p>
Further information can be found on the <a href="http://www.igniterealtime.org/projects/wildfire/"> Further information can be found on the <a href="http://www.igniterealtime.org/projects/wildfire/">
Wildfire website</a>. Openfire website</a>.
<h2>Changelog</h2> <h2>Changelog</h2>
...@@ -192,35 +192,35 @@ last release. ...@@ -192,35 +192,35 @@ last release.
<h2>Support</h2> <h2>Support</h2>
Free support is provided by the Wildfire community in the Free support is provided by the Openfire community in the
<a href="http://www.igniterealtime.org/forum/index.jspa">online forums</a>. Commercial <a href="http://www.igniterealtime.org/forum/index.jspa">online forums</a>. Commercial
support (email and phone) from Jive Software is support (email and phone) from Jive Software is
<a href="http://www.igniterealtime.org/projects/wildfire/">also available</a>. <a href="http://www.igniterealtime.org/projects/wildfire/">also available</a>.
<h2>License Agreements</h2> <h2>License Agreements</h2>
The Wildfire source code is governed by the GNU Public License (GPL), which The Openfire source code is governed by the GNU Public License (GPL), which
can be found in the <a href="LICENSE.html">LICENSE.html</a> file in this distribution. can be found in the <a href="LICENSE.html">LICENSE.html</a> file in this distribution.
Wildfire also contains Open Source software from third-parties. Openfire also contains Open Source software from third-parties.
Licensing terms for those components is specifically noted in the relevant source Licensing terms for those components is specifically noted in the relevant source
files.<p> files.<p>
Wildfire contains icons and images licensed from INCORS GmbH. All other Openfire contains icons and images licensed from INCORS GmbH. All other
images are owned by Jive Software. All icons and images in Wildfire images are owned by Jive Software. All icons and images in Openfire
are provided under the following license agreement: are provided under the following license agreement:
<pre> <pre>
License Agreement License Agreement
This is a legal agreement between You, the User of the Wildfire application This is a legal agreement between You, the User of the Openfire application
("The Software"), and Jive Software ("Jive Software"). By downloading the Software, ("The Software"), and Jive Software ("Jive Software"). By downloading the Software,
you agree to be bound by the terms of this agreement. you agree to be bound by the terms of this agreement.
All ownership and copyright of the images and icons included in the Software All ownership and copyright of the images and icons included in the Software
distribution remain the property of Jive Software and INCORS GmbH. Jive Software distribution remain the property of Jive Software and INCORS GmbH. Jive Software
grants to you a nonexclusive, non-sublicensable right to use the icons royalty-free grants to you a nonexclusive, non-sublicensable right to use the icons royalty-free
as part of Wildfire. as part of Openfire.
You may not lease, license or sub-license the icons, or a subset of the icons, You may not lease, license or sub-license the icons, or a subset of the icons,
or any modified icons to any third party. You may not incorporate them into your or any modified icons to any third party. You may not incorporate them into your
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Database Schema Guide</title> <title>Openfire: Database Schema Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
This document outlines the data type conventions and tables in the Wildfire database schema. This document outlines the data type conventions and tables in the Openfire database schema.
Some information, like column indexes and foreign keys, is omitted. For this, please read Some information, like column indexes and foreign keys, is omitted. For this, please read
the individual schema of the database you're interested in. the individual schema of the database you're interested in.
...@@ -32,7 +32,7 @@ the individual schema of the database you're interested in. ...@@ -32,7 +32,7 @@ the individual schema of the database you're interested in.
<h2>Data Type Conventions</h2> <h2>Data Type Conventions</h2>
<p> <p>
Date column type support varies widely across databases. Therefore, Date column type support varies widely across databases. Therefore,
Wildfire specially encodes dates as VARCHAR values. Each date is a Java long Openfire specially encodes dates as VARCHAR values. Each date is a Java long
value which is 0-padded to 15 characters. The long value is the internal value which is 0-padded to 15 characters. The long value is the internal
representation of Java Date objects, which can be obtained with code such as the representation of Java Date objects, which can be obtained with code such as the
following: following:
...@@ -43,7 +43,7 @@ Boolean values are always represented a numeric values: 0 for false and 1 for tr ...@@ -43,7 +43,7 @@ Boolean values are always represented a numeric values: 0 for false and 1 for tr
</p> </p>
<h2>Database Tables</h2> <h2>Database Tables</h2>
<p> <p>
Below is a description of each of the tables in the Wildfire Below is a description of each of the tables in the Openfire
database schema. database schema.
A <span class="primary-key">yellow row</span> denotes a primary key. A <span class="primary-key">yellow row</span> denotes a primary key.
...@@ -675,18 +675,12 @@ roster)</th> ...@@ -675,18 +675,12 @@ roster)</th>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key">
<td>name</td>
<td>VARCHAR</td>
<td>100</td>
<td>Name of the vCard entry (Primary Key)</td>
</tr>
<tr> <tr>
<td>propValue</td> <td>value</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td>
<td>Value of the vCard entry</td> <td>n/a</td>
<td>Value of the vCard entry</td>
</tr> </tr>
</tbody> </tbody>
...@@ -754,7 +748,7 @@ roster)</th> ...@@ -754,7 +748,7 @@ roster)</th>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>Value of the vCard entry</td> <td>Value of the entry</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -934,7 +928,7 @@ roster)</th> ...@@ -934,7 +928,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>invitationRequired</td> <td>membersOnly</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether the room is members-only or not</td> <td>Flag indicating whether the room is members-only or not</td>
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Custom Database Integration Guide</title> <title>Openfire: Custom Database Integration Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -24,16 +24,16 @@ ...@@ -24,16 +24,16 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
This document provides instructions for integrating Wildfire authentication, users, and This document provides instructions for integrating Openfire authentication, users, and
groups with your custom database tables. This is useful when your users already have groups with your custom database tables. This is useful when your users already have
accounts in an external system and you do not wish to duplicate those accounts in Wildfire. accounts in an external system and you do not wish to duplicate those accounts in Openfire.
If your user information is available via an LDAP directory rather than custom database If your user information is available via an LDAP directory rather than custom database
tables, see the <a href="ldap-guide.html">LDAP guide</a>. tables, see the <a href="ldap-guide.html">LDAP guide</a>.
</p> </p>
<p> <p>
Simple integration with a custom database lets users authenticate using their existing Simple integration with a custom database lets users authenticate using their existing
username and password. Optionally, you can configure Wildfire to load user profile and username and password. Optionally, you can configure Openfire to load user profile and
group information from your custom database. Any group in Wildfire can be designated group information from your custom database. Any group in Openfire can be designated
as a shared group, which means that you can pre-populate user's rosters using groups. as a shared group, which means that you can pre-populate user's rosters using groups.
</p> </p>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<p> <p>
The integration requires that you enter customized database queries to access your The integration requires that you enter customized database queries to access your
database. You'll need to be familiar with your database table structure and simple SQL. database. You'll need to be familiar with your database table structure and simple SQL.
Your custom database can be a different database on a different server from the Wildfire Your custom database can be a different database on a different server from the Openfire
database -- you'll enter database connection information as part of the configuration. database -- you'll enter database connection information as part of the configuration.
</p> </p>
...@@ -51,11 +51,11 @@ ...@@ -51,11 +51,11 @@
<p> <p>
In order to configure your server to integrate with your custom database tables: In order to configure your server to integrate with your custom database tables:
<ol> <ol>
<li>Stop Wildfire.</li> <li>Stop Openfire.</li>
<li>Edit <tt>conf/wildfire.xml</tt> in your Wildfire installation folder as <li>Edit <tt>conf/openfire.xml</tt> in your Openfire installation folder as
described below using your favorite editor. described below using your favorite editor.
</li> </li>
<li>Restart Wildfire.</li> <li>Restart Openfire.</li>
</ol> </ol>
</p> </p>
...@@ -67,8 +67,8 @@ ...@@ -67,8 +67,8 @@
</p> </p>
<ul> <ul>
<li>jdbcProvider.driver -- the class name of the JDBC driver used to connect to your <li>jdbcProvider.driver -- the class name of the JDBC driver used to connect to your
custom database. The driver must also be in the Wildfire classpath (for example, by custom database. The driver must also be in the Openfire classpath (for example, by
placing it into the "lib/" directory of your Wildfire installation. See the placing it into the "lib/" directory of your Openfire installation. See the
<a href="database.html">database guide</a> for common driver names for major databases. <a href="database.html">database guide</a> for common driver names for major databases.
</li> </li>
<li>jdbcProvider.connectionString -- the full connection string for the database. Please <li>jdbcProvider.connectionString -- the full connection string for the database. Please
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
<h3>User Integration</h3> <h3>User Integration</h3>
<p>Optionally, Wildfire can load user data from your custom database. If you enable user integration <p>Optionally, Openfire can load user data from your custom database. If you enable user integration
you must also enable authentication integration (see above). Use the following settings to you must also enable authentication integration (see above). Use the following settings to
enable user integration.</p> enable user integration.</p>
...@@ -204,7 +204,7 @@ enable user integration.</p> ...@@ -204,7 +204,7 @@ enable user integration.</p>
<h3>Group Integration</h3> <h3>Group Integration</h3>
<p>Wildfire can load group data from your custom database. If you enable group integration <p>Openfire can load group data from your custom database. If you enable group integration
you must also enable authentication integration; you'll also likely want to enable user you must also enable authentication integration; you'll also likely want to enable user
integration (see above). Use the following settings to enable group integration.</p> integration (see above). Use the following settings to enable group integration.</p>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Overview</title> <title>Openfire: Overview</title>
<link type="text/css" rel="stylesheet" href="style.css"> <link type="text/css" rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div id="pageHeader"> <div id="pageHeader">
<div id="logo"></div> <div id="logo"></div>
<h1>Wildfire @version@</h1> <h1>Openfire @version@</h1>
</div> </div>
<div class="navigation"> <div class="navigation">
</div> </div>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div id="pageBody"> <div id="pageBody">
<p> <p>
Wildfire provides comprehensive group chat and instant Openfire provides comprehensive group chat and instant
messaging (IM) services using the XMPP protocol. messaging (IM) services using the XMPP protocol.
</p> </p>
...@@ -28,27 +28,27 @@ messaging (IM) services using the XMPP protocol. ...@@ -28,27 +28,27 @@ messaging (IM) services using the XMPP protocol.
<ul> <ul>
<li> <li>
<a href="install-guide.html">Installation Guide</a> - <a href="install-guide.html">Installation Guide</a> -
How to install Wildfire. How to install Openfire.
</li> </li>
<li> <li>
<a href="http://wiki.igniterealtime.org/display/WILDFIRE/Wildfire+Upgrade+Guide">Upgrade Guide</a> - <a href="http://wiki.igniterealtime.org/display/WILDFIRE/Wildfire+Upgrade+Guide">Upgrade Guide</a> -
Instructions for upgrading an existing Wildfire installation. Instructions for upgrading an existing Openfire installation.
</li> </li>
<li> <li>
<a href="database.html">Database Installation Guide</a> - <a href="database.html">Database Installation Guide</a> -
How to setup your database for use with Wildfire. How to setup your database for use with Openfire.
</li> </li>
<li> <li>
<a href="ssl-guide.html">SSL Guide</a> - <a href="ssl-guide.html">SSL Guide</a> -
A guide to setting up Wildfire's SSL secure socket support. A guide to setting up Openfire's SSL secure socket support.
</li> </li>
<li> <li>
<a href="ldap-guide.html">LDAP Guide</a> - <a href="ldap-guide.html">LDAP Guide</a> -
A guide to setting up Wildfire to work with LDAP user stores. A guide to setting up Openfire to work with LDAP user stores.
</li> </li>
<li> <li>
<a href="db-integration-guide.html">Custom Database Integration Guide</a> - <a href="db-integration-guide.html">Custom Database Integration Guide</a> -
A guide to integrating Wildfire authentication, user, and group data with a custom database. A guide to integrating Openfire authentication, user, and group data with a custom database.
</li> </li>
</ul> </ul>
...@@ -57,34 +57,34 @@ messaging (IM) services using the XMPP protocol. ...@@ -57,34 +57,34 @@ messaging (IM) services using the XMPP protocol.
<ul> <ul>
<li> <li>
<a href="javadoc/index.html">JavaDocs</a> - <a href="javadoc/index.html">JavaDocs</a> -
Wildfire API documentation. Openfire API documentation.
</li> </li>
<li> <li>
<a href="source-build.html">Building the Source</a> - <a href="source-build.html">Building the Source</a> -
Instructions for downloading and compiling the Wildfire source code. Instructions for downloading and compiling the Openfire source code.
</li> </li>
<li> <li>
<a href="protocol-support.html">Protocol Support</a> - <a href="protocol-support.html">Protocol Support</a> -
Provides details on the XMPP support and JEPs that Wildfire implements. Provides details on the XMPP support and JEPs that Openfire implements.
</li> </li>
<li> <li>
<a href="plugin-dev-guide.html">Plugin Developer Guide</a> - <a href="plugin-dev-guide.html">Plugin Developer Guide</a> -
A guide to writing and installing plugins for Wildfire. A guide to writing and installing plugins for Openfire.
</li> </li>
<li> <li>
<a href="translator-guide.html">Translator Guide</a> - <a href="translator-guide.html">Translator Guide</a> -
Information for those interested in translating the admin console of Wildfire into other languages. Information for those interested in translating the admin console of Openfire into other languages.
</li> </li>
<li> <li>
<a href="database-guide.html">Database Schema Guide</a> - <a href="database-guide.html">Database Schema Guide</a> -
A tour of the Wildfire database schema for developers and database administrators. A tour of the Openfire database schema for developers and database administrators.
</li> </li>
</ul> </ul>
<br> <br>
<p> <p>
An active support community for Wildfire is available at An active support community for Openfire is available at
<a href="http://www.igniterealtime.org/forum/index.jspa">http://www.igniterealtime.org/forum/index.jspa</a>. <a href="http://www.igniterealtime.org/forum/index.jspa">http://www.igniterealtime.org/forum/index.jspa</a>.
</p> </p>
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: LDAP Guide</title> <title>Openfire: LDAP Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
This document details how to configure your Wildfire installation to use This document details how to configure your Openfire installation to use
an external directory such as Open LDAP or Active Directory. Integration with a directory an external directory such as Open LDAP or Active Directory. Integration with a directory
lets users authenticate using their directory username and password. Optionally, you can lets users authenticate using their directory username and password. Optionally, you can
configure Wildfire to load user profile and group information from the directory. Any group in configure Openfire to load user profile and group information from the directory. Any group in
Wildfire can be designated as a shared group, which means that you can pre-populate user's Openfire can be designated as a shared group, which means that you can pre-populate user's
rosters using directory groups. rosters using directory groups.
</p> </p>
...@@ -46,28 +46,28 @@ ...@@ -46,28 +46,28 @@
</p> </p>
<p> <p>
By default, Wildfire stores all user data in its database and performs By default, Openfire stores all user data in its database and performs
authentication using database lookups. The LDAP module replaces that authentication using database lookups. The LDAP module replaces that
functionality and allows Wildfire to: functionality and allows Openfire to:
<ul> <ul>
<li>Use a LDAP server to authenticate a user's identity.</li> <li>Use a LDAP server to authenticate a user's identity.</li>
<li>Load user profile information from a LDAP directory.</li> <li>Load user profile information from a LDAP directory.</li>
<li>Load group information from an LDAP directory.</li> <li>Load group information from an LDAP directory.</li>
</ul> </ul>
<b>Note:</b> Wildfire treats the LDAP directory as read-only. <b>Note:</b> Openfire treats the LDAP directory as read-only.
</p> </p>
<p> <p>
This document will guide you through configuring LDAP support in Wildfire. These This document will guide you through configuring LDAP support in Openfire. These
instructions assume that you're a competent LDAP user, and that you're familiar instructions assume that you're a competent LDAP user, and that you're familiar
with Wildfire setup issues. with Openfire setup issues.
</p> </p>
<h2>Configuration</h2> <h2>Configuration</h2>
<p> <p>
The Wildfire setup tool includes an easy to use LDAP setup wizard. The Openfire setup tool includes an easy to use LDAP setup wizard.
Choose the LDAP option on the Profile Settings page to configure directory integration. Choose the LDAP option on the Profile Settings page to configure directory integration.
The wizard along with in-line help will guide you through the rest of the process. The wizard along with in-line help will guide you through the rest of the process.
<a href="#activedirectory">Specific tips</a> for working with Active Directory are noted below. <a href="#activedirectory">Specific tips</a> for working with Active Directory are noted below.
...@@ -80,13 +80,13 @@ ...@@ -80,13 +80,13 @@
<ol> <ol>
<li> <li>
Stop Wildfire. Stop Openfire.
</li> </li>
<li>Edit <tt>conf/wildfire.xml</tt> in your Wildfire installation folder and set <li>Edit <tt>conf/openfire.xml</tt> in your Openfire installation folder and set
&lt;setup&gt;true&lt;/setup&gt; to &lt;setup&gt;false&lt;/setup&gt;. &lt;setup&gt;true&lt;/setup&gt; to &lt;setup&gt;false&lt;/setup&gt;.
</li> </li>
<li> <li>
Restart Wildfire and enter the setup tool. Restart Openfire and enter the setup tool.
</li> </li>
</ol> </ol>
...@@ -131,7 +131,7 @@ servers, some of which are detailed below: ...@@ -131,7 +131,7 @@ servers, some of which are detailed below:
<p> <p>
If you prefer to edit the configuration file to enable LDAP integration directly, use the following If you prefer to edit the configuration file to enable LDAP integration directly, use the following
instructions. Open the configuration file <tt>conf/wildfire.xml</tt> from your Wildfire instructions. Open the configuration file <tt>conf/openfire.xml</tt> from your Openfire
installation in your favorite installation in your favorite
editor and add or change the following settings. Properties flagged with (<font color="red"> editor and add or change the following settings. Properties flagged with (<font color="red">
<b>*</b></font>) <b>*</b></font>)
...@@ -171,7 +171,7 @@ servers, some of which are detailed below: ...@@ -171,7 +171,7 @@ servers, some of which are detailed below:
performed performed
with this account. The admin must be able to perform searches and load user records. The with this account. The admin must be able to perform searches and load user records. The
user does user does
not need to be able to make changes to the directory, as Wildfire treats the not need to be able to make changes to the directory, as Openfire treats the
directory as read-only. directory as read-only.
If this property is not set, an anonymous login to the server will be attempted. If this property is not set, an anonymous login to the server will be attempted.
</li> </li>
...@@ -204,7 +204,7 @@ servers, some of which are detailed below: ...@@ -204,7 +204,7 @@ servers, some of which are detailed below:
installation is "(objectClass=organizationalPerson)". When combined with the default installation is "(objectClass=organizationalPerson)". When combined with the default
filter, the actual search executed would be filter, the actual search executed would be
"(&(sAMAccountName={0})(objectClass=organizationalPerson))".</li> "(&(sAMAccountName={0})(objectClass=organizationalPerson))".</li>
<li>ldap.subTreeSearch -- by default, Wildfire will search the entire LDAP sub-tree (starting <li>ldap.subTreeSearch -- by default, Openfire will search the entire LDAP sub-tree (starting
at the base DN) when trying to load users. If this property is set to <tt>false</tt>, then at the base DN) when trying to load users. If this property is set to <tt>false</tt>, then
sub-tree searching is disabled and users will only be loaded directly from the base DN. sub-tree searching is disabled and users will only be loaded directly from the base DN.
Disabling sub-tree can improve performance, but it will fail to find users if your directory Disabling sub-tree can improve performance, but it will fail to find users if your directory
...@@ -327,7 +327,7 @@ servers, some of which are detailed below: ...@@ -327,7 +327,7 @@ servers, some of which are detailed below:
<p><a name=""><h2>Custom Search Filter</h2></a></p> <p><a name=""><h2>Custom Search Filter</h2></a></p>
<p>By default, Wildfire will load all objects under the baseDN that <p>By default, Openfire will load all objects under the baseDN that
have the attribute specified by <tt>ldap.usernameField</tt>. In the have the attribute specified by <tt>ldap.usernameField</tt>. In the
case that the username field is set to "uid", the search for all users case that the username field is set to "uid", the search for all users
would be "(uid=*)". However, there are cases when this logic does would be "(uid=*)". However, there are cases when this logic does
...@@ -345,7 +345,7 @@ servers, some of which are detailed below: ...@@ -345,7 +345,7 @@ servers, some of which are detailed below:
loading the list of all users or a username when loading a single user.</p> loading the list of all users or a username when loading a single user.</p>
<p>Some custom search filters may include reserved XML entities such as <p>Some custom search filters may include reserved XML entities such as
"&". In that case, you must enter the search filter into the wildfire.xml "&". In that case, you must enter the search filter into the openfire.xml
file using CDATA: file using CDATA:
<pre>&lt;searchFilter&gt;&lt;![CDATA[(&(sAMAccountName={0})(|(givenName=GEORGE)(givenName=admin)))]]&gt;&lt;/searchFilter&gt;</pre> <pre>&lt;searchFilter&gt;&lt;![CDATA[(&(sAMAccountName={0})(|(givenName=GEORGE)(givenName=admin)))]]&gt;&lt;/searchFilter&gt;</pre>
...@@ -356,7 +356,7 @@ servers, some of which are detailed below: ...@@ -356,7 +356,7 @@ servers, some of which are detailed below:
Some LDAP servers or application servers may require that a different LDAP Some LDAP servers or application servers may require that a different LDAP
initial context factory be used rather than the default (com.sun.jndi.ldap.LdapCtxFactory). initial context factory be used rather than the default (com.sun.jndi.ldap.LdapCtxFactory).
You can set a custom initial context factory by adding the following to wildfire.xml: You can set a custom initial context factory by adding the following to openfire.xml:
<pre> <pre>
&lt;ldap&gt; &lt;ldap&gt;
...@@ -412,7 +412,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -412,7 +412,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
&lt;/provider&gt; &lt;/provider&gt;
</pre> </pre>
<p>Next, you must add mappings between LDAP fields and vCard fields in the wildfire.xml file. <p>Next, you must add mappings between LDAP fields and vCard fields in the openfire.xml file.
The vcard attributes are configured by adding an attrs="attr1,attr2" attribute to the vcard The vcard attributes are configured by adding an attrs="attr1,attr2" attribute to the vcard
elements. Arbitrary text can be used for the element values as well as MessageFormat style elements. Arbitrary text can be used for the element values as well as MessageFormat style
placeholders for the ldap attributes. For example, if you wanted to map the LDAP attribute placeholders for the ldap attributes. For example, if you wanted to map the LDAP attribute
...@@ -478,8 +478,8 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -478,8 +478,8 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
<p> <p>
<b>Can I create new users through Wildfire when using LDAP?</b> <b>Can I create new users through Openfire when using LDAP?</b>
<ul>No, Wildfire treats LDAP directories as read-only. Therefore, it's <ul>No, Openfire treats LDAP directories as read-only. Therefore, it's
not possible to create or edit users through the application.</ul> not possible to create or edit users through the application.</ul>
<b>Why is the list of usernames not sorted in the admin console when using LDAP?</b> <b>Why is the list of usernames not sorted in the admin console when using LDAP?</b>
...@@ -502,7 +502,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -502,7 +502,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
You can also enable debugging to get more information from the LDAP module. To You can also enable debugging to get more information from the LDAP module. To
do this, add &lt;log&gt;&lt;debug&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;/debug&gt;&lt;/log&gt; do this, add &lt;log&gt;&lt;debug&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;/debug&gt;&lt;/log&gt;
to your <tt>conf/wildfire.xml</tt> file. Log statements will be written to your <tt>conf/openfire.xml</tt> file. Log statements will be written
to the <tt>logs/debug.log</tt> file. to the <tt>logs/debug.log</tt> file.
</ul> </ul>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Plugin Developer Guide</title> <title>Openfire: Plugin Developer Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<div id="pageHeader"> <div id="pageHeader">
<div id="logo"></div> <div id="logo"></div>
<h1>Wildfire Plugin Developer Guide</h1> <h1>Openfire Plugin Developer Guide</h1>
</div> </div>
<div class="navigation"> <div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a> <a href="index.html">&laquo; Back to documentation index</a>
...@@ -25,14 +25,14 @@ ...@@ -25,14 +25,14 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
Plugins enhance the functionality of Wildfire. This document is a Plugins enhance the functionality of Openfire. This document is a
developer's guide for creating plugins. developer's guide for creating plugins.
</p> </p>
<h2>Structure of a Plugin</h2> <h2>Structure of a Plugin</h2>
<p> <p>
Plugins live in the <tt>plugins</tt> directory of <tt>wildfireHome</tt>. When a plugin Plugins live in the <tt>plugins</tt> directory of <tt>openfireHome</tt>. When a plugin
is deployed as a JAR or WAR file, it is automatically expanded into a directory. The files in a is deployed as a JAR or WAR file, it is automatically expanded into a directory. The files in a
plugin directory are as follows: plugin directory are as follows:
...@@ -60,7 +60,7 @@ plugin directory are as follows: ...@@ -60,7 +60,7 @@ plugin directory are as follows:
</fieldset> </fieldset>
<p>The <tt>web</tt> directory exists for plugins that need to add content <p>The <tt>web</tt> directory exists for plugins that need to add content
to the Wildfire Admin Console. Further details are below.</p> to the Openfire Admin Console. Further details are below.</p>
<p> <p>
The <tt>plugin.xml</tt> file specifies the main Plugin class. A sample The <tt>plugin.xml</tt> file specifies the main Plugin class. A sample
...@@ -106,8 +106,8 @@ file might look like the following: ...@@ -106,8 +106,8 @@ file might look like the following:
as 07/01/2006.</li> as 07/01/2006.</li>
<li>url -- a URL where additional information about the plugin is available.</li> <li>url -- a URL where additional information about the plugin is available.</li>
<li>minServerVersion -- the minimum version of Wildfire required <li>minServerVersion -- the minimum version of Openfire required
to run the plugin (supported by Wildfire 2.1.2 and later). If the to run the plugin (supported by Openfire 2.1.2 and later). If the
server version is less than the required value, the plugin will not be started.</li> server version is less than the required value, the plugin will not be started.</li>
<li>databaseKey -- if the plugin requires it's own database tables, the databaseKey element should <li>databaseKey -- if the plugin requires it's own database tables, the databaseKey element should
be set with a schema key name (often the same name as the plugin). Database be set with a schema key name (often the same name as the plugin). Database
...@@ -159,7 +159,7 @@ end-users (all placed in the main plugin directory): ...@@ -159,7 +159,7 @@ end-users (all placed in the main plugin directory):
<p>Your plugin class must be implement the <p>Your plugin class must be implement the
<tt><a href="javadoc/org/jivesoftware/wildfire/container/Plugin.html">Plugin</a></tt> <tt><a href="javadoc/org/jivesoftware/wildfire/container/Plugin.html">Plugin</a></tt>
interface from the <a href="javadoc/index.html">Wildfire API</a> as interface from the <a href="javadoc/index.html">Openfire API</a> as
well as have a default (no argument) contructor. The Plugin interface has well as have a default (no argument) contructor. The Plugin interface has
methods for initializing and destroying the plugin. methods for initializing and destroying the plugin.
</p> </p>
...@@ -175,7 +175,7 @@ import org.jivesoftware.wildfire.container.PluginManager; ...@@ -175,7 +175,7 @@ import org.jivesoftware.wildfire.container.PluginManager;
import java.io.File; import java.io.File;
/** /**
* A sample plugin for Wildfire. * A sample plugin for Openfire.
*/ */
public class ExamplePlugin implements Plugin { public class ExamplePlugin implements Plugin {
...@@ -204,7 +204,7 @@ are a several steps to accomplishing this: ...@@ -204,7 +204,7 @@ are a several steps to accomplishing this:
<li>JSP files must be compiled and put into the classpath of the <li>JSP files must be compiled and put into the classpath of the
plugin. A <tt>web.xml</tt> file containing the compiled JSP plugin. A <tt>web.xml</tt> file containing the compiled JSP
servlet entries must be put into the <tt>web/</tt> directory servlet entries must be put into the <tt>web/</tt> directory
of the plugin. <i>Note:</i> the Wildfire build script of the plugin. <i>Note:</i> the Openfire build script
can assist with compiling JSPs and creating the web.xml. This can assist with compiling JSPs and creating the web.xml. This
is detailed below. is detailed below.
</li> </li>
...@@ -253,7 +253,7 @@ the existing id attribute values in your own <tt>&lt;adminconsole&gt;</tt> defin ...@@ -253,7 +253,7 @@ the existing id attribute values in your own <tt>&lt;adminconsole&gt;</tt> defin
<h3>Admin Console Best Practices</h3> <h3>Admin Console Best Practices</h3>
There are several best practices to consider when making changes to There are several best practices to consider when making changes to
the Wildfire admin console via a plugin. The general theme is the Openfire admin console via a plugin. The general theme is
that plugins should integrate seamlessly: that plugins should integrate seamlessly:
<ul> <ul>
...@@ -266,7 +266,7 @@ that plugins should integrate seamlessly: ...@@ -266,7 +266,7 @@ that plugins should integrate seamlessly:
<li>Try to match the UI of the existing admin console in your custom <li>Try to match the UI of the existing admin console in your custom
plugin pages. plugin pages.
<li>There is no need to create an admin console entry to show plugin <li>There is no need to create an admin console entry to show plugin
meta-data. Instead, let Wildfire inform the user about which meta-data. Instead, let Openfire inform the user about which
plugins are installed and provide plugin management. plugins are installed and provide plugin management.
</ul> </ul>
...@@ -274,7 +274,7 @@ that plugins should integrate seamlessly: ...@@ -274,7 +274,7 @@ that plugins should integrate seamlessly:
<p> <p>
Wildfire uses the <a href="http://www.opensymphony.com/sitemesh/" target="_blank">Sitemesh</a> Openfire uses the <a href="http://www.opensymphony.com/sitemesh/" target="_blank">Sitemesh</a>
framework to decorate pages in the admin console. A globally-defined decorator is applied to framework to decorate pages in the admin console. A globally-defined decorator is applied to
each page in order to render the final output, as in the following diagram:</p> each page in order to render the final output, as in the following diagram:</p>
<br> <br>
...@@ -345,10 +345,10 @@ procedure: ...@@ -345,10 +345,10 @@ procedure:
<tt>org.jivesoftware.util.LocaleUtils.getLocalizedString("some.key.name", "[plugin_name]");</tt> <tt>org.jivesoftware.util.LocaleUtils.getLocalizedString("some.key.name", "[plugin_name]");</tt>
</ul> </ul>
</p> </p>
<h2>Using the Wildfire Build Script</h2> <h2>Using the Openfire Build Script</h2>
<p> <p>
The Wildfire build script will help you build and develop plugins. It The Openfire build script will help you build and develop plugins. It
looks for plugin development directories in the following format: looks for plugin development directories in the following format:
</p> </p>
...@@ -394,7 +394,7 @@ process.</p> ...@@ -394,7 +394,7 @@ process.</p>
<h2>Implementing Your Plugin</h2> <h2>Implementing Your Plugin</h2>
<p>Plugins have full access to the Wildfire API. This provides a tremendous <p>Plugins have full access to the Openfire API. This provides a tremendous
amount of flexibility for what plugins can accomplish. However, there are several integration amount of flexibility for what plugins can accomplish. However, there are several integration
points that are the most common: points that are the most common:
...@@ -420,7 +420,7 @@ points that are the most common: ...@@ -420,7 +420,7 @@ points that are the most common:
PacketInterceptor</a> to receive all packets being sent through the system and PacketInterceptor</a> to receive all packets being sent through the system and
optionally reject them. For example, an interceptor could reject all messages that contained optionally reject them. For example, an interceptor could reject all messages that contained
profanity or flag them for review by an administrator.</li> profanity or flag them for review by an administrator.</li>
<li>You can store persistent plugin settings as Wildfire properties using the <li>You can store persistent plugin settings as Openfire properties using the
JiveGlobals.getProperty(String) and JiveGlobals.setProperty(String, String) methods. Make JiveGlobals.getProperty(String) and JiveGlobals.setProperty(String, String) methods. Make
your plugin a property listener to listen for changes to its properties by implementing the your plugin a property listener to listen for changes to its properties by implementing the
<tt>org.jivesoftware.util.PropertyEventListener</tt> method. <tt>org.jivesoftware.util.PropertyEventListener</tt> method.
...@@ -436,16 +436,16 @@ points that are the most common: ...@@ -436,16 +436,16 @@ points that are the most common:
<b>Can I deploy a plugin as a directory instead of a JAR?</b> <b>Can I deploy a plugin as a directory instead of a JAR?</b>
<p>No, all plugins must be deployed as JAR or WAR files. When a JAR or WAR is not present for the plugin, <p>No, all plugins must be deployed as JAR or WAR files. When a JAR or WAR is not present for the plugin,
Wildfire assumes that the file has been deleted and that the users wants to destroy the plugin, Openfire assumes that the file has been deleted and that the users wants to destroy the plugin,
so it also deletes the directory.</p> so it also deletes the directory.</p>
<b>What license agreement are plugins subject to?</b> <b>What license agreement are plugins subject to?</b>
<p>Because Wildfire is released under the Open Source GPL license, any plugins developed <p>Because Openfire is released under the Open Source GPL license, any plugins developed
must also be released under the GPL or a compatible Open Source license if you distribute must also be released under the GPL or a compatible Open Source license if you distribute
the plugins outside your organization. It is a violation of the license agreement to create the plugins outside your organization. It is a violation of the license agreement to create
plugins for distribution that are not Open Source. Please visit plugins for distribution that are not Open Source. Please visit
<a href="http://www.jivesoftware.com/products/wildfire/">Jive Software</a> if you need different <a href="http://www.jivesoftware.com/products/wildfire/">Jive Software</a> if you need different
licensing terms for Wildfire, including the right to create commercial plugins.</p> licensing terms for Openfire, including the right to create commercial plugins.</p>
<br> <br>
<br> <br>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Protocol Support</title> <title>Openfire: Protocol Support</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -22,15 +22,15 @@ ...@@ -22,15 +22,15 @@
<div id="pageBody"> <div id="pageBody">
<p>Wildfire provides full support for the <p>Openfire provides full support for the
<acronym title="Extensible Messaging and Presence Protocol">XMPP</acronym> <acronym title="Extensible Messaging and Presence Protocol">XMPP</acronym>
protocol defined by <a href="http://www.xmpp.org/specs/rfc3920.html">RFC 3920</a> and protocol defined by <a href="http://www.xmpp.org/specs/rfc3920.html">RFC 3920</a> and
<a href="http://www.xmpp.org/specs/rfc3921.html">RFC 3921</a>. In addition to full <a href="http://www.xmpp.org/specs/rfc3921.html">RFC 3921</a>. In addition to full
XMPP support, Wildfire also provides support for numerous extensions to XMPP XMPP support, Openfire also provides support for numerous extensions to XMPP
that are defined through the that are defined through the
<acronym title="XMPP Enhancement Proposals">XEP</acronym> process at <acronym title="XMPP Enhancement Proposals">XEP</acronym> process at
<a href="http://www.xmpp.org">xmpp.org</a>. This document provides a <a href="http://www.xmpp.org">xmpp.org</a>. This document provides a
summary of that protocol support and is updated for every Wildfire summary of that protocol support and is updated for every Openfire
release.</p> release.</p>
<p>This document is broken down into the following sections:</p> <p>This document is broken down into the following sections:</p>
...@@ -132,7 +132,7 @@ Suite</a>.</p> ...@@ -132,7 +132,7 @@ Suite</a>.</p>
<a name="jeps"></a> <a name="jeps"></a>
<h2>List of JEPs Supported</h2> <h2>List of JEPs Supported</h2>
<p>The table below lists all JEPs supported by Wildfire and indicates which JEPs are part of the <p>The table below lists all JEPs supported by Openfire and indicates which JEPs are part of the
<a href="#basic">Basic</a> or <a href="#intermediate">Intermediate</a> Protocol Suites listed above. <a href="#basic">Basic</a> or <a href="#intermediate">Intermediate</a> Protocol Suites listed above.
JEPs that only require client-side support are omitted.</p> JEPs that only require client-side support are omitted.</p>
...@@ -240,7 +240,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -240,7 +240,7 @@ JEPs that only require client-side support are omitted.</p>
[<a name="fn1">1</a>] Some requirements of <u>XEP-0117: Intermediate IM Protocol Suite</u> do not pertain to servers. [<a name="fn1">1</a>] Some requirements of <u>XEP-0117: Intermediate IM Protocol Suite</u> do not pertain to servers.
<br> <br>
[<a name="fn2">2</a>] The entity capabilities XEP is primarily for clients to implement. However, Wildfire does not support an optional server extensions defined by the XEP. [<a name="fn2">2</a>] The entity capabilities XEP is primarily for clients to implement. However, Openfire does not support an optional server extensions defined by the XEP.
<br> <br>
[<a name="fn3">3</a>] Support for <u>XEP-0055: Jabber Search</u> is provided by the <a href="http://www.igniterealtime.org/projects/wildfire/plugins.jsp">Search plugin</a>. [<a name="fn3">3</a>] Support for <u>XEP-0055: Jabber Search</u> is provided by the <a href="http://www.igniterealtime.org/projects/wildfire/plugins.jsp">Search plugin</a>.
<br> <br>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Building the Source</title> <title>Openfire: Building the Source</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<p>This document provides detailed information for developers that wish to <p>This document provides detailed information for developers that wish to
compile and make changes to the Wildfire source code. compile and make changes to the Openfire source code.
Use of the source code is governed by the GPL or the commercial license Use of the source code is governed by the GPL or the commercial license
you purchased for the codebase from Jive Software. you purchased for the codebase from Jive Software.
<b>If Wildfire <b>If Openfire
source is embedded into another application, that application must also source is embedded into another application, that application must also
be released under the Open Source GPL license (unless you have a commercial OEM license be released under the Open Source GPL license (unless you have a commercial OEM license
in place with Jive Software). Please see the license agreement in place with Jive Software). Please see the license agreement
...@@ -38,22 +38,22 @@ the source, and that source is governed by the license given to it by its author ...@@ -38,22 +38,22 @@ the source, and that source is governed by the license given to it by its author
<p>For additional developer resources, please visit: <p>For additional developer resources, please visit:
<a href="http://www.igniterealtime.org"> <a href="http://www.igniterealtime.org">
http://www.igniterealtime.org</a>. The Wildfire build process is based on Ant. Visit the http://www.igniterealtime.org</a>. The Openfire build process is based on Ant. Visit the
<a href="http://ant.apache.org/">Ant website</a> <a href="http://ant.apache.org/">Ant website</a>
for more information. There is no need to download and install Ant - a version of it is included for more information. There is no need to download and install Ant - a version of it is included
in this distribution. in this distribution.
<p> <p>
This documentation is divided into three sections: This documentation is divided into three sections:
<ol> <ol>
<li> <a href="#source">Source</a> -- get te Wildfire source code. <li> <a href="#source">Source</a> -- get te Openfire source code.
<li> <a href="#setup">Setup</a> -- how to setup your environment for Wildfire development. <li> <a href="#setup">Setup</a> -- how to setup your environment for Openfire development.
<li> <a href="#tasks">Build tasks</a> -- tasks that can be performed using the build program. <li> <a href="#tasks">Build tasks</a> -- tasks that can be performed using the build program.
</ol> </ol>
<p><a name="source"><b><font color="#0066cc">1.</font> Get the Wildfire Source</b></a><p> <p><a name="source"><b><font color="#0066cc">1.</font> Get the Openfire Source</b></a><p>
You can get the Wildfire source code by downloading a source distribution or You can get the Openfire source code by downloading a source distribution or
by checking out the source code from CVS. Instructions for both options can by checking out the source code from CVS. Instructions for both options can
be found on the <a href="http://www.igniterealtime.org/downloads/source.jsp">source page</a>. be found on the <a href="http://www.igniterealtime.org/downloads/source.jsp">source page</a>.
...@@ -63,7 +63,7 @@ Getting your machine ready for development requires a few steps. Wherever ...@@ -63,7 +63,7 @@ Getting your machine ready for development requires a few steps. Wherever
possible, instructions are provided for both Unix/Linux and Windows users. possible, instructions are provided for both Unix/Linux and Windows users.
<p> <p>
<b><a name="javaSetup">Configure Java for Wildfire</a></b> <b><a name="javaSetup">Configure Java for Openfire</a></b>
<ul> <ul>
Java 5 (JDK 1.5) must be installed and setup on your machine. To test the installation, Java 5 (JDK 1.5) must be installed and setup on your machine. To test the installation,
open a shell in a Unix or a MS-DOS prompt in Windows. Check your version of open a shell in a Unix or a MS-DOS prompt in Windows. Check your version of
...@@ -71,7 +71,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -71,7 +71,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
If Java isn't installed, download a copy from the If Java isn't installed, download a copy from the
<a href="http://java.sun.com/">Java website</a>. <a href="http://java.sun.com/">Java website</a>.
<p> <p>
<font color="red">Important!</font> -- the Wildfire build tool needs to know <font color="red">Important!</font> -- the Openfire build tool needs to know
where Java is installed on your system. You must configure the "JAVA_HOME" where Java is installed on your system. You must configure the "JAVA_HOME"
environment variable to point to the correct directory. Instructions on environment variable to point to the correct directory. Instructions on
how to set this variable for various platforms are as follows: how to set this variable for various platforms are as follows:
...@@ -138,7 +138,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -138,7 +138,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
<p><b><a name="ant">Install the Ant Build Tool</a></b><p> <p><b><a name="ant">Install the Ant Build Tool</a></b><p>
The Wildfire build process uses Ant, so that tool must be installed The Openfire build process uses Ant, so that tool must be installed
and configured on your computer. First download Ant from: and configured on your computer. First download Ant from:
<a href="http://ant.apache.org/">http://ant.apache.org</a>. Next, follow <a href="http://ant.apache.org/">http://ant.apache.org</a>. Next, follow
the <a href="http://ant.apache.org/manual/installlist.html">installation instructions</a>. the <a href="http://ant.apache.org/manual/installlist.html">installation instructions</a>.
...@@ -157,7 +157,7 @@ chmod u+x ant ...@@ -157,7 +157,7 @@ chmod u+x ant
</td></table> </td></table>
<p> <p>
Now, invoke the build tool to compile the Wildfire source code Now, invoke the build tool to compile the Openfire source code
<p> <p>
Windows:<span class="code"> ant <br> </span><br clear="left"> Windows:<span class="code"> ant <br> </span><br clear="left">
...@@ -165,14 +165,14 @@ Windows:<span class="code"> ant <br> </span><br clear="left"> ...@@ -165,14 +165,14 @@ Windows:<span class="code"> ant <br> </span><br clear="left">
Unix/Linux:<span class="code"> ./ant </span> Unix/Linux:<span class="code"> ./ant </span>
<p> <p>
If the build tool is invoked correctly and Wildfire compiles, you've correctly If the build tool is invoked correctly and Openfire compiles, you've correctly
configured your copy of the Wildfire source distribution. configured your copy of the Openfire source distribution.
</ul> </ul>
<p><b>Finished!</b><p> <p><b>Finished!</b><p>
<ul> <ul>
If you've gotten this far, you've finished setting up the Wildfire source If you've gotten this far, you've finished setting up the Openfire source
distribution. Now, read below to learn about some of the tasks that you can perform distribution. Now, read below to learn about some of the tasks that you can perform
with the build tool. with the build tool.
</ul> </ul>
...@@ -182,7 +182,7 @@ with the build tool. ...@@ -182,7 +182,7 @@ with the build tool.
<p><b><a name="tasks"><font color="#0066cc">3.</font> Build Tasks</a></b><p> <p><b><a name="tasks"><font color="#0066cc">3.</font> Build Tasks</a></b><p>
The list of common build tasks is below. All build commands should be The list of common build tasks is below. All build commands should be
run from the "build" directory of your Wildfire distribution. run from the "build" directory of your Openfire distribution.
<br><br> <br><br>
...@@ -198,7 +198,7 @@ with the build tool. ...@@ -198,7 +198,7 @@ with the build tool.
<ul> <ul>
<li><a href="#noparams"><i>Default</i></a> <li><a href="#noparams"><i>Default</i></a>
<li><a href="#wildfire">wildfire</a> <li><a href="#openfire">openfire</a>
<li><a href="#plugins">plugins</a> <li><a href="#plugins">plugins</a>
<li><a href="#clean">clean</a> <li><a href="#clean">clean</a>
</ul> </ul>
...@@ -217,7 +217,7 @@ value of a property, add it to build/build.xml file. ...@@ -217,7 +217,7 @@ value of a property, add it to build/build.xml file.
<p><i>Description:</i></p> <p><i>Description:</i></p>
Equivalent of calling "ant <a href="#jar">wildfire</a>". Equivalent of calling "ant <a href="#jar">openfire</a>".
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
...@@ -225,16 +225,16 @@ Equivalent of calling "ant <a href="#jar">wildfire</a>". ...@@ -225,16 +225,16 @@ Equivalent of calling "ant <a href="#jar">wildfire</a>".
<!--JAR--> <!--JAR-->
<p><b><a name="wildfire">wildfire</a></b> <p><b><a name="openfire">openfire</a></b>
<ul> <ul>
<i>Syntax:</i><p> <i>Syntax:</i><p>
<span class="code"> ant wildfire <br></span> <span class="code"> ant openfire <br></span>
<p><i>Description:</i></p> <p><i>Description:</i></p>
Builds Wildfire into the <tt>target/wildfire</tt> directory. You can then launch Builds Openfire into the <tt>target/openfire</tt> directory. You can then launch
Wildfire using the scripts in <tt>target/wildfire/bin</tt>. Openfire using the scripts in <tt>target/openfire/bin</tt>.
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
</ul> </ul>
...@@ -248,7 +248,7 @@ Wildfire using the scripts in <tt>target/wildfire/bin</tt>. ...@@ -248,7 +248,7 @@ Wildfire using the scripts in <tt>target/wildfire/bin</tt>.
<p><i>Description:</i></p> <p><i>Description:</i></p>
Builds all plugins into the <tt>target/wildfire/plugins</tt> directory. Builds all plugins into the <tt>target/openfire/plugins</tt> directory.
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
</ul> </ul>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: SSL Guide</title> <title>Openfire: SSL Guide</title>
<link type="text/css" rel="stylesheet" href="style.css"> <link type="text/css" rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
...@@ -24,17 +24,17 @@ ...@@ -24,17 +24,17 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
This document outlines how to <b>manually</b> customize the SSL support in This document outlines how to <b>manually</b> customize the SSL support in
Wildfire. As of Wildfire 3.2 certificate management can be performed from the Openfire. As of Openfire 3.2 certificate management can be performed from the
Admin Console. However, if needed you can still manually manage certificates Admin Console. However, if needed you can still manually manage certificates
using JDK 1.5 tools. using JDK 1.5 tools.
<font color="red"><b>Important note:</b></font> <font color="red"><b>Important note:</b></font>
Once the setup process is completed Wildfire will create self-signed certificates Once the setup process is completed Openfire will create self-signed certificates
for the assigned Wildfire's domain. Most users should either get the created for the assigned Openfire's domain. Most users should either get the created
certificates signed by a Certificate Authority or replace the created certificates certificates signed by a Certificate Authority or replace the created certificates
with your own certificates.</p> with your own certificates.</p>
<p>Wildfire's SSL support is built using the standard Java security <p>Openfire's SSL support is built using the standard Java security
SSL implementation (javax.net.ssl.SSLServerSocket). In this document, we will SSL implementation (javax.net.ssl.SSLServerSocket). In this document, we will
describe how use the standard JDK 1.5 tools to accomplish these tasks. describe how use the standard JDK 1.5 tools to accomplish these tasks.
</p> </p>
...@@ -94,11 +94,11 @@ record keeping, and costs). ...@@ -94,11 +94,11 @@ record keeping, and costs).
<h2>Sun JDK 1.5 security tools</h2> <h2>Sun JDK 1.5 security tools</h2>
<p> <p>
The Sun JDK (version 1.5.x) ships with all the security tools you need The Sun JDK (version 1.5.x) ships with all the security tools you need
to configure SSL with Wildfire. The most important is the to configure SSL with Openfire. The most important is the
<tt>keytool</tt> located in the <tt>JAVA_HOME/bin directory</tt> of the <tt>keytool</tt> located in the <tt>JAVA_HOME/bin directory</tt> of the
JDK. Sun JVMs persist keystores and truststores on the filesystem as JDK. Sun JVMs persist keystores and truststores on the filesystem as
encrypted files. The <tt>keytool</tt> is used to create, read, update, encrypted files. The <tt>keytool</tt> is used to create, read, update,
and delete entries in these files. Wildfire ships with a self-signed and delete entries in these files. Openfire ships with a self-signed
"dummy" certificate designed for initial evaluation testing. You will need "dummy" certificate designed for initial evaluation testing. You will need
to adjust the default configuration for most deployments. to adjust the default configuration for most deployments.
...@@ -108,9 +108,9 @@ In order to configure SSL on your server you need complete the ...@@ -108,9 +108,9 @@ In order to configure SSL on your server you need complete the
following tasks: following tasks:
</p> </p>
<ol> <ol>
<li>Decide on your Wildfire server's domain.</li> <li>Decide on your Openfire server's domain.</li>
<li>Create a self-signed SSL server certificate for your server <li>Create a self-signed SSL server certificate for your server
domain. Note: you may already have one if your Wildfire server domain. Note: you may already have one if your Openfire server
domain matches an existing web domain with SSL. domain matches an existing web domain with SSL.
If so, you can skip to step 4.</li> If so, you can skip to step 4.</li>
<li>[Optional] Have a certificate authority (CA) certify the SSL <li>[Optional] Have a certificate authority (CA) certify the SSL
...@@ -127,13 +127,13 @@ generated in step 2, the certificate is already imported and you can ...@@ -127,13 +127,13 @@ generated in step 2, the certificate is already imported and you can
skip this step.</li> skip this step.</li>
<li>Remove default certificates from the keystore.</li> <li>Remove default certificates from the keystore.</li>
<li>Import client certificates into the truststore.</li> <li>Import client certificates into the truststore.</li>
<li>Adjust the Wildfire configuration with proper keystore and <li>Adjust the Openfire configuration with proper keystore and
truststore settings.</li> truststore settings.</li>
</ol> </ol>
<h3>1. Decide on a Server Domain</h3> <h3>1. Decide on a Server Domain</h3>
<p> <p>
The Wildfire server domain should match the host name of the server; The Openfire server domain should match the host name of the server;
for example, "example.com". Your user accounts will have addresses with for example, "example.com". Your user accounts will have addresses with
the format "user@example.com" like email addresses. We'll assume the format "user@example.com" like email addresses. We'll assume
the domain is "example.com" for the rest of the examples. the domain is "example.com" for the rest of the examples.
...@@ -142,7 +142,7 @@ the domain is "example.com" for the rest of the examples. ...@@ -142,7 +142,7 @@ the domain is "example.com" for the rest of the examples.
<p> <p>
In order to create a self-signed server certificate go to the command In order to create a self-signed server certificate go to the command
line and change directories to the <tt>resources/security</tt> line and change directories to the <tt>resources/security</tt>
directory of your Wildfire installation. You should see the default directory of your Openfire installation. You should see the default
<tt>keystore</tt> and <tt>truststore</tt> files. First, you should <tt>keystore</tt> and <tt>truststore</tt> files. First, you should
change the default keystore change the default keystore
password: password:
...@@ -222,9 +222,9 @@ Now import each certificate using the keytool: ...@@ -222,9 +222,9 @@ Now import each certificate using the keytool:
</p> </p>
<p><tt>keytool -import -keystore truststore -alias user_name -file <p><tt>keytool -import -keystore truststore -alias user_name -file
certificate_file</tt></p> certificate_file</tt></p>
<h3>7. Configure Wildfire</h3> <h3>7. Configure Openfire</h3>
<p> <p>
Open the Wildfire Admin Console in your favorite Open the Openfire Admin Console in your favorite
browser and add or change the following system properties: browser and add or change the following system properties:
</p> </p>
<ul> <ul>
...@@ -233,16 +233,16 @@ browser and add or change the following system properties: ...@@ -233,16 +233,16 @@ browser and add or change the following system properties:
5223 for XMPP)</li> 5223 for XMPP)</li>
<li>xmpp.socket.ssl.storeType -- the store type used ("JKS" is <li>xmpp.socket.ssl.storeType -- the store type used ("JKS" is
the Sun Java Keystore format used by the JDK keytool). If this property is the Sun Java Keystore format used by the JDK keytool). If this property is
not defined, Wildfire will assume a value of "jks".</li> not defined, Openfire will assume a value of "jks".</li>
<li>xmpp.socket.ssl.keystore -- the location of the keystore file <li>xmpp.socket.ssl.keystore -- the location of the keystore file
relative to your Wildfire installation root directory. You can leave this property relative to your Openfire installation root directory. You can leave this property
blank to use the default keystore.</li> blank to use the default keystore.</li>
<li>xmpp.socket.ssl.keypass -- the keystore/key password you <li>xmpp.socket.ssl.keypass -- the keystore/key password you
changed in step 2.</li> changed in step 2.</li>
<li>xmpp.socket.ssl.truststore -- leave blank to not use a <li>xmpp.socket.ssl.truststore -- leave blank to not use a
truststore, otherwise the location of the truststore file relative to truststore, otherwise the location of the truststore file relative to
your Wildfire installation root directory.</li> your Openfire installation root directory.</li>
<li>xmpp.socket.ssl.trustpass -- the truststore/key password you <li>xmpp.socket.ssl.trustpass -- the truststore/key password you
changed in step 6.</li> changed in step 6.</li>
</ul> </ul>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Translator Guide</title> <title>Openfire: Translator Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
...@@ -25,11 +25,11 @@ ...@@ -25,11 +25,11 @@
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
The Wildfire admin console can be easily translated into other languages. This document The Openfire admin console can be easily translated into other languages. This document
provides instructions for those that wish to make translations. provides instructions for those that wish to make translations.
</p> </p>
<p> <p>
All text in the Wildfire admin console is stored in a resource All text in the Openfire admin console is stored in a resource
bundle. A resource bundle is a file containing key/value pairs. Words and phrases are bundle. A resource bundle is a file containing key/value pairs. Words and phrases are
represented using keys. The correct values are retrieved based on locale settings represented using keys. The correct values are retrieved based on locale settings
(English values are used for English locales, French values for French locales, etc). (English values are used for English locales, French values for French locales, etc).
...@@ -56,25 +56,25 @@ renaming the file, then translating its contents.</p> ...@@ -56,25 +56,25 @@ renaming the file, then translating its contents.</p>
<h2>Construct a Resource Bundle</h2> <h2>Construct a Resource Bundle</h2>
<p>To start, make a copy of the default (English) locale file "wildfire_i18n.properties". <p>To start, make a copy of the default (English) locale file "openfire_i18n.properties".
It can be found in the <tt>resources\i18n</tt> directory of your Wildfire It can be found in the <tt>resources\i18n</tt> directory of your Openfire
installation. Note: the files found in <tt>resources\i18n</tt> are copies of the installation. Note: the files found in <tt>resources\i18n</tt> are copies of the
real resource bundles used by the application (the real resource bundles are contained real resource bundles used by the application (the real resource bundles are contained
in the wildfire.jar file). Editing the resource files in the <tt>resources\i18n</tt> in the openfire.jar file). Editing the resource files in the <tt>resources\i18n</tt>
directory will not affect your running copy of Wildfire.</p> directory will not affect your running copy of Openfire.</p>
<p>Next, you'll need to rename the file to match the locale that you're making a <p>Next, you'll need to rename the file to match the locale that you're making a
translation for. The syntax of the name is "wildfire_i18n_[lang]_[country].properties". translation for. The syntax of the name is "openfire_i18n_[lang]_[country].properties".
However, the country code should be used in most cases. For example, the German resource However, the country code should be used in most cases. For example, the German resource
bundle should be named "wildfire_i18n_de.properties" because bundle should be named "openfire_i18n_de.properties" because
"de" is the language code for German. For French, the file would be called "de" is the language code for German. For French, the file would be called
"wildfire_i18n_fr.properties". A list of language codes can "openfire_i18n_fr.properties". A list of language codes can
be found at: be found at:
<a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt" <a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt"
target="_new">http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</a>. target="_new">http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</a>.
Some locales require a combination of language and country code. For example Some locales require a combination of language and country code. For example
simplified Chinese would have the name "wildfire_i18n_zh_CN.properties" simplified Chinese would have the name "openfire_i18n_zh_CN.properties"
while traditional Chinese would have the name "wildfire_i18n_zh_TW.properties".</p> while traditional Chinese would have the name "openfire_i18n_zh_TW.properties".</p>
<h2>Translate the Resource Bundle</h2> <h2>Translate the Resource Bundle</h2>
...@@ -91,7 +91,7 @@ use the "native2ascii" tool (bundled with Java) to convert international ...@@ -91,7 +91,7 @@ use the "native2ascii" tool (bundled with Java) to convert international
characters to the ASCII format. To use the native2ascii tool:</p> characters to the ASCII format. To use the native2ascii tool:</p>
<pre> <pre>
native2ascii -encoding XXX my_translation.properties wildfire_i18n_YY.properties native2ascii -encoding XXX my_translation.properties openfire_i18n_YY.properties
^ ^ ^ ^
input file output file input file output file
</pre> </pre>
...@@ -105,21 +105,21 @@ document. For example, if you created your translation using UTF-8 as your encod ...@@ -105,21 +105,21 @@ document. For example, if you created your translation using UTF-8 as your encod
you are making a Simplified Chinese translation:</p> you are making a Simplified Chinese translation:</p>
<pre> <pre>
native2ascii -encoding UTF8 my_translation.properties wildfire_i18n_zh_CN.properties native2ascii -encoding UTF8 my_translation.properties openfire_i18n_zh_CN.properties
</pre> </pre>
<h2>Testing Your Translation</h2> <h2>Testing Your Translation</h2>
<p>To test your translation, copy the translated resource bundle file (example, <p>To test your translation, copy the translated resource bundle file (example,
wildfire_i18n_de.properties) to the <tt>lib/</tt> directory of your Wildfire openfire_i18n_de.properties) to the <tt>lib/</tt> directory of your Openfire
installation. Make sure Wildfire is stopped and then edit the <tt>conf/wildfire.xml</tt> installation. Make sure Openfire is stopped and then edit the <tt>conf/openfire.xml</tt>
file. Set the <tt>locale</tt> property to match your new resource file. Set the <tt>locale</tt> property to match your new resource
bundle such as "de" or "zh_CN". Start Wildfire and the admin console bundle such as "de" or "zh_CN". Start Openfire and the admin console
should now be using your translation. If you still see English text you may have should now be using your translation. If you still see English text you may have
named your bundle incorrectly or used the wrong value for the <tt>locale</tt> named your bundle incorrectly or used the wrong value for the <tt>locale</tt>
property.</p> property.</p>
<p>Once your translation is complete and tested, please submit it to the Wildfire <p>Once your translation is complete and tested, please submit it to the Openfire
developers so that others can enjoy it in the next release!</p> developers so that others can enjoy it in the next release!</p>
<br> <br>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire: Upgrade Guide</title> <title>Openfire: Upgrade Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
......
...@@ -5,7 +5,7 @@ REM # $Date$ ...@@ -5,7 +5,7 @@ REM # $Date$
REM # Script to start the HSQLDB database viewer. The embedded-db.rc file REM # Script to start the HSQLDB database viewer. The embedded-db.rc file
REM # contains connection settings. Visit http://hsqldb.org for documentation REM # contains connection settings. Visit http://hsqldb.org for documentation
REM # on using the tool. The classpath includes JDBC drivers shipped with Wildfire REM # on using the tool. The classpath includes JDBC drivers shipped with Openfire
REM # to work with the Transfer tool. You will need to add any other JDBC driver REM # to work with the Transfer tool. You will need to add any other JDBC driver
REM # that you'd like to use with the transfer tool to the classpath manually. REM # that you'd like to use with the transfer tool to the classpath manually.
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# Script to start the HSQLDB database viewer. The embedded-db.rc file # Script to start the HSQLDB database viewer. The embedded-db.rc file
# contains connection settings. Visit http://hsqldb.org for documentation # contains connection settings. Visit http://hsqldb.org for documentation
# on using the tool. The classpath includes JDBC drivers shipped with Wildfire # on using the tool. The classpath includes JDBC drivers shipped with Openfire
# to work with the Transfer tool. You will need to add any other JDBC driver # to work with the Transfer tool. You will need to add any other JDBC driver
# that you'd like to use with the transfer tool to the classpath manually. # that you'd like to use with the transfer tool to the classpath manually.
......
...@@ -2,38 +2,38 @@ ...@@ -2,38 +2,38 @@
# redhat-poinstall.sh # redhat-poinstall.sh
# #
# This script sets permissions on the Wildfire installtion # This script sets permissions on the Openfire installtion
# and install the init script. # and install the init script.
# #
# Run this script as root after installation of wildfire # Run this script as root after installation of openfire
# It is expected that you are executing this script from the bin directory # It is expected that you are executing this script from the bin directory
# If you used an non standard directory name of location # If you used an non standard directory name of location
# Please specify it here # Please specify it here
# WILDFIRE_HOME= # OPENFIRE_HOME=
WILDFIRE_USER="jive" OPENFIRE_USER="jive"
WILDFIRE_GROUP="jive" OPENFIRE_GROUP="jive"
if [ ! $WILDFIRE_HOME ]; then if [ ! $OPENFIRE_HOME ]; then
if [ -d "/opt/wildfire" ]; then if [ -d "/opt/wildfire" ]; then
WILDFIRE_HOME="/opt/wildfire" OPENFIRE_HOME="/opt/wildfire"
elif [ -d "/usr/local/wildfire" ]; then elif [ -d "/usr/local/wildfire" ]; then
WILDFIRE_HOME="/usr/local/wildfire" OPENFIRE_HOME="/usr/local/wildfire"
fi fi
fi fi
# Grant execution permissions # Grant execution permissions
chmod +x $WILDFIRE_HOME/bin/extra/wildfired chmod +x $OPENFIRE_HOME/bin/extra/openfired
# Install the init script # Install the init script
cp $WILDFIRE_HOME/bin/extra/wildfired /etc/init.d cp $OPENFIRE_HOME/bin/extra/openfired /etc/init.d
/sbin/chkconfig --add wildfired /sbin/chkconfig --add openfired
/sbin/chkconfig wildfired on /sbin/chkconfig openfired on
# Create the jive user and group # Create the jive user and group
/usr/sbin/groupadd $WILDFIRE_GROUP /usr/sbin/groupadd $OPENFIRE_GROUP
/usr/sbin/useradd $WILDFIRE_USER -g $WILDFIRE_GROUP -s /bin/bash /usr/sbin/useradd $OPENFIRE_USER -g $OPENFIRE_GROUP -s /bin/bash
# Change the permissions on the installtion directory # Change the permissions on the installtion directory
/bin/chown -R $WILDFIRE_USER:$WILDFIRE_GROUP $WILDFIRE_HOME /bin/chown -R $OPENFIRE_USER:$OPENFIRE_GROUP $OPENFIRE_HOME
...@@ -173,7 +173,7 @@ public class AdminConsole { ...@@ -173,7 +173,7 @@ public class AdminConsole {
return getAdminText(globalVersion.getText(), pluginName); return getAdminText(globalVersion.getText(), pluginName);
} }
else { else {
// Default to the Wildfire version if none has been provided via XML. // Default to the Openfire version if none has been provided via XML.
XMPPServer xmppServer = XMPPServer.getInstance(); XMPPServer xmppServer = XMPPServer.getInstance();
return xmppServer.getServerInfo().getVersion().getVersionString(); return xmppServer.getServerInfo().getVersion().getVersionString();
} }
...@@ -208,7 +208,7 @@ public class AdminConsole { ...@@ -208,7 +208,7 @@ public class AdminConsole {
* *
* @param string the String. * @param string the String.
* @param pluginName the name of the plugin that the i18n String can be found in, * @param pluginName the name of the plugin that the i18n String can be found in,
* or <tt>null</tt> if the standard Wildfire resource bundle should be used. * or <tt>null</tt> if the standard Openfire resource bundle should be used.
* @return the string, or if the string is encoded as an i18n key, the value from * @return the string, or if the string is encoded as an i18n key, the value from
* the appropriate resource bundle. * the appropriate resource bundle.
*/ */
...@@ -227,7 +227,7 @@ public class AdminConsole { ...@@ -227,7 +227,7 @@ public class AdminConsole {
// Load the core model as the admin-sidebar.xml file from the classpath. // Load the core model as the admin-sidebar.xml file from the classpath.
InputStream in = ClassUtils.getResourceAsStream("/admin-sidebar.xml"); InputStream in = ClassUtils.getResourceAsStream("/admin-sidebar.xml");
if (in == null) { if (in == null) {
Log.error("Failed to load admin-sidebar.xml file from Wildfire classes - admin " Log.error("Failed to load admin-sidebar.xml file from Openfire classes - admin "
+ "console will not work correctly."); + "console will not work correctly.");
return; return;
} }
...@@ -359,7 +359,7 @@ public class AdminConsole { ...@@ -359,7 +359,7 @@ public class AdminConsole {
} }
} }
// Special case: show an informational tab about Wildfire Enterprise if Enterprise // Special case: show an informational tab about Openfire Enterprise if Enterprise
// is not installed and if the user has not chosen to hide tab. // is not installed and if the user has not chosen to hide tab.
PluginManager pluginManager = XMPPServer.getInstance().getPluginManager(); PluginManager pluginManager = XMPPServer.getInstance().getPluginManager();
boolean pluginExists = pluginManager != null && pluginManager.isPluginDownloaded( boolean pluginExists = pluginManager != null && pluginManager.isPluginDownloaded(
...@@ -372,12 +372,12 @@ public class AdminConsole { ...@@ -372,12 +372,12 @@ public class AdminConsole {
enterprise.addAttribute("description", "Click for Enterprise information."); enterprise.addAttribute("description", "Click for Enterprise information.");
Element sidebar = enterprise.addElement("sidebar"); Element sidebar = enterprise.addElement("sidebar");
sidebar.addAttribute("id", "sidebar-enterprise-info"); sidebar.addAttribute("id", "sidebar-enterprise-info");
sidebar.addAttribute("name", "Wildfire Enterprise"); sidebar.addAttribute("name", "Openfire Enterprise");
Element item = sidebar.addElement("item"); Element item = sidebar.addElement("item");
item.addAttribute("id", "enterprise-info"); item.addAttribute("id", "enterprise-info");
item.addAttribute("name", "Try Enterprise"); item.addAttribute("name", "Try Enterprise");
item.addAttribute("url", "enterprise-info.jsp"); item.addAttribute("url", "enterprise-info.jsp");
item.addAttribute("description", "Wildfire Enterprise overview inforation"); item.addAttribute("description", "Openfire Enterprise overview inforation");
} }
} }
......
...@@ -71,7 +71,7 @@ public class PluginFilter implements Filter { ...@@ -71,7 +71,7 @@ public class PluginFilter implements Filter {
} }
public void destroy() { public void destroy() {
// If the destroy method is being called, the Wildfire instance is being shutdown. // If the destroy method is being called, the Openfire instance is being shutdown.
// Therefore, clear out the list of plugin filters. // Therefore, clear out the list of plugin filters.
pluginFilters.clear(); pluginFilters.clear();
} }
......
...@@ -464,7 +464,7 @@ public class DbConnectionManager { ...@@ -464,7 +464,7 @@ public class DbConnectionManager {
setMetaData(con); setMetaData(con);
// Check to see if the database schema needs to be upgraded. // Check to see if the database schema needs to be upgraded.
schemaManager.checkWildfireSchema(con); schemaManager.checkOpenfireSchema(con);
} }
catch (Exception e) { catch (Exception e) {
Log.error(e); Log.error(e);
...@@ -630,7 +630,7 @@ public class DbConnectionManager { ...@@ -630,7 +630,7 @@ public class DbConnectionManager {
/** /**
* Returns a SchemaManager instance, which can be used to manage the database * Returns a SchemaManager instance, which can be used to manage the database
* schema information for Wildfire and plugins. * schema information for Openfire and plugins.
* *
* @return a SchemaManager instance. * @return a SchemaManager instance.
*/ */
......
...@@ -65,7 +65,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider { ...@@ -65,7 +65,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider {
} }
String serverURL = "jdbc:hsqldb:" + databaseDir.getCanonicalPath() + String serverURL = "jdbc:hsqldb:" + databaseDir.getCanonicalPath() +
File.separator + "wildfire"; File.separator + "openfire";
String username = "sa"; String username = "sa";
String password = ""; String password = "";
int minConnections = 3; int minConnections = 3;
......
...@@ -22,7 +22,7 @@ import java.sql.*; ...@@ -22,7 +22,7 @@ import java.sql.*;
import java.util.Arrays; import java.util.Arrays;
/** /**
* Manages database schemas for Wildfire and Wildfire plugins. The manager uses the * Manages database schemas for Openfire and Openfire plugins. The manager uses the
* jiveVersion database table to figure out which database schema is currently installed * jiveVersion database table to figure out which database schema is currently installed
* and then attempts to automatically apply database schema changes as necessary.<p> * and then attempts to automatically apply database schema changes as necessary.<p>
* *
...@@ -42,7 +42,7 @@ public class SchemaManager { ...@@ -42,7 +42,7 @@ public class SchemaManager {
"SELECT version FROM jiveVersion WHERE name=?"; "SELECT version FROM jiveVersion WHERE name=?";
/** /**
* Current Wildfire database schema version. * Current Openfire database schema version.
*/ */
private static final int DATABASE_VERSION = 11; private static final int DATABASE_VERSION = 11;
...@@ -54,16 +54,18 @@ public class SchemaManager { ...@@ -54,16 +54,18 @@ public class SchemaManager {
} }
/** /**
* Checks the Wildfire database schema to ensure that it's installed and up to date. * Checks the Openfire database schema to ensure that it's installed and up to date.
* If the schema isn't present or up to date, an automatic update will be attempted. * If the schema isn't present or up to date, an automatic update will be attempted.
* *
* @param con a connection to the database. * @param con a connection to the database.
* @return true if database schema checked out fine, or was automatically installed * @return true if database schema checked out fine, or was automatically installed
* or updated successfully. * or updated successfully.
*/ */
public boolean checkWildfireSchema(Connection con) { public boolean checkOpenfireSchema(Connection con) {
// Change 'wildfire' to 'openfire' in jiveVersion table (update to new name)
updateToOpenfire(con);
try { try {
return checkSchema(con, "wildfire", DATABASE_VERSION, return checkSchema(con, "openfire", DATABASE_VERSION,
new ResourceLoader() { new ResourceLoader() {
public InputStream loadResource(String resourceName) { public InputStream loadResource(String resourceName) {
File file = new File(JiveGlobals.getHomeDirectory() + File.separator + File file = new File(JiveGlobals.getHomeDirectory() + File.separator +
...@@ -156,10 +158,10 @@ public class SchemaManager { ...@@ -156,10 +158,10 @@ public class SchemaManager {
catch (SQLException sqle) { catch (SQLException sqle) {
DbConnectionManager.closeResultSet(rs); DbConnectionManager.closeResultSet(rs);
DbConnectionManager.closeStatement(pstmt); DbConnectionManager.closeStatement(pstmt);
// Releases of Wildfire before 2.6.0 stored a major and minor version // Releases of Openfire before 2.6.0 stored a major and minor version
// number so the normal check for version can fail. Check for the // number so the normal check for version can fail. Check for the
// version using the old format in that case. // version using the old format in that case.
if (schemaKey.equals("wildfire")) { if (schemaKey.equals("openfire")) {
try { try {
if (pstmt != null) { if (pstmt != null) {
pstmt.close(); pstmt.close();
...@@ -190,7 +192,7 @@ public class SchemaManager { ...@@ -190,7 +192,7 @@ public class SchemaManager {
Arrays.asList(schemaKey))); Arrays.asList(schemaKey)));
System.out.println(LocaleUtils.getLocalizedString("upgrade.database.missing_schema", System.out.println(LocaleUtils.getLocalizedString("upgrade.database.missing_schema",
Arrays.asList(schemaKey))); Arrays.asList(schemaKey)));
// Resource will be like "/database/wildfire_hsqldb.sql" // Resource will be like "/database/openfire_hsqldb.sql"
String resourceName = schemaKey + "_" + String resourceName = schemaKey + "_" +
DbConnectionManager.getDatabaseType() + ".sql"; DbConnectionManager.getDatabaseType() + ".sql";
InputStream resource = resourceLoader.loadResource(resourceName); InputStream resource = resourceLoader.loadResource(resourceName);
...@@ -268,8 +270,8 @@ public class SchemaManager { ...@@ -268,8 +270,8 @@ public class SchemaManager {
String schemaKey) String schemaKey)
{ {
InputStream resource = null; InputStream resource = null;
if ("wildfire".equals(schemaKey)) { if ("openfire".equals(schemaKey)) {
// Resource will be like "/database/upgrade/6/wildfire_hsqldb.sql" // Resource will be like "/database/upgrade/6/openfire_hsqldb.sql"
String path = JiveGlobals.getHomeDirectory() + File.separator + "resources" + String path = JiveGlobals.getHomeDirectory() + File.separator + "resources" +
File.separator + "database" + File.separator + "upgrade" + File.separator + File.separator + "database" + File.separator + "upgrade" + File.separator +
upgradeVersion; upgradeVersion;
...@@ -290,6 +292,20 @@ public class SchemaManager { ...@@ -290,6 +292,20 @@ public class SchemaManager {
return resource; return resource;
} }
private void updateToOpenfire(Connection con){
PreparedStatement pstmt = null;
try {
pstmt = con.prepareStatement("UPDATE jiveVersion SET name='openfire' WHERE name='wildfire'");
pstmt.executeUpdate();
}
catch (Exception ex) {
Log.warn("Error when trying to update to new name", ex);
}
finally {
DbConnectionManager.closeStatement(pstmt);
}
}
/** /**
* Executes a SQL script. * Executes a SQL script.
* *
......
...@@ -32,7 +32,7 @@ import java.util.*; ...@@ -32,7 +32,7 @@ import java.util.*;
*/ */
public class JiveGlobals { public class JiveGlobals {
private static String JIVE_CONFIG_FILENAME = "conf" + File.separator + "wildfire.xml"; private static String JIVE_CONFIG_FILENAME = "conf" + File.separator + "openfire.xml";
/** /**
* Location of the jiveHome directory. All configuration files should be * Location of the jiveHome directory. All configuration files should be
...@@ -725,7 +725,7 @@ public class JiveGlobals { ...@@ -725,7 +725,7 @@ public class JiveGlobals {
/** /**
* Allows the name of the local config file name to be changed. The * Allows the name of the local config file name to be changed. The
* default is "wildfire.xml". * default is "openfire.xml".
* *
* @param configName the name of the config file. * @param configName the name of the config file.
*/ */
......
...@@ -35,8 +35,8 @@ public class LocaleUtils { ...@@ -35,8 +35,8 @@ public class LocaleUtils {
// The basename to use for looking up the appropriate resource bundles // The basename to use for looking up the appropriate resource bundles
// TODO - extract this out into a test that grabs the resource name from JiveGlobals // TODO - extract this out into a test that grabs the resource name from JiveGlobals
// TODO and defaults to wildfire_i18n if nothing set. // TODO and defaults to openfire_i18n if nothing set.
private static final String resourceBaseName = "wildfire_i18n"; private static final String resourceBaseName = "openfire_i18n";
private LocaleUtils() { private LocaleUtils() {
} }
......
...@@ -76,9 +76,9 @@ public class Log { ...@@ -76,9 +76,9 @@ public class Log {
logDirectory = JiveGlobals.getXMLProperty("log.directory"); logDirectory = JiveGlobals.getXMLProperty("log.directory");
if (logDirectory == null) { if (logDirectory == null) {
if (JiveGlobals.getHomeDirectory() != null) { if (JiveGlobals.getHomeDirectory() != null) {
File wildfireHome = new File(JiveGlobals.getHomeDirectory()); File openfireHome = new File(JiveGlobals.getHomeDirectory());
if (wildfireHome.exists() && wildfireHome.canWrite()) { if (openfireHome.exists() && openfireHome.canWrite()) {
logDirectory = (new File(wildfireHome, "logs")).toString(); logDirectory = (new File(openfireHome, "logs")).toString();
} }
} }
} }
...@@ -154,7 +154,7 @@ public class Log { ...@@ -154,7 +154,7 @@ public class Log {
try { try {
// home was not setup correctly // home was not setup correctly
if (logName == null) { if (logName == null) {
throw new IOException("LogName was null - WildfireHome not set?"); throw new IOException("LogName was null - OpenfireHome not set?");
} }
else { else {
RevolvingFileStrategy fileStrategy = new RevolvingFileStrategy(logName, 5); RevolvingFileStrategy fileStrategy = new RevolvingFileStrategy(logName, 5);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
package org.jivesoftware.util; package org.jivesoftware.util;
/** /**
* Holds version information for Wildfire. * Holds version information for Openfire.
* *
* @author Iain Shigeoka * @author Iain Shigeoka
*/ */
...@@ -81,7 +81,7 @@ public class Version { ...@@ -81,7 +81,7 @@ public class Version {
} }
/** /**
* Returns the version number of this instance of Wildfire as a * Returns the version number of this instance of Openfire as a
* String (ie major.minor.revision). * String (ie major.minor.revision).
* *
* @return The version as a string * @return The version as a string
......
...@@ -24,7 +24,7 @@ import java.net.URL; ...@@ -24,7 +24,7 @@ import java.net.URL;
import java.util.*; import java.util.*;
/** /**
* A utility bean for Wildfire admin console pages. * A utility bean for Openfire admin console pages.
*/ */
public class WebManager extends WebBean { public class WebManager extends WebBean {
...@@ -42,7 +42,7 @@ public class WebManager extends WebBean { ...@@ -42,7 +42,7 @@ public class WebManager extends WebBean {
} }
/** /**
* Returns <tt>true</tt> if the Wildfire container is in setup mode, <tt>false</tt> otherwise. * Returns <tt>true</tt> if the Openfire container is in setup mode, <tt>false</tt> otherwise.
*/ */
public boolean isSetupMode() { public boolean isSetupMode() {
return getXMPPServer().isSetupMode(); return getXMPPServer().isSetupMode();
......
...@@ -16,7 +16,7 @@ import org.jivesoftware.util.Log; ...@@ -16,7 +16,7 @@ import org.jivesoftware.util.Log;
/** /**
* A LogFactory implementation to override the default commons-logging behavior. All log * A LogFactory implementation to override the default commons-logging behavior. All log
* statements are written to the Wildfire logs. Info level logging is sent to debug. * statements are written to the Openfire logs. Info level logging is sent to debug.
*/ */
public class CommonsLogFactory extends LogFactory { public class CommonsLogFactory extends LogFactory {
......
...@@ -14,13 +14,13 @@ import org.jivesoftware.util.Log; ...@@ -14,13 +14,13 @@ import org.jivesoftware.util.Log;
/** /**
* A Logger implementation to override the default Jetty logging behavior. All log statements * A Logger implementation to override the default Jetty logging behavior. All log statements
* are written to the Wildfire logs. Info level logging is sent to debug. * are written to the Openfire logs. Info level logging is sent to debug.
*/ */
public class JettyLog implements Logger { public class JettyLog implements Logger {
/** /**
* Only enable Jetty debug logging if it's specifically enabled. Otherwise, Jetty debug logs * Only enable Jetty debug logging if it's specifically enabled. Otherwise, Jetty debug logs
* pollute the Wildfire debug log with too much data. * pollute the Openfire debug log with too much data.
*/ */
private boolean debugEnabled = JiveGlobals.getBooleanProperty("jetty.debugEnabled"); private boolean debugEnabled = JiveGlobals.getBooleanProperty("jetty.debugEnabled");
......
...@@ -58,10 +58,14 @@ public class SessionManager extends BasicModule { ...@@ -58,10 +58,14 @@ public class SessionManager extends BasicModule {
private int conflictLimit; private int conflictLimit;
/** /**
* Counter of user sessions. A session is counted just after it was created and not * Counter of user connections. A connection is counted just after it was created and not
* after the user came available. * after the user became available.
*/ */
private final AtomicInteger usersSessionsCounter = new AtomicInteger(0); private final AtomicInteger connectionsCounter = new AtomicInteger(0);
/**
* Counter of non-anonymous user sessions.
*/
private final AtomicInteger userSessionsCounter = new AtomicInteger(0);
private ClientSessionListener clientSessionListener = new ClientSessionListener(); private ClientSessionListener clientSessionListener = new ClientSessionListener();
private ComponentSessionListener componentSessionListener = new ComponentSessionListener(); private ComponentSessionListener componentSessionListener = new ComponentSessionListener();
...@@ -536,7 +540,7 @@ public class SessionManager extends BasicModule { ...@@ -536,7 +540,7 @@ public class SessionManager extends BasicModule {
// Add to pre-authenticated sessions. // Add to pre-authenticated sessions.
preAuthenticatedSessions.put(session.getAddress().getResource(), session); preAuthenticatedSessions.put(session.getAddress().getResource(), session);
// Increment the counter of user sessions // Increment the counter of user sessions
usersSessionsCounter.incrementAndGet(); connectionsCounter.incrementAndGet();
return session; return session;
} }
...@@ -552,7 +556,7 @@ public class SessionManager extends BasicModule { ...@@ -552,7 +556,7 @@ public class SessionManager extends BasicModule {
conn.init(session); conn.init(session);
conn.registerCloseListener(clientSessionListener, session); conn.registerCloseListener(clientSessionListener, session);
preAuthenticatedSessions.put(session.getAddress().getResource(), session); preAuthenticatedSessions.put(session.getAddress().getResource(), session);
usersSessionsCounter.incrementAndGet(); connectionsCounter.incrementAndGet();
return session; return session;
} }
...@@ -697,7 +701,10 @@ public class SessionManager extends BasicModule { ...@@ -697,7 +701,10 @@ public class SessionManager extends BasicModule {
} }
/** /**
* Add a new session to be managed. * Add a new session to be managed. The session has been authenticated by
* a non-anonymous user.
*
* @param session the session that was authenticated.
*/ */
public void addSession(ClientSession session) { public void addSession(ClientSession session) {
String username = session.getAddress().getNode(); String username = session.getAddress().getNode();
...@@ -713,6 +720,8 @@ public class SessionManager extends BasicModule { ...@@ -713,6 +720,8 @@ public class SessionManager extends BasicModule {
} }
// Remove the pre-Authenticated session but remember to use the temporary ID as the key // Remove the pre-Authenticated session but remember to use the temporary ID as the key
preAuthenticatedSessions.remove(session.getStreamID().toString()); preAuthenticatedSessions.remove(session.getStreamID().toString());
// Increment counter of authenticated sessions
userSessionsCounter.incrementAndGet();
// Fire session created event. // Fire session created event.
SessionEventDispatcher SessionEventDispatcher
.dispatchEvent(session, SessionEventDispatcher.EventType.session_created); .dispatchEvent(session, SessionEventDispatcher.EventType.session_created);
...@@ -1027,8 +1036,8 @@ public class SessionManager extends BasicModule { ...@@ -1027,8 +1036,8 @@ public class SessionManager extends BasicModule {
} }
/** /**
* Returns a list that contains all client sessions connected to the server. The list * Returns a list that contains all authenticated client sessions connected to the server.
* contains sessions of anonymous and non-anonymous users. * The list contains sessions of anonymous and non-anonymous users.
* *
* @return a list that contains all client sessions connected to the server. * @return a list that contains all client sessions connected to the server.
*/ */
...@@ -1239,13 +1248,23 @@ public class SessionManager extends BasicModule { ...@@ -1239,13 +1248,23 @@ public class SessionManager extends BasicModule {
} }
/** /**
* Returns number of client sessions that are connected to the server. Anonymous users * Returns number of client sessions that are connected to the server. Sessions that
* are included too. * are authenticated and not authenticated will be included
* *
* @return number of client sessions that are connected to the server. * @return number of client sessions that are connected to the server.
*/ */
public int getSessionCount() { public int getConnectionsCount() {
return usersSessionsCounter.get(); return connectionsCounter.get();
}
/**
* Returns number of client sessions that are authenticated with the server using a
* non-anoymous user.
*
* @return number of client sessions that are authenticated with the server using a non-anoymous user.
*/
public int getUserSessionsCount() {
return userSessionsCounter.get();
} }
/** /**
...@@ -1271,7 +1290,7 @@ public class SessionManager extends BasicModule { ...@@ -1271,7 +1290,7 @@ public class SessionManager extends BasicModule {
/** /**
* Returns the number of sessions for a user that are available. For the count * Returns the number of sessions for a user that are available. For the count
* of all sessions for the user, including sessions that are just starting * of all sessions for the user, including sessions that are just starting
* or closed, see {@see #getSessionCount(String)}. * or closed, see {@see #getConnectionsCount(String)}.
* *
* @param username the user. * @param username the user.
* @return number of available sessions for a user. * @return number of available sessions for a user.
...@@ -1304,6 +1323,12 @@ public class SessionManager extends BasicModule { ...@@ -1304,6 +1323,12 @@ public class SessionManager extends BasicModule {
return sessionCount; return sessionCount;
} }
/**
* Returns the number of users that are authenticated with the server. For users
* that are connected from more than one resource the count will be one.
*
* @return the number of users that are authenticated with the server.
*/
public Collection<String> getSessionUsers() { public Collection<String> getSessionUsers() {
return Collections.unmodifiableCollection(sessions.keySet()); return Collections.unmodifiableCollection(sessions.keySet());
} }
...@@ -1412,6 +1437,8 @@ public class SessionManager extends BasicModule { ...@@ -1412,6 +1437,8 @@ public class SessionManager extends BasicModule {
if (sessionMap != null) { if (sessionMap != null) {
synchronized (username.intern()) { synchronized (username.intern()) {
auth_removed = sessionMap.removeSession(session); auth_removed = sessionMap.removeSession(session);
// Decrement number of authenticated sessions (of non-anonymous users)
userSessionsCounter.decrementAndGet();
} }
if (sessionMap.isEmpty()) { if (sessionMap.isEmpty()) {
sessions.remove(username); sessions.remove(username);
...@@ -1438,7 +1465,7 @@ public class SessionManager extends BasicModule { ...@@ -1438,7 +1465,7 @@ public class SessionManager extends BasicModule {
} }
if (auth_removed || preauth_removed) { if (auth_removed || preauth_removed) {
// Decrement the counter of user sessions // Decrement the counter of user sessions
usersSessionsCounter.decrementAndGet(); connectionsCounter.decrementAndGet();
return true; return true;
} }
return false; return false;
...@@ -1448,7 +1475,6 @@ public class SessionManager extends BasicModule { ...@@ -1448,7 +1475,6 @@ public class SessionManager extends BasicModule {
anonymousSessions.put(session.getAddress().getResource(), session); anonymousSessions.put(session.getAddress().getResource(), session);
// Remove the session from the pre-Authenticated sessions list // Remove the session from the pre-Authenticated sessions list
preAuthenticatedSessions.remove(session.getAddress().getResource()); preAuthenticatedSessions.remove(session.getAddress().getResource());
// Fire session event. // Fire session event.
SessionEventDispatcher.dispatchEvent(session, SessionEventDispatcher.dispatchEvent(session,
SessionEventDispatcher.EventType.anonymous_session_created); SessionEventDispatcher.EventType.anonymous_session_created);
......
...@@ -72,16 +72,16 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -72,16 +72,16 @@ import java.util.concurrent.CopyOnWriteArrayList;
* <p/> * <p/>
* A configuration file keeps the server configuration. This information is required for the * A configuration file keeps the server configuration. This information is required for the
* server to work correctly. The server assumes that the configuration file is named * server to work correctly. The server assumes that the configuration file is named
* <b>wildfire.xml</b> and is located in the <b>conf</b> folder. The folder that keeps * <b>openfire.xml</b> and is located in the <b>conf</b> folder. The folder that keeps
* the configuration file must be located under the home folder. The server will try different * the configuration file must be located under the home folder. The server will try different
* methods to locate the home folder. * methods to locate the home folder.
* <p/> * <p/>
* <ol> * <ol>
* <li><b>system property</b> - The server will use the value defined in the <i>wildfireHome</i> * <li><b>system property</b> - The server will use the value defined in the <i>openfireHome</i>
* system property.</li> * system property.</li>
* <li><b>working folder</b> - The server will check if there is a <i>conf</i> folder in the * <li><b>working folder</b> - The server will check if there is a <i>conf</i> folder in the
* working directory. This is the case when running in standalone mode.</li> * working directory. This is the case when running in standalone mode.</li>
* <li><b>wildfire_init.xml file</b> - Attempt to load the value from wildfire_init.xml which * <li><b>openfire_init.xml file</b> - Attempt to load the value from openfire_init.xml which
* must be in the classpath</li> * must be in the classpath</li>
* </ol> * </ol>
* *
...@@ -111,7 +111,7 @@ public class XMPPServer { ...@@ -111,7 +111,7 @@ public class XMPPServer {
* Location of the home directory. All configuration files should be * Location of the home directory. All configuration files should be
* located here. * located here.
*/ */
private File wildfireHome; private File openfireHome;
private ClassLoader loader; private ClassLoader loader;
private PluginManager pluginManager; private PluginManager pluginManager;
...@@ -238,7 +238,7 @@ public class XMPPServer { ...@@ -238,7 +238,7 @@ public class XMPPServer {
} }
catch (IllegalArgumentException e) { catch (IllegalArgumentException e) {
// Ignore usernames that when appended @server.com result in an invalid JID // Ignore usernames that when appended @server.com result in an invalid JID
Log.warn("Invalid username found in authorizedUsernames at wildfire.xml: " + Log.warn("Invalid username found in authorizedUsernames at openfire.xml: " +
username, e); username, e);
} }
} }
...@@ -253,7 +253,7 @@ public class XMPPServer { ...@@ -253,7 +253,7 @@ public class XMPPServer {
admins.add(new JID(jid)); admins.add(new JID(jid));
} }
catch (IllegalArgumentException e) { catch (IllegalArgumentException e) {
Log.warn("Invalid JID found in authorizedJIDs at wildfire.xml: " + jid, e); Log.warn("Invalid JID found in authorizedJIDs at openfire.xml: " + jid, e);
} }
} }
...@@ -281,11 +281,11 @@ public class XMPPServer { ...@@ -281,11 +281,11 @@ public class XMPPServer {
} }
private void initialize() throws FileNotFoundException { private void initialize() throws FileNotFoundException {
locateWildfire(); locateOpenfire();
name = JiveGlobals.getProperty("xmpp.domain", "127.0.0.1").toLowerCase(); name = JiveGlobals.getProperty("xmpp.domain", "127.0.0.1").toLowerCase();
version = new Version(3, 2, 2, Version.ReleaseStatus.Release, 1); version = new Version(3, 3, 0, Version.ReleaseStatus.Alpha, 1);
if ("true".equals(JiveGlobals.getXMLProperty("setup"))) { if ("true".equals(JiveGlobals.getXMLProperty("setup"))) {
setupMode = false; setupMode = false;
} }
...@@ -362,8 +362,6 @@ public class XMPPServer { ...@@ -362,8 +362,6 @@ public class XMPPServer {
initModules(); initModules();
// Start all the modules // Start all the modules
startModules(); startModules();
// Keep a reference to the internal component manager
componentManager = getComponentManager();
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -385,7 +383,7 @@ public class XMPPServer { ...@@ -385,7 +383,7 @@ public class XMPPServer {
initialize(); initialize();
// Create PluginManager now (but don't start it) so that modules may use it // Create PluginManager now (but don't start it) so that modules may use it
File pluginDir = new File(wildfireHome, "plugins"); File pluginDir = new File(openfireHome, "plugins");
pluginManager = new PluginManager(pluginDir); pluginManager = new PluginManager(pluginDir);
// If the server has already been setup then we can start all the server's modules // If the server has already been setup then we can start all the server's modules
...@@ -398,8 +396,6 @@ public class XMPPServer { ...@@ -398,8 +396,6 @@ public class XMPPServer {
initModules(); initModules();
// Start all the modules // Start all the modules
startModules(); startModules();
// Keep a reference to the internal component manager
componentManager = getComponentManager();
} }
// Initialize statistics // Initialize statistics
ServerTrafficCounter.initStatistics(); ServerTrafficCounter.initStatistics();
...@@ -481,6 +477,8 @@ public class XMPPServer { ...@@ -481,6 +477,8 @@ public class XMPPServer {
// Load this module always last since we don't want to start listening for clients // Load this module always last since we don't want to start listening for clients
// before the rest of the modules have been started // before the rest of the modules have been started
loadModule(ConnectionManagerImpl.class.getName()); loadModule(ConnectionManagerImpl.class.getName());
// Keep a reference to the internal component manager
componentManager = getComponentManager();
} }
/** /**
...@@ -687,8 +685,8 @@ public class XMPPServer { ...@@ -687,8 +685,8 @@ public class XMPPServer {
} }
/** /**
* Verifies that the given home guess is a real Wildfire home directory. * Verifies that the given home guess is a real Openfire home directory.
* We do the verification by checking for the Wildfire config file in * We do the verification by checking for the Openfire config file in
* the config dir of jiveHome. * the config dir of jiveHome.
* *
* @param homeGuess a guess at the path to the home directory. * @param homeGuess a guess at the path to the home directory.
...@@ -699,14 +697,14 @@ public class XMPPServer { ...@@ -699,14 +697,14 @@ public class XMPPServer {
* directory provided * directory provided
*/ */
private File verifyHome(String homeGuess, String jiveConfigName) throws FileNotFoundException { private File verifyHome(String homeGuess, String jiveConfigName) throws FileNotFoundException {
File wildfireHome = new File(homeGuess); File openfireHome = new File(homeGuess);
File configFile = new File(wildfireHome, jiveConfigName); File configFile = new File(openfireHome, jiveConfigName);
if (!configFile.exists()) { if (!configFile.exists()) {
throw new FileNotFoundException(); throw new FileNotFoundException();
} }
else { else {
try { try {
return new File(wildfireHome.getCanonicalPath()); return new File(openfireHome.getCanonicalPath());
} }
catch (Exception ex) { catch (Exception ex) {
throw new FileNotFoundException(); throw new FileNotFoundException();
...@@ -719,14 +717,14 @@ public class XMPPServer { ...@@ -719,14 +717,14 @@ public class XMPPServer {
* *
* @throws FileNotFoundException If jiveHome could not be located * @throws FileNotFoundException If jiveHome could not be located
*/ */
private void locateWildfire() throws FileNotFoundException { private void locateOpenfire() throws FileNotFoundException {
String jiveConfigName = "conf" + File.separator + "wildfire.xml"; String jiveConfigName = "conf" + File.separator + "openfire.xml";
// First, try to load it wildfireHome as a system property. // First, try to load it openfireHome as a system property.
if (wildfireHome == null) { if (openfireHome == null) {
String homeProperty = System.getProperty("wildfireHome"); String homeProperty = System.getProperty("openfireHome");
try { try {
if (homeProperty != null) { if (homeProperty != null) {
wildfireHome = verifyHome(homeProperty, jiveConfigName); openfireHome = verifyHome(homeProperty, jiveConfigName);
} }
} }
catch (FileNotFoundException fe) { catch (FileNotFoundException fe) {
...@@ -737,9 +735,9 @@ public class XMPPServer { ...@@ -737,9 +735,9 @@ public class XMPPServer {
// If we still don't have home, let's assume this is standalone // If we still don't have home, let's assume this is standalone
// and just look for home in a standard sub-dir location and verify // and just look for home in a standard sub-dir location and verify
// by looking for the config file // by looking for the config file
if (wildfireHome == null) { if (openfireHome == null) {
try { try {
wildfireHome = verifyHome("..", jiveConfigName).getCanonicalFile(); openfireHome = verifyHome("..", jiveConfigName).getCanonicalFile();
} }
catch (FileNotFoundException fe) { catch (FileNotFoundException fe) {
// Ignore. // Ignore.
...@@ -750,19 +748,19 @@ public class XMPPServer { ...@@ -750,19 +748,19 @@ public class XMPPServer {
} }
// If home is still null, no outside process has set it and // If home is still null, no outside process has set it and
// we have to attempt to load the value from wildfire_init.xml, // we have to attempt to load the value from openfire_init.xml,
// which must be in the classpath. // which must be in the classpath.
if (wildfireHome == null) { if (openfireHome == null) {
InputStream in = null; InputStream in = null;
try { try {
in = getClass().getResourceAsStream("/wildfire_init.xml"); in = getClass().getResourceAsStream("/openfire_init.xml");
if (in != null) { if (in != null) {
SAXReader reader = new SAXReader(); SAXReader reader = new SAXReader();
Document doc = reader.read(in); Document doc = reader.read(in);
String path = doc.getRootElement().getText(); String path = doc.getRootElement().getText();
try { try {
if (path != null) { if (path != null) {
wildfireHome = verifyHome(path, jiveConfigName); openfireHome = verifyHome(path, jiveConfigName);
} }
} }
catch (FileNotFoundException fe) { catch (FileNotFoundException fe) {
...@@ -771,7 +769,7 @@ public class XMPPServer { ...@@ -771,7 +769,7 @@ public class XMPPServer {
} }
} }
catch (Exception e) { catch (Exception e) {
System.err.println("Error loading wildfire_init.xml to find home."); System.err.println("Error loading openfire_init.xml to find home.");
e.printStackTrace(); e.printStackTrace();
} }
finally { finally {
...@@ -787,13 +785,13 @@ public class XMPPServer { ...@@ -787,13 +785,13 @@ public class XMPPServer {
} }
} }
if (wildfireHome == null) { if (openfireHome == null) {
System.err.println("Could not locate home"); System.err.println("Could not locate home");
throw new FileNotFoundException(); throw new FileNotFoundException();
} }
else { else {
// Set the home directory for the config file // Set the home directory for the config file
JiveGlobals.setHomeDirectory(wildfireHome.toString()); JiveGlobals.setHomeDirectory(openfireHome.toString());
// Set the name of the config file // Set the name of the config file
JiveGlobals.setConfigName(jiveConfigName); JiveGlobals.setConfigName(jiveConfigName);
} }
...@@ -871,7 +869,7 @@ public class XMPPServer { ...@@ -871,7 +869,7 @@ public class XMPPServer {
// Stop the Db connection manager. // Stop the Db connection manager.
DbConnectionManager.destroyConnectionProvider(); DbConnectionManager.destroyConnectionProvider();
// hack to allow safe stopping // hack to allow safe stopping
Log.info("Wildfire stopped"); Log.info("Openfire stopped");
} }
/** /**
......
...@@ -25,7 +25,7 @@ public class AuditEvent { ...@@ -25,7 +25,7 @@ public class AuditEvent {
/** /**
* All user generated codes must be equal to or greater than this constant * All user generated codes must be equal to or greater than this constant
* to avoid clashing with Wildfire event codes. * to avoid clashing with Openfire event codes.
*/ */
public static final int USER_CODES = 100; public static final int USER_CODES = 100;
......
...@@ -19,9 +19,9 @@ import java.security.NoSuchAlgorithmException; ...@@ -19,9 +19,9 @@ import java.security.NoSuchAlgorithmException;
import java.util.Map; import java.util.Map;
/** /**
* Pluggable authentication service. Users of Wildfire that wish to change the AuthProvider * Pluggable authentication service. Users of Openfire that wish to change the AuthProvider
* implementation used to authenticate users can set the <code>AuthProvider.className</code> * implementation used to authenticate users can set the <code>AuthProvider.className</code>
* XML property. For example, if you have configured Wildfire to use LDAP for user information, * XML property. For example, if you have configured Openfire to use LDAP for user information,
* you'd want to send a custom implementation of AuthFactory to make LDAP auth queries. * you'd want to send a custom implementation of AuthFactory to make LDAP auth queries.
* After changing the <code>AuthProvider.className</code> XML property, you must restart your * After changing the <code>AuthProvider.className</code> XML property, you must restart your
* application server. * application server.
...@@ -232,7 +232,7 @@ public class AuthFactory { ...@@ -232,7 +232,7 @@ public class AuthFactory {
* The encryption key is stored as the Jive property "passwordKey". If it's not present, * The encryption key is stored as the Jive property "passwordKey". If it's not present,
* it will be automatically generated. * it will be automatically generated.
* *
* @return the Blowfish cipher, or <tt>null</tt> if Wildfire is not able to create a Cipher; * @return the Blowfish cipher, or <tt>null</tt> if Openfire is not able to create a Cipher;
* for example, during setup mode. * for example, during setup mode.
*/ */
private static synchronized Blowfish getCipher() { private static synchronized Blowfish getCipher() {
......
...@@ -16,7 +16,7 @@ import org.jivesoftware.wildfire.user.UserNotFoundException; ...@@ -16,7 +16,7 @@ import org.jivesoftware.wildfire.user.UserNotFoundException;
/** /**
* Provider interface for authentication. Users that wish to integrate with * Provider interface for authentication. Users that wish to integrate with
* their own authentication system must implement this class and then register * their own authentication system must implement this class and then register
* the implementation with Wildfire in the <tt>wildfire.xml</tt> * the implementation with Openfire in the <tt>openfire.xml</tt>
* file. An entry in that file would look like the following: * file. An entry in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -51,7 +51,7 @@ import java.sql.SQLException; ...@@ -51,7 +51,7 @@ import java.sql.SQLException;
* &lt;passwordType&gt;plain&lt;/passwordType&gt; * &lt;passwordType&gt;plain&lt;/passwordType&gt;
* &lt;/jdbcAuthProvider&gt;</pre> * &lt;/jdbcAuthProvider&gt;</pre>
* *
* The passwordType setting tells Wildfire how the password is stored. Setting the value * The passwordType setting tells Openfire how the password is stored. Setting the value
* is optional (when not set, it defaults to "plain"). The valid values are:<ul> * is optional (when not set, it defaults to "plain"). The valid values are:<ul>
* <li>{@link PasswordType#plain plain} * <li>{@link PasswordType#plain plain}
* <li>{@link PasswordType#md5 md5} * <li>{@link PasswordType#md5 md5}
......
...@@ -68,7 +68,7 @@ public class NativeAuthProvider implements AuthProvider { ...@@ -68,7 +68,7 @@ public class NativeAuthProvider implements AuthProvider {
this.domain = JiveGlobals.getXMLProperty("nativeAuth.domain"); this.domain = JiveGlobals.getXMLProperty("nativeAuth.domain");
// Configure the library path so that we can load the shaj native library // Configure the library path so that we can load the shaj native library
// from the Wildfire lib directory. // from the Openfire lib directory.
// Find the root path of this class. // Find the root path of this class.
try { try {
String binaryPath = (new URL(Shaj.class.getProtectionDomain() String binaryPath = (new URL(Shaj.class.getProtectionDomain()
...@@ -88,7 +88,7 @@ public class NativeAuthProvider implements AuthProvider { ...@@ -88,7 +88,7 @@ public class NativeAuthProvider implements AuthProvider {
Log.error(e); Log.error(e);
} }
// Configure Shaj to log output to the Wildfire logger. // Configure Shaj to log output to the Openfire logger.
com.cenqua.shaj.log.Log.Factory.setInstance(new com.cenqua.shaj.log.Log() { com.cenqua.shaj.log.Log.Factory.setInstance(new com.cenqua.shaj.log.Log() {
public boolean isDebug() { public boolean isDebug() {
return Log.isDebugEnabled(); return Log.isDebugEnabled();
......
...@@ -32,7 +32,8 @@ public class GetNumberUserSessions extends AdHocCommand { ...@@ -32,7 +32,8 @@ public class GetNumberUserSessions extends AdHocCommand {
field = form.addField(); field = form.addField();
field.setLabel(getLabel()); field.setLabel(getLabel());
field.setVariable("onlineuserssessionsnum"); field.setVariable("onlineuserssessionsnum");
field.addValue(SessionManager.getInstance().getSessionCount()); SessionManager sessionManager = SessionManager.getInstance();
field.addValue(sessionManager.getUserSessionsCount() + sessionManager.getAnonymousSessionCount());
command.add(form.getElement()); command.add(form.getElement());
} }
......
...@@ -23,7 +23,7 @@ import java.util.Arrays; ...@@ -23,7 +23,7 @@ import java.util.Arrays;
import java.util.Map; import java.util.Map;
/** /**
* Adds a user to Wildfire if the provider is not read-only. See * Adds a user to Openfire if the provider is not read-only. See
* <a href="http://www.xmpp.org/extensions/xep-0133.html#add-user">Service Administration: * <a href="http://www.xmpp.org/extensions/xep-0133.html#add-user">Service Administration:
* Add User</a> * Add User</a>
* *
......
...@@ -26,7 +26,7 @@ import java.util.List; ...@@ -26,7 +26,7 @@ import java.util.List;
import java.util.Arrays; import java.util.Arrays;
/** /**
* Takes a user's username and password to authenticate them against the Wildfire authprovider. * Takes a user's username and password to authenticate them against the Openfire authprovider.
* *
* @author Alexander Wenckus * @author Alexander Wenckus
*/ */
......
...@@ -14,12 +14,12 @@ package org.jivesoftware.wildfire.container; ...@@ -14,12 +14,12 @@ package org.jivesoftware.wildfire.container;
import java.io.File; import java.io.File;
/** /**
* Plugin interface. Plugins enhance the functionality of Wildfire. They can:<ul> * Plugin interface. Plugins enhance the functionality of Openfire. They can:<ul>
* *
* <li>Act as {@link org.xmpp.component.Component Components} to implement * <li>Act as {@link org.xmpp.component.Component Components} to implement
* additional features in the XMPP protocol. * additional features in the XMPP protocol.
* <li>Dynamically modify the admin console. * <li>Dynamically modify the admin console.
* <li>Use the Wildfire API to add new functionality to the server. * <li>Use the Openfire API to add new functionality to the server.
* </ul> * </ul>
* *
* Plugins live in the <tt>plugins</tt> directory of <tt>home</tt>. Plugins * Plugins live in the <tt>plugins</tt> directory of <tt>home</tt>. Plugins
...@@ -53,7 +53,7 @@ import java.io.File; ...@@ -53,7 +53,7 @@ import java.io.File;
* with a parent plugin.<p/> * with a parent plugin.<p/>
* *
* Please see the Plugin Developer Guide (available with the * Please see the Plugin Developer Guide (available with the
* Wildfire documentation) for additional details about plugin development. * Openfire documentation) for additional details about plugin development.
* *
* @author Matt Tucker * @author Matt Tucker
*/ */
...@@ -72,7 +72,7 @@ public interface Plugin { ...@@ -72,7 +72,7 @@ public interface Plugin {
* *
* Implementations of this method must release all resources held * Implementations of this method must release all resources held
* by the plugin such as file handles, database or network connections, * by the plugin such as file handles, database or network connections,
* and references to core Wildfire classes. In other words, a * and references to core Openfire classes. In other words, a
* garbage collection executed after this method is called must be able * garbage collection executed after this method is called must be able
* to clean up all plugin classes. * to clean up all plugin classes.
*/ */
......
...@@ -15,7 +15,7 @@ import java.io.File; ...@@ -15,7 +15,7 @@ import java.io.File;
/** /**
* Represents the data model used to represent development mode within the Jive * Represents the data model used to represent development mode within the Jive
* Wildfire plugin framework. * Openfire plugin framework.
* *
* @author Derek DeMoro * @author Derek DeMoro
*/ */
......
...@@ -216,7 +216,7 @@ public class PluginManager { ...@@ -216,7 +216,7 @@ public class PluginManager {
saxReader.setEncoding("UTF-8"); saxReader.setEncoding("UTF-8");
Document pluginXML = saxReader.read(pluginConfig); Document pluginXML = saxReader.read(pluginConfig);
// See if the plugin specifies a version of Wildfire // See if the plugin specifies a version of Openfire
// required to run. // required to run.
Element minServerVersion = (Element)pluginXML.selectSingleNode("/plugin/minServerVersion"); Element minServerVersion = (Element)pluginXML.selectSingleNode("/plugin/minServerVersion");
if (minServerVersion != null) { if (minServerVersion != null) {
...@@ -520,7 +520,7 @@ public class PluginManager { ...@@ -520,7 +520,7 @@ public class PluginManager {
// Wrap destroying the plugin in a try/catch block. Otherwise, an exception raised // Wrap destroying the plugin in a try/catch block. Otherwise, an exception raised
// in the destroy plugin process will disrupt the whole unloading process. It's still // in the destroy plugin process will disrupt the whole unloading process. It's still
// possible that classloader destruction won't work in the case that destroying the plugin // possible that classloader destruction won't work in the case that destroying the plugin
// fails. In that case, Wildfire may need to be restarted to fully cleanup the plugin // fails. In that case, Openfire may need to be restarted to fully cleanup the plugin
// resources. // resources.
try { try {
plugin.destroyPlugin(); plugin.destroyPlugin();
...@@ -1007,7 +1007,7 @@ public class PluginManager { ...@@ -1007,7 +1007,7 @@ public class PluginManager {
String jarName = packedFile.getName().substring(0, String jarName = packedFile.getName().substring(0,
packedFile.getName().length() - ".pack".length()); packedFile.getName().length() - ".pack".length());
// Delete JAR file with same name if it exists (could be due to upgrade // Delete JAR file with same name if it exists (could be due to upgrade
// from old Wildfire release). // from old Openfire release).
File jarFile = new File(libDir, jarName); File jarFile = new File(libDir, jarName);
if (jarFile.exists()) { if (jarFile.exists()) {
jarFile.delete(); jarFile.delete();
......
...@@ -43,8 +43,8 @@ import javax.servlet.http.HttpServletResponse; ...@@ -43,8 +43,8 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* The plugin servlet acts as a proxy for web requests (in the admin console) * The plugin servlet acts as a proxy for web requests (in the admin console)
* to plugins. Since plugins can be dynamically loaded and live in a different place * to plugins. Since plugins can be dynamically loaded and live in a different place
* than normal Wildfire admin console files, it's not possible to have them * than normal Openfire admin console files, it's not possible to have them
* added to the normal Wildfire admin console web app directory.<p> * added to the normal Openfire admin console web app directory.<p>
* <p/> * <p/>
* The servlet listens for requests in the form <tt>/plugins/[pluginName]/[JSP File]</tt> * The servlet listens for requests in the form <tt>/plugins/[pluginName]/[JSP File]</tt>
* (e.g. <tt>/plugins/foo/example.jsp</tt>). It also listens for non JSP requests in the * (e.g. <tt>/plugins/foo/example.jsp</tt>). It also listens for non JSP requests in the
...@@ -498,13 +498,13 @@ public class PluginServlet extends HttpServlet { ...@@ -498,13 +498,13 @@ public class PluginServlet extends HttpServlet {
classpath.append(libFile.getAbsolutePath()).append(';'); classpath.append(libFile.getAbsolutePath()).append(';');
} }
File wildfireRoot = pluginDirectory.getParentFile().getParentFile().getParentFile(); File openfireRoot = pluginDirectory.getParentFile().getParentFile().getParentFile();
File wildfireLib = new File(wildfireRoot, "target//lib"); File openfireLib = new File(openfireRoot, "target//lib");
classpath.append(wildfireLib.getAbsolutePath()).append("//servlet.jar;"); classpath.append(openfireLib.getAbsolutePath()).append("//servlet.jar;");
classpath.append(wildfireLib.getAbsolutePath()).append("//wildfire.jar;"); classpath.append(openfireLib.getAbsolutePath()).append("//openfire.jar;");
classpath.append(wildfireLib.getAbsolutePath()).append("//jasper-compiler.jar;"); classpath.append(openfireLib.getAbsolutePath()).append("//jasper-compiler.jar;");
classpath.append(wildfireLib.getAbsolutePath()).append("//jasper-runtime.jar;"); classpath.append(openfireLib.getAbsolutePath()).append("//jasper-runtime.jar;");
if (pluginEnv.getClassesDir() != null) { if (pluginEnv.getClassesDir() != null) {
classpath.append(pluginEnv.getClassesDir().getAbsolutePath()).append(";"); classpath.append(pluginEnv.getClassesDir().getAbsolutePath()).append(";");
......
...@@ -272,7 +272,7 @@ public class IQDiscoInfoHandler extends IQHandler { ...@@ -272,7 +272,7 @@ public class IQDiscoInfoHandler extends IQHandler {
Element identity = DocumentHelper.createElement("identity"); Element identity = DocumentHelper.createElement("identity");
identity.addAttribute("category", "server"); identity.addAttribute("category", "server");
identity.addAttribute("name", JiveGlobals.getProperty( identity.addAttribute("name", JiveGlobals.getProperty(
"xmpp.server.name", "Wildfire Server")); "xmpp.server.name", "Openfire Server"));
identity.addAttribute("type", "im"); identity.addAttribute("type", "im");
identities.add(identity); identities.add(identity);
......
...@@ -111,7 +111,7 @@ public class UserEventDispatcher { ...@@ -111,7 +111,7 @@ public class UserEventDispatcher {
* @param eventType the event type. * @param eventType the event type.
* @param params event parameters. * @param params event parameters.
*/ */
public static void dispatchEvent(User user, EventType eventType, Map params) { public static void dispatchEvent(User user, EventType eventType, Map<String,Object> params) {
for (UserEventListener listener : listeners) { for (UserEventListener listener : listeners) {
try { try {
switch (eventType) { switch (eventType) {
......
...@@ -30,7 +30,7 @@ public interface UserEventListener { ...@@ -30,7 +30,7 @@ public interface UserEventListener {
* @param user the user. * @param user the user.
* @param params event parameters. * @param params event parameters.
*/ */
public void userCreated(User user, Map params); public void userCreated(User user, Map<String,Object> params);
/** /**
* A user is being deleted. * A user is being deleted.
...@@ -38,7 +38,7 @@ public interface UserEventListener { ...@@ -38,7 +38,7 @@ public interface UserEventListener {
* @param user the user. * @param user the user.
* @param params event parameters. * @param params event parameters.
*/ */
public void userDeleting(User user, Map params); public void userDeleting(User user, Map<String,Object> params);
/** /**
* A user's name, email, or an extended property was changed. * A user's name, email, or an extended property was changed.
...@@ -46,5 +46,5 @@ public interface UserEventListener { ...@@ -46,5 +46,5 @@ public interface UserEventListener {
* @param user the user. * @param user the user.
* @param params event parameters. * @param params event parameters.
*/ */
public void userModified(User user, Map params); public void userModified(User user, Map<String,Object> params);
} }
\ No newline at end of file
...@@ -32,7 +32,7 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -32,7 +32,7 @@ import java.util.concurrent.ConcurrentHashMap;
* *
* The actual group implementation is controlled by the {@link GroupProvider}, which * The actual group implementation is controlled by the {@link GroupProvider}, which
* includes things like the group name, the members, and adminstrators. Each group * includes things like the group name, the members, and adminstrators. Each group
* also has properties, which are always stored in the Wildfire database. * also has properties, which are always stored in the Openfire database.
* *
* @see GroupManager#createGroup(String) * @see GroupManager#createGroup(String)
* *
......
...@@ -18,7 +18,7 @@ import java.util.Collection; ...@@ -18,7 +18,7 @@ import java.util.Collection;
/** /**
* Provider interface for groups. Users that wish to integrate with * Provider interface for groups. Users that wish to integrate with
* their own group system must implement this class and then register * their own group system must implement this class and then register
* the implementation with Wildfire in the <tt>wildfire.xml</tt> * the implementation with Openfire in the <tt>openfire.xml</tt>
* file. An entry in that file would look like the following: * file. An entry in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -26,7 +26,7 @@ import java.util.*; ...@@ -26,7 +26,7 @@ import java.util.*;
/** /**
* The JDBC group provider allows you to use an external database to define the make up of groups. * The JDBC group provider allows you to use an external database to define the make up of groups.
* It is best used with the JDBCAuthProvider to provide integration between your external system and * It is best used with the JDBCAuthProvider to provide integration between your external system and
* Wildfire. All data is treated as read-only so any set operations will result in an exception. * Openfire. All data is treated as read-only so any set operations will result in an exception.
* *
* To enable this provider, set the following in the XML configuration file: * To enable this provider, set the following in the XML configuration file:
* *
......
...@@ -30,7 +30,7 @@ import java.io.UnsupportedEncodingException; ...@@ -30,7 +30,7 @@ import java.io.UnsupportedEncodingException;
import java.net.InetAddress; import java.net.InetAddress;
/** /**
* Manages sessions for all users connecting to Wildfire using the HTTP binding protocal, * Manages sessions for all users connecting to Openfire using the HTTP binding protocal,
* <a href="http://www.xmpp.org/extensions/xep-0124.html">XEP-0124</a>. * <a href="http://www.xmpp.org/extensions/xep-0124.html">XEP-0124</a>.
*/ */
public class HttpSessionManager { public class HttpSessionManager {
...@@ -89,16 +89,16 @@ public class HttpSessionManager { ...@@ -89,16 +89,16 @@ public class HttpSessionManager {
} }
/** /**
* Creates an HTTP binding session which will allow a user to exchange packets with Wildfire. * Creates an HTTP binding session which will allow a user to exchange packets with Openfire.
* *
* @param address the internet address that was used to bind to Wildfie. * @param address the internet address that was used to bind to Wildfie.
* @param rootNode the body element that was sent containing the request for a new session. * @param rootNode the body element that was sent containing the request for a new session.
* @param connection the HTTP connection object which abstracts the individual connections to * @param connection the HTTP connection object which abstracts the individual connections to
* Wildfire over the HTTP binding protocol. The initial session creation response is returned to * Openfire over the HTTP binding protocol. The initial session creation response is returned to
* this connection. * this connection.
* @return the created HTTP session. * @return the created HTTP session.
* *
* @throws UnauthorizedException if the Wildfire server is currently in an uninitialized state. * @throws UnauthorizedException if the Openfire server is currently in an uninitialized state.
* Either shutting down or starting up. * Either shutting down or starting up.
* @throws HttpBindException when there is an internal server error related to the creation of * @throws HttpBindException when there is an internal server error related to the creation of
* the initial session creation response. * the initial session creation response.
...@@ -141,12 +141,12 @@ public class HttpSessionManager { ...@@ -141,12 +141,12 @@ public class HttpSessionManager {
/** /**
* Returns the longest time (in seconds) that Wildfire is allowed to wait before responding to * Returns the longest time (in seconds) that Openfire is allowed to wait before responding to
* any request during the session. This enables the client to prevent its TCP connection from * any request during the session. This enables the client to prevent its TCP connection from
* expiring due to inactivity, as well as to limit the delay before it discovers any network * expiring due to inactivity, as well as to limit the delay before it discovers any network
* failure. * failure.
* *
* @return the longest time (in seconds) that Wildfire is allowed to wait before responding to * @return the longest time (in seconds) that Openfire is allowed to wait before responding to
* any request during the session. * any request during the session.
*/ */
public int getMaxWait() { public int getMaxWait() {
...@@ -155,7 +155,7 @@ public class HttpSessionManager { ...@@ -155,7 +155,7 @@ public class HttpSessionManager {
} }
/** /**
* Wildfire SHOULD include two additional attributes in the session creation response element, * Openfire SHOULD include two additional attributes in the session creation response element,
* specifying the shortest allowable polling interval and the longest allowable inactivity * specifying the shortest allowable polling interval and the longest allowable inactivity
* period (both in seconds). Communication of these parameters enables the client to engage in * period (both in seconds). Communication of these parameters enables the client to engage in
* appropriate behavior (e.g., not sending empty request elements more often than desired, and * appropriate behavior (e.g., not sending empty request elements more often than desired, and
...@@ -169,11 +169,11 @@ public class HttpSessionManager { ...@@ -169,11 +169,11 @@ public class HttpSessionManager {
} }
/** /**
* Wildfire MAY limit the number of simultaneous requests the client makes with the 'requests' * Openfire MAY limit the number of simultaneous requests the client makes with the 'requests'
* attribute. The RECOMMENDED value is "2". Servers that only support polling behavior MUST * attribute. The RECOMMENDED value is "2". Servers that only support polling behavior MUST
* prevent clients from making simultaneous requests by setting the 'requests' attribute to a * prevent clients from making simultaneous requests by setting the 'requests' attribute to a
* value of "1" (however, polling is NOT RECOMMENDED). In any case, clients MUST NOT make more * value of "1" (however, polling is NOT RECOMMENDED). In any case, clients MUST NOT make more
* simultaneous requests than specified by the Wildfire. * simultaneous requests than specified by the Openfire.
* *
* @return the number of simultaneous requests allowable. * @return the number of simultaneous requests allowable.
*/ */
......
...@@ -30,7 +30,7 @@ import java.io.*; ...@@ -30,7 +30,7 @@ import java.io.*;
import java.net.URL; import java.net.URL;
/** /**
* Graphical launcher for Wildfire. * Graphical launcher for Openfire.
* *
* @author Matt Tucker * @author Matt Tucker
*/ */
...@@ -38,7 +38,7 @@ public class Launcher { ...@@ -38,7 +38,7 @@ public class Launcher {
private String appName; private String appName;
private File binDir; private File binDir;
private Process wildfired; private Process openfired;
private File configFile; private File configFile;
private JPanel toolbar = new JPanel(); private JPanel toolbar = new JPanel();
...@@ -78,7 +78,7 @@ public class Launcher { ...@@ -78,7 +78,7 @@ public class Launcher {
appName = System.getProperty("app.name"); appName = System.getProperty("app.name");
} }
else { else {
appName = "Wildfire"; appName = "Openfire";
} }
binDir = new File("").getAbsoluteFile(); binDir = new File("").getAbsoluteFile();
...@@ -87,7 +87,7 @@ public class Launcher { ...@@ -87,7 +87,7 @@ public class Launcher {
binDir = new File(System.getProperty("appdir")); binDir = new File(System.getProperty("appdir"));
} }
configFile = new File(new File(binDir.getParent(), "conf"), "wildfire.xml"); configFile = new File(new File(binDir.getParent(), "conf"), "openfire.xml");
frame = new DroppableFrame() { frame = new DroppableFrame() {
public void fileDropped(File file) { public void fileDropped(File file) {
...@@ -111,8 +111,8 @@ public class Launcher { ...@@ -111,8 +111,8 @@ public class Launcher {
splash = new ImageIcon(getClass().getClassLoader().getResource("splash.gif")); splash = new ImageIcon(getClass().getClassLoader().getResource("splash.gif"));
splashLabel = new JLabel("", splash, JLabel.CENTER); splashLabel = new JLabel("", splash, JLabel.CENTER);
onIcon = new ImageIcon(getClass().getClassLoader().getResource("wildfire_on-16x16.gif")); onIcon = new ImageIcon(getClass().getClassLoader().getResource("openfire_on-16x16.gif"));
offIcon = new ImageIcon(getClass().getClassLoader().getResource("wildfire_off-16x16.gif")); offIcon = new ImageIcon(getClass().getClassLoader().getResource("openfire_off-16x16.gif"));
frame.setIconImage(offIcon.getImage()); frame.setIconImage(offIcon.getImage());
} }
catch (Exception e) { catch (Exception e) {
...@@ -346,15 +346,15 @@ public class Launcher { ...@@ -346,15 +346,15 @@ public class Launcher {
} }
private synchronized void startApplication() { private synchronized void startApplication() {
if (wildfired == null) { if (openfired == null) {
try { try {
File windowsExe = new File(binDir, "wildfired.exe"); File windowsExe = new File(binDir, "openfired.exe");
File unixExe = new File(binDir, "wildfired"); File unixExe = new File(binDir, "openfired");
if (windowsExe.exists()) { if (windowsExe.exists()) {
wildfired = Runtime.getRuntime().exec(new String[]{windowsExe.toString()}); openfired = Runtime.getRuntime().exec(new String[]{windowsExe.toString()});
} }
else if (unixExe.exists()) { else if (unixExe.exists()) {
wildfired = Runtime.getRuntime().exec(new String[]{unixExe.toString()}); openfired = Runtime.getRuntime().exec(new String[]{unixExe.toString()});
} }
else { else {
throw new FileNotFoundException(); throw new FileNotFoundException();
...@@ -364,7 +364,7 @@ public class Launcher { ...@@ -364,7 +364,7 @@ public class Launcher {
// Try one more time using the jar and hope java is on the path // Try one more time using the jar and hope java is on the path
try { try {
File libDir = new File(binDir.getParentFile(), "lib").getAbsoluteFile(); File libDir = new File(binDir.getParentFile(), "lib").getAbsoluteFile();
wildfired = Runtime.getRuntime().exec(new String[]{ openfired = Runtime.getRuntime().exec(new String[]{
"java", "-jar", new File(libDir, "startup.jar").toString() "java", "-jar", new File(libDir, "startup.jar").toString()
}); });
} }
...@@ -379,10 +379,10 @@ public class Launcher { ...@@ -379,10 +379,10 @@ public class Launcher {
final SimpleAttributeSet styles = new SimpleAttributeSet(); final SimpleAttributeSet styles = new SimpleAttributeSet();
SwingWorker inputWorker = new SwingWorker() { SwingWorker inputWorker = new SwingWorker() {
public Object construct() { public Object construct() {
if (wildfired != null) { if (openfired != null) {
try { try {
// Get the input stream and read from it // Get the input stream and read from it
InputStream in = wildfired.getInputStream(); InputStream in = openfired.getInputStream();
int c; int c;
while ((c = in.read()) != -1) { while ((c = in.read()) != -1) {
try { try {
...@@ -408,10 +408,10 @@ public class Launcher { ...@@ -408,10 +408,10 @@ public class Launcher {
SwingWorker errorWorker = new SwingWorker() { SwingWorker errorWorker = new SwingWorker() {
public Object construct() { public Object construct() {
if (wildfired != null) { if (openfired != null) {
try { try {
// Get the input stream and read from it // Get the input stream and read from it
InputStream in = wildfired.getErrorStream(); InputStream in = openfired.getErrorStream();
int c; int c;
while ((c = in.read()) != -1) { while ((c = in.read()) != -1) {
try { try {
...@@ -453,10 +453,10 @@ public class Launcher { ...@@ -453,10 +453,10 @@ public class Launcher {
} }
private synchronized void stopApplication() { private synchronized void stopApplication() {
if (wildfired != null) { if (openfired != null) {
try { try {
wildfired.destroy(); openfired.destroy();
wildfired.waitFor(); openfired.waitFor();
cardLayout.show(cardPanel, "main"); cardLayout.show(cardPanel, "main");
} }
catch (Exception e) { catch (Exception e) {
...@@ -464,7 +464,7 @@ public class Launcher { ...@@ -464,7 +464,7 @@ public class Launcher {
} }
} }
wildfired = null; openfired = null;
} }
private synchronized void launchBrowser() { private synchronized void launchBrowser() {
......
...@@ -3,6 +3,6 @@ ...@@ -3,6 +3,6 @@
<head> <head>
</head> </head>
<body> <body>
<p>Laucher classes for Wildfire.</p> <p>Laucher classes for Openfire.</p>
</body> </body>
</html> </html>
...@@ -26,7 +26,7 @@ import java.util.Enumeration; ...@@ -26,7 +26,7 @@ import java.util.Enumeration;
/** /**
* Provider for authorization using LDAP. Checks if the authenticated * Provider for authorization using LDAP. Checks if the authenticated
* principal is in the user's LDAP object using the authorizeField * principal is in the user's LDAP object using the authorizeField
* from the <tt>wildfire.xml</tt> file. An entry in that file would * from the <tt>openfire.xml</tt> file. An entry in that file would
* look like the following: * look like the following:
* *
* <pre> * <pre>
......
...@@ -34,7 +34,7 @@ import java.util.*; ...@@ -34,7 +34,7 @@ import java.util.*;
* &lt;/provider&gt; * &lt;/provider&gt;
* </pre><p/> * </pre><p/>
* *
* and an xml vcard-mapping to wildfire.xml.<p/> * and an xml vcard-mapping to openfire.xml.<p/>
* *
* The vcard attributes can be configured by adding an <code>attrs="attr1,attr2"</code> * The vcard attributes can be configured by adding an <code>attrs="attr1,attr2"</code>
* attribute to the vcard elements.<p/> * attribute to the vcard elements.<p/>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Revision: 3036 $ * $Revision: 3036 $
* $Date: 2005-11-07 15:15:00 -0300 (Mon, 07 Nov 2005) $ * $Date: 2005-11-07 15:15:00 -0300 (Mon, 07 Nov 2005) $
* *
* Copyright (C) 2004 Jive Software. All rights reserved. * Copyright (C) 2007 Jive Software. All rights reserved.
* *
* This software is published under the terms of the GNU Public License (GPL), * This software is published under the terms of the GNU Public License (GPL),
* a copy of which is included in this distribution. * a copy of which is included in this distribution.
...@@ -307,4 +307,18 @@ public interface MultiUserChatServer extends Component { ...@@ -307,4 +307,18 @@ public interface MultiUserChatServer extends Component {
* @return true if the MUC service is available. * @return true if the MUC service is available.
*/ */
boolean isServiceEnabled(); boolean isServiceEnabled();
/**
* Registers a listener to receive events.
*
* @param listener the listener.
*/
void addListener(MUCEventListener listener);
/**
* Unregisters a listener to receive events.
*
* @param listener the listener.
*/
void removeListener(MUCEventListener listener);
} }
\ No newline at end of file
...@@ -204,8 +204,12 @@ public class MUCRoleImpl implements MUCRole { ...@@ -204,8 +204,12 @@ public class MUCRoleImpl implements MUCRole {
} }
public void changeNickname(String nickname) { public void changeNickname(String nickname) {
String oldNickname = this.nick;
this.nick = nickname; this.nick = nickname;
setRoleAddress(new JID(room.getName(), server.getServiceDomain(), nick)); setRoleAddress(new JID(room.getName(), server.getServiceDomain(), nick));
// Fire event that user changed his nickname
((MultiUserChatServerImpl) server)
.fireNicknameChanged(room.getRole().getRoleAddress(), user.getAddress(), oldNickname, nickname);
} }
public MUCUser getChatUser() { public MUCUser getChatUser() {
......
...@@ -39,7 +39,7 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -39,7 +39,7 @@ public class MUCRoomImpl implements MUCRoom {
/** /**
* The server hosting the room. * The server hosting the room.
*/ */
private MultiUserChatServer server; private MultiUserChatServerImpl server;
/** /**
* The occupants of the room accessible by the occupants nickname. * The occupants of the room accessible by the occupants nickname.
...@@ -270,7 +270,7 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -270,7 +270,7 @@ public class MUCRoomImpl implements MUCRoom {
* @param packetRouter the router for sending packets from the room. * @param packetRouter the router for sending packets from the room.
*/ */
MUCRoomImpl(MultiUserChatServer chatserver, String roomname, PacketRouter packetRouter) { MUCRoomImpl(MultiUserChatServer chatserver, String roomname, PacketRouter packetRouter) {
this.server = chatserver; this.server = (MultiUserChatServerImpl) chatserver;
this.name = roomname; this.name = roomname;
this.naturalLanguageName = roomname; this.naturalLanguageName = roomname;
this.description = roomname; this.description = roomname;
...@@ -562,6 +562,8 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -562,6 +562,8 @@ public class MUCRoomImpl implements MUCRoom {
} }
// Update the date when the last occupant left the room // Update the date when the last occupant left the room
setEmptyDate(null); setEmptyDate(null);
// Fire event that occupant joined the room
server.fireOccupantJoined(getRole().getRoleAddress(), user.getAddress(), joinRole.getNickname());
return joinRole; return joinRole;
} }
...@@ -620,6 +622,8 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -620,6 +622,8 @@ public class MUCRoomImpl implements MUCRoom {
if (occupants.isEmpty() && !isPersistent()) { if (occupants.isEmpty() && !isPersistent()) {
endTime = System.currentTimeMillis(); endTime = System.currentTimeMillis();
server.removeChatRoom(name); server.removeChatRoom(name);
// Fire event that the room has been destroyed
server.fireRoomDestroyed(getRole().getRoleAddress());
} }
if (occupants.isEmpty()) { if (occupants.isEmpty()) {
// Update the date when the last occupant left the room // Update the date when the last occupant left the room
...@@ -675,10 +679,12 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -675,10 +679,12 @@ public class MUCRoomImpl implements MUCRoom {
} }
} }
occupantsByFullJID.remove(user.getAddress()); occupantsByFullJID.remove(user.getAddress());
// Fire event that occupant left the room
server.fireOccupantLeft(getRole().getRoleAddress(), user.getAddress());
} }
public void destroyRoom(String alternateJID, String reason) { public void destroyRoom(String alternateJID, String reason) {
MUCRole leaveRole = null; MUCRole leaveRole;
Collection<MUCRole> removedRoles = new ArrayList<MUCRole>(); Collection<MUCRole> removedRoles = new ArrayList<MUCRole>();
lock.writeLock().lock(); lock.writeLock().lock();
try { try {
...@@ -733,6 +739,8 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -733,6 +739,8 @@ public class MUCRoomImpl implements MUCRoom {
} }
// Remove the room from the DB if the room was persistent // Remove the room from the DB if the room was persistent
MUCPersistenceManager.deleteFromDB(this); MUCPersistenceManager.deleteFromDB(this);
// Fire event that the room has been destroyed
server.fireRoomDestroyed(getRole().getRoleAddress());
} }
public Presence createPresence(Presence.Type presenceType) throws UnauthorizedException { public Presence createPresence(Presence.Type presenceType) throws UnauthorizedException {
...@@ -759,6 +767,9 @@ public class MUCRoomImpl implements MUCRoom { ...@@ -759,6 +767,9 @@ public class MUCRoomImpl implements MUCRoom {
// Send the message to all occupants // Send the message to all occupants
message.setFrom(senderRole.getRoleAddress()); message.setFrom(senderRole.getRoleAddress());
send(message); send(message);
// Fire event that message was receibed by the room
server.fireMessageReceived(getRole().getRoleAddress(), senderRole.getChatUser().getAddress(),
senderRole.getNickname(), message);
} }
public void sendPrivatePacket(Packet packet, MUCRole senderRole) throws NotFoundException { public void sendPrivatePacket(Packet packet, MUCRole senderRole) throws NotFoundException {
......
...@@ -36,6 +36,7 @@ import java.util.*; ...@@ -36,6 +36,7 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
...@@ -196,6 +197,8 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha ...@@ -196,6 +197,8 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha
*/ */
private boolean serviceEnabled = true; private boolean serviceEnabled = true;
Collection<MUCEventListener> listeners = new ConcurrentLinkedQueue<MUCEventListener>();
/** /**
* Create a new group chat server. * Create a new group chat server.
*/ */
...@@ -439,6 +442,10 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha ...@@ -439,6 +442,10 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha
} }
} }
room.addFirstOwner(userjid.toBareJID()); room.addFirstOwner(userjid.toBareJID());
// Fire event that a new room has been created
for (MUCEventListener listener : listeners) {
listener.roomCreated(room.getRole().getRoleAddress());
}
} }
rooms.put(roomName, room); rooms.put(roomName, room);
} }
...@@ -1150,6 +1157,44 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha ...@@ -1150,6 +1157,44 @@ public class MultiUserChatServerImpl extends BasicModule implements MultiUserCha
return room.isPublicRoom(); return room.isPublicRoom();
} }
public void addListener(MUCEventListener listener) {
listeners.add(listener);
}
public void removeListener(MUCEventListener listener) {
listeners.remove(listener);
}
void fireOccupantJoined(JID roomJID, JID user, String nickname) {
for (MUCEventListener listener : listeners) {
listener.occupantJoined(roomJID, user, nickname);
}
}
void fireOccupantLeft(JID roomJID, JID user) {
for (MUCEventListener listener : listeners) {
listener.occupantLeft(roomJID, user);
}
}
void fireNicknameChanged(JID roomJID, JID user, String oldNickname, String newNickname) {
for (MUCEventListener listener : listeners) {
listener.nicknameChanged(roomJID, user, oldNickname, newNickname);
}
}
void fireMessageReceived(JID roomJID, JID user, String nickname, Message message) {
for (MUCEventListener listener : listeners) {
listener.messageReceived(roomJID, user, nickname, message);
}
}
void fireRoomDestroyed(JID roomJID) {
for (MUCEventListener listener : listeners) {
listener.roomDestroyed(roomJID);
}
}
/** /**
* Converts an array to a comma-delimitted String. * Converts an array to a comma-delimitted String.
* *
......
...@@ -24,9 +24,9 @@ import java.util.Map; ...@@ -24,9 +24,9 @@ import java.util.Map;
import java.util.TimerTask; import java.util.TimerTask;
/** /**
* Publishes Wildfire information as a service using the Multicast DNS (marketed by Apple * Publishes Openfire information as a service using the Multicast DNS (marketed by Apple
* as Rendezvous) protocol. This lets other nodes on the local network to discover * as Rendezvous) protocol. This lets other nodes on the local network to discover
* the name and port of Wildfire.<p> * the name and port of Openfire.<p>
* *
* The multicast DNS entries published:<ul> * The multicast DNS entries published:<ul>
* <li>Client connections: type of "_xmpp-client._tcp.local.". * <li>Client connections: type of "_xmpp-client._tcp.local.".
......
...@@ -578,7 +578,7 @@ public class SASLAuthentication { ...@@ -578,7 +578,7 @@ public class SASLAuthentication {
* new mechanism will be offered to clients and connection managers as stream features.<p> * new mechanism will be offered to clients and connection managers as stream features.<p>
* *
* Note: this method simply registers the SASL mechanism to be advertised as a supported * Note: this method simply registers the SASL mechanism to be advertised as a supported
* mechanism by Wildfire. Actual SASL handling is done by Java itself, so you must add * mechanism by Openfire. Actual SASL handling is done by Java itself, so you must add
* the provider to Java. * the provider to Java.
* *
* @param mechanism the new SASL mechanism. * @param mechanism the new SASL mechanism.
......
...@@ -27,7 +27,7 @@ import java.security.cert.X509Certificate; ...@@ -27,7 +27,7 @@ import java.security.cert.X509Certificate;
import java.util.List; import java.util.List;
/** /**
* Configuration of Wildfire's SSL settings. * Configuration of Openfire's SSL settings.
* *
* @author Iain Shigeoka * @author Iain Shigeoka
*/ */
......
...@@ -26,7 +26,7 @@ import org.jivesoftware.util.Log; ...@@ -26,7 +26,7 @@ import org.jivesoftware.util.Log;
/** /**
* A custom KeyManagerFactory that creates a key manager list using the * A custom KeyManagerFactory that creates a key manager list using the
* default key manager or a standard keystore as specified in wildfire.xml. * default key manager or a standard keystore as specified in openfire.xml.
* The default keystore provided with the Jive distribution uses the Sun Java * The default keystore provided with the Jive distribution uses the Sun Java
* Keystore (JKS) and that takes a single password which must apply to both the * Keystore (JKS) and that takes a single password which must apply to both the
* keystore and the key itself. Users may specify another keystore type and keystore * keystore and the key itself. Users may specify another keystore type and keystore
......
...@@ -25,7 +25,7 @@ import org.jivesoftware.util.Log; ...@@ -25,7 +25,7 @@ import org.jivesoftware.util.Log;
/** /**
* A custom TrustManagerFactory that creates a trust manager list using the * A custom TrustManagerFactory that creates a trust manager list using the
* default trust manager or a standard keystore as specified in wildfire.xml. * default trust manager or a standard keystore as specified in openfire.xml.
* There is no default trust keystore provided with the Jive distribution as most * There is no default trust keystore provided with the Jive distribution as most
* clients will not need to be authenticated with the server. * clients will not need to be authenticated with the server.
* <p/> * <p/>
......
...@@ -72,7 +72,7 @@ public class RosterItemProvider { ...@@ -72,7 +72,7 @@ public class RosterItemProvider {
* *
* <b>Important!</b> The item passed as a parameter to this method is strictly a convenience * <b>Important!</b> The item passed as a parameter to this method is strictly a convenience
* for passing all of the data needed for a new roster item. The roster item returned from the * for passing all of the data needed for a new roster item. The roster item returned from the
* method will be cached by Wildfire. In some cases, the roster item passed in will be passed * method will be cached by Openfire. In some cases, the roster item passed in will be passed
* back out. However, if an implementation may return RosterItems as a separate class * back out. However, if an implementation may return RosterItems as a separate class
* (for example, a RosterItem that directly accesses the backend storage, or one that is an * (for example, a RosterItem that directly accesses the backend storage, or one that is an
* object in an object database).<p> * object in an object database).<p>
...@@ -117,7 +117,7 @@ public class RosterItemProvider { ...@@ -117,7 +117,7 @@ public class RosterItemProvider {
* Update the roster item in storage with the information contained in the given item * Update the roster item in storage with the information contained in the given item
* (optional operation).<p> * (optional operation).<p>
* *
* If you don't want roster items edited through wildfire, throw UnsupportedOperationException. * If you don't want roster items edited through openfire, throw UnsupportedOperationException.
* *
* @param username the username of the user/chatbot that owns the roster item * @param username the username of the user/chatbot that owns the roster item
* @param item The roster item to update * @param item The roster item to update
...@@ -158,7 +158,7 @@ public class RosterItemProvider { ...@@ -158,7 +158,7 @@ public class RosterItemProvider {
/** /**
* Delete the roster item with the given itemJID for the user (optional operation).<p> * Delete the roster item with the given itemJID for the user (optional operation).<p>
* *
* If you don't want roster items deleted through wildfire, throw * If you don't want roster items deleted through openfire, throw
* UnsupportedOperationException. * UnsupportedOperationException.
* *
* @param username the long ID of the user/chatbot that owns the roster item * @param username the long ID of the user/chatbot that owns the roster item
......
...@@ -21,7 +21,7 @@ package org.jivesoftware.wildfire.sasl; ...@@ -21,7 +21,7 @@ package org.jivesoftware.wildfire.sasl;
* Users that wish to integrate with their own authorization * Users that wish to integrate with their own authorization
* system must extend this class and implement the * system must extend this class and implement the
* AuthorizationProvider interface then register the class * AuthorizationProvider interface then register the class
* with Wildfire in the <tt>wildfire.xml</tt> file. An entry * with Openfire in the <tt>openfire.xml</tt> file. An entry
* in that file would look like the following: * in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -24,7 +24,7 @@ import java.util.Collection; ...@@ -24,7 +24,7 @@ import java.util.Collection;
* Users that wish to integrate with their own authorization * Users that wish to integrate with their own authorization
* system must extend this class and implement the * system must extend this class and implement the
* AuthorizationProvider interface then register the class * AuthorizationProvider interface then register the class
* with Wildfire in the <tt>wildfire.xml</tt> file. An entry * with Openfire in the <tt>openfire.xml</tt> file. An entry
* in that file would look like the following: * in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -77,7 +77,7 @@ public class AuthorizationManager { ...@@ -77,7 +77,7 @@ public class AuthorizationManager {
* Returns the currently-installed AuthorizationProvider. Warning: You * Returns the currently-installed AuthorizationProvider. Warning: You
* should not be calling the AuthorizationProvider directly to perform * should not be calling the AuthorizationProvider directly to perform
* authorizations, it will not take into account the policy selected in * authorizations, it will not take into account the policy selected in
* the <tt>wildfire.xml</tt>. Use @see{authorize} in this class, instead. * the <tt>openfire.xml</tt>. Use @see{authorize} in this class, instead.
* *
* @return the current AuthorizationProvider. * @return the current AuthorizationProvider.
*/ */
......
...@@ -16,7 +16,7 @@ import org.jivesoftware.wildfire.auth.UnauthorizedException; ...@@ -16,7 +16,7 @@ import org.jivesoftware.wildfire.auth.UnauthorizedException;
/** /**
* Provider interface for authorization policy. Users that wish to integrate with * Provider interface for authorization policy. Users that wish to integrate with
* their own authorization system must implement this class and then register * their own authorization system must implement this class and then register
* the implementation with Wildfire in the <tt>wildfire.xml</tt> * the implementation with Openfire in the <tt>openfire.xml</tt>
* file. An entry in that file would look like the following: * file. An entry in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -20,7 +20,7 @@ package org.jivesoftware.wildfire.sasl; ...@@ -20,7 +20,7 @@ package org.jivesoftware.wildfire.sasl;
* encouraged to extend either the AbstractAuthoriationPolicy * encouraged to extend either the AbstractAuthoriationPolicy
* or the AbstractAuthorizationProvider classes which allow * or the AbstractAuthorizationProvider classes which allow
* the admin console manage the classes more effectively. * the admin console manage the classes more effectively.
* Register the class with Wildfire in the <tt>wildfire.xml</tt> * Register the class with Openfire in the <tt>openfire.xml</tt>
* file. An entry in that file would look like the following: * file. An entry in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -24,7 +24,7 @@ import java.util.Collection; ...@@ -24,7 +24,7 @@ import java.util.Collection;
/** /**
* Provider for authorization. Checks if the authenticated principal is in * Provider for authorization. Checks if the authenticated principal is in
* the user's .k5login file. A traditional Unix Kerberos methodology. The * the user's .k5login file. A traditional Unix Kerberos methodology. The
* location of this file can be configured in the <tt>wildfire.xml</tt> * location of this file can be configured in the <tt>openfire.xml</tt>
* file. An entry in that file would look like the following: * file. An entry in that file would look like the following:
* *
* <pre> * <pre>
......
...@@ -21,7 +21,7 @@ import java.util.jar.JarOutputStream; ...@@ -21,7 +21,7 @@ import java.util.jar.JarOutputStream;
* Starts the core XMPP server. A bootstrap class that configures classloaders * Starts the core XMPP server. A bootstrap class that configures classloaders
* to ensure easy, dynamic server startup. * to ensure easy, dynamic server startup.
* *
* This class should be for standalone mode only. Wildfire servers launched * This class should be for standalone mode only. Openfire servers launched
* through a J2EE container (servlet/EJB) will use those environment's * through a J2EE container (servlet/EJB) will use those environment's
* classloading facilities to ensure proper startup.<p> * classloading facilities to ensure proper startup.<p>
* *
...@@ -33,7 +33,7 @@ import java.util.jar.JarOutputStream; ...@@ -33,7 +33,7 @@ import java.util.jar.JarOutputStream;
* </ul> * </ul>
* *
* Note: if the enviroment property <tt>wildfire.lib.directory</tt> is specified * Note: if the enviroment property <tt>wildfire.lib.directory</tt> is specified
* ServerStarter will attempt to use this value as the value for wildfire's lib * ServerStarter will attempt to use this value as the value for openfire's lib
* directory. If the property is not specified the default value of ../lib will be used. * directory. If the property is not specified the default value of ../lib will be used.
* *
* @author Iain Shigeoka * @author Iain Shigeoka
...@@ -141,7 +141,7 @@ public class ServerStarter { ...@@ -141,7 +141,7 @@ public class ServerStarter {
String jarName = packedFile.getName().substring(0, String jarName = packedFile.getName().substring(0,
packedFile.getName().length() - ".pack".length()); packedFile.getName().length() - ".pack".length());
// Delete JAR file with same name if it exists (could be due to upgrade // Delete JAR file with same name if it exists (could be due to upgrade
// from old Wildfire release). // from old Openfire release).
File jarFile = new File(libDir, jarName); File jarFile = new File(libDir, jarName);
if (jarFile.exists()) { if (jarFile.exists()) {
jarFile.delete(); jarFile.delete();
......
...@@ -44,7 +44,7 @@ public class PluginDownloadManager { ...@@ -44,7 +44,7 @@ public class PluginDownloadManager {
} }
/** /**
* Installs a new plugin into Wildfire. * Installs a new plugin into Openfire.
* *
* @param url the url of the plugin to install. * @param url the url of the plugin to install.
* @param hashCode the matching hashcode of the <code>AvailablePlugin</code>. * @param hashCode the matching hashcode of the <code>AvailablePlugin</code>.
......
...@@ -13,7 +13,7 @@ package org.jivesoftware.wildfire.update; ...@@ -13,7 +13,7 @@ package org.jivesoftware.wildfire.update;
/** /**
* An Update represents a component that needs to be updated. By component we can refer * An Update represents a component that needs to be updated. By component we can refer
* to the Wildfire server itself or to any of the installed plugins. * to the Openfire server itself or to any of the installed plugins.
* *
* @author Gaston Dombiak * @author Gaston Dombiak
*/ */
...@@ -21,7 +21,7 @@ public class Update { ...@@ -21,7 +21,7 @@ public class Update {
/** /**
* Name of the component that is outdated. The name could be of the server * Name of the component that is outdated. The name could be of the server
* (i.e. "Wildfire") or of installed plugins. * (i.e. "Openfire") or of installed plugins.
*/ */
private String componentName; private String componentName;
/** /**
...@@ -39,7 +39,7 @@ public class Update { ...@@ -39,7 +39,7 @@ public class Update {
/** /**
* Flag that indicates if the plugin was downloaded. This flag only makes sense for * Flag that indicates if the plugin was downloaded. This flag only makes sense for
* plugins since we currently do not support download new wildfire releases. * plugins since we currently do not support download new openfire releases.
*/ */
private boolean downloaded; private boolean downloaded;
...@@ -52,7 +52,7 @@ public class Update { ...@@ -52,7 +52,7 @@ public class Update {
/** /**
* Returns the name of the component that is outdated. When the server is the * Returns the name of the component that is outdated. When the server is the
* outdated component then a "Wildfire" will be returned. Otherwise, the name of * outdated component then a "Openfire" will be returned. Otherwise, the name of
* the outdated plugin is returned. * the outdated plugin is returned.
* *
* @return the name of the component that is outdated. * @return the name of the component that is outdated.
...@@ -91,7 +91,7 @@ public class Update { ...@@ -91,7 +91,7 @@ public class Update {
/** /**
* Returns true if the plugin was downloaded. Once a plugin has been downloaded * Returns true if the plugin was downloaded. Once a plugin has been downloaded
* it may take a couple of seconds to be installed. This flag only makes sense for * it may take a couple of seconds to be installed. This flag only makes sense for
* plugins since we currently do not support download new wildfire releases. * plugins since we currently do not support download new openfire releases.
* *
* @return true if the plugin was downloaded. * @return true if the plugin was downloaded.
*/ */
...@@ -102,7 +102,7 @@ public class Update { ...@@ -102,7 +102,7 @@ public class Update {
/** /**
* Sets if the plugin was downloaded. Once a plugin has been downloaded * Sets if the plugin was downloaded. Once a plugin has been downloaded
* it may take a couple of seconds to be installed. This flag only makes sense for * it may take a couple of seconds to be installed. This flag only makes sense for
* plugins since we currently do not support download new wildfire releases. * plugins since we currently do not support download new openfire releases.
* *
* @param downloaded true if the plugin was downloaded. * @param downloaded true if the plugin was downloaded.
*/ */
......
...@@ -120,7 +120,7 @@ public class UpdateManager extends BasicModule { ...@@ -120,7 +120,7 @@ public class UpdateManager extends BasicModule {
JiveGlobals.setProperty("update.lastCheck", String.valueOf(now)); JiveGlobals.setProperty("update.lastCheck", String.valueOf(now));
// As an extra precaution, make sure that that the value // As an extra precaution, make sure that that the value
// we just set is saved. If not, return to make sure that // we just set is saved. If not, return to make sure that
// no additional update checks are performed until Wildfire // no additional update checks are performed until Openfire
// is restarted. // is restarted.
if (now != JiveGlobals.getLongProperty("update.lastCheck", 0)) { if (now != JiveGlobals.getLongProperty("update.lastCheck", 0)) {
Log.error("Error: update service check did not save correctly. " + Log.error("Error: update service check did not save correctly. " +
...@@ -471,9 +471,9 @@ public class UpdateManager extends BasicModule { ...@@ -471,9 +471,9 @@ public class UpdateManager extends BasicModule {
private String getServerUpdateRequest() { private String getServerUpdateRequest() {
XMPPServer server = XMPPServer.getInstance(); XMPPServer server = XMPPServer.getInstance();
Element xmlRequest = docFactory.createDocument().addElement("version"); Element xmlRequest = docFactory.createDocument().addElement("version");
// Add current wildfire version // Add current openfire version
Element wildfire = xmlRequest.addElement("wildfire"); Element openfire = xmlRequest.addElement("wildfire");
wildfire.addAttribute("current", server.getServerInfo().getVersion().getVersionString()); openfire.addAttribute("current", server.getServerInfo().getVersion().getVersionString());
return xmlRequest.asXML(); return xmlRequest.asXML();
} }
...@@ -493,14 +493,14 @@ public class UpdateManager extends BasicModule { ...@@ -493,14 +493,14 @@ public class UpdateManager extends BasicModule {
xmlReader.setEncoding("UTF-8"); xmlReader.setEncoding("UTF-8");
Element xmlResponse = xmlReader.read(new StringReader(response)).getRootElement(); Element xmlResponse = xmlReader.read(new StringReader(response)).getRootElement();
// Parse response and keep info as Update objects // Parse response and keep info as Update objects
Element wildfire = xmlResponse.element("wildfire"); Element openfire = xmlResponse.element("wildfire");
if (wildfire != null) { if (openfire != null) {
// A new version of wildfire was found // A new version of openfire was found
String latestVersion = wildfire.attributeValue("latest"); String latestVersion = openfire.attributeValue("latest");
String changelog = wildfire.attributeValue("changelog"); String changelog = openfire.attributeValue("changelog");
String url = wildfire.attributeValue("url"); String url = openfire.attributeValue("url");
// Keep information about the available server update // Keep information about the available server update
serverUpdate = new Update("Wildfire", latestVersion, changelog, url); serverUpdate = new Update("Openfire", latestVersion, changelog, url);
} }
// Check if we need to send notifications to admins // Check if we need to send notifications to admins
if (notificationsEnabled && isNotificationEnabled() && serverUpdate != null) { if (notificationsEnabled && isNotificationEnabled() && serverUpdate != null) {
...@@ -597,7 +597,7 @@ public class UpdateManager extends BasicModule { ...@@ -597,7 +597,7 @@ public class UpdateManager extends BasicModule {
} }
/** /**
* Saves to conf/server-update.xml information about the latest Wildfire release that is * Saves to conf/server-update.xml information about the latest Openfire release that is
* available for download. * available for download.
*/ */
private void saveLatestServerInfo() { private void saveLatestServerInfo() {
...@@ -746,16 +746,16 @@ public class UpdateManager extends BasicModule { ...@@ -746,16 +746,16 @@ public class UpdateManager extends BasicModule {
} }
} }
// Parse info and recreate update information (if still required) // Parse info and recreate update information (if still required)
Element wildfire = xmlResponse.getRootElement().element("wildfire"); Element openfire = xmlResponse.getRootElement().element("wildfire");
if (wildfire != null) { if (openfire != null) {
String latestVersion = wildfire.attributeValue("latest"); String latestVersion = openfire.attributeValue("latest");
String changelog = wildfire.attributeValue("changelog"); String changelog = openfire.attributeValue("changelog");
String url = wildfire.attributeValue("url"); String url = openfire.attributeValue("url");
// Check if current server version is correct // Check if current server version is correct
String serverVersion = String serverVersion =
XMPPServer.getInstance().getServerInfo().getVersion().getVersionString(); XMPPServer.getInstance().getServerInfo().getVersion().getVersionString();
if (serverVersion.compareTo(latestVersion) < 0) { if (serverVersion.compareTo(latestVersion) < 0) {
serverUpdate = new Update("Wildfire", latestVersion, changelog, url); serverUpdate = new Update("Openfire", latestVersion, changelog, url);
} }
} }
} }
......
...@@ -24,11 +24,11 @@ import java.util.Date; ...@@ -24,11 +24,11 @@ import java.util.Date;
* from the <tt>jiveUser</tt> database table.<p> * from the <tt>jiveUser</tt> database table.<p>
* *
* Passwords can be stored as plain text, or encrypted using Blowfish. The * Passwords can be stored as plain text, or encrypted using Blowfish. The
* encryption/decryption key is stored as the Wildfire property <tt>passwordKey</tt>, * encryption/decryption key is stored as the Openfire property <tt>passwordKey</tt>,
* which is automatically created on first-time use. It's critical that the password key * which is automatically created on first-time use. It's critical that the password key
* not be changed once created, or existing passwords will be lost. By default * not be changed once created, or existing passwords will be lost. By default
* passwords will be stored encrypted. Plain-text password storage can be enabled * passwords will be stored encrypted. Plain-text password storage can be enabled
* by setting the Wildfire property <tt>user.usePlainPassword</tt> to <tt>true</tt>. * by setting the Openfire property <tt>user.usePlainPassword</tt> to <tt>true</tt>.
* *
* @author Matt Tucker * @author Matt Tucker
*/ */
......
...@@ -22,7 +22,7 @@ import java.util.Date; ...@@ -22,7 +22,7 @@ import java.util.Date;
/** /**
* The JDBC user provider allows you to use an external database to define the users. * The JDBC user provider allows you to use an external database to define the users.
* It is best used with the JDBCAuthProvider & JDBCGroupProvider to provide integration * It is best used with the JDBCAuthProvider & JDBCGroupProvider to provide integration
* between your external system and Wildfire. All data is treated as read-only so any * between your external system and Openfire. All data is treated as read-only so any
* set operations will result in an exception.<p/> * set operations will result in an exception.<p/>
* *
* For the seach facility, the SQL will be constructed from the SQL in the <i>search</i> * For the seach facility, the SQL will be constructed from the SQL in the <i>search</i>
......
...@@ -168,7 +168,7 @@ public class User implements Cacheable { ...@@ -168,7 +168,7 @@ public class User implements Cacheable {
this.name = name; this.name = name;
// Fire event. // Fire event.
Map<String,String> params = new HashMap<String,String>(); Map<String,Object> params = new HashMap<String,Object>();
params.put("type", "nameModified"); params.put("type", "nameModified");
params.put("originalValue", originalName); params.put("originalValue", originalName);
UserEventDispatcher.dispatchEvent(this, UserEventDispatcher.EventType.user_modified, UserEventDispatcher.dispatchEvent(this, UserEventDispatcher.EventType.user_modified,
...@@ -198,7 +198,7 @@ public class User implements Cacheable { ...@@ -198,7 +198,7 @@ public class User implements Cacheable {
UserManager.getUserProvider().setEmail(username, email); UserManager.getUserProvider().setEmail(username, email);
this.email = email; this.email = email;
// Fire event. // Fire event.
Map<String,String> params = new HashMap<String,String>(); Map<String,Object> params = new HashMap<String,Object>();
params.put("type", "emailModified"); params.put("type", "emailModified");
params.put("originalValue", originalEmail); params.put("originalValue", originalEmail);
UserEventDispatcher.dispatchEvent(this, UserEventDispatcher.EventType.user_modified, UserEventDispatcher.dispatchEvent(this, UserEventDispatcher.EventType.user_modified,
......
...@@ -130,8 +130,8 @@ public class UserManager implements IQResultListener { ...@@ -130,8 +130,8 @@ public class UserManager implements IQResultListener {
userCache.put(username, user); userCache.put(username, user);
// Fire event. // Fire event.
UserEventDispatcher.dispatchEvent(user, UserEventDispatcher.EventType.user_created, Map<String,Object> params = Collections.emptyMap();
Collections.emptyMap()); UserEventDispatcher.dispatchEvent(user, UserEventDispatcher.EventType.user_created, params);
return user; return user;
} }
...@@ -156,8 +156,8 @@ public class UserManager implements IQResultListener { ...@@ -156,8 +156,8 @@ public class UserManager implements IQResultListener {
} }
// Fire event. // Fire event.
UserEventDispatcher.dispatchEvent(user, UserEventDispatcher.EventType.user_deleting, Map<String,Object> params = Collections.emptyMap();
Collections.emptyMap()); UserEventDispatcher.dispatchEvent(user, UserEventDispatcher.EventType.user_deleting, params);
provider.deleteUser(user.getUsername()); provider.deleteUser(user.getUsername());
// Remove the user from cache. // Remove the user from cache.
......
...@@ -75,6 +75,23 @@ public class UserNameManager { ...@@ -75,6 +75,23 @@ public class UserNameManager {
* found for that jid. * found for that jid.
*/ */
public static String getUserName(JID entity) throws UserNotFoundException { public static String getUserName(JID entity) throws UserNotFoundException {
return getUserName(entity, entity.toString());
}
/**
* Returns the name of the XMPP entity. If the entity is a local user then the User's name
* will be returned. However, if the user is not a local user then check if there exists a
* UserNameProvider that provides name for the specified domain. If none was found then
* the vCard of the entity might be requested and if none was found then a string
* representation of the entity's JID will be returned.
*
* @param entity the JID of the entity to get its name.
* @param defaultName default name to return when no name was found.
* @return the name of the XMPP entity.
* @throws UserNotFoundException if the jid belongs to the local server but no user was
* found for that jid.
*/
public static String getUserName(JID entity, String defaultName) throws UserNotFoundException {
if (server.isLocal(entity)) { if (server.isLocal(entity)) {
// Contact is a local entity so search for his user name // Contact is a local entity so search for his user name
User localUser = UserManager.getInstance().getUser(entity.getNode()); User localUser = UserManager.getInstance().getUser(entity.getNode());
...@@ -90,7 +107,7 @@ public class UserNameManager { ...@@ -90,7 +107,7 @@ public class UserNameManager {
// TODO high traffic. // TODO high traffic.
// Return the jid itself as the username // Return the jid itself as the username
return entity.toString(); return defaultName;
} }
} }
} }
...@@ -4,20 +4,20 @@ ...@@ -4,20 +4,20 @@
</head> </head>
<body> <body>
<p>Provides the interfaces and classes necessary to create custom <p>Provides the interfaces and classes necessary to create custom
user account data providers for Wildfire.</p> user account data providers for Openfire.</p>
<p>User accounts are handled separately from authentication. The three <p>User accounts are handled separately from authentication. The three
primary interfaces to implement are the UserIDProvider, primary interfaces to implement are the UserIDProvider,
UserAccountProvider, and UserInfoProvider. An overview of how these UserAccountProvider, and UserInfoProvider. An overview of how these
providers should be implemented and how they interact is described in providers should be implemented and how they interact is described in
the User Account Provider Guide included in the Wildfire distribution.</p> the User Account Provider Guide included in the Openfire distribution.</p>
<p>There are several Roster (a.k.a. Buddy List) related classes in the <p>There are several Roster (a.k.a. Buddy List) related classes in the
user package. Developers are strongly discouraged from implementing user package. Developers are strongly discouraged from implementing
custom RosterProvider classes. Roster provider implementation is custom RosterProvider classes. Roster provider implementation is
complicated and should be left to the Jive JDBC implementation if at complicated and should be left to the Jive JDBC implementation if at
all possible. There are no disadvantages in implementing user account all possible. There are no disadvantages in implementing user account
data with custom providers to integrate Wildfire with a CRM or ERP data with custom providers to integrate Openfire with a CRM or ERP
user system, while leaving roster storage in Jive's standard JDBC user system, while leaving roster storage in Jive's standard JDBC
database tables. (Note: Wildfire comes with JDBC and LDAP user account database tables. (Note: Openfire comes with JDBC and LDAP user account
providers 'out of the box'. It is expected that LDAP will accomodate providers 'out of the box'. It is expected that LDAP will accomodate
many enterprise integration needs).</p> many enterprise integration needs).</p>
</body> </body>
......
<body> <body>
Wildfire is an open-source XMPP server. Openfire is an open-source XMPP server.
</body> </body>
\ No newline at end of file
...@@ -51,7 +51,7 @@ Broadcast Plugin Changelog ...@@ -51,7 +51,7 @@ Broadcast Plugin Changelog
<p><b>1.5.1</b> -- October 06, 2006</p> <p><b>1.5.1</b> -- October 06, 2006</p>
<ul> <ul>
<li>Updated to use compression offered by Wildfire 3.1</li> <li>Updated to use compression offered by Openfire 3.1</li>
</ul> </ul>
<p><b>1.5.0</b> -- March 06, 2006</p> <p><b>1.5.0</b> -- March 06, 2006</p>
...@@ -70,17 +70,17 @@ Broadcast Plugin Changelog ...@@ -70,17 +70,17 @@ Broadcast Plugin Changelog
<p><b>1.3.1</b> -- December 15, 2005</p> <p><b>1.3.1</b> -- December 15, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.4.0</li> <li>Now requires Openfire 2.4.0</li>
</ul> </ul>
<p><b>1.3</b> -- December 1, 2005</p> <p><b>1.3</b> -- December 1, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.3.1</li> <li>Now requires Openfire 2.3.1</li>
</ul> </ul>
<p><b>1.2</b> -- April 11, 2005</p> <p><b>1.2</b> -- April 11, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.1.3</li> <li>Now requires Openfire 2.1.3</li>
<li>Listens for properties being set and removed. <li>Listens for properties being set and removed.
</ul> </ul>
......
...@@ -52,13 +52,13 @@ primarily useful for sending announcements or notifications. ...@@ -52,13 +52,13 @@ primarily useful for sending announcements or notifications.
<h2>Installation</h2> <h2>Installation</h2>
<p>Copy broadcast.jar into the plugins directory of your Wildfire installation. The <p>Copy broadcast.jar into the plugins directory of your Openfire installation. The
plugin will then be automatically deployed. To upgrade to a new version, copy the new plugin will then be automatically deployed. To upgrade to a new version, copy the new
broadcast.jar file over the existing file.</p> broadcast.jar file over the existing file.</p>
<h2>Configuration</h2> <h2>Configuration</h2>
The broadcast plugin is configured via Wildfire system properties. These can The broadcast plugin is configured via Openfire system properties. These can
be configured under Server/Server Manager/System Properties: be configured under Server/Server Manager/System Properties:
<ul> <ul>
......
...@@ -46,12 +46,12 @@ ContentFilter Plugin Changelog ...@@ -46,12 +46,12 @@ ContentFilter Plugin Changelog
<p><b>1.4.0</b> -- February 06, 2007</p> <p><b>1.4.0</b> -- February 06, 2007</p>
<ul> <ul>
<li>Now requires Wildfire 3.2.0</li> <li>Now requires Openfire 3.2.0</li>
</ul> </ul>
<p><b>1.3.1</b> -- October 06, 2006</p> <p><b>1.3.1</b> -- October 06, 2006</p>
<ul> <ul>
<li>Updated to use compression offered by Wildfire 3.1</li> <li>Updated to use compression offered by Openfire 3.1</li>
</ul> </ul>
<p><b>1.3.0</b> -- May 8, 2006</p> <p><b>1.3.0</b> -- May 8, 2006</p>
...@@ -88,7 +88,7 @@ ContentFilter Plugin Changelog ...@@ -88,7 +88,7 @@ ContentFilter Plugin Changelog
<p><b>1.0.1</b> -- December 15, 2005</p> <p><b>1.0.1</b> -- December 15, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.4.0</li> <li>Now requires Openfire 2.4.0</li>
</ul> </ul>
......
...@@ -635,13 +635,13 @@ public class ContentFilterPlugin implements Plugin, PacketInterceptor { ...@@ -635,13 +635,13 @@ public class ContentFilterPlugin implements Plugin, PacketInterceptor {
User user = UserManager.getInstance().getUser(violationContact); User user = UserManager.getInstance().getUser(violationContact);
//this is automatically put on a another thread for execution. //this is automatically put on a another thread for execution.
EmailService.getInstance().sendMessage(user.getName(), user.getEmail(), "Wildfire", EmailService.getInstance().sendMessage(user.getName(), user.getEmail(), "Openfire",
"no_reply@" + violationNotificationFrom.getDomain(), subject, body, null); "no_reply@" + violationNotificationFrom.getDomain(), subject, body, null);
} }
catch (Throwable e) { catch (Throwable e) {
// catch throwable in case email setup is invalid // catch throwable in case email setup is invalid
Log.error("Content Filter: Failed to send email, please review Wildfire setup", e); Log.error("Content Filter: Failed to send email, please review Openfire setup", e);
} }
} }
} }
\ No newline at end of file
...@@ -228,7 +228,7 @@ hr { ...@@ -228,7 +228,7 @@ hr {
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-148'>GATE-148</a>] - If some users/groups are ignored during permissions setting, now reflected after save</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-148'>GATE-148</a>] - If some users/groups are ignored during permissions setting, now reflected after save</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-156'>GATE-156</a>] - Messages sent to remote users trying to register</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-156'>GATE-156</a>] - Messages sent to remote users trying to register</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-158'>GATE-158</a>] - Killing spaces in AIM screen names automatically</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-158'>GATE-158</a>] - Killing spaces in AIM screen names automatically</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-164'>GATE-164</a>] - Messages coming in from ICQ through gateway to XMPP user are now logged (via fix in wildfire 3.2.0)</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-164'>GATE-164</a>] - Messages coming in from ICQ through gateway to XMPP user are now logged (via fix in openfire 3.2.0)</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-168'>GATE-168</a>] - Added ability to turn on 'percent hack' for @ translation in JIDs</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-168'>GATE-168</a>] - Added ability to turn on 'percent hack' for @ translation in JIDs</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-174'>GATE-174</a>] - Separated stable transports from unstable ones in web interface</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-174'>GATE-174</a>] - Separated stable transports from unstable ones in web interface</li>
</ul> </ul>
...@@ -294,7 +294,7 @@ hr { ...@@ -294,7 +294,7 @@ hr {
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-47'>GATE-47</a>] - Delete functionality fixed for all but OSCAR</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-47'>GATE-47</a>] - Delete functionality fixed for all but OSCAR</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-71'>GATE-71</a>] - NullPointerException during registration fixed</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-71'>GATE-71</a>] - NullPointerException during registration fixed</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-91'>GATE-91</a>] - Postgres/Other DBs duplicate key error fixed</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-91'>GATE-91</a>] - Postgres/Other DBs duplicate key error fixed</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-96'>GATE-96</a>] - Weird entries are no longer showing up in actual real roster in wildfire</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-96'>GATE-96</a>] - Weird entries are no longer showing up in actual real roster in openfire</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-98'>GATE-98</a>] - MSN errors off and on while connecting fixed</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-98'>GATE-98</a>] - MSN errors off and on while connecting fixed</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-99'>GATE-99</a>] - AIM/ICQ was not reflecting offline status when logged off</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-99'>GATE-99</a>] - AIM/ICQ was not reflecting offline status when logged off</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-105'>GATE-105</a>] - Registration was not causing automatic login</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-105'>GATE-105</a>] - Registration was not causing automatic login</li>
...@@ -372,7 +372,7 @@ hr { ...@@ -372,7 +372,7 @@ hr {
<b>Bug Fixes</b> <b>Bug Fixes</b>
<ul> <ul>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-36'>GATE-36</a>] - Locale pieces from wildfire don't carry into plugin admin interface</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-36'>GATE-36</a>] - Locale pieces from openfire don't carry into plugin admin interface</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-40'>GATE-40</a>] - Pseudo roster not updating properly</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-40'>GATE-40</a>] - Pseudo roster not updating properly</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-41'>GATE-41</a>] - SQLServer script should use BIGINT</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-41'>GATE-41</a>] - SQLServer script should use BIGINT</li>
<li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-43'>GATE-43</a>] - IRC filter button does not stay checked</li> <li>[<a href='http://www.igniterealtime.org/issues/browse/GATE-43'>GATE-43</a>] - IRC filter button does not stay checked</li>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Wildfire Readme</title> <title>Openfire Readme</title>
<style type="text/css"> <style type="text/css">
/* global font and body settings */ /* global font and body settings */
body { body {
...@@ -175,7 +175,7 @@ hr { ...@@ -175,7 +175,7 @@ hr {
<h2>Installation</h2> <h2>Installation</h2>
<p> <p>
Copy the gateway.jar into the plugins directory of your Wildfire Copy the gateway.jar into the plugins directory of your Openfire
installation. The plugin will then be automatically deployed. To upgrade to a installation. The plugin will then be automatically deployed. To upgrade to a
new version, copy the new gateway.jar file over the existing file. Please new version, copy the new gateway.jar file over the existing file. Please
be aware that an upgrade will cause all of the users on your server who are be aware that an upgrade will cause all of the users on your server who are
...@@ -186,7 +186,7 @@ hr { ...@@ -186,7 +186,7 @@ hr {
<h2>Configuration</h2> <h2>Configuration</h2>
<p> <p>
By default, after the plugin has been deployed all of its features are disabled. By default, after the plugin has been deployed all of its features are disabled.
This plugin is configured via the "Gateways" sidebar item located in the Wildfire This plugin is configured via the "Gateways" sidebar item located in the Openfire
Admin Console. You can enable individual transports via the "Settings" sidebar Admin Console. You can enable individual transports via the "Settings" sidebar
item, and add new registrations/view existing registrations from the "Registrations" item, and add new registrations/view existing registrations from the "Registrations"
sidebar item. sidebar item.
...@@ -202,7 +202,7 @@ hr { ...@@ -202,7 +202,7 @@ hr {
transport itself can "hear" them come online, and act appropriately (logging transport itself can "hear" them come online, and act appropriately (logging
them in and such). In this case, we interact with the user's roster directly, them in and such). In this case, we interact with the user's roster directly,
so there is no need for a flood of subscription requests to the client itself. so there is no need for a flood of subscription requests to the client itself.
A side effect of this is that only users of the local Wildfire server will A side effect of this is that only users of the local Openfire server will
be able to make use of any transport on the gateway. Roster items are created be able to make use of any transport on the gateway. Roster items are created
as non-persistent, which means that when the end user logs out or disconnects as non-persistent, which means that when the end user logs out or disconnects
from the gateway, the associated transport roster items will no longer exist from the gateway, the associated transport roster items will no longer exist
...@@ -237,7 +237,7 @@ hr { ...@@ -237,7 +237,7 @@ hr {
though. There may be ranges of IP addresses or something that you can though. There may be ranges of IP addresses or something that you can
open up but I do not know those lists. Also, it is now possible to change open up but I do not know those lists. Also, it is now possible to change
the initial connect host and port via the initial connect host and port via
<a href="http://wiki.igniterealtime.org/display/WILDFIRE/Wildfire+Properties">Wildfire Properties</a>. <a href="http://wiki.igniterealtime.org/display/WILDFIRE/Wildfire+Properties">Openfire Properties</a>.
</p> </p>
<p> <p>
There is additional documentation available at: There is additional documentation available at:
......
...@@ -825,7 +825,7 @@ public abstract class BaseTransport implements Component, RosterEventListener { ...@@ -825,7 +825,7 @@ public abstract class BaseTransport implements Component, RosterEventListener {
if (packet.getType() == IQ.Type.get) { if (packet.getType() == IQ.Type.get) {
IQ result = IQ.createResultIQ(packet); IQ result = IQ.createResultIQ(packet);
Element query = DocumentHelper.createElement(QName.get("query", IQ_VERSION)); Element query = DocumentHelper.createElement(QName.get("query", IQ_VERSION));
query.addElement("name").addText("Wildfire " + this.getDescription()); query.addElement("name").addText("Openfire " + this.getDescription());
query.addElement("version").addText(XMPPServer.getInstance().getServerInfo().getVersion().getVersionString() + " - " + this.getVersionString()); query.addElement("version").addText(XMPPServer.getInstance().getServerInfo().getVersion().getVersionString() + " - " + this.getVersionString());
query.addElement("os").addText(System.getProperty("os.name")); query.addElement("os").addText(System.getProperty("os.name"));
result.setChildElement(query); result.setChildElement(query);
......
...@@ -27,7 +27,7 @@ import java.sql.*; ...@@ -27,7 +27,7 @@ import java.sql.*;
* as well as a registration date and last login date.<p> * as well as a registration date and last login date.<p>
* *
* The password for the transport registration is stored in encrypted form using * The password for the transport registration is stored in encrypted form using
* the Wildfire password encryption key. See {@link AuthFactory#encryptPassword(String)}. * the Openfire password encryption key. See {@link AuthFactory#encryptPassword(String)}.
* *
* @author Matt Tucker * @author Matt Tucker
*/ */
......
...@@ -180,7 +180,7 @@ public class IRCListener implements IRCEventListener { ...@@ -180,7 +180,7 @@ public class IRCListener implements IRCEventListener {
if (msg.equals("VERSION")) { if (msg.equals("VERSION")) {
// This is actually a CTCP VERSION request. Why is it showing as a Privmsg? // This is actually a CTCP VERSION request. Why is it showing as a Privmsg?
// TODO: Should figure out a proper way to handle this. // TODO: Should figure out a proper way to handle this.
//getSession().getConnection().send("CTCP REPLY "+ircUser.getNick()+" VERSION IM Gateway Plugin for Wildfire"); //getSession().getConnection().send("CTCP REPLY "+ircUser.getNick()+" VERSION IM Gateway Plugin for Openfire");
return; return;
} }
getSession().getTransport().sendMessage( getSession().getTransport().sendMessage(
......
...@@ -57,7 +57,7 @@ public class IRCSession extends TransportSession { ...@@ -57,7 +57,7 @@ public class IRCSession extends TransportSession {
password = (password == null || password.equals("")) ? null : password; password = (password == null || password.equals("")) ? null : password;
String nickname = registration.getNickname(); String nickname = registration.getNickname();
conn = new IRCConnection(server, ports, password, nickname, username, "Wildfire User"); conn = new IRCConnection(server, ports, password, nickname, username, "Openfire User");
conn.setPong(true); conn.setPong(true);
conn.setDaemon(false); conn.setDaemon(false);
conn.setColors(false); conn.setColors(false);
......
...@@ -70,7 +70,7 @@ incoming traffic and the NIO networking layer. ...@@ -70,7 +70,7 @@ incoming traffic and the NIO networking layer.
<h2>Installation</h2> <h2>Installation</h2>
<p> <p>
Copy the file, &quot;statistic.jar&quot; into the plugins directory of your Wildfire installation. The plugin will Copy the file, &quot;statistic.jar&quot; into the plugins directory of your Openfire installation. The plugin will
then be automatically deployed. then be automatically deployed.
</p> </p>
......
...@@ -81,7 +81,7 @@ public class StatCollector extends TimerTask { ...@@ -81,7 +81,7 @@ public class StatCollector extends TimerTask {
sb.append(executor.getCompletedTaskCount()); sb.append(executor.getCompletedTaskCount());
// Add info about number of connected sessions // Add info about number of connected sessions
sb.append(','); sb.append(',');
sb.append(SessionManager.getInstance().getSessionCount()); sb.append(SessionManager.getInstance().getConnectionsCount());
// Add info about MINA statistics // Add info about MINA statistics
sb.append(','); sb.append(',');
sb.append(statCollector.getMsgRead()); sb.append(statCollector.getMsgRead());
......
...@@ -58,7 +58,7 @@ Presence Plugin Changelog ...@@ -58,7 +58,7 @@ Presence Plugin Changelog
<p><b>1.3.2</b> -- October 06, 2006</p> <p><b>1.3.2</b> -- October 06, 2006</p>
<ul> <ul>
<li>Updated to use compression offered by Wildfire 3.1</li> <li>Updated to use compression offered by Openfire 3.1</li>
</ul> </ul>
<p><b>1.3.1</b> -- July 19, 2006</p> <p><b>1.3.1</b> -- July 19, 2006</p>
...@@ -80,12 +80,12 @@ Presence Plugin Changelog ...@@ -80,12 +80,12 @@ Presence Plugin Changelog
<p><b>1.1.2</b> -- March 9, 2006</p> <p><b>1.1.2</b> -- March 9, 2006</p>
<ul> <ul>
<li>Now requires Wildfire 2.5.1</li> <li>Now requires Openfire 2.5.1</li>
</ul> </ul>
<p><b>1.1.1</b> -- December 15, 2005</p> <p><b>1.1.1</b> -- December 15, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.4.0</li> <li>Now requires Openfire 2.4.0</li>
</ul> </ul>
<p><b>1.1</b> -- Jul 25, 2005</p> <p><b>1.1</b> -- Jul 25, 2005</p>
......
...@@ -64,13 +64,13 @@ poll for presence information from a web service. ...@@ -64,13 +64,13 @@ poll for presence information from a web service.
<h2>Installation</h2> <h2>Installation</h2>
<p>Copy presence.jar into the plugins directory of your Wildfire installation. The <p>Copy presence.jar into the plugins directory of your Openfire installation. The
plugin will then be automatically deployed. To upgrade to a new version, copy the new plugin will then be automatically deployed. To upgrade to a new version, copy the new
presence.jar file over the existing file.</p> presence.jar file over the existing file.</p>
<h2>Configuration</h2> <h2>Configuration</h2>
The presence plugin can be configured via the Wildfire Admin Console. The presence plugin can be configured via the Openfire Admin Console.
Use the configuration page to specify whether presence information should be available Use the configuration page to specify whether presence information should be available
to anyone or restricted to authorized users (users which have presence subscriptions). to anyone or restricted to authorized users (users which have presence subscriptions).
The status message for unavailable users can also be changed from the default of The status message for unavailable users can also be changed from the default of
...@@ -178,8 +178,8 @@ custom images that should be used to display the user's presence:</p> ...@@ -178,8 +178,8 @@ custom images that should be used to display the user's presence:</p>
<p><b>Working With Firewalls</b></p> <p><b>Working With Firewalls</b></p>
<p>Because the presence plugin runs within the Wildfire admin console web container, users <p>Because the presence plugin runs within the Openfire admin console web container, users
behind firewalls may have problems seeing the presence icons. For example, if the Wildfire behind firewalls may have problems seeing the presence icons. For example, if the Openfire
admin console runs on the default port of 9090 and a user is only allowed to receive HTTP traffic admin console runs on the default port of 9090 and a user is only allowed to receive HTTP traffic
on port 80, then a web request like the following won't work:</p> on port 80, then a web request like the following won't work:</p>
<ul> <ul>
......
...@@ -48,12 +48,12 @@ Registration Plugin Changelog ...@@ -48,12 +48,12 @@ Registration Plugin Changelog
<ul> <ul>
<li>Fixed issue where the username was not being escaped properly on the web sign-up page. <li>Fixed issue where the username was not being escaped properly on the web sign-up page.
<li>Added internationalization (i18n) support.</li> <li>Added internationalization (i18n) support.</li>
<li>Updated UI to match later versions of Wildfire.</li> <li>Updated UI to match later versions of Openfire.</li>
</ul> </ul>
<p><b>1.3.1</b> -- October 06, 2006</p> <p><b>1.3.1</b> -- October 06, 2006</p>
<ul> <ul>
<li>Updated to use compression offered by Wildfire 3.1</li> <li>Updated to use compression offered by Openfire 3.1</li>
</ul> </ul>
<p><b>1.3.0</b> -- January 6, 2006</p> <p><b>1.3.0</b> -- January 6, 2006</p>
...@@ -63,12 +63,12 @@ Registration Plugin Changelog ...@@ -63,12 +63,12 @@ Registration Plugin Changelog
<p><b>1.2.1</b> -- December 15, 2005</p> <p><b>1.2.1</b> -- December 15, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.4.0</li> <li>Now requires Openfire 2.4.0</li>
</ul> </ul>
<p><b>1.2</b> -- December 1, 2005</p> <p><b>1.2</b> -- December 1, 2005</p>
<ul> <ul>
<li>Now requires Wildfire 2.3.1</li> <li>Now requires Openfire 2.3.1</li>
</ul> </ul>
<p><b>1.1</b> -- August 10, 2005</p> <p><b>1.1</b> -- August 10, 2005</p>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment