Commit a61ed402 authored by Ryan Graham's avatar Ryan Graham Committed by ryan

added new page design to the documenation, converted any instance of '2.6.x'...

added new page design to the documenation, converted any instance of '2.6.x' in the text to '3.0.0' (only occurred on the installation guide page).

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@4167 b35dd754-fafc-0310-a699-88a17e54d16e
parent 01b8adf5
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Wildfire Database Schema Guide</title> <title>Jive Software - Wildfire: 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>
<div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<h1>Wildfire Database Schema Guide</h1>
<div id="pageHeader">
<div id="logo"></div>
<h1>Database Schema Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<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 Wildfire 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.
<br> <br>
</p> </p>
<h2>Data Type Conventions</h2> <h2>Data Type Conventions</h2>
...@@ -31,39 +46,46 @@ Boolean values are always represented a numeric values: 0 for false and 1 for tr ...@@ -31,39 +46,46 @@ Boolean values are always represented a numeric values: 0 for false and 1 for tr
Below is a description of each of the tables in the Wildfire Below is a description of each of the tables in the Wildfire
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.
</p> </p>
<ul> <ul>
<li><a href="#jiveGroup">jiveGroup</a> </li> <li><a href="#jiveGroup">jiveGroup</a> </li>
<li><a href="#jiveGroupProp">jiveGroupProp</a> </li> <li><a href="#jiveGroupProp">jiveGroupProp</a> </li>
<li><a href="#jiveGroupUser">jiveGroupUser</a> </li> <li><a href="#jiveGroupUser">jiveGroupUser</a> </li>
<li><a href="#jiveID">jiveID</a></li> <li><a href="#jiveID">jiveID</a></li>
<li><a href="#jiveOffline">jiveOffline</a><br> <li><a href="#jiveOffline">jiveOffline</a><br>
</li> </li>
<li><a href="#jivePrivate">jivePrivate</a> </li> <li><a href="#jivePrivate">jivePrivate</a> </li>
<li><a href="#jiveUser">jiveUser</a><br> <li><a href="#jiveUser">jiveUser</a><br>
</li> </li>
<li><a href="#jiveUserProp">jiveUserProp</a> </li> <li><a href="#jiveUserProp">jiveUserProp</a> </li>
<li><a href="#jiveRoster">jiveRoster</a> </li> <li><a href="#jiveRoster">jiveRoster</a> </li>
<li><a href="#jiveRosterGroups">jiveRosterGroups</a> </li> <li><a href="#jiveRosterGroups">jiveRosterGroups</a> </li>
<li><a href="#jivePrivacy">jivePrivacyList</a> </li> <li><a href="#jivePrivacy">jivePrivacyList</a> </li>
<li><a href="#jiveVCard">jiveVCard</a> </li> <li><a href="#jiveVCard">jiveVCard</a> </li>
<li><a href="#jiveVersion">jiveVersion</a> </li> <li><a href="#jiveVersion">jiveVersion</a> </li>
<li><a href="#jiveProperty">jiveProperty</a><br> <li><a href="#jiveProperty">jiveProperty</a><br>
</li> </li>
<li><a href="#jiveExtComponentConf">jiveExtComponentConf</a> </li> <li><a href="#jiveExtComponentConf">jiveExtComponentConf</a> </li>
<li><a href="#jiveRemoteServerConf">jiveRemoteServerConf</a><br> <li><a href="#jiveRemoteServerConf">jiveRemoteServerConf</a><br>
</li> </li>
<li><a href="#mucRoom">mucRoom</a> </li> <li><a href="#mucRoom">mucRoom</a> </li>
<li><a href="#mucRoomProp">mucRoomProp</a> </li> <li><a href="#mucRoomProp">mucRoomProp</a> </li>
<li><a href="#mucAffiliation">mucAffiliation</a> </li> <li><a href="#mucAffiliation">mucAffiliation</a> </li>
<li><a href="#mucMember">mucMember</a> </li> <li><a href="#mucMember">mucMember</a> </li>
<li><a href="#mucConversationLog">mucConversationLog</a><br> <li><a href="#mucConversationLog">mucConversationLog</a><br>
</li> </li>
<li><a href="#pubsubNode">pubsubNode</a> </li> <li><a href="#pubsubNode">pubsubNode</a> </li>
<li><a href="#pubsubNodeJIDs">pubsubNodeJIDs</a> </li> <li><a href="#pubsubNodeJIDs">pubsubNodeJIDs</a> </li>
<li><a href="#pubsubNodeGroups">pubsubNodeGroups</a> </li> <li><a href="#pubsubNodeGroups">pubsubNodeGroups</a> </li>
<li><a href="#pubsubAffiliation">pubsubAffiliation</a> </li> <li><a href="#pubsubAffiliation">pubsubAffiliation</a> </li>
<li><a href="#pubsubItem">pubsubItem</a> </li> <li><a href="#pubsubItem">pubsubItem</a> </li>
<li><a href="#pubsubSubscription">pubsubSubscription</a> </li> <li><a href="#pubsubSubscription">pubsubSubscription</a> </li>
<li><a href="#pubsubDefaultConf">pubsubDefaultConf</a> </li> <li><a href="#pubsubDefaultConf">pubsubDefaultConf</a> </li>
</ul> </ul>
...@@ -73,6 +95,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key. ...@@ -73,6 +95,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key.
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jiveGroup (user Group data)</th> <th colspan="4">jiveGroup (user Group data)</th>
</tr> </tr>
<tr> <tr>
...@@ -80,6 +103,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key. ...@@ -80,6 +103,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key.
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>groupName</td> <td>groupName</td>
...@@ -87,6 +111,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key. ...@@ -87,6 +111,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key.
<td>50</td> <td>50</td>
<td>Group Name (Primary Key)</td> <td>Group Name (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>description</td> <td>description</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -94,6 +119,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key. ...@@ -94,6 +119,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key.
<td>Group Description</td> <td>Group Description</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
...@@ -106,6 +132,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key. ...@@ -106,6 +132,7 @@ A <span class="primary-key">yellow row</span> denotes a primary key.
<th colspan="4">jiveGroupProp (name-value associations for a <th colspan="4">jiveGroupProp (name-value associations for a
Group)</th> Group)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
...@@ -113,6 +140,7 @@ Group)</th> ...@@ -113,6 +140,7 @@ Group)</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>groupName</td> <td>groupName</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>50</td> <td>50</td>
...@@ -120,6 +148,7 @@ Group)</th> ...@@ -120,6 +148,7 @@ Group)</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Group Property Name (Primary Key)</td> <td>Group Property Name (Primary Key)</td>
...@@ -127,6 +156,7 @@ Group)</th> ...@@ -127,6 +156,7 @@ Group)</th>
<tr> <tr>
<td>propValue</td> <td>propValue</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>4000</td> <td>4000</td>
<td>Group Property Value</td> <td>Group Property Value</td>
</tr> </tr>
...@@ -137,6 +167,7 @@ Group)</th> ...@@ -137,6 +167,7 @@ Group)</th>
<br> <br>
<br> <br>
<a name="jiveGroupUser"></a> <a name="jiveGroupUser"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
...@@ -145,6 +176,7 @@ Group)</th> ...@@ -145,6 +176,7 @@ Group)</th>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -152,6 +184,7 @@ Group)</th> ...@@ -152,6 +184,7 @@ Group)</th>
<td>groupName</td> <td>groupName</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>50</td> <td>50</td>
<td>Group Name (Primary Key)</td> <td>Group Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -159,6 +192,7 @@ Group)</th> ...@@ -159,6 +192,7 @@ Group)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>administrator</td> <td>administrator</td>
...@@ -166,6 +200,7 @@ Group)</th> ...@@ -166,6 +200,7 @@ Group)</th>
<td>n/a</td> <td>n/a</td>
<td>Adminstrator (Boolean) (Primary Key)</td> <td>Adminstrator (Boolean) (Primary Key)</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
...@@ -177,6 +212,7 @@ Group)</th> ...@@ -177,6 +212,7 @@ Group)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jiveID (used for unique ID sequence generation)</th> <th colspan="4">jiveID (used for unique ID sequence generation)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -184,6 +220,7 @@ Group)</th> ...@@ -184,6 +220,7 @@ Group)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>idType</td> <td>idType</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -191,6 +228,7 @@ Group)</th> ...@@ -191,6 +228,7 @@ Group)</th>
<td>ID type (e.g., Group, User, Roster) (Primary Key)</td> <td>ID type (e.g., Group, User, Roster) (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>id</td> <td>id</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -198,6 +236,7 @@ Group)</th> ...@@ -198,6 +236,7 @@ Group)</th>
ID Sequence Generator)</td> ID Sequence Generator)</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
...@@ -209,6 +248,7 @@ ID Sequence Generator)</td> ...@@ -209,6 +248,7 @@ ID Sequence Generator)</td>
<tr> <tr>
<th colspan="4">jiveOffline (offline message storage)</th> <th colspan="4">jiveOffline (offline message storage)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
...@@ -216,6 +256,7 @@ ID Sequence Generator)</td> ...@@ -216,6 +256,7 @@ ID Sequence Generator)</td>
<th>Change</th> <th>Change</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
...@@ -223,6 +264,7 @@ ID Sequence Generator)</td> ...@@ -223,6 +264,7 @@ ID Sequence Generator)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td style="vertical-align: top;">messageID<br> <td style="vertical-align: top;">messageID<br>
</td> </td>
<td style="vertical-align: top;">NUMBER<br> <td style="vertical-align: top;">NUMBER<br>
</td> </td>
...@@ -231,6 +273,7 @@ ID Sequence Generator)</td> ...@@ -231,6 +273,7 @@ ID Sequence Generator)</td>
<td style="vertical-align: top;">ID of stored message (Primary <td style="vertical-align: top;">ID of stored message (Primary
Key)<br> Key)<br>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">creationDate<br> <td style="vertical-align: top;">creationDate<br>
...@@ -238,6 +281,7 @@ Key)<br> ...@@ -238,6 +281,7 @@ Key)<br>
<td style="vertical-align: top;">VARCHAR<br> <td style="vertical-align: top;">VARCHAR<br>
</td> </td>
<td style="vertical-align: top;">15<br> <td style="vertical-align: top;">15<br>
</td> </td>
<td style="vertical-align: top;">Date message stored<br> <td style="vertical-align: top;">Date message stored<br>
</td> </td>
...@@ -246,6 +290,7 @@ Key)<br> ...@@ -246,6 +290,7 @@ Key)<br>
<td style="vertical-align: top;">messageSize<br> <td style="vertical-align: top;">messageSize<br>
</td> </td>
<td style="vertical-align: top;">NUMBER<br> <td style="vertical-align: top;">NUMBER<br>
</td> </td>
<td style="vertical-align: top;">n/a<br> <td style="vertical-align: top;">n/a<br>
</td> </td>
...@@ -254,6 +299,7 @@ Key)<br> ...@@ -254,6 +299,7 @@ Key)<br>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">message<br> <td style="vertical-align: top;">message<br>
</td> </td>
<td style="vertical-align: top;">TEXT<br> <td style="vertical-align: top;">TEXT<br>
</td> </td>
...@@ -261,6 +307,7 @@ Key)<br> ...@@ -261,6 +307,7 @@ Key)<br>
</td> </td>
<td style="vertical-align: top;">The message text<br> <td style="vertical-align: top;">The message text<br>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -273,6 +320,7 @@ Key)<br> ...@@ -273,6 +320,7 @@ Key)<br>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jivePrivate (Private data storage)</th> <th colspan="4">jivePrivate (Private data storage)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -280,6 +328,7 @@ Key)<br> ...@@ -280,6 +328,7 @@ Key)<br>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -287,6 +336,7 @@ Key)<br> ...@@ -287,6 +336,7 @@ Key)<br>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -294,6 +344,7 @@ Key)<br> ...@@ -294,6 +344,7 @@ Key)<br>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>namespace</td> <td>namespace</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>200</td> <td>200</td>
<td>Namespace of the private entry (Primary Key)</td> <td>Namespace of the private entry (Primary Key)</td>
...@@ -301,6 +352,7 @@ Key)<br> ...@@ -301,6 +352,7 @@ Key)<br>
<tr> <tr>
<td>value</td> <td>value</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>Value of the private data</td> <td>Value of the private data</td>
</tr> </tr>
...@@ -311,6 +363,7 @@ Key)<br> ...@@ -311,6 +363,7 @@ Key)<br>
<br> <br>
<br> <br>
<br> <br>
<a name="jiveUser"></a> <a name="jiveUser"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
...@@ -320,6 +373,7 @@ Key)<br> ...@@ -320,6 +373,7 @@ Key)<br>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -327,6 +381,7 @@ Key)<br> ...@@ -327,6 +381,7 @@ Key)<br>
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr> <tr>
...@@ -334,6 +389,7 @@ Key)<br> ...@@ -334,6 +389,7 @@ Key)<br>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
<td>Plain-text password data</td> <td>Plain-text password data</td>
</tr> </tr>
<tr> <tr>
<td>encryptedPassword</td> <td>encryptedPassword</td>
...@@ -341,6 +397,7 @@ Key)<br> ...@@ -341,6 +397,7 @@ Key)<br>
<td>255</td> <td>255</td>
<td>Encrypted password data (default)</td> <td>Encrypted password data (default)</td>
</tr> </tr>
<tr> <tr>
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -348,6 +405,7 @@ Key)<br> ...@@ -348,6 +405,7 @@ Key)<br>
<td>Name</td> <td>Name</td>
</tr> </tr>
<tr> <tr>
<td>email</td> <td>email</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -355,6 +413,7 @@ Key)<br> ...@@ -355,6 +413,7 @@ Key)<br>
</tr> </tr>
<tr> <tr>
<td>creationDate</td> <td>creationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Creation Date</td> <td>Creation Date</td>
...@@ -362,6 +421,7 @@ Key)<br> ...@@ -362,6 +421,7 @@ Key)<br>
<tr> <tr>
<td>modificationDate</td> <td>modificationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Last Modified Date</td> <td>Last Modified Date</td>
</tr> </tr>
...@@ -372,6 +432,7 @@ Key)<br> ...@@ -372,6 +432,7 @@ Key)<br>
<br> <br>
<br> <br>
<a name="jiveUserProp"></a> <a name="jiveUserProp"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
...@@ -380,6 +441,7 @@ Key)<br> ...@@ -380,6 +441,7 @@ Key)<br>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -387,6 +449,7 @@ Key)<br> ...@@ -387,6 +449,7 @@ Key)<br>
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -394,6 +457,7 @@ Key)<br> ...@@ -394,6 +457,7 @@ Key)<br>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>User Property Name (Primary Key)</td> <td>User Property Name (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>propValue</td> <td>propValue</td>
...@@ -401,6 +465,7 @@ Key)<br> ...@@ -401,6 +465,7 @@ Key)<br>
<td>4000</td> <td>4000</td>
<td>User Property Value</td> <td>User Property Value</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
...@@ -412,6 +477,7 @@ Key)<br> ...@@ -412,6 +477,7 @@ Key)<br>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jiveRoster (buddy rosters or lists)</th> <th colspan="4">jiveRoster (buddy rosters or lists)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -419,6 +485,7 @@ Key)<br> ...@@ -419,6 +485,7 @@ Key)<br>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>rosterID</td> <td>rosterID</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -426,6 +493,7 @@ Key)<br> ...@@ -426,6 +493,7 @@ Key)<br>
<td>ID of roster (Primary Key)</td> <td>ID of roster (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
...@@ -433,6 +501,7 @@ Key)<br> ...@@ -433,6 +501,7 @@ Key)<br>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">jid<br> <td style="vertical-align: top;">jid<br>
</td> </td>
<td style="vertical-align: top;">TEXT<br> <td style="vertical-align: top;">TEXT<br>
</td> </td>
...@@ -440,6 +509,7 @@ Key)<br> ...@@ -440,6 +509,7 @@ Key)<br>
</td> </td>
<td style="vertical-align: top;">The address of the roster entry<br> <td style="vertical-align: top;">The address of the roster entry<br>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">sub<br> <td style="vertical-align: top;">sub<br>
...@@ -447,6 +517,7 @@ Key)<br> ...@@ -447,6 +517,7 @@ Key)<br>
<td style="vertical-align: top;">NUMBER<br> <td style="vertical-align: top;">NUMBER<br>
</td> </td>
<td style="vertical-align: top;">n/a<br> <td style="vertical-align: top;">n/a<br>
</td> </td>
<td style="vertical-align: top;">The subscription status of the <td style="vertical-align: top;">The subscription status of the
entry<br> entry<br>
...@@ -456,6 +527,7 @@ entry<br> ...@@ -456,6 +527,7 @@ entry<br>
<td style="vertical-align: top;">ask<br> <td style="vertical-align: top;">ask<br>
</td> </td>
<td style="vertical-align: top;">NUMBER<br> <td style="vertical-align: top;">NUMBER<br>
</td> </td>
<td style="vertical-align: top;">n/a<br> <td style="vertical-align: top;">n/a<br>
</td> </td>
...@@ -464,6 +536,7 @@ entry<br> ...@@ -464,6 +536,7 @@ entry<br>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">recv<br> <td style="vertical-align: top;">recv<br>
</td> </td>
<td style="vertical-align: top;">NUMBER<br> <td style="vertical-align: top;">NUMBER<br>
</td> </td>
...@@ -472,6 +545,7 @@ entry<br> ...@@ -472,6 +545,7 @@ entry<br>
<td style="vertical-align: top;">Flag indicating the entry is a <td style="vertical-align: top;">Flag indicating the entry is a
roster request that was received<br> roster request that was received<br>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;">nick<br> <td style="vertical-align: top;">nick<br>
...@@ -479,6 +553,7 @@ roster request that was received<br> ...@@ -479,6 +553,7 @@ roster request that was received<br>
<td style="vertical-align: top;">VARCHAR<br> <td style="vertical-align: top;">VARCHAR<br>
</td> </td>
<td style="vertical-align: top;">255<br> <td style="vertical-align: top;">255<br>
</td> </td>
<td style="vertical-align: top;">The nickname assigned to this <td style="vertical-align: top;">The nickname assigned to this
roster entry<br> roster entry<br>
...@@ -490,6 +565,7 @@ roster entry<br> ...@@ -490,6 +565,7 @@ roster entry<br>
<br> <br>
<br> <br>
<br> <br>
<a name="jiveRosterGroups"></a> <a name="jiveRosterGroups"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
...@@ -500,6 +576,7 @@ roster)</th> ...@@ -500,6 +576,7 @@ roster)</th>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -507,6 +584,7 @@ roster)</th> ...@@ -507,6 +584,7 @@ roster)</th>
<td>rosterID</td> <td>rosterID</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Roster ID (Primary Key)</td> <td>Roster ID (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -514,6 +592,7 @@ roster)</th> ...@@ -514,6 +592,7 @@ roster)</th>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Position of the entry (Primary Key)</td> <td>Position of the entry (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>groupName</td> <td>groupName</td>
...@@ -521,6 +600,7 @@ roster)</th> ...@@ -521,6 +600,7 @@ roster)</th>
<td>255</td> <td>255</td>
<td>The user defined name for this roster group</td> <td>The user defined name for this roster group</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
...@@ -532,6 +612,7 @@ roster)</th> ...@@ -532,6 +612,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jivePrivacyList (Users privacy lists)</th> <th colspan="4">jivePrivacyList (Users privacy lists)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -539,6 +620,7 @@ roster)</th> ...@@ -539,6 +620,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -546,6 +628,7 @@ roster)</th> ...@@ -546,6 +628,7 @@ roster)</th>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -553,6 +636,7 @@ roster)</th> ...@@ -553,6 +636,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>isDefault</td> <td>isDefault</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating if this is the default privacy list of the user</td> <td>Flag indicating if this is the default privacy list of the user</td>
...@@ -560,6 +644,7 @@ roster)</th> ...@@ -560,6 +644,7 @@ roster)</th>
<tr> <tr>
<td>list</td> <td>list</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>XML representation of the privacy list</td> <td>XML representation of the privacy list</td>
</tr> </tr>
...@@ -570,6 +655,7 @@ roster)</th> ...@@ -570,6 +655,7 @@ roster)</th>
<br> <br>
<br> <br>
<a name="jiveVCard"></a> <a name="jiveVCard"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
...@@ -578,6 +664,7 @@ roster)</th> ...@@ -578,6 +664,7 @@ roster)</th>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -585,6 +672,7 @@ roster)</th> ...@@ -585,6 +672,7 @@ roster)</th>
<td>username</td> <td>username</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>32</td> <td>32</td>
<td>User Name (Primary Key)</td> <td>User Name (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -592,6 +680,7 @@ roster)</th> ...@@ -592,6 +680,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Name of the vCard entry (Primary Key)</td> <td>Name of the vCard entry (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>propValue</td> <td>propValue</td>
...@@ -599,6 +688,7 @@ roster)</th> ...@@ -599,6 +688,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Value of the vCard entry</td> <td>Value of the vCard entry</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
...@@ -610,6 +700,7 @@ roster)</th> ...@@ -610,6 +700,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jiveVersion (contains product version information)</th> <th colspan="4">jiveVersion (contains product version information)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -617,6 +708,7 @@ roster)</th> ...@@ -617,6 +708,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -624,6 +716,7 @@ roster)</th> ...@@ -624,6 +716,7 @@ roster)</th>
<td>Name of the item that version information is being tracked for (Primary Key)</td> <td>Name of the item that version information is being tracked for (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>version</td> <td>version</td>
<td>INTEGER</td> <td>INTEGER</td>
<td>n/a</td> <td>n/a</td>
...@@ -631,6 +724,7 @@ roster)</th> ...@@ -631,6 +724,7 @@ roster)</th>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
<br> <br>
...@@ -642,6 +736,7 @@ roster)</th> ...@@ -642,6 +736,7 @@ roster)</th>
<th colspan="4">jiveProperty (server properties)</th> <th colspan="4">jiveProperty (server properties)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
...@@ -649,6 +744,7 @@ roster)</th> ...@@ -649,6 +744,7 @@ roster)</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Property Name (Primary Key)</td> <td>Property Name (Primary Key)</td>
...@@ -656,6 +752,7 @@ roster)</th> ...@@ -656,6 +752,7 @@ roster)</th>
<tr> <tr>
<td>propValue</td> <td>propValue</td>
<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 vCard entry</td>
</tr> </tr>
...@@ -666,6 +763,7 @@ roster)</th> ...@@ -666,6 +763,7 @@ roster)</th>
<br> <br>
<br> <br>
<a name="jiveExtComponentConf"></a> <a name="jiveExtComponentConf"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
...@@ -674,6 +772,7 @@ roster)</th> ...@@ -674,6 +772,7 @@ roster)</th>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -681,6 +780,7 @@ roster)</th> ...@@ -681,6 +780,7 @@ roster)</th>
<td>subdomain</td> <td>subdomain</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Subdomain of the external component (Primary Key)</td> <td>Subdomain of the external component (Primary Key)</td>
</tr> </tr>
<tr> <tr>
...@@ -688,6 +788,7 @@ roster)</th> ...@@ -688,6 +788,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Shared secret key of the external component</td> <td>Shared secret key of the external component</td>
</tr> </tr>
<tr> <tr>
<td>permission</td> <td>permission</td>
...@@ -695,6 +796,7 @@ roster)</th> ...@@ -695,6 +796,7 @@ roster)</th>
<td>10</td> <td>10</td>
<td>Permission that indicates if the component is allowed to connect to the server</td> <td>Permission that indicates if the component is allowed to connect to the server</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
...@@ -706,6 +808,7 @@ roster)</th> ...@@ -706,6 +808,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">jiveRemoteServerConf (remote servers configuration)</th> <th colspan="4">jiveRemoteServerConf (remote servers configuration)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -713,6 +816,7 @@ roster)</th> ...@@ -713,6 +816,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>domain</td> <td>domain</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -720,6 +824,7 @@ roster)</th> ...@@ -720,6 +824,7 @@ roster)</th>
<td>Domain of the external component (Primary Key)</td> <td>Domain of the external component (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>remotePort</td> <td>remotePort</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -727,6 +832,7 @@ roster)</th> ...@@ -727,6 +832,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>permission</td> <td>permission</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>10</td> <td>10</td>
<td>Permission that indicates if the remote server is allowed to connect to the server</td> <td>Permission that indicates if the remote server is allowed to connect to the server</td>
...@@ -735,6 +841,7 @@ roster)</th> ...@@ -735,6 +841,7 @@ roster)</th>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
<br> <br>
<br> <br>
<a name="mucRoom"></a> <a name="mucRoom"></a>
...@@ -745,6 +852,7 @@ roster)</th> ...@@ -745,6 +852,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
...@@ -752,6 +860,7 @@ roster)</th> ...@@ -752,6 +860,7 @@ roster)</th>
<tr class="primary-key"> <tr class="primary-key">
<td>roomID</td> <td>roomID</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>ID of room (Primary Key)</td> <td>ID of room (Primary Key)</td>
</tr> </tr>
...@@ -759,6 +868,7 @@ roster)</th> ...@@ -759,6 +868,7 @@ roster)</th>
<td>creationDate</td> <td>creationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Creation Date</td> <td>Creation Date</td>
</tr> </tr>
<tr> <tr>
...@@ -766,6 +876,7 @@ roster)</th> ...@@ -766,6 +876,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Last Modified Date</td> <td>Last Modified Date</td>
</tr> </tr>
<tr> <tr>
<td>name</td> <td>name</td>
...@@ -773,6 +884,7 @@ roster)</th> ...@@ -773,6 +884,7 @@ roster)</th>
<td>50</td> <td>50</td>
<td>Name of the room used as the public ID</td> <td>Name of the room used as the public ID</td>
</tr> </tr>
<tr> <tr>
<td>naturalName</td> <td>naturalName</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -780,6 +892,7 @@ roster)</th> ...@@ -780,6 +892,7 @@ roster)</th>
<td>Natural name of the room</td> <td>Natural name of the room</td>
</tr> </tr>
<tr> <tr>
<td>description</td> <td>description</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
...@@ -787,6 +900,7 @@ roster)</th> ...@@ -787,6 +900,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>canChangeSubject</td> <td>canChangeSubject</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether participants can change the subject</td> <td>Flag indicating whether participants can change the subject</td>
...@@ -794,6 +908,7 @@ roster)</th> ...@@ -794,6 +908,7 @@ roster)</th>
<tr> <tr>
<td>maxUsers</td> <td>maxUsers</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Max number of room occupants</td> <td>Max number of room occupants</td>
</tr> </tr>
...@@ -801,6 +916,7 @@ roster)</th> ...@@ -801,6 +916,7 @@ roster)</th>
<td>canChangeSubject</td> <td>canChangeSubject</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether participants can change the subject or not</td> <td>Flag indicating whether participants can change the subject or not</td>
</tr> </tr>
<tr> <tr>
...@@ -808,6 +924,7 @@ roster)</th> ...@@ -808,6 +924,7 @@ roster)</th>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether the room will be listed in the directory or not</td> <td>Flag indicating whether the room will be listed in the directory or not</td>
</tr> </tr>
<tr> <tr>
<td>moderated</td> <td>moderated</td>
...@@ -815,6 +932,7 @@ roster)</th> ...@@ -815,6 +932,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether the room is moderated or not</td> <td>Flag indicating whether the room is moderated or not</td>
</tr> </tr>
<tr> <tr>
<td>invitationRequired</td> <td>invitationRequired</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -822,6 +940,7 @@ roster)</th> ...@@ -822,6 +940,7 @@ roster)</th>
<td>Flag indicating whether the room is members-only or not</td> <td>Flag indicating whether the room is members-only or not</td>
</tr> </tr>
<tr> <tr>
<td>canInvite</td> <td>canInvite</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -829,6 +948,7 @@ roster)</th> ...@@ -829,6 +948,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>password</td> <td>password</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>50</td> <td>50</td>
<td>Password Data for joining the room</td> <td>Password Data for joining the room</td>
...@@ -836,6 +956,7 @@ roster)</th> ...@@ -836,6 +956,7 @@ roster)</th>
<tr> <tr>
<td>canDiscoverJID</td> <td>canDiscoverJID</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether real JID of occupants is public or not</td> <td>Flag indicating whether real JID of occupants is public or not</td>
</tr> </tr>
...@@ -843,6 +964,7 @@ roster)</th> ...@@ -843,6 +964,7 @@ roster)</th>
<td>logEnabled</td> <td>logEnabled</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether room conversations are logged or not</td> <td>Flag indicating whether room conversations are logged or not</td>
</tr> </tr>
<tr> <tr>
...@@ -850,6 +972,7 @@ roster)</th> ...@@ -850,6 +972,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Last known subject of the room</td> <td>Last known subject of the room</td>
</tr> </tr>
<tr> <tr>
<td>rolesToBroadcast</td> <td>rolesToBroadcast</td>
...@@ -857,6 +980,7 @@ roster)</th> ...@@ -857,6 +980,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Binary representation of the roles to broadcast</td> <td>Binary representation of the roles to broadcast</td>
</tr> </tr>
<tr> <tr>
<td>useReservedNick</td> <td>useReservedNick</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -864,6 +988,7 @@ roster)</th> ...@@ -864,6 +988,7 @@ roster)</th>
<td>Flag indicating whether users can only join the room using their reserved nicknames</td> <td>Flag indicating whether users can only join the room using their reserved nicknames</td>
</tr> </tr>
<tr> <tr>
<td>canChangeNick</td> <td>canChangeNick</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -871,6 +996,7 @@ roster)</th> ...@@ -871,6 +996,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>canRegister</td> <td>canRegister</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether users are allowed to register with the room</td> <td>Flag indicating whether users are allowed to register with the room</td>
...@@ -879,6 +1005,7 @@ roster)</th> ...@@ -879,6 +1005,7 @@ roster)</th>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
<br> <br>
<br> <br>
<a name="mucRoomProp"></a> <a name="mucRoomProp"></a>
...@@ -889,6 +1016,7 @@ roster)</th> ...@@ -889,6 +1016,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
...@@ -896,6 +1024,7 @@ roster)</th> ...@@ -896,6 +1024,7 @@ roster)</th>
<tr class="primary-key"> <tr class="primary-key">
<td>roomID</td> <td>roomID</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>ID of room (Primary Key)</td> <td>ID of room (Primary Key)</td>
</tr> </tr>
...@@ -903,6 +1032,7 @@ roster)</th> ...@@ -903,6 +1032,7 @@ roster)</th>
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Property Name (Primary Key)</td> <td>Property Name (Primary Key)</td>
</tr> </tr>
<tr> <tr>
...@@ -910,6 +1040,7 @@ roster)</th> ...@@ -910,6 +1040,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>4000</td> <td>4000</td>
<td>Property Value</td> <td>Property Value</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -922,6 +1053,7 @@ roster)</th> ...@@ -922,6 +1053,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">mucAffiliation (affiliation of room users)</th> <th colspan="4">mucAffiliation (affiliation of room users)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -929,6 +1061,7 @@ roster)</th> ...@@ -929,6 +1061,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>roomID</td> <td>roomID</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -936,6 +1069,7 @@ roster)</th> ...@@ -936,6 +1069,7 @@ roster)</th>
<td>ID of room (Primary Key)</td> <td>ID of room (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>jid</td> <td>jid</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
...@@ -943,6 +1077,7 @@ roster)</th> ...@@ -943,6 +1077,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>affiliation</td> <td>affiliation</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Number representing the affiliation level</td> <td>Number representing the affiliation level</td>
...@@ -951,6 +1086,7 @@ roster)</th> ...@@ -951,6 +1086,7 @@ roster)</th>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
<br> <br>
<br> <br>
<a name="mucMember"></a> <a name="mucMember"></a>
...@@ -961,6 +1097,7 @@ roster)</th> ...@@ -961,6 +1097,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
...@@ -968,6 +1105,7 @@ roster)</th> ...@@ -968,6 +1105,7 @@ roster)</th>
<tr class="primary-key"> <tr class="primary-key">
<td>roomID</td> <td>roomID</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>ID of room (Primary Key)</td> <td>ID of room (Primary Key)</td>
</tr> </tr>
...@@ -975,6 +1113,7 @@ roster)</th> ...@@ -975,6 +1113,7 @@ roster)</th>
<td>jid</td> <td>jid</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>User JID (Primary Key)</td> <td>User JID (Primary Key)</td>
</tr> </tr>
<tr> <tr>
...@@ -982,6 +1121,7 @@ roster)</th> ...@@ -982,6 +1121,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Reserved nickname of the member</td> <td>Reserved nickname of the member</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -994,6 +1134,7 @@ roster)</th> ...@@ -994,6 +1134,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">mucConversationLog (rooms conversations log)</th> <th colspan="4">mucConversationLog (rooms conversations log)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -1001,6 +1142,7 @@ roster)</th> ...@@ -1001,6 +1142,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr> <tr>
<td>roomID</td> <td>roomID</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1008,6 +1150,7 @@ roster)</th> ...@@ -1008,6 +1150,7 @@ roster)</th>
<td>ID of room</td> <td>ID of room</td>
</tr> </tr>
<tr> <tr>
<td>sender</td> <td>sender</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
...@@ -1015,6 +1158,7 @@ roster)</th> ...@@ -1015,6 +1158,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>nickname</td> <td>nickname</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Nickname used by the user when sending the message</td> <td>Nickname used by the user when sending the message</td>
...@@ -1022,6 +1166,7 @@ roster)</th> ...@@ -1022,6 +1166,7 @@ roster)</th>
<tr> <tr>
<td>time</td> <td>time</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Date when the message was sent to the room</td> <td>Date when the message was sent to the room</td>
</tr> </tr>
...@@ -1029,6 +1174,7 @@ roster)</th> ...@@ -1029,6 +1174,7 @@ roster)</th>
<td>subject</td> <td>subject</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>50</td> <td>50</td>
<td>New subject changed with the message</td> <td>New subject changed with the message</td>
</tr> </tr>
<tr> <tr>
...@@ -1036,6 +1182,7 @@ roster)</th> ...@@ -1036,6 +1182,7 @@ roster)</th>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>Body of the message</td> <td>Body of the message</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -1048,6 +1195,7 @@ roster)</th> ...@@ -1048,6 +1195,7 @@ roster)</th>
<tbody> <tbody>
<tr> <tr>
<th colspan="4">pubsubNode (nodes of the pubsub service)</th> <th colspan="4">pubsubNode (nodes of the pubsub service)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
...@@ -1055,6 +1203,7 @@ roster)</th> ...@@ -1055,6 +1203,7 @@ roster)</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>serviceID</td> <td>serviceID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1062,6 +1211,7 @@ roster)</th> ...@@ -1062,6 +1211,7 @@ roster)</th>
<td>ID of service hosting the node (Primary Key)</td> <td>ID of service hosting the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>nodeID</td> <td>nodeID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -1069,6 +1219,7 @@ roster)</th> ...@@ -1069,6 +1219,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>leaf</td> <td>leaf</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether the node is a leaf or collection node</td> <td>Flag indicating whether the node is a leaf or collection node</td>
...@@ -1076,6 +1227,7 @@ roster)</th> ...@@ -1076,6 +1227,7 @@ roster)</th>
<tr> <tr>
<td>creationDate</td> <td>creationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Creation Date</td> <td>Creation Date</td>
</tr> </tr>
...@@ -1083,6 +1235,7 @@ roster)</th> ...@@ -1083,6 +1235,7 @@ roster)</th>
<td>modificationDate</td> <td>modificationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Last Modified Date</td> <td>Last Modified Date</td>
</tr> </tr>
<tr> <tr>
...@@ -1090,6 +1243,7 @@ roster)</th> ...@@ -1090,6 +1243,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of the parent node (if any)</td> <td>ID of the parent node (if any)</td>
</tr> </tr>
<tr> <tr>
<td>deliverPayloads</td> <td>deliverPayloads</td>
...@@ -1097,6 +1251,7 @@ roster)</th> ...@@ -1097,6 +1251,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether payloads are included in notifications</td> <td>Flag indicating whether payloads are included in notifications</td>
</tr> </tr>
<tr> <tr>
<td>maxPayloadSize</td> <td>maxPayloadSize</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1104,6 +1259,7 @@ roster)</th> ...@@ -1104,6 +1259,7 @@ roster)</th>
<td>Max size of the payload in bytes</td> <td>Max size of the payload in bytes</td>
</tr> </tr>
<tr> <tr>
<td>persistItems</td> <td>persistItems</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -1111,6 +1267,7 @@ roster)</th> ...@@ -1111,6 +1267,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>maxItems</td> <td>maxItems</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Max number of items to persist</td> <td>Max number of items to persist</td>
...@@ -1118,6 +1275,7 @@ roster)</th> ...@@ -1118,6 +1275,7 @@ roster)</th>
<tr> <tr>
<td>notifyConfigChanges</td> <td>notifyConfigChanges</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when the node configuration has changed</td> <td>Flag indicating whether to send notifications when the node configuration has changed</td>
</tr> </tr>
...@@ -1125,6 +1283,7 @@ roster)</th> ...@@ -1125,6 +1283,7 @@ roster)</th>
<td>notifyDelete</td> <td>notifyDelete</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when the node is deleted</td> <td>Flag indicating whether to send notifications when the node is deleted</td>
</tr> </tr>
<tr> <tr>
...@@ -1132,6 +1291,7 @@ roster)</th> ...@@ -1132,6 +1291,7 @@ roster)</th>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when published items are deleted</td> <td>Flag indicating whether to send notifications when published items are deleted</td>
</tr> </tr>
<tr> <tr>
<td>presenceBased</td> <td>presenceBased</td>
...@@ -1139,6 +1299,7 @@ roster)</th> ...@@ -1139,6 +1299,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications to only users only</td> <td>Flag indicating whether to send notifications to only users only</td>
</tr> </tr>
<tr> <tr>
<td>sendItemSubscribe</td> <td>sendItemSubscribe</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1146,6 +1307,7 @@ roster)</th> ...@@ -1146,6 +1307,7 @@ roster)</th>
<td>Flag indicating whether to send last published item to new subscribers</td> <td>Flag indicating whether to send last published item to new subscribers</td>
</tr> </tr>
<tr> <tr>
<td>publisherModel</td> <td>publisherModel</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
...@@ -1153,6 +1315,7 @@ roster)</th> ...@@ -1153,6 +1315,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>subscriptionEnabled</td> <td>subscriptionEnabled</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether subscriptions are allowed</td> <td>Flag indicating whether subscriptions are allowed</td>
...@@ -1160,6 +1323,7 @@ roster)</th> ...@@ -1160,6 +1323,7 @@ roster)</th>
<tr> <tr>
<td>configSubscription</td> <td>configSubscription</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether new subscriptions must be configured to become active</td> <td>Flag indicating whether new subscriptions must be configured to become active</td>
</tr> </tr>
...@@ -1167,6 +1331,7 @@ roster)</th> ...@@ -1167,6 +1331,7 @@ roster)</th>
<td>accessModel</td> <td>accessModel</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>10</td> <td>10</td>
<td>Access model used by the node</td> <td>Access model used by the node</td>
</tr> </tr>
<tr> <tr>
...@@ -1174,6 +1339,7 @@ roster)</th> ...@@ -1174,6 +1339,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>Type of payload data to be provided at the node</td> <td>Type of payload data to be provided at the node</td>
</tr> </tr>
<tr> <tr>
<td>bodyXSLT</td> <td>bodyXSLT</td>
...@@ -1181,6 +1347,7 @@ roster)</th> ...@@ -1181,6 +1347,7 @@ roster)</th>
<td>100</td> <td>100</td>
<td>URL of an XSLT for transforming the payload format into a message body</td> <td>URL of an XSLT for transforming the payload format into a message body</td>
</tr> </tr>
<tr> <tr>
<td>dataformXSLT</td> <td>dataformXSLT</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1188,6 +1355,7 @@ roster)</th> ...@@ -1188,6 +1355,7 @@ roster)</th>
<td>URL of an XSLT for transforming the payload format into Data Forms result</td> <td>URL of an XSLT for transforming the payload format into Data Forms result</td>
</tr> </tr>
<tr> <tr>
<td>creator</td> <td>creator</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>1024</td> <td>1024</td>
...@@ -1195,6 +1363,7 @@ roster)</th> ...@@ -1195,6 +1363,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>description</td> <td>description</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Description of the node</td> <td>Description of the node</td>
...@@ -1202,6 +1371,7 @@ roster)</th> ...@@ -1202,6 +1371,7 @@ roster)</th>
<tr> <tr>
<td>language</td> <td>language</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Default language of the node</td> <td>Default language of the node</td>
</tr> </tr>
...@@ -1209,6 +1379,7 @@ roster)</th> ...@@ -1209,6 +1379,7 @@ roster)</th>
<td>name</td> <td>name</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>50</td> <td>50</td>
<td>Name of the node</td> <td>Name of the node</td>
</tr> </tr>
<tr> <tr>
...@@ -1216,6 +1387,7 @@ roster)</th> ...@@ -1216,6 +1387,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Policy that defines whether owners or publisher should receive replies to items</td> <td>Policy that defines whether owners or publisher should receive replies to items</td>
</tr> </tr>
<tr> <tr>
<td>associationPolicy</td> <td>associationPolicy</td>
...@@ -1223,6 +1395,7 @@ roster)</th> ...@@ -1223,6 +1395,7 @@ roster)</th>
<td>15</td> <td>15</td>
<td>Policy that defines who may associate leaf nodes with a collection</td> <td>Policy that defines who may associate leaf nodes with a collection</td>
</tr> </tr>
<tr> <tr>
<td>maxLeafNodes</td> <td>maxLeafNodes</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1230,6 +1403,7 @@ roster)</th> ...@@ -1230,6 +1403,7 @@ roster)</th>
<td>Max number of leaf nodes that a collection node might have</td> <td>Max number of leaf nodes that a collection node might have</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
...@@ -1241,6 +1415,7 @@ roster)</th> ...@@ -1241,6 +1415,7 @@ roster)</th>
<tr> <tr>
<th colspan="4">pubsubNodeJIDs (JIDs associated with nodes)</th> <th colspan="4">pubsubNodeJIDs (JIDs associated with nodes)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
...@@ -1248,6 +1423,7 @@ roster)</th> ...@@ -1248,6 +1423,7 @@ roster)</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>serviceID</td> <td>serviceID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -1255,6 +1431,7 @@ roster)</th> ...@@ -1255,6 +1431,7 @@ roster)</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>nodeID</td> <td>nodeID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of the node (Primary Key)</td> <td>ID of the node (Primary Key)</td>
...@@ -1262,6 +1439,7 @@ roster)</th> ...@@ -1262,6 +1439,7 @@ roster)</th>
<tr class="primary-key"> <tr class="primary-key">
<td>jid</td> <td>jid</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>1024</td> <td>1024</td>
<td>JID of the entity (Primary Key)</td> <td>JID of the entity (Primary Key)</td>
</tr> </tr>
...@@ -1269,6 +1447,7 @@ roster)</th> ...@@ -1269,6 +1447,7 @@ roster)</th>
<td>associationType</td> <td>associationType</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>20</td> <td>20</td>
<td>Type of association with the node</td> <td>Type of association with the node</td>
</tr> </tr>
</tbody> </tbody>
...@@ -1280,6 +1459,7 @@ roster)</th> ...@@ -1280,6 +1459,7 @@ roster)</th>
<a name="pubsubNodeGroups"></a> <a name="pubsubNodeGroups"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
<th colspan="4">pubsubNodeGroups (Roster groups associated with nodes)</th> <th colspan="4">pubsubNodeGroups (Roster groups associated with nodes)</th>
</tr> </tr>
...@@ -1287,6 +1467,7 @@ roster)</th> ...@@ -1287,6 +1467,7 @@ roster)</th>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr> <tr>
...@@ -1294,6 +1475,7 @@ roster)</th> ...@@ -1294,6 +1475,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of service hosting the node</td> <td>ID of service hosting the node</td>
</tr> </tr>
<tr> <tr>
<td>nodeID</td> <td>nodeID</td>
...@@ -1301,6 +1483,7 @@ roster)</th> ...@@ -1301,6 +1483,7 @@ roster)</th>
<td>100</td> <td>100</td>
<td>ID of the node</td> <td>ID of the node</td>
</tr> </tr>
<tr> <tr>
<td>rosterGroup</td> <td>rosterGroup</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1308,6 +1491,7 @@ roster)</th> ...@@ -1308,6 +1491,7 @@ roster)</th>
<td>Roster group of the node owner allowed to subscribe and retrieve items</td> <td>Roster group of the node owner allowed to subscribe and retrieve items</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
<br> <br>
...@@ -1319,6 +1503,7 @@ roster)</th> ...@@ -1319,6 +1503,7 @@ roster)</th>
<tr> <tr>
<th colspan="4">pubsubAffiliation (node affiliates)</th> <th colspan="4">pubsubAffiliation (node affiliates)</th>
</tr> </tr>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
...@@ -1326,6 +1511,7 @@ roster)</th> ...@@ -1326,6 +1511,7 @@ roster)</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>serviceID</td> <td>serviceID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
...@@ -1333,6 +1519,7 @@ roster)</th> ...@@ -1333,6 +1519,7 @@ roster)</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>nodeID</td> <td>nodeID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of the node (Primary Key)</td> <td>ID of the node (Primary Key)</td>
...@@ -1340,6 +1527,7 @@ roster)</th> ...@@ -1340,6 +1527,7 @@ roster)</th>
<tr class="primary-key"> <tr class="primary-key">
<td>jid</td> <td>jid</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>1024</td> <td>1024</td>
<td>JID of the affiliate (Primary Key)</td> <td>JID of the affiliate (Primary Key)</td>
</tr> </tr>
...@@ -1347,6 +1535,7 @@ roster)</th> ...@@ -1347,6 +1535,7 @@ roster)</th>
<td>affiliation</td> <td>affiliation</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>10</td> <td>10</td>
<td>Type of affiliation</td> <td>Type of affiliation</td>
</tr> </tr>
</tbody> </tbody>
...@@ -1358,6 +1547,7 @@ roster)</th> ...@@ -1358,6 +1547,7 @@ roster)</th>
<a name="pubsubItem"></a> <a name="pubsubItem"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
<th colspan="4">pubsubItem (items published to nodes)</th> <th colspan="4">pubsubItem (items published to nodes)</th>
</tr> </tr>
...@@ -1365,6 +1555,7 @@ roster)</th> ...@@ -1365,6 +1555,7 @@ roster)</th>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -1372,6 +1563,7 @@ roster)</th> ...@@ -1372,6 +1563,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of service hosting the node (Primary Key)</td> <td>ID of service hosting the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>nodeID</td> <td>nodeID</td>
...@@ -1379,6 +1571,7 @@ roster)</th> ...@@ -1379,6 +1571,7 @@ roster)</th>
<td>100</td> <td>100</td>
<td>ID of the node (Primary Key)</td> <td>ID of the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>id</td> <td>id</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1386,6 +1579,7 @@ roster)</th> ...@@ -1386,6 +1579,7 @@ roster)</th>
<td>ID of the published item (unique per node) (Primary Key)</td> <td>ID of the published item (unique per node) (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>jid</td> <td>jid</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>1024</td> <td>1024</td>
...@@ -1393,6 +1587,7 @@ roster)</th> ...@@ -1393,6 +1587,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>creationDate</td> <td>creationDate</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Creation Date</td> <td>Creation Date</td>
...@@ -1400,6 +1595,7 @@ roster)</th> ...@@ -1400,6 +1595,7 @@ roster)</th>
<tr> <tr>
<td>payload</td> <td>payload</td>
<td>TEXT</td> <td>TEXT</td>
<td>n/a</td> <td>n/a</td>
<td>XML of the payload included in the published item</td> <td>XML of the payload included in the published item</td>
</tr> </tr>
...@@ -1410,6 +1606,7 @@ roster)</th> ...@@ -1410,6 +1606,7 @@ roster)</th>
<br> <br>
<br> <br>
<a name="pubsubSubscription"></a> <a name="pubsubSubscription"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
...@@ -1418,6 +1615,7 @@ roster)</th> ...@@ -1418,6 +1615,7 @@ roster)</th>
<tr> <tr>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
...@@ -1425,6 +1623,7 @@ roster)</th> ...@@ -1425,6 +1623,7 @@ roster)</th>
<td>serviceID</td> <td>serviceID</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of service hosting the node (Primary Key)</td> <td>ID of service hosting the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -1432,6 +1631,7 @@ roster)</th> ...@@ -1432,6 +1631,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of the node (Primary Key)</td> <td>ID of the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>id</td> <td>id</td>
...@@ -1439,6 +1639,7 @@ roster)</th> ...@@ -1439,6 +1639,7 @@ roster)</th>
<td>100</td> <td>100</td>
<td>ID of the subscription (Primary Key)</td> <td>ID of the subscription (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>jid</td> <td>jid</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1446,6 +1647,7 @@ roster)</th> ...@@ -1446,6 +1647,7 @@ roster)</th>
<td>Address to receive notifications</td> <td>Address to receive notifications</td>
</tr> </tr>
<tr> <tr>
<td>jid</td> <td>jid</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>1024</td> <td>1024</td>
...@@ -1453,6 +1655,7 @@ roster)</th> ...@@ -1453,6 +1655,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>state</td> <td>state</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>State of the subscription (in the workflow)</td> <td>State of the subscription (in the workflow)</td>
...@@ -1460,6 +1663,7 @@ roster)</th> ...@@ -1460,6 +1663,7 @@ roster)</th>
<tr> <tr>
<td>deliver</td> <td>deliver</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether notifications are enabled or not</td> <td>Flag indicating whether notifications are enabled or not</td>
</tr> </tr>
...@@ -1467,6 +1671,7 @@ roster)</th> ...@@ -1467,6 +1671,7 @@ roster)</th>
<td>digest</td> <td>digest</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether an entity wants to receive digests of notifications</td> <td>Flag indicating whether an entity wants to receive digests of notifications</td>
</tr> </tr>
<tr> <tr>
...@@ -1474,6 +1679,7 @@ roster)</th> ...@@ -1474,6 +1679,7 @@ roster)</th>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Minimum number of milliseconds between sending any two notification digests</td> <td>Minimum number of milliseconds between sending any two notification digests</td>
</tr> </tr>
<tr> <tr>
<td>expire</td> <td>expire</td>
...@@ -1481,6 +1687,7 @@ roster)</th> ...@@ -1481,6 +1687,7 @@ roster)</th>
<td>15</td> <td>15</td>
<td>Date at which a leased subscription will end or has ended</td> <td>Date at which a leased subscription will end or has ended</td>
</tr> </tr>
<tr> <tr>
<td>includeBody</td> <td>includeBody</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1488,6 +1695,7 @@ roster)</th> ...@@ -1488,6 +1695,7 @@ roster)</th>
<td>Flag indicating whether an entity wants to receive a message body in addition to the payload format</td> <td>Flag indicating whether an entity wants to receive a message body in addition to the payload format</td>
</tr> </tr>
<tr> <tr>
<td>showValues</td> <td>showValues</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>30</td> <td>30</td>
...@@ -1495,6 +1703,7 @@ roster)</th> ...@@ -1495,6 +1703,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>subscriptionType</td> <td>subscriptionType</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>10</td> <td>10</td>
<td>Whether subscriber is subscribed to items or nodes (collection nodes only)</td> <td>Whether subscriber is subscribed to items or nodes (collection nodes only)</td>
...@@ -1502,6 +1711,7 @@ roster)</th> ...@@ -1502,6 +1711,7 @@ roster)</th>
<tr> <tr>
<td>subscriptionDepth</td> <td>subscriptionDepth</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Receive notification from children up to certain depth (collection nodes only)</td> <td>Receive notification from children up to certain depth (collection nodes only)</td>
</tr> </tr>
...@@ -1509,6 +1719,7 @@ roster)</th> ...@@ -1509,6 +1719,7 @@ roster)</th>
<td>keyword</td> <td>keyword</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>200</td> <td>200</td>
<td>Keyword that the event needs to match</td> <td>Keyword that the event needs to match</td>
</tr> </tr>
</tbody> </tbody>
...@@ -1520,6 +1731,7 @@ roster)</th> ...@@ -1520,6 +1731,7 @@ roster)</th>
<a name="pubsubDefaultConf"></a> <a name="pubsubDefaultConf"></a>
<table class="dbtable"> <table class="dbtable">
<tbody> <tbody>
<tr> <tr>
<th colspan="4">pubsubDefaultConf (default configuration of nodes)</th> <th colspan="4">pubsubDefaultConf (default configuration of nodes)</th>
</tr> </tr>
...@@ -1527,6 +1739,7 @@ roster)</th> ...@@ -1527,6 +1739,7 @@ roster)</th>
<th>Column Name</th> <th>Column Name</th>
<th>Type</th> <th>Type</th>
<th>Length</th> <th>Length</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
...@@ -1534,6 +1747,7 @@ roster)</th> ...@@ -1534,6 +1747,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>100</td> <td>100</td>
<td>ID of service hosting the node (Primary Key)</td> <td>ID of service hosting the node (Primary Key)</td>
</tr> </tr>
<tr class="primary-key"> <tr class="primary-key">
<td>leaf</td> <td>leaf</td>
...@@ -1541,6 +1755,7 @@ roster)</th> ...@@ -1541,6 +1755,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether configuration belongs to a leaf or collection node (Primary Key)</td> <td>Flag indicating whether configuration belongs to a leaf or collection node (Primary Key)</td>
</tr> </tr>
<tr> <tr>
<td>deliverPayloads</td> <td>deliverPayloads</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1548,6 +1763,7 @@ roster)</th> ...@@ -1548,6 +1763,7 @@ roster)</th>
<td>Flag indicating whether payloads are included in notifications</td> <td>Flag indicating whether payloads are included in notifications</td>
</tr> </tr>
<tr> <tr>
<td>maxPayloadSize</td> <td>maxPayloadSize</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -1555,6 +1771,7 @@ roster)</th> ...@@ -1555,6 +1771,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>persistItems</td> <td>persistItems</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether the node will persist published items</td> <td>Flag indicating whether the node will persist published items</td>
...@@ -1562,6 +1779,7 @@ roster)</th> ...@@ -1562,6 +1779,7 @@ roster)</th>
<tr> <tr>
<td>maxItems</td> <td>maxItems</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Max number of items to persist</td> <td>Max number of items to persist</td>
</tr> </tr>
...@@ -1569,6 +1787,7 @@ roster)</th> ...@@ -1569,6 +1787,7 @@ roster)</th>
<td>notifyConfigChanges</td> <td>notifyConfigChanges</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when the node configuration has changed</td> <td>Flag indicating whether to send notifications when the node configuration has changed</td>
</tr> </tr>
<tr> <tr>
...@@ -1576,6 +1795,7 @@ roster)</th> ...@@ -1576,6 +1795,7 @@ roster)</th>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when the node is deleted</td> <td>Flag indicating whether to send notifications when the node is deleted</td>
</tr> </tr>
<tr> <tr>
<td>notifyRetract</td> <td>notifyRetract</td>
...@@ -1583,6 +1803,7 @@ roster)</th> ...@@ -1583,6 +1803,7 @@ roster)</th>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether to send notifications when published items are deleted</td> <td>Flag indicating whether to send notifications when published items are deleted</td>
</tr> </tr>
<tr> <tr>
<td>presenceBased</td> <td>presenceBased</td>
<td>NUMBER</td> <td>NUMBER</td>
...@@ -1590,6 +1811,7 @@ roster)</th> ...@@ -1590,6 +1811,7 @@ roster)</th>
<td>Flag indicating whether to send notifications to only users only</td> <td>Flag indicating whether to send notifications to only users only</td>
</tr> </tr>
<tr> <tr>
<td>sendItemSubscribe</td> <td>sendItemSubscribe</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -1597,6 +1819,7 @@ roster)</th> ...@@ -1597,6 +1819,7 @@ roster)</th>
</tr> </tr>
<tr> <tr>
<td>publisherModel</td> <td>publisherModel</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>15</td> <td>15</td>
<td>Publisher model used by the node</td> <td>Publisher model used by the node</td>
...@@ -1604,6 +1827,7 @@ roster)</th> ...@@ -1604,6 +1827,7 @@ roster)</th>
<tr> <tr>
<td>subscriptionEnabled</td> <td>subscriptionEnabled</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
<td>Flag indicating whether subscriptions are allowed</td> <td>Flag indicating whether subscriptions are allowed</td>
</tr> </tr>
...@@ -1611,6 +1835,7 @@ roster)</th> ...@@ -1611,6 +1835,7 @@ roster)</th>
<td>accessModel</td> <td>accessModel</td>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>10</td> <td>10</td>
<td>Access model used by the node</td> <td>Access model used by the node</td>
</tr> </tr>
<tr> <tr>
...@@ -1618,6 +1843,7 @@ roster)</th> ...@@ -1618,6 +1843,7 @@ roster)</th>
<td>VARCHAR</td> <td>VARCHAR</td>
<td>255</td> <td>255</td>
<td>Default language of the node</td> <td>Default language of the node</td>
</tr> </tr>
<tr> <tr>
<td>replyPolicy</td> <td>replyPolicy</td>
...@@ -1625,6 +1851,7 @@ roster)</th> ...@@ -1625,6 +1851,7 @@ roster)</th>
<td>15</td> <td>15</td>
<td>Policy that defines whether owners or publisher should receive replies to items</td> <td>Policy that defines whether owners or publisher should receive replies to items</td>
</tr> </tr>
<tr> <tr>
<td>associationPolicy</td> <td>associationPolicy</td>
<td>VARCHAR</td> <td>VARCHAR</td>
...@@ -1632,6 +1859,7 @@ roster)</th> ...@@ -1632,6 +1859,7 @@ roster)</th>
<td>Policy that defines who may associate leaf nodes with a collection</td> <td>Policy that defines who may associate leaf nodes with a collection</td>
</tr> </tr>
<tr> <tr>
<td>maxLeafNodes</td> <td>maxLeafNodes</td>
<td>NUMBER</td> <td>NUMBER</td>
<td>n/a</td> <td>n/a</td>
...@@ -1639,7 +1867,12 @@ roster)</th> ...@@ -1639,7 +1867,12 @@ roster)</th>
</tr> </tr>
</tbody> </tbody>
</table> </table>
&nbsp;<a href="#top" class="top">top of page</a> &nbsp;<a href="#top" class="top">top of page</a>
</div>
</div>
</body> </body>
</html> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Wildfire Database Documentation</title> <title>Jive Software - Wildfire: Database Installation Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
<h1><a name="introduction">Wildfire Database Setup</a></h1>
<div id="pageContainer">
<a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Database Installation Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<p>Wildfire stores all data in a back-end database. If you choose to not use the embedded <p>Wildfire stores all data in a back-end database. If you choose to not use the embedded
database, you must setup and manage an external database for the application. database, you must setup and manage an external database for the application.
...@@ -310,5 +324,9 @@ Choose your database from the list below for setup details: ...@@ -310,5 +324,9 @@ Choose your database from the list below for setup details:
</ol> </ol>
</ul> </ul>
</div>
</div>
</body> </body>
</html> </html>
...@@ -2,13 +2,21 @@ ...@@ -2,13 +2,21 @@
<html> <html>
<head> <head>
<title>Wildfire: Overview - Jive Software</title> <title>Jive Software - Wildfire: Overview</title>
<link type="text/css" rel="stylesheet" href="style.css"> <link type="text/css" rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
<h1>Wildfire @version@</h1> <div id="pageContainer">
<div id="pageHeader">
<div id="logo"></div>
<h1>Wildfire @version@</h1>
</div>
<div class="navigation">
</div>
<div id="pageBody">
<p> <p>
Wildfire provides comprehensive group chat and instant Wildfire provides comprehensive group chat and instant
...@@ -65,10 +73,16 @@ messaging (IM) services using the XMPP protocol. ...@@ -65,10 +73,16 @@ messaging (IM) services using the XMPP protocol.
</li> </li>
</ul> </ul>
<br>
<p> <p>
An active support community for Wildfire is available at An active support community for Wildfire is available at
<a href="http://www.jivesoftware.org/forums/">http://www.jivesoftware.org/forums/</a>. <a href="http://www.jivesoftware.org/forums/">http://www.jivesoftware.org/forums/</a>.
</p> </p>
</div>
</div>
</body> </body>
</html> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Jive Software Wildfire Readme</title> <title>Jive Software - Wildfire: Installation Guide</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
<h1>Wildfire Installation Guide</h1>
<div id="pageContainer">
<a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Installation Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<p>Wildfire is a powerful instant messaging (IM) and chat <p>Wildfire is a powerful instant messaging (IM) and chat
server that implements the XMPP protocol. This document will guide server that implements the XMPP protocol. This document will guide
...@@ -23,11 +37,12 @@ Run the Wildfire installer. The application will be installed to <tt>c:\Program ...@@ -23,11 +37,12 @@ Run the Wildfire installer. The application will be installed to <tt>c:\Program
Choose either the RPM or tar.gz build. If using the RPM, run it using your package manager to install Wildfire to <tt>/opt/wildfire</tt>: Choose either the RPM or tar.gz build. If using the RPM, run it using your package manager to install Wildfire to <tt>/opt/wildfire</tt>:
<p><tt>rpm -ivh wildfire_2_4_0.rpm</tt></p> <p><tt>rpm -ivh wildfire_3_0_0.rpm</tt></p>
If using the .tar.gz, extract the archive to <tt>/opt</tt> or <tt>/usr/bin</tt>: If using the .tar.gz, extract the archive to <tt>/opt</tt> or <tt>/usr/bin</tt>:
<p><tt>tar -xzvf wildfire_2_4_0.tar.gz<br> <p><tt>tar -xzvf wildfire_3_0_0.tar.gz<br>
mv wildfire /opt</tt></p> mv wildfire /opt</tt></p>
<p><b>Note:</b> the .tar.gz build does not contain a bundled Java runtime (JRE). Therefore, you must have JDK or JRE 1.5.0 (Java 5) or later installed on your system. You can check your java version by typing "java -version" at the command line and (if necessary) upgrade your Java installation by visiting http://java.sun.com.</p> <p><b>Note:</b> the .tar.gz build does not contain a bundled Java runtime (JRE). Therefore, you must have JDK or JRE 1.5.0 (Java 5) or later installed on your system. You can check your java version by typing "java -version" at the command line and (if necessary) upgrade your Java installation by visiting http://java.sun.com.</p>
...@@ -41,6 +56,7 @@ perform each of the following steps: </p> ...@@ -41,6 +56,7 @@ perform each of the following steps: </p>
prepare your database for Wildfire. </li> prepare your database for Wildfire. </li>
<li><a href="#config">Setup</a> - Use the built-in web-based setup <li><a href="#config">Setup</a> - Use the built-in web-based setup
tool to setup and verify the server configuration.</li> tool to setup and verify the server configuration.</li>
<li><a href="#tools">Admin Console</a> - use the web-based admin tool to <li><a href="#tools">Admin Console</a> - use the web-based admin tool to
manage the server.</li> manage the server.</li>
</ol> </ol>
...@@ -50,6 +66,7 @@ manage the server.</li> ...@@ -50,6 +66,7 @@ manage the server.</li>
<ul> <ul>
<li><a href="#windows">Running under Windows</a> <li><a href="#windows">Running under Windows</a>
<li><a href="#unix">Running under Unix/Linux</a> <li><a href="#unix">Running under Unix/Linux</a>
<li><a href="#plugins">Installing and using plugins</a> <li><a href="#plugins">Installing and using plugins</a>
</ul> </ul>
...@@ -73,11 +90,13 @@ sub-directories omitted for brevity): </p> ...@@ -73,11 +90,13 @@ sub-directories omitted for brevity): </p>
<ul> <ul>
<li>The <tt>conf</tt> directory is where Wildfire stores <li>The <tt>conf</tt> directory is where Wildfire stores
configuration files.</li> configuration files.</li>
<li>The <tt>bin</tt> directory contains the server executables. Depending <li>The <tt>bin</tt> directory contains the server executables. Depending
on which distribution you installed, different executables will be available.</li> on which distribution you installed, different executables will be available.</li>
<li>The <tt>jre</tt> directory contains a Java 5 runtime that is bundled with the Windows and RPM versions of Wildfire.</li> <li>The <tt>jre</tt> directory contains a Java 5 runtime that is bundled with the Windows and RPM versions of Wildfire.</li>
<li>The <tt>lib</tt> directory contains libraries necessary for <li>The <tt>lib</tt> directory contains libraries necessary for
running Wildfire.</li> running Wildfire.</li>
<li>The <tt>plugins</tt> directory contains server plugins. By <li>The <tt>plugins</tt> directory contains server plugins. By
default, Wildfire ships with a web-based admin console plugin.</li> default, Wildfire ships with a web-based admin console plugin.</li>
<li>The <tt>resources/database</tt> directory contains SQL schema files to <li>The <tt>resources/database</tt> directory contains SQL schema files to
...@@ -85,6 +104,7 @@ create new Wildfire databases, as well as upgrade scripts for ...@@ -85,6 +104,7 @@ create new Wildfire databases, as well as upgrade scripts for
existing installations. </li> existing installations. </li>
<li>The <tt>resources/security</tt> directory is where Wildfire <li>The <tt>resources/security</tt> directory is where Wildfire
maintains keystores to support SSL connection security.</li> maintains keystores to support SSL connection security.</li>
<li>The <tt>documentation</tt> directory contains server <li>The <tt>documentation</tt> directory contains server
documentation.</li> documentation.</li>
</ul><p> </ul><p>
...@@ -134,6 +154,7 @@ run Wildfire as a standard Windows service after initial setup. ...@@ -134,6 +154,7 @@ run Wildfire as a standard Windows service after initial setup.
If you used the Windows installer, a <tt>wildfire-service.exe</tt> file If you used the Windows installer, a <tt>wildfire-service.exe</tt> file
will be in the <tt>bin</tt> directory of the installation. You can use will be in the <tt>bin</tt> directory of the installation. You can use
this executable to install and control the Wildfire service. this executable to install and control the Wildfire service.
</p> </p>
From a console window, you can run the following commands: From a console window, you can run the following commands:
...@@ -142,6 +163,7 @@ From a console window, you can run the following commands: ...@@ -142,6 +163,7 @@ From a console window, you can run the following commands:
<li><tt>wildfire-service /uninstall</tt> -- uninstalls the service. <li><tt>wildfire-service /uninstall</tt> -- uninstalls the service.
<li><tt>wildfire-service /start</tt> -- starts the service <li><tt>wildfire-service /start</tt> -- starts the service
<li><tt>wildfire-service /stop</tt> -- stops the service. <li><tt>wildfire-service /stop</tt> -- stops the service.
</ul> </ul>
<p> <p>
...@@ -178,6 +200,7 @@ You can start and stop Wildfire using the <tt>bin/wildfire</tt> script in your W ...@@ -178,6 +200,7 @@ You can start and stop Wildfire using the <tt>bin/wildfire</tt> script in your W
<p> <p>
<tt> <tt>
# ./wildfire<br> # ./wildfire<br>
Usage: ./wildfire {start|stop}<br> Usage: ./wildfire {start|stop}<br>
# ./wildfire start<br> # ./wildfire start<br>
Starting wildfire Starting wildfire
...@@ -189,6 +212,7 @@ directory: ...@@ -189,6 +212,7 @@ directory:
<li>redhat-postinstall.sh -- automatically installs Wildfire as a service on Red Hat. It does so by creating a "jive" user and then copying the wildfired script to your init.d directory. This script must be run as root. Please see the comments in the script for additional information.</li> <li>redhat-postinstall.sh -- automatically installs Wildfire as a service on Red Hat. It does so by creating a "jive" user and then copying the wildfired script to your init.d directory. This script must be run as root. Please see the comments in the script for additional information.</li>
<li>wildfired -- script to run Wildfire as a service. You must manually configure this script. See the comments in <li>wildfired -- script to run Wildfire as a service. You must manually configure this script. See the comments in
the script for additional details.</li> the script for additional details.</li>
</ul> </ul>
<h2><a name="plugins">Plugins</a></h2> <h2><a name="plugins">Plugins</a></h2>
...@@ -211,5 +235,9 @@ Plugins can be managed inside the Wildfire admin console. You can also manually ...@@ -211,5 +235,9 @@ Plugins can be managed inside the Wildfire admin console. You can also manually
deleting its JAR file (Wildfire will automatically remove the plugin from memory and delete it's directory when you deleting its JAR file (Wildfire will automatically remove the plugin from memory and delete it's directory when you
do so). do so).
</div>
</div>
</body> </body>
</html> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Wildfire LDAP Guide</title> <title>Jive Software - Wildfire: 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>
<div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<h1>Wildfire LDAP Guide</h1> <div id="pageHeader">
<div id="logo"></div>
<h1>LDAP Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<h2>Introduction</h2> <h2>Introduction</h2>
...@@ -31,6 +42,7 @@ ...@@ -31,6 +42,7 @@
such as <a href="http://www.openldap.org/">Open LDAP</a>, such as <a href="http://www.openldap.org/">Open LDAP</a>,
<a href="http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/">Active Directory</a>, <a href="http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/">Active Directory</a>,
and Novell's <a href="http://www.novell.com/products/edirectory/">eDirectory</a>. and Novell's <a href="http://www.novell.com/products/edirectory/">eDirectory</a>.
</p> </p>
<p> <p>
...@@ -57,6 +69,7 @@ ...@@ -57,6 +69,7 @@
<p> <p>
In order to configure your server to use LDAP: In order to configure your server to use LDAP:
<ol> <ol>
<li> <li>
Stop Wildfire. Stop Wildfire.
</li> </li>
...@@ -67,6 +80,7 @@ ...@@ -67,6 +80,7 @@
Restart Wildfire. Restart Wildfire.
</li> </li>
</ol> </ol>
</p> </p>
<h3>Editing the Config File</h3> <h3>Editing the Config File</h3>
...@@ -79,6 +93,7 @@ ...@@ -79,6 +93,7 @@
must be set. Properties flagged with (<font color="red"><b>**</b></font>) must be set in order must be set. Properties flagged with (<font color="red"><b>**</b></font>) must be set in order
to enable LDAP group to enable LDAP group
support, all other properties are optional: support, all other properties are optional:
</p> </p>
<ul> <ul>
<b>Main Settings</b><br><br> <b>Main Settings</b><br><br>
...@@ -87,6 +102,7 @@ ...@@ -87,6 +102,7 @@
"org.jivesoftware.wildfire.ldap.LdapUserProvider".</li> "org.jivesoftware.wildfire.ldap.LdapUserProvider".</li>
<li>provider.auth.className <font color="red"><b>*</b></font> -- set the value to <li>provider.auth.className <font color="red"><b>*</b></font> -- set the value to
"org.jivesoftware.wildfire.ldap.LdapAuthProvider".</li> "org.jivesoftware.wildfire.ldap.LdapAuthProvider".</li>
<li>ldap.host <font color="red"><b>*</b></font> -- LDAP server host; e.g. localhost or <li>ldap.host <font color="red"><b>*</b></font> -- LDAP server host; e.g. localhost or
machine.example.com, etc. It is possible to use many LDAP servers but all of them machine.example.com, etc. It is possible to use many LDAP servers but all of them
<b>should share the same configuration</b> (e.g. SSL, baseDN, admin account, etc). <b>should share the same configuration</b> (e.g. SSL, baseDN, admin account, etc).
...@@ -97,6 +113,7 @@ ...@@ -97,6 +113,7 @@
will performed with. will performed with.
The entire subtree under the base DN will be searched for user accounts. The entire subtree under the base DN will be searched for user accounts.
</li> </li>
<li>ldap.alternateBaseDN -- a second DN in the directory can optionally be set. If set, the <li>ldap.alternateBaseDN -- a second DN in the directory can optionally be set. If set, the
alternate base DN alternate base DN
will be used for authentication and loading single users, but will not be used to display a will be used for authentication and loading single users, but will not be used to display a
...@@ -117,6 +134,7 @@ ...@@ -117,6 +134,7 @@
<li>ldap.nameField -- the field name that holds the user's name. If this property is not <li>ldap.nameField -- the field name that holds the user's name. If this property is not
set, the default value is <tt>cn</tt>. Active Directory users should use the default value set, the default value is <tt>cn</tt>. Active Directory users should use the default value
<tt>displayName</tt>.</li> <tt>displayName</tt>.</li>
<li>ldap.emailField -- the field name that holds the user's email address. If this property <li>ldap.emailField -- the field name that holds the user's email address. If this property
is not set, the default value is <tt>mail</tt>. Active Directory users should use the is not set, the default value is <tt>mail</tt>. Active Directory users should use the
the default value <tt>mail</tt>.</li> the default value <tt>mail</tt>.</li>
...@@ -130,10 +148,6 @@ ...@@ -130,10 +148,6 @@
<li>ldap.searchFilter -- the search filter that should be used when loading users. If this <li>ldap.searchFilter -- the search filter that should be used when loading users. If this
property is not set, the default search will be for users that have the attribute specified by property is not set, the default search will be for users that have the attribute specified by
ldap.usernameField. ldap.usernameField.
<li>ldap.subTreeSearch -- the value "true" if the entire sub-tree under the base DN should
be included when executing searches (recursive search). If the value "false" is set, only
the first level under the base DN will be searched. The default value is "true", which is the better
option for the majority of directory layouts. Only set the value to "false" if necessary.</li>
<br><br> <br><br>
<b>Group Settings</b><br><br> <b>Group Settings</b><br><br>
...@@ -144,6 +158,7 @@ ...@@ -144,6 +158,7 @@
lookups will be performed on. If this property is not set, the default value is <tt>cn</tt>.</li> lookups will be performed on. If this property is not set, the default value is <tt>cn</tt>.</li>
<li>ldap.groupMemberField -- the field name that holds the members in a group. If this property <li>ldap.groupMemberField -- the field name that holds the members in a group. If this property
is not set, the default value is <tt>member</tt>.</li> is not set, the default value is <tt>member</tt>.</li>
<li>ldap.groupDescriptionField -- the field name that holds the description a group. If this <li>ldap.groupDescriptionField -- the field name that holds the description a group. If this
property is not set, the default value is <tt>description</tt>.</li> property is not set, the default value is <tt>description</tt>.</li>
<li>ldap.posixMode <font color="red"><b>**</b></font> -- a value of "true" means that users are stored within the group by their <li>ldap.posixMode <font color="red"><b>**</b></font> -- a value of "true" means that users are stored within the group by their
...@@ -151,6 +166,7 @@ ...@@ -151,6 +166,7 @@
the group. If this property is not set, the default value is <tt>false</tt>. <b>Note:</b> the group. If this property is not set, the default value is <tt>false</tt>. <b>Note:</b>
the posix mode must be set correctly for your server in order for group integration to the posix mode must be set correctly for your server in order for group integration to
work.</li> work.</li>
<li>ldap.groupSearchFilter -- the search filter that should be used when loading groups. If this <li>ldap.groupSearchFilter -- the search filter that should be used when loading groups. If this
property is not set, the default value is <tt>("ldap.groupNameField"={0})</tt>.</li> property is not set, the default value is <tt>("ldap.groupNameField"={0})</tt>.</li>
...@@ -164,6 +180,7 @@ ...@@ -164,6 +180,7 @@
you you
enable SSL connections, the LDAP server port number most likely should be changed to enable SSL connections, the LDAP server port number most likely should be changed to
636.</li> 636.</li>
<li>ldap.initialContextFactory -- the name of the class that should be used as an initial <li>ldap.initialContextFactory -- the name of the class that should be used as an initial
context context
factory. if this value is not specified, "com.sun.jndi.ldap.LdapCtxFactory" will be used factory. if this value is not specified, "com.sun.jndi.ldap.LdapCtxFactory" will be used
...@@ -183,33 +200,38 @@ ...@@ -183,33 +200,38 @@
<p> <p>
Below is a sample config file section: Below is a sample config file section:
</p> </p>
<pre><code> <pre>
&lt;jive&gt; &lt;jive&gt;
... ...
&lt;ldap&gt; &lt;ldap&gt;
&lt;host&gt;&lt;/host&gt; &lt;host&gt;&lt;/host&gt;
&lt;port>389&lt;/port&gt; &lt;port>389&lt;/port&gt;
&lt;usernameField&gt;uid&lt;/usernameField&gt; &lt;usernameField&gt;uid&lt;/usernameField&gt;
&lt;nameField&gt;cn&lt;/nameField&gt; &lt;nameField&gt;cn&lt;/nameField&gt;
&lt;emailField&gt;mail&lt;/emailField&gt; &lt;emailField&gt;mail&lt;/emailField&gt;
&lt;baseDN&gt;ou=People;dc=example;dc=com&lt;/baseDN&gt; &lt;baseDN&gt;ou=People;dc=example;dc=com&lt;/baseDN&gt;
&lt;adminDN&gt;cn=Directory Administrator&lt;/adminDN&gt; &lt;adminDN&gt;cn=Directory Administrator&lt;/adminDN&gt;
&lt;adminPassword&gt;&lt;/adminPassword&gt; &lt;adminPassword&gt;&lt;/adminPassword&gt;
&lt;/ldap&gt; &lt;/ldap&gt;
&lt;provider&gt; &lt;provider&gt;
&lt;user&gt; &lt;user&gt;
&lt;className&gt;org.jivesoftware.wildfire.ldap.LdapUserProvider&lt;/className&gt; &lt;className&gt;org.jivesoftware.wildfire.ldap.LdapUserProvider&lt;/className&gt;
&lt;/user&gt; &lt;/user&gt;
&lt;auth&gt; &lt;auth&gt;
&lt;className&gt;org.jivesoftware.wildfire.ldap.LdapAuthProvider&lt;/className&gt; &lt;className&gt;org.jivesoftware.wildfire.ldap.LdapAuthProvider&lt;/className&gt;
&lt;/auth&gt; &lt;/auth&gt;
&lt;group&gt; &lt;group&gt;
&lt;className&gt;org.jivesoftware.wildfire.ldap.LdapGroupProvider&lt;/className&gt; &lt;className&gt;org.jivesoftware.wildfire.ldap.LdapGroupProvider&lt;/className&gt;
&lt;/group&gt; &lt;/group&gt;
&lt;/provider&gt; &lt;/provider&gt;
... ...
&lt;/jive&gt; &lt;/jive&gt;
</code></pre> </pre>
<p>You'll most likely want to change which usernames are authorized to login to the <p>You'll most likely want to change which usernames are authorized to login to the
admin console. By default, only the user with username "admin" is allowed to login. However, admin console. By default, only the user with username "admin" is allowed to login. However,
...@@ -217,16 +239,17 @@ ...@@ -217,16 +239,17 @@
list of authorized usernames is controlled via the <tt>admin.authorizedUsernames</tt> list of authorized usernames is controlled via the <tt>admin.authorizedUsernames</tt>
property. For example, to let the usersnames "joe" and "jane" login to the admin console:</p> property. For example, to let the usersnames "joe" and "jane" login to the admin console:</p>
<pre><code> <pre>
&lt;jive&gt; &lt;jive&gt;
... ...
&lt;admin&gt; &lt;admin&gt;
... ...
&lt;authorizedUsernames&gt;joe, jane&lt;/authorizedUsernames&gt; &lt;authorizedUsernames&gt;joe, jane&lt;/authorizedUsernames&gt;
&lt;/admin&gt; &lt;/admin&gt;
... ...
&lt;/jive&gt; &lt;/jive&gt;
</code></pre> </pre>
<p><a name=""><h2>Custom Search Filter</h2></a></p> <p><a name=""><h2>Custom Search Filter</h2></a></p>
...@@ -256,6 +279,7 @@ ...@@ -256,6 +279,7 @@
<p><a name="ctxFactory"><h2>Custom Inital Context Factory</h2></a></p> <p><a name="ctxFactory"><h2>Custom Inital Context Factory</h2></a></p>
<p> <p>
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 wildfire.xml:
...@@ -278,6 +302,7 @@ ...@@ -278,6 +302,7 @@
<pre>&lt;ldap&gt; <pre>&lt;ldap&gt;
... other ldap settings here ... other ldap settings here
&lt;connectionPoolEnabled&gt;false&lt;/connectionPoolEnabled&gt; &lt;connectionPoolEnabled&gt;false&lt;/connectionPoolEnabled&gt;
&lt;/ldap&gt;</pre></p> &lt;/ldap&gt;</pre></p>
<p> <p>
...@@ -304,6 +329,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -304,6 +329,7 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
<pre> <pre>
&lt;provider&gt; &lt;provider&gt;
... ...
&lt;vcard&gt; &lt;vcard&gt;
&lt;className&gt;org.jivesoftware.wildfire.ldap.LdapVCardProvider&lt;/className&gt; &lt;className&gt;org.jivesoftware.wildfire.ldap.LdapVCardProvider&lt;/className&gt;
...@@ -327,39 +353,47 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -327,39 +353,47 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
<pre> <pre>
&lt;ldap&gt; &lt;ldap&gt;
&lt;vcard-mapping&gt; &lt;vcard-mapping&gt;
&lt;![CDATA[ &lt;![CDATA[
&lt;vCard xmlns='vcard-temp'&gt; &lt;vCard xmlns='vcard-temp'&gt;
&lt;FN attrs=&quot;displayName&quot;&gt;{0}&lt;/FN&gt; &lt;FN attrs=&quot;displayName&quot;&gt;{0}&lt;/FN&gt;
&lt;NICKNAME attrs=&quot;uid&quot;&gt;{0}&lt;/NICKNAME&gt; &lt;NICKNAME attrs=&quot;uid&quot;&gt;{0}&lt;/NICKNAME&gt;
&lt;BDAY attrs=&quot;dob&quot;&gt;{0}&lt;/BDAY&gt; &lt;BDAY attrs=&quot;dob&quot;&gt;{0}&lt;/BDAY&gt;
&lt;ADR&gt; &lt;ADR&gt;
&lt;HOME/&gt; &lt;HOME/&gt;
&lt;EXTADR&gt;Ste 500&lt;/EXTADR&gt; &lt;EXTADR&gt;Ste 500&lt;/EXTADR&gt;
&lt;STREET&gt;317 SW Alder St&lt;/STREET&gt; &lt;STREET&gt;317 SW Alder St&lt;/STREET&gt;
&lt;LOCALITY&gt;Portland&lt;/LOCALITY&gt; &lt;LOCALITY&gt;Portland&lt;/LOCALITY&gt;
&lt;REGION&gt;Oregon&lt;/REGION&gt; &lt;REGION&gt;Oregon&lt;/REGION&gt;
&lt;PCODE&gt;97204&lt;/PCODE&gt; &lt;PCODE&gt;97204&lt;/PCODE&gt;
&lt;CTRY&gt;USA&lt;/CTRY&gt; &lt;CTRY&gt;USA&lt;/CTRY&gt;
&lt;/ADR&gt; &lt;/ADR&gt;
&lt;TEL&gt; &lt;TEL&gt;
&lt;HOME/&gt; &lt;HOME/&gt;
&lt;VOICE/&gt; &lt;VOICE/&gt;
&lt;NUMBER attrs=&quot;telephoneNumber&quot;&gt;{0}&lt;/NUMBER&gt; &lt;NUMBER attrs=&quot;telephoneNumber&quot;&gt;{0}&lt;/NUMBER&gt;
&lt;/TEL&gt; &lt;/TEL&gt;
&lt;EMAIL&gt; &lt;EMAIL&gt;
&lt;INTERNET/&gt; &lt;INTERNET/&gt;
&lt;USERID attrs=&quot;mail&quot;&gt;{0}&lt;/USERID&gt; &lt;USERID attrs=&quot;mail&quot;&gt;{0}&lt;/USERID&gt;
&lt;/EMAIL&gt; &lt;/EMAIL&gt;
&lt;TITLE attrs=&quot;title&quot;&gt;{0}&lt;/TITLE&gt; &lt;TITLE attrs=&quot;title&quot;&gt;{0}&lt;/TITLE&gt;
&lt;ROLE attrs=&quot;&quot;&gt;{0}&lt;/ROLE&gt; &lt;ROLE attrs=&quot;&quot;&gt;{0}&lt;/ROLE&gt;
&lt;ORG&gt; &lt;ORG&gt;
&lt;ORGNAME attrs=&quot;o&quot;&gt;{0}&lt;/ORGNAME&gt; &lt;ORGNAME attrs=&quot;o&quot;&gt;{0}&lt;/ORGNAME&gt;
&lt;ORGUNIT attrs=&quot;&quot;&gt;{0}&lt;/ORGUNIT&gt; &lt;ORGUNIT attrs=&quot;&quot;&gt;{0}&lt;/ORGUNIT&gt;
&lt;/ORG&gt; &lt;/ORG&gt;
&lt;URL attrs=&quot;labeledURI&quot;&gt;{0}&lt;/URL&gt; &lt;URL attrs=&quot;labeledURI&quot;&gt;{0}&lt;/URL&gt;
&lt;DESC attrs=&quot;uidNumber,homeDirectory,loginShell&quot;&gt; &lt;DESC attrs=&quot;uidNumber,homeDirectory,loginShell&quot;&gt;
uid: {0} home: {1} shell: {2} uid: {0} home: {1} shell: {2}
&lt;/DESC&gt; &lt;/DESC&gt;
&lt;/vCard&gt; &lt;/vCard&gt;
]]&gt; ]]&gt;
&lt;/vcard-mapping&gt; &lt;/vcard-mapping&gt;
...@@ -393,10 +427,15 @@ clients that support the XMPP vCard extension. First, enable the provider:</p> ...@@ -393,10 +427,15 @@ clients that support the XMPP vCard extension. First, enable the provider:</p>
</ol> </ol>
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/wildfire.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>
</div>
</div>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -2,16 +2,26 @@ ...@@ -2,16 +2,26 @@
<html> <html>
<head> <head>
<title>Wildfire Plugin Guide</title> <title>Jive Software - Wildfire: 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>
<h1>Wildfire Plugin Developer Guide</h1> <div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Plugin Developer Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
...@@ -25,6 +35,7 @@ developer's guide for creating plugins. ...@@ -25,6 +35,7 @@ developer's guide for creating plugins.
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>wildfireHome</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:
</p> </p>
<fieldset> <fieldset>
...@@ -36,14 +47,13 @@ plugin directory are as follows: ...@@ -36,14 +47,13 @@ plugin directory are as follows:
|- icon_small.gif &lt;- Optional small (16x16) icon associated with the plugin (can also be a .png file) |- icon_small.gif &lt;- Optional small (16x16) icon associated with the plugin (can also be a .png file)
|- icon_large.gif &lt;- Optional large (32x32) icon associated with the plugin (can also be a .png file) |- icon_large.gif &lt;- Optional large (32x32) icon associated with the plugin (can also be a .png file)
|- classes/ &lt;- Resources your plugin needs (i.e., a properties file) |- classes/ &lt;- Resources your plugin needs (i.e., a properties file)
|- database/ &lt;- Optional database schema files that your plugin needs
|- i18n/ &lt;- Optional i18n files to allow for internationalization of plugins.
|- lib/ &lt;- Libraries (JAR files) your plugin needs |- lib/ &lt;- Libraries (JAR files) your plugin needs
|- web &lt;- Resources for Admin Console integration, if any |- web &lt;- Resources for Admin Console integration, if any
|- WEB-INF/ |- WEB-INF/
|- web.xml &lt;- Generated web.xml containing compiled JSP entries |- web.xml &lt;- Generated web.xml containing compiled JSP entries
|- web-custom.xml &lt;- Optional user-defined web.xml for custom servlets |- web-custom.xml &lt;- Optional user-defined web.xml for custom servlets
|- images/ |- images/
</pre> </pre>
</fieldset> </fieldset>
...@@ -56,6 +66,7 @@ file might look like the following: ...@@ -56,6 +66,7 @@ file might look like the following:
</p> </p>
<fieldset> <fieldset>
<legend>Sample plugin.xml</legend> <legend>Sample plugin.xml</legend>
<pre class="xml"> <pre class="xml">
&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt;
...@@ -67,11 +78,11 @@ file might look like the following: ...@@ -67,11 +78,11 @@ file might look like the following:
&lt;name&gt;Example Plugin&lt;/name&gt; &lt;name&gt;Example Plugin&lt;/name&gt;
&lt;description&gt;This is an example plugin.&lt;/description&gt; &lt;description&gt;This is an example plugin.&lt;/description&gt;
&lt;author&gt;Jive Software&lt;/author&gt; &lt;author&gt;Jive Software&lt;/author&gt;
&lt;version&gt;1.0&lt;/version&gt; &lt;version&gt;1.0&lt;/version&gt;
&lt;date&gt;07/01/2006&lt;/date&gt; &lt;date&gt;07/15/2005&lt;/date&gt;
&lt;url&gt;http://www.jivesoftware.org/plugins&lt;/url&gt; &lt;url&gt;http://www.jivesoftware.org/pluginX&lt;/url&gt;
&lt;minServerVersion&gt;3.0.0&lt;/minServerVersion&gt; &lt;minServerVersion&gt;2.2.0&lt;/minServerVersion&gt;
&lt;licenseType&gt;gpl&lt;/licenseType&gt;
<span class="comment">&lt;!-- Admin console entries --&gt;</span> <span class="comment">&lt;!-- Admin console entries --&gt;</span>
&lt;adminconsole&gt; &lt;adminconsole&gt;
...@@ -89,53 +100,23 @@ file might look like the following: ...@@ -89,53 +100,23 @@ file might look like the following:
<li>author -- the author of the plugin.</li> <li>author -- the author of the plugin.</li>
<li>version -- the version of the plugin.</li> <li>version -- the version of the plugin.</li>
<li>date -- the date the plugin was released. The date must be in the form MM/dd/yyyy, such <li>date -- the date the plugin was released. The date must be in the form MM/dd/yyyy, such
as 07/01/2006.</li> as 07/15/2005.</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 Wildfire required
to run the plugin (supported by Wildfire 2.1.2 and later). If the to run the plugin (supported by Wildfire 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
be set with a schema key name (often the same name as the plugin). Database
schema files for each supported database should then be placed in the <tt>database</tt>
directory of the plugin. For example, given the key "foo", schema files would be called
"foo_mysql.sql", "foo_oracle.sql", etc. The scripts should make an entry into the
jiveVersion table using the key so that schema version information can be tracked, e.g.:<br><br>
<tt>INSERT INTO jiveVersion (name, version) VALUES ('foo', 0);</tt><br><br>
</li>
<li>databaseVersion -- the database schema version (if a database schema is defined). New plugins
with a database schema should start at version 0. If future versions of the plugin
require updates to the schema, those updates can be defined by creating sub-directories
in the <tt>database/upgrade</tt> directory for each version number. For example, the directories
<tt>database/upgrade/1</tt> and <tt>database/upgrade/2</tt> would contain scripts such as
"foo_mysql.sql" and "foo_oracle.sql" that contain the relevant database changes for each
version. Each script should update version information in the jiveVersion table, e.g.:<br><br>
<tt>UPDATE jiveVersion set version=1 where name='foo';</tt><br><br>
</li>
<li>parentPlugin -- the name of the parent plugin (given as "foo" for the "foo.jar" plugin). <li>parentPlugin -- the name of the parent plugin (given as "foo" for the "foo.jar" plugin).
When a plugin has a parent plugin, the parent plugin's class loader will be used instead When a plugin has a parent plugin, the parent plugin's class loader will be used instead
of creating a new class loader. This lets plugins work together more closely. A of creating a new class loader. This lets plugins work together more closely. A
child plugin will not function without its parent present.</li> child plugin will not function without its parent present.</li>
<li>licenseType -- indicates the license agreement that the plugin is governed by. Valid
values are:<ul>
<li>"commercial": the plugin is released under a commercial license agreement.</li>
<li>"gpl": the plugin is released under the GNU Public License (GPL).</li>
<li>"apache": the plugin is released under the Apache license.</li>
<li>"internal": the plugin is for internal use at an organization only and will
not be re-distributed.</li>
<li>"other": the plugin is released under a license agrement that doesn't fall into
one of the other categories. The license agreement should be details in the
plugin's Readme.</li>
</ul>
If the license type is not set, it is assumed to be other.</li>
</ul></p> </ul></p>
Several additional files can be present in the plugin to provide additional information to Several additional files can be present in the plugin to provide additional information to
end-users (all placed in the main plugin directory): end-users (all placed in the main plugin directory):
<ul> <ul>
<li><tt>readme.html</tt> -- Optional readme file for plugin, which will be displayed to end users.</li> <li><tt>readme.html</tt> -- Optional readme file for plugin, which will be displayed to end users.</li>
<li><tt>changelog.html</tt> -- Optional changelog file for plugin, which will be displayed to end users.</li> <li><tt>changelog.html</tt> -- Optional changelog file for plugin, which will be displayed to end users.</li>
<li><tt>icon_small.png</tt> -- Optional small (16x16) icon associated with the plugin. It can also be a .gif file.</li> <li><tt>icon_small.png</tt> -- Optional small (16x16) icon associated with the plugin. It can also be a .gif file.</li>
<li><tt>icon_large.png</tt> -- Optional large (32x32) icon associated with the plugin. It can also be a .gif file.</li> <li><tt>icon_large.png</tt> -- Optional large (32x32) icon associated with the plugin. It can also be a .gif file.</li>
...@@ -165,6 +146,7 @@ public class ExamplePlugin implements Plugin { ...@@ -165,6 +146,7 @@ public class ExamplePlugin implements Plugin {
public void initializePlugin(PluginManager manager, File pluginDirectory) { public void initializePlugin(PluginManager manager, File pluginDirectory) {
<span class="comment">// Your code goes here</span> <span class="comment">// Your code goes here</span>
} }
public void destroyPlugin() { public void destroyPlugin() {
...@@ -183,6 +165,7 @@ are a several steps to accomplishing this: ...@@ -183,6 +165,7 @@ are a several steps to accomplishing this:
<li>An &lt;adminconsole/&gt; section must be added to the <li>An &lt;adminconsole/&gt; section must be added to the
<tt>plugin.xml</tt> file. <tt>plugin.xml</tt> file.
</li> </li>
<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
...@@ -193,6 +176,7 @@ are a several steps to accomplishing this: ...@@ -193,6 +176,7 @@ are a several steps to accomplishing this:
<li>Any images required by your JSP pages must live in <tt>web/images/</tt> <li>Any images required by your JSP pages must live in <tt>web/images/</tt>
directory. Only GIF and PNG images are supported. directory. Only GIF and PNG images are supported.
</li> </li>
</ul> </ul>
<p>The <tt>&lt;adminconsole /&gt;</tt> section of <tt>plugin.xml</tt> defines additional <p>The <tt>&lt;adminconsole /&gt;</tt> section of <tt>plugin.xml</tt> defines additional
...@@ -201,6 +185,7 @@ tabs, sections and entries in the Admin Console framework. A sample ...@@ -201,6 +185,7 @@ tabs, sections and entries in the Admin Console framework. A sample
<fieldset> <fieldset>
<legend>Sample plugin.xml</legend> <legend>Sample plugin.xml</legend>
<pre class="xml"> <pre class="xml">
&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;plugin&gt; &lt;plugin&gt;
...@@ -208,6 +193,7 @@ tabs, sections and entries in the Admin Console framework. A sample ...@@ -208,6 +193,7 @@ tabs, sections and entries in the Admin Console framework. A sample
&lt;class&gt;org.example.ExamplePlugin&lt;/class&gt; &lt;class&gt;org.example.ExamplePlugin&lt;/class&gt;
<span class="comment">&lt;!-- Admin console entries --&gt;</span> <span class="comment">&lt;!-- Admin console entries --&gt;</span>
&lt;adminconsole&gt; &lt;adminconsole&gt;
&lt;tab id="mytab" name="Example" url="my-plugin-admin.jsp" description="Click to manage..."&gt; &lt;tab id="mytab" name="Example" url="my-plugin-admin.jsp" description="Click to manage..."&gt;
&lt;sidebar id="mysidebar" name="My Plugin"&gt; &lt;sidebar id="mysidebar" name="My Plugin"&gt;
...@@ -216,6 +202,7 @@ tabs, sections and entries in the Admin Console framework. A sample ...@@ -216,6 +202,7 @@ tabs, sections and entries in the Admin Console framework. A sample
description="Click to administer settings for my plugin" /&gt; description="Click to administer settings for my plugin" /&gt;
&lt;/sidebar&gt; &lt;/sidebar&gt;
&lt;/tab&gt; &lt;/tab&gt;
&lt;/adminconsole&gt; &lt;/adminconsole&gt;
&lt;/plugin&gt; &lt;/plugin&gt;
</pre> </pre>
...@@ -251,6 +238,7 @@ that plugins should integrate seamlessly: ...@@ -251,6 +238,7 @@ that plugins should integrate seamlessly:
<h3>Writing Pages for the Admin Console</h3> <h3>Writing Pages for the Admin Console</h3>
<p> <p>
Wildfire uses the <a href="http://www.opensymphony.com/sitemesh/" target="_blank">Sitemesh</a> Wildfire 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>
...@@ -265,6 +253,7 @@ body of your HTML page. The following meta tags can be used: ...@@ -265,6 +253,7 @@ body of your HTML page. The following meta tags can be used:
<ul> <ul>
<li><b>pageID</b> -- the ID of the page, which must match an entry in the admin console <li><b>pageID</b> -- the ID of the page, which must match an entry in the admin console
XML described above. Either a pageID or subPageID <b>must</b> be specified.</li> XML described above. Either a pageID or subPageID <b>must</b> be specified.</li>
<li><b>subPageID</b> -- the ID of the sub-page, which must match an entry in the <li><b>subPageID</b> -- the ID of the sub-page, which must match an entry in the
admin console XML described above. Sub-pages are used for administrative actions admin console XML described above. Sub-pages are used for administrative actions
related to a parent page ID. For example, editing or deleting a particular group. related to a parent page ID. For example, editing or deleting a particular group.
...@@ -275,6 +264,7 @@ body of your HTML page. The following meta tags can be used: ...@@ -275,6 +264,7 @@ body of your HTML page. The following meta tags can be used:
<li><b>decorator</b> (Optional) -- overrides the Sitemesh decorator to use for the page. <li><b>decorator</b> (Optional) -- overrides the Sitemesh decorator to use for the page.
A decorator named <tt>none</tt> is available that will simply render the page A decorator named <tt>none</tt> is available that will simply render the page
without a decorator.</li> without a decorator.</li>
</ul> </ul>
The following HTML snippet demonstrates a valid page: The following HTML snippet demonstrates a valid page:
...@@ -286,6 +276,7 @@ The following HTML snippet demonstrates a valid page: ...@@ -286,6 +276,7 @@ The following HTML snippet demonstrates a valid page:
&lt;html&gt; &lt;html&gt;
&lt;head&gt; &lt;head&gt;
&lt;title&gt;My Plugin Page&lt;/title&gt; &lt;title&gt;My Plugin Page&lt;/title&gt;
&lt;meta name="pageID" content="myPluginPage"/&gt; &lt;meta name="pageID" content="myPluginPage"/&gt;
&lt;/head&gt; &lt;/head&gt;
&lt;body&gt; &lt;body&gt;
...@@ -293,31 +284,9 @@ The following HTML snippet demonstrates a valid page: ...@@ -293,31 +284,9 @@ The following HTML snippet demonstrates a valid page:
&lt;/body&gt; &lt;/body&gt;
&lt;/html&gt; &lt;/html&gt;
</pre> </pre>
</fieldset>
<h4>Using i18n in your Plugins</h4> </fieldset>
<p>
It's possible to translate your plugin into multiple languages (i18n). To do so, use the following
procedure:
<ul>
<li>Create a "i18n" directory in the root directory of your plugin.</li>
<li>Add each resource file using the %[plugin_name]%_i18n "_" language ".properties"
naming convention, where [plugin_name] is the name of the plugin directory. See the
<a href="translator-guide.html">translator guide</a> for more information about resource
bundles.</li>
<li>Convert Strings in your JSP files to refer to the internationalized keys. For example:
<pre>
&lt;%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %&gt;
&lt;%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %&gt;
...
&lt;fmt:message key="some.key.name" /&gt;
</pre>
</li>
You can also internationalize Strings in your Java files using the LocaleUtils class:<br>
<tt>org.jivesoftware.util.LocaleUtils.getLocalizedString("some.key.name", "[plugin_name]");</tt>
</ul>
</p>
<h2>Using the Wildfire Build Script</h2> <h2>Using the Wildfire Build Script</h2>
<p> <p>
...@@ -345,6 +314,7 @@ looks for plugin development directories in the following format: ...@@ -345,6 +314,7 @@ looks for plugin development directories in the following format:
|- images/ &lt;- Any images your JSP pages need (optional) |- images/ &lt;- Any images your JSP pages need (optional)
|- WEB-INF |- WEB-INF
|- web.xml &lt;- Optional file where custom servlets can be registered |- web.xml &lt;- Optional file where custom servlets can be registered
</pre> </pre>
</fieldset> </fieldset>
...@@ -381,6 +351,7 @@ points that are the most common: ...@@ -381,6 +351,7 @@ points that are the most common:
namespace. The following code snippet demonstrates how to register an IQHandler: namespace. The following code snippet demonstrates how to register an IQHandler:
<pre> <pre>
IQHandler myHandler = new MyIQHander(); IQHandler myHandler = new MyIQHander();
IQRouter iqRouter = XMPPServer.getInstance().getIQRouter(); IQRouter iqRouter = XMPPServer.getInstance().getIQRouter();
iqRouter.addHandler(myHandler); iqRouter.addHandler(myHandler);
...@@ -397,6 +368,7 @@ points that are the most common: ...@@ -397,6 +368,7 @@ points that are the most common:
You can register your plugin as a listener using the PropertyEventDispatcher.addListener(PropertyEventListener) You can register your plugin as a listener using the PropertyEventDispatcher.addListener(PropertyEventListener)
method. Be sure to unregister your plugin as a listener in your plugin's destroyPlugin() method. method. Be sure to unregister your plugin as a listener in your plugin's destroyPlugin() method.
</ol> </ol>
</p> </p>
...@@ -410,13 +382,17 @@ so it also deletes the directory.</p> ...@@ -410,13 +382,17 @@ 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 Wildfire 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. It is a
the plugins outside your organization. It is a violation of the license agreement to create violation of the license agreement to create plugins 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 Wildfire, including the right to create commercial plugins.</p>
<br><br> <br>
<br>
</div>
</div>
</body> </body>
</html> </html>
...@@ -2,21 +2,26 @@ ...@@ -2,21 +2,26 @@
<html> <html>
<head> <head>
<title>Wildfire Protocol Support</title> <title>Jive Software - Wildfire: Protocol Support</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
.supported { background-color:#D0FFCB }
.partially_supported { background-color:#FEFF94 }
.unsupported { background-color:#FFB4B4 }
</style>
</head> </head>
<body> <body>
<h1>Wildfire Protocol Support</h1> <div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Protocol Support</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<p>Wildfire provides full support for the <p>Wildfire 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
...@@ -49,6 +54,7 @@ Suite</a>.</p> ...@@ -49,6 +54,7 @@ Suite</a>.</p>
<table class="dbtable"> <table class="dbtable">
<tr> <tr>
<th>Specification</th> <th>Specification</th>
<th width="35%">Supported</th> <th width="35%">Supported</th>
</tr><tr> </tr><tr>
<td><a href="http://www.xmpp.org/specs/rfc3920.html">RFC 3920</a>: XMPP Core</td> <td><a href="http://www.xmpp.org/specs/rfc3920.html">RFC 3920</a>: XMPP Core</td>
...@@ -56,6 +62,7 @@ Suite</a>.</p> ...@@ -56,6 +62,7 @@ Suite</a>.</p>
</tr><tr> </tr><tr>
<td><a href="http://www.xmpp.org/specs/rfc3921.html">RFC 3921</a>: XMPP IM</td> <td><a href="http://www.xmpp.org/specs/rfc3921.html">RFC 3921</a>: XMPP IM</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</a>: Service Discovery</td> <td><a href="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</a>: Service Discovery</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
...@@ -63,6 +70,7 @@ Suite</a>.</p> ...@@ -63,6 +70,7 @@ Suite</a>.</p>
<td><a href="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</a>: In-Band Registration</td> <td><a href="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</a>: In-Band Registration</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0078.html">JEP-0078</a>: Non-SASL Authentication</td> <td><a href="http://www.jabber.org/jeps/jep-0078.html">JEP-0078</a>: Non-SASL Authentication</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
...@@ -70,6 +78,7 @@ Suite</a>.</p> ...@@ -70,6 +78,7 @@ Suite</a>.</p>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr> </tr>
</table> </table>
<br> <br>
<a name="intermediate"></a> <a name="intermediate"></a>
...@@ -84,6 +93,7 @@ Suite</a>.</p> ...@@ -84,6 +93,7 @@ Suite</a>.</p>
<tr> <tr>
<th>Specification</th> <th>Specification</th>
<th width="35%">Supported</th> <th width="35%">Supported</th>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0073.html">JEP-0073</a>: Basic IM Protocol Suite</td> <td><a href="http://www.jabber.org/jeps/jep-0073.html">JEP-0073</a>: Basic IM Protocol Suite</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
...@@ -91,6 +101,7 @@ Suite</a>.</p> ...@@ -91,6 +101,7 @@ Suite</a>.</p>
<td><a href="http://www.jabber.org/jeps/jep-0004.html">JEP-0004</a>: Data Forms</td> <td><a href="http://www.jabber.org/jeps/jep-0004.html">JEP-0004</a>: Data Forms</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0020.html">JEP-0020</a>: Feature Negotiation</td> <td><a href="http://www.jabber.org/jeps/jep-0020.html">JEP-0020</a>: Feature Negotiation</td>
<td class="unsupported">No</td> <td class="unsupported">No</td>
</tr><tr> </tr><tr>
...@@ -98,6 +109,7 @@ Suite</a>.</p> ...@@ -98,6 +109,7 @@ Suite</a>.</p>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0047.html">JEP-0047</a>: In-Band Bytestreams</td> <td><a href="http://www.jabber.org/jeps/jep-0047.html">JEP-0047</a>: In-Band Bytestreams</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</a>: SOCKS5 Bytestreams</td> <td><a href="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</a>: SOCKS5 Bytestreams</td>
...@@ -105,12 +117,14 @@ Suite</a>.</p> ...@@ -105,12 +117,14 @@ Suite</a>.</p>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0071.html">JEP-0071</a>: XHTML-IM</td> <td><a href="http://www.jabber.org/jeps/jep-0071.html">JEP-0071</a>: XHTML-IM</td>
<td class="supported">Yes [<a href="#fn1">1</a>]</td> <td class="supported">Yes [<a href="#fn1">1</a>]</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0096.html">JEP-0096</a>: File Transfer</td> <td><a href="http://www.jabber.org/jeps/jep-0096.html">JEP-0096</a>: File Transfer</td>
<td class="supported">Yes</td> <td class="supported">Yes</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0115.html">JEP-0115</a>: Entity Capabilities</td> <td><a href="http://www.jabber.org/jeps/jep-0115.html">JEP-0115</a>: Entity Capabilities</td>
<td class="partially_supported">Yes [<a href="#fn2">2</a>]</td> <td class="partially_supported">Yes [<a href="#fn2">2</a>]</td>
</tr> </tr>
</table> </table>
<br> <br>
...@@ -130,12 +144,14 @@ JEPs that only require client-side support are omitted.</p> ...@@ -130,12 +144,14 @@ JEPs that only require client-side support are omitted.</p>
<td><a href="http://www.jabber.org/jeps/jep-0004.html">JEP-0004</a>: Data Forms</td> <td><a href="http://www.jabber.org/jeps/jep-0004.html">JEP-0004</a>: Data Forms</td>
<td>Intermediate</td> <td>Intermediate</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</a>: Last Activity</td> <td><a href="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</a>: Last Activity</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0013.html">JEP-0013</a>: Flexible Offline Message Retrieval</td> <td><a href="http://www.jabber.org/jeps/jep-0013.html">JEP-0013</a>: Flexible Offline Message Retrieval</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</a>: Service Discovery</td> <td><a href="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</a>: Service Discovery</td>
<td>Basic</td> <td>Basic</td>
</tr><tr> </tr><tr>
...@@ -143,6 +159,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -143,6 +159,7 @@ JEPs that only require client-side support are omitted.</p>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</a>: Multi-User Chat</td> <td><a href="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</a>: Multi-User Chat</td>
<td>Intermediate</td> <td>Intermediate</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</a>: Private XML Storage</td> <td><a href="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</a>: Private XML Storage</td>
...@@ -150,12 +167,14 @@ JEPs that only require client-side support are omitted.</p> ...@@ -150,12 +167,14 @@ JEPs that only require client-side support are omitted.</p>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0050.html">JEP-0050</a>: Ad-Hoc Commands</td> <td><a href="http://www.jabber.org/jeps/jep-0050.html">JEP-0050</a>: Ad-Hoc Commands</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</a>: vcard-temp</td> <td><a href="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</a>: vcard-temp</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0055.html">JEP-0055</a>: Jabber Search [<a href="#fn3">3</a>]</td> <td><a href="http://www.jabber.org/jeps/jep-0055.html">JEP-0055</a>: Jabber Search [<a href="#fn3">3</a>]</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</a>: Publish-Subscribe</td> <td><a href="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</a>: Publish-Subscribe</td>
<td>-</td> <td>-</td>
...@@ -163,6 +182,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -163,6 +182,7 @@ JEPs that only require client-side support are omitted.</p>
<td><a href="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</a>: SOCKS5 Bytestreams</td> <td><a href="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</a>: SOCKS5 Bytestreams</td>
<td>Intermediate</td> <td>Intermediate</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</a>: In-Band Registration</td> <td><a href="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</a>: In-Band Registration</td>
<td>Basic</td> <td>Basic</td>
</tr><tr> </tr><tr>
...@@ -170,6 +190,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -170,6 +190,7 @@ JEPs that only require client-side support are omitted.</p>
<td>Basic</td> <td>Basic</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0082.html">JEP-0082</a>: Jabber Date and Time Profiles</td> <td><a href="http://www.jabber.org/jeps/jep-0082.html">JEP-0082</a>: Jabber Date and Time Profiles</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0086.html">JEP-0086</a>: Error Condition Mappings</td> <td><a href="http://www.jabber.org/jeps/jep-0086.html">JEP-0086</a>: Error Condition Mappings</td>
...@@ -177,6 +198,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -177,6 +198,7 @@ JEPs that only require client-side support are omitted.</p>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0090.html">JEP-0090</a>: Entity Time</td> <td><a href="http://www.jabber.org/jeps/jep-0090.html">JEP-0090</a>: Entity Time</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0091.html">JEP-0091</a>: Delayed Delivery</td> <td><a href="http://www.jabber.org/jeps/jep-0091.html">JEP-0091</a>: Delayed Delivery</td>
<td>-</td> <td>-</td>
...@@ -184,6 +206,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -184,6 +206,7 @@ JEPs that only require client-side support are omitted.</p>
<td><a href="http://www.jabber.org/jeps/jep-0092.html">JEP-0092</a>: Software Version</td> <td><a href="http://www.jabber.org/jeps/jep-0092.html">JEP-0092</a>: Software Version</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0096.html">JEP-0096</a>: File Transfer</td> <td><a href="http://www.jabber.org/jeps/jep-0096.html">JEP-0096</a>: File Transfer</td>
<td>Intermediate</td> <td>Intermediate</td>
</tr><tr> </tr><tr>
...@@ -191,6 +214,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -191,6 +214,7 @@ JEPs that only require client-side support are omitted.</p>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0114.html">JEP-0114</a>: Jabber Component Protocol</td> <td><a href="http://www.jabber.org/jeps/jep-0114.html">JEP-0114</a>: Jabber Component Protocol</td>
<td>-</td> <td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0128.html">JEP-0128</a>: Service Discovery Extensions</td> <td><a href="http://www.jabber.org/jeps/jep-0128.html">JEP-0128</a>: Service Discovery Extensions</td>
...@@ -198,9 +222,7 @@ JEPs that only require client-side support are omitted.</p> ...@@ -198,9 +222,7 @@ JEPs that only require client-side support are omitted.</p>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</a>: Stream Compression</td> <td><a href="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</a>: Stream Compression</td>
<td>-</td> <td>-</td>
</tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0164.html">JEP-0164</a>: vCard Filtering</td>
<td>-</td>
</tr><tr> </tr><tr>
<td><a href="http://www.jabber.org/jeps/jep-0175.html">JEP-0175</a>: Best Practices for Use of SASL ANONYMOUS</td> <td><a href="http://www.jabber.org/jeps/jep-0175.html">JEP-0175</a>: Best Practices for Use of SASL ANONYMOUS</td>
<td>-</td> <td>-</td>
...@@ -219,5 +241,10 @@ JEPs that only require client-side support are omitted.</p> ...@@ -219,5 +241,10 @@ JEPs that only require client-side support are omitted.</p>
[<a name="fn3">3</a>] Support for <u>JEP-0055: Jabber Search</u> is provided by the <a href="http://www.jivesoftware.org/wildfire/plugins.jsp">Search plugin</a>. [<a name="fn3">3</a>] Support for <u>JEP-0055: Jabber Search</u> is provided by the <a href="http://www.jivesoftware.org/wildfire/plugins.jsp">Search plugin</a>.
<br> <br>
</div>
</div>
</body> </body>
</html> </html>
...@@ -2,38 +2,28 @@ ...@@ -2,38 +2,28 @@
<html> <html>
<head> <head>
<title>Wildfire Source Instructions</title> <title>Jive Software - Wildfire: Building the Source</title>
<link href="style.css" rel="stylesheet" type="text/css"> <link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
.code {
font-family : courier new;
border : 1px #ccc solid;
padding : 6px;
margin : 5px 20px 5px 20px;
}
TT {
font-family : courier new;
font-weight : bold;
color : #060;
}
PRE, CODE {
font-family : courier new;
font-size : 100%;
}
.footer {
font-size : 0.8em;
color : #666;
text-align : center;
}
</style>
</head> </head>
<body bgcolor="#ffffff"> <body>
<h1>Wildfire Source Instructions</h1> <div id="pageContainer">
<p>
<a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Building the Source</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
This document provides detailed information for developers that wish to <div id="pageBody">
<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 Wildfire 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.
...@@ -55,9 +45,10 @@ in this distribution. ...@@ -55,9 +45,10 @@ 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 the Wildfire source code. <li> <a href="#source">Source</a> -- get te Wildfire 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 Wildfire 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 Wildfire Source</b></a><p>
...@@ -71,6 +62,7 @@ be found on the <a href="http://www.jivesoftware.org/source.jsp">source page</a> ...@@ -71,6 +62,7 @@ be found on the <a href="http://www.jivesoftware.org/source.jsp">source page</a>
Getting your machine ready for development requires a few steps. Wherever 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 Wildfire</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,
...@@ -87,6 +79,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -87,6 +79,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
<ul> <ul>
<li> Unix/Linux <li> Unix/Linux
<ol> <ol>
<li>Edit the ".profile" file in your home directory (or <li>Edit the ".profile" file in your home directory (or
corresponding file for your shell). corresponding file for your shell).
<li>Set the JAVA_HOME environment variable by adding the <li>Set the JAVA_HOME environment variable by adding the
...@@ -103,6 +96,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -103,6 +96,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
source .profile source .profile
</span> </span>
<p> <p>
The JAVA_HOME variable should now be configured correctly. The JAVA_HOME variable should now be configured correctly.
</ol> </ol>
<p> <p>
...@@ -123,6 +117,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -123,6 +117,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
correctly. correctly.
</ol> </ol>
<p> <p>
<li> Windows95/98 <li> Windows95/98
<ol> <ol>
<li>Open your autoexec.bat file (often at "c:\autoexec.bat") using Notepad. <li>Open your autoexec.bat file (often at "c:\autoexec.bat") using Notepad.
...@@ -137,6 +132,7 @@ possible, instructions are provided for both Unix/Linux and Windows users. ...@@ -137,6 +132,7 @@ possible, instructions are provided for both Unix/Linux and Windows users.
not add an extra slash after the directory name. not add an extra slash after the directory name.
<li>Save changes to autoexec.bat and restart your computer. <li>Save changes to autoexec.bat and restart your computer.
</ol> </ol>
</ul> </ul>
</ul> </ul>
...@@ -165,6 +161,7 @@ Now, invoke the build tool to compile the Wildfire source code ...@@ -165,6 +161,7 @@ Now, invoke the build tool to compile the Wildfire source code
<p> <p>
Windows:<span class="code"> ant <br> </span><br clear="left"> 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>
...@@ -199,6 +196,7 @@ with the build tool. ...@@ -199,6 +196,7 @@ with the build tool.
one of the targets listed below: one of the targets listed below:
<ul> <ul>
<li><a href="#noparams"><i>Default</i></a> <li><a href="#noparams"><i>Default</i></a>
<li><a href="#jar">jar</a> <li><a href="#jar">jar</a>
<li><a href="#plugins">plugins</a> <li><a href="#plugins">plugins</a>
...@@ -210,6 +208,7 @@ for each task are enclosed with braces. If you would like to permanently set the ...@@ -210,6 +208,7 @@ for each task are enclosed with braces. If you would like to permanently set the
value of a property, add it to build/build.xml file. value of a property, add it to build/build.xml file.
<!-- default --> <!-- default -->
<p><b><a name="noparams"><i>Default</i></a></b> <p><b><a name="noparams"><i>Default</i></a></b>
<ul> <ul>
<i>Syntax:</i><p> <i>Syntax:</i><p>
...@@ -220,6 +219,7 @@ value of a property, add it to build/build.xml file. ...@@ -220,6 +219,7 @@ value of a property, add it to build/build.xml file.
Equivalent of calling "ant <a href="#jar">jar</a> javadoc". Equivalent of calling "ant <a href="#jar">jar</a> javadoc".
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
</ul> </ul>
...@@ -240,6 +240,7 @@ Wildfire using the scripts in <tt>target/bin/</tt>. ...@@ -240,6 +240,7 @@ Wildfire using the scripts in <tt>target/bin/</tt>.
<!--PLUGINS--> <!--PLUGINS-->
<p><b><a name="jar">plugins</a></b> <p><b><a name="jar">plugins</a></b>
<ul> <ul>
<i>Syntax:</i><p> <i>Syntax:</i><p>
...@@ -249,6 +250,7 @@ Wildfire using the scripts in <tt>target/bin/</tt>. ...@@ -249,6 +250,7 @@ Wildfire using the scripts in <tt>target/bin/</tt>.
Builds all plugins into the <tt>target/plugins</tt> directory. Builds all plugins into the <tt>target/plugins</tt> directory.
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
</ul> </ul>
<!--CLEAN--> <!--CLEAN-->
...@@ -261,10 +263,16 @@ Builds all plugins into the <tt>target/plugins</tt> directory. ...@@ -261,10 +263,16 @@ Builds all plugins into the <tt>target/plugins</tt> directory.
<p><i>Description:</i></p> <p><i>Description:</i></p>
Cleans all artifacts of the build process by deleting the <tt>target/</tt> Cleans all artifacts of the build process by deleting the <tt>target/</tt>
directory.<p> directory.<p>
<p>[<a href="#tasks">return to task list</a>] <p>[<a href="#tasks">return to task list</a>]
</ul> </ul>
</div>
</div>
</body> </body>
</html> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Wildfire SSL Guide</title> <title>Jive Software - Wildfire: 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>
<div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<h1>Wildfire SSL Guide</h1>
<div id="pageHeader">
<div id="logo"></div>
<h1>SSL Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
This document outlines how to customize the SSL support in Wildfire. This document outlines how to customize the SSL support in Wildfire.
<font color="red"><b>Important note:</b></font> <font color="red"><b>Important note:</b></font>
because Wildfire ships with self-signed certificates, it will work out of the box without because Wildfire ships with self-signed certificates, it will work out of the box without
installing your own certificate. However, most users will wish to user their own installing your own certificate. However, most users will wish to user their own
...@@ -52,6 +67,7 @@ reaction to a self-signed certificate is to ask the user whether ...@@ -52,6 +67,7 @@ reaction to a self-signed certificate is to ask the user whether
to trust the certificate, or to silently trust the certificate is to trust the certificate, or to silently trust the certificate is
legitimate. Unfortunately, blindly accepting self-signed certificates legitimate. Unfortunately, blindly accepting self-signed certificates
opens up the system to 'man-in-the-middle' attacks. opens up the system to 'man-in-the-middle' attacks.
</p> </p>
<p> <p>
The advantage of a self-signed certificate is you can create them for The advantage of a self-signed certificate is you can create them for
...@@ -81,6 +97,7 @@ encrypted files. The <tt>keytool</tt> is used to create, read, update, ...@@ -81,6 +97,7 @@ 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. Wildfire 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.
</p> </p>
<p> <p>
In order to configure SSL on your server you need complete the In order to configure SSL on your server you need complete the
...@@ -96,6 +113,7 @@ If so, you can skip to step 4.</li> ...@@ -96,6 +113,7 @@ If so, you can skip to step 4.</li>
server certificate. server certificate.
<ol style="list-style-type: lower-alpha;"> <ol style="list-style-type: lower-alpha;">
<li>Generate a certificate signing request (CSR).</li> <li>Generate a certificate signing request (CSR).</li>
<li>Submit your CSR to a CA for signing.</li> <li>Submit your CSR to a CA for signing.</li>
</ol> </ol>
</li> </li>
...@@ -107,6 +125,7 @@ skip this step.</li> ...@@ -107,6 +125,7 @@ skip this step.</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 Wildfire 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>
...@@ -123,6 +142,7 @@ directory of your Wildfire installation. You should see the default ...@@ -123,6 +142,7 @@ directory of your Wildfire 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:
</p> </p>
<p><tt>keytool -storepasswd -keystore keystore</tt></p> <p><tt>keytool -storepasswd -keystore keystore</tt></p>
<p> <p>
...@@ -140,6 +160,7 @@ After you have entered all the required information, keytool will ask you to ...@@ -140,6 +160,7 @@ After you have entered all the required information, keytool will ask you to
verify the information and set a key password. verify the information and set a key password.
<b>You must use the same key password as the store password.</b> By default <b>You must use the same key password as the store password.</b> By default
you get this by simply hitting 'enter' when prompted for a key password.</p> you get this by simply hitting 'enter' when prompted for a key password.</p>
<p>If you later change the keystore password remember to change the entries' <p>If you later change the keystore password remember to change the entries'
password as well using the keytool:</p> password as well using the keytool:</p>
...@@ -155,6 +176,7 @@ standard CSR format. You can do this with the keytool: ...@@ -155,6 +176,7 @@ standard CSR format. You can do this with the keytool:
certificate_file</tt></p> certificate_file</tt></p>
<p> <p>
Where you should substitute your server's name for <tt>example.com</tt> Where you should substitute your server's name for <tt>example.com</tt>
and the name of the and the name of the
certificate file you wish to produce for <tt>certificate_file</tt>. certificate file you wish to produce for <tt>certificate_file</tt>.
Submit the generated CSR to the CA and follow their instructions to get Submit the generated CSR to the CA and follow their instructions to get
...@@ -174,6 +196,7 @@ you'll receive an error. ...@@ -174,6 +196,7 @@ you'll receive an error.
</p> </p>
<h3>5. Remove default certificates</h3> <h3>5. Remove default certificates</h3>
<p> <p>
After importing your certificate you must remove the default certificates After importing your certificate you must remove the default certificates
using the keytool. using the keytool.
</p> </p>
...@@ -191,6 +214,7 @@ password: ...@@ -191,6 +214,7 @@ password:
keytool will ask for the old password (by default it is <tt>changeit</tt>) keytool will ask for the old password (by default it is <tt>changeit</tt>)
then the new password. then the new password.
Now import each certificate using the keytool: 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>
...@@ -206,6 +230,7 @@ browser and add or change the following system properties: ...@@ -206,6 +230,7 @@ browser and add or change the following system properties:
<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, Wildfire 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 Wildfire installation root directory. You can leave this property
blank to use the default keystore.</li> blank to use the default keystore.</li>
...@@ -218,5 +243,10 @@ your Wildfire installation root directory.</li> ...@@ -218,5 +243,10 @@ your Wildfire installation root directory.</li>
changed in step 6.</li> changed in step 6.</li>
</ul> </ul>
You will need to restart the server after you have modified any of the above system properties. You will need to restart the server after you have modified any of the above system properties.
</div>
</div>
</body> </body>
</html> </html>
BODY { /* global font and body settings */
body {
font-size : 100%; font-size : 100%;
background-color : #fff; background-color : #d3d6d9;
padding: 0px;
color: #33333;
margin: 0px 0px 30px 0px;
} }
BODY, TD, TH { body, td, th {
font-family : arial, helvetica, sans-serif; font-family : arial, helvetica, sans-serif;
font-size : 10pt; font-size : 10pt;
} }
PRE, TT, CODE { pre, tt, code {
font-family : courier new, monospaced; font-family : courier new, monospaced;
font-size : 9pt; font-size : 9pt;
} }
A:hover { #pageContainer {
text-decoration : none; display: block;
position: relative;
clear: all;
background-color: #fff;
border: 1px solid #999;
padding: 40px;
margin: 30px;
-moz-border-radius: 6px;
}
#pageHeader {
display: block;
position: relative;
height: 80px;
background-color: #e7eaee;
border: 1px solid #cccccc;
border-bottom: none;
-moz-border-radius: 5px 5px 0px 0px;
margin: 10px 0px 0px 0px;
}
#pageBody {
margin: 0px 18px 0px 20px;
} }
LI {
padding-bottom : 4px;
/* anchors */
a:link {
color: #11568c;
}
a:visited {
color: #571c8d;
} }
H1 { a:hover {
font-size : 1.4em; color: #7a1d42;
text-decoration : underline;
}
a:active {
color: #7a1d42;
}
/* page header elements (logo and navigation) */
#logo {
display: block;
position: relative;
background: url(images/header_logo.gif) no-repeat;
width: 135px;
height: 40px;
margin: 21px 20px 0px 0px;
overflow: hidden;
float: right;
}
.navigation {
display: block;
position: relative;
height: 20px;
background-color: #335588;
border: 1px solid #cccccc;
border-top: none;
color: #ffffff;
font-size: 11px;
line-height: 18px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 25px 0px;
overflow: hidden;
}
.navigation a {
margin: 0px 0px 0px 20px;
}
.navigation a:link { color: #ffffff; }
.navigation a:visited { color: #ffffff; }
.navigation a:hover { color: #ffffff; }
.navigation a:active { color: #ffffff; }
/* headings */
h1 {
display: block;
position: relative;
font-size : 1.7em;
font-weight : bold; font-weight : bold;
width : 100%; color: #670e15;
border-bottom : 1px #ccc solid; padding: 0px;
padding-bottom : 2px; margin: 30px 0px 0px 20px;
} }
H2 { h2 {
font-size : 1.2em; font-size : 1.3em;
font-weight : bold; font-weight : bold;
margin: 40px 0px 6px 0px;
padding: 0px;
color: #335588;
} }
H3 { h3 {
font-size : 1.0em; font-size : 1.0em;
font-weight : bold; font-weight : bold;
margin: 25px 0px 3px 0px;
padding: 0px;
color: #334466;
}
/* general elements */
p {
margin: 0px 0px 15px 0px;
} }
TT {
ul {
margin: 5px 0px 15px 35px;
}
li {
padding-bottom : 4px;
}
tt {
font-family : courier new; font-family : courier new;
font-weight : bold; font-weight : bold;
color : #060; color : #060;
} }
FIELDSET PRE { hr {
display: block;
height: 1px;
background-color: #999999;
border: none;
margin: 40px 0px 20px 0px;
}
fieldset pre {
padding : 1em; padding : 1em;
margin : 0px; margin : 0px;
} }
FIELDSET { fieldset {
margin-left : 2em; margin-left : 2em;
margin-right : 2em; margin-right : 2em;
border : 1px #ccc solid; border : 1px #ccc solid;
-moz-border-radius : 5px; -moz-border-radius : 5px;
} }
/* classes */
.comment { .comment {
color : #666; color : #666;
font-style : italic; font-style : italic;
} }
.subheader { .subheader {
font-weight : bold; font-weight : bold;
} }
...@@ -63,18 +174,20 @@ FIELDSET { ...@@ -63,18 +174,20 @@ FIELDSET {
padding-top : 2px; padding-top : 2px;
} }
.code { .code {
display: block;
width: auto;
border : 1px #ccc solid; border : 1px #ccc solid;
padding : 0em 1.0em 0em 1.0em; padding : 6px;
margin : 4px 0px 4px 0px; margin : 10px 20px 10px 20px;
} }
.nav, .nav A { .note {
font-family : verdana; font-family : verdana;
font-size : 0.85em; font-size : 0.85em;
color : #600; color : #600;
text-decoration : none; text-decoration : none;
font-weight : bold; font-weight : bold;
} }
.note { .nav, .nav a {
font-family : verdana; font-family : verdana;
font-size : 0.85em; font-size : 0.85em;
color : #600; color : #600;
...@@ -86,9 +199,10 @@ FIELDSET { ...@@ -86,9 +199,10 @@ FIELDSET {
border-bottom : 1px #ccc solid; border-bottom : 1px #ccc solid;
padding : 3px 3px 5px 1px; padding : 3px 3px 5px 1px;
} }
.nav A:hover { .nav a:hover {
text-decoration : underline; text-decoration : underline;
}.question { }
.question {
font-weight: 600; font-weight: 600;
} }
.answer { .answer {
...@@ -97,21 +211,31 @@ FIELDSET { ...@@ -97,21 +211,31 @@ FIELDSET {
.toc { .toc {
right: 5px; right: 5px;
} }
TABLE.dbtable {
table.dbtable {
border : 1px #ccc solid; border : 1px #ccc solid;
width : 600px; width : 600px;
} }
TR, TH { tr, th {
border-bottom : 1px #ccc solid; border-bottom : 1px #ccc solid;
} }
TH, TD { th, td {
padding-right : 15px; padding-right : 15px;
} }
TH { th {
text-align : left; text-align : left;
white-space : nowrap; white-space : nowrap;
background-color : #eee; background-color : #eee;
} }
.primary-key { .primary-key {
background-color : #ffc; background-color : #ffc;
} }
/* Protocol support specific styles */
.supported { background-color: #D0FFCB }
.partially_supported { background-color: #FEFF94 }
.unsupported { background-color: #FFB4B4 }
...@@ -2,16 +2,26 @@ ...@@ -2,16 +2,26 @@
<html> <html>
<head> <head>
<title>Wildfire Translator Guide</title> <title>Jive Software - Wildfire: 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>
<h1>Wildfire Translator Guide</h1> <div id="pageContainer">
<a name="top"></a> <a name="top"></a>
<div id="pageHeader">
<div id="logo"></div>
<h1>Translator Guide</h1>
</div>
<div class="navigation">
<a href="index.html">&laquo; Back to documentation index</a>
</div>
<div id="pageBody">
<h2>Introduction</h2> <h2>Introduction</h2>
<p> <p>
...@@ -34,6 +44,7 @@ Key/value pairs in the English resource bundle might look like the following: ...@@ -34,6 +44,7 @@ Key/value pairs in the English resource bundle might look like the following:
The German resource bundle would contain the same keys, but different values: The German resource bundle would contain the same keys, but different values:
<br> <br>
<pre> <pre>
skin.yes=<i>Ja</i> skin.yes=<i>Ja</i>
skin.no=<i>Nein</i> skin.no=<i>Nein</i>
skin.topic=<i>Thema</i> skin.topic=<i>Thema</i>
...@@ -111,7 +122,12 @@ property.</p> ...@@ -111,7 +122,12 @@ 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 Wildfire
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> <br>
<br>
</div>
</div>
</body> </body>
</html> </html>
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