Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
Openfire
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Openfire
Commits
e427fa23
Commit
e427fa23
authored
May 02, 2014
by
Christian Schudt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixing some JavaDoc errors in order to make it build with Java 8's DocLint eventually
parent
55236937
Changes
68
Hide whitespace changes
Inline
Side-by-side
Showing
68 changed files
with
314 additions
and
333 deletions
+314
-333
SidebarTag.java
src/java/org/jivesoftware/admin/SidebarTag.java
+6
-6
SubSidebarTag.java
src/java/org/jivesoftware/admin/SubSidebarTag.java
+2
-2
SubnavTag.java
src/java/org/jivesoftware/admin/SubnavTag.java
+7
-7
TabsTag.java
src/java/org/jivesoftware/admin/TabsTag.java
+5
-5
CachedPreparedStatement.java
...va/org/jivesoftware/database/CachedPreparedStatement.java
+1
-1
ConnectionProvider.java
src/java/org/jivesoftware/database/ConnectionProvider.java
+3
-3
DbConnectionManager.java
src/java/org/jivesoftware/database/DbConnectionManager.java
+2
-6
JNDIDataSourceProvider.java
...ava/org/jivesoftware/database/JNDIDataSourceProvider.java
+3
-3
SequenceManager.java
src/java/org/jivesoftware/database/SequenceManager.java
+6
-7
IQHandlerInfo.java
src/java/org/jivesoftware/openfire/IQHandlerInfo.java
+0
-2
RoutingTable.java
src/java/org/jivesoftware/openfire/RoutingTable.java
+0
-3
SessionResultFilter.java
src/java/org/jivesoftware/openfire/SessionResultFilter.java
+10
-9
XMPPServer.java
src/java/org/jivesoftware/openfire/XMPPServer.java
+9
-9
Auditor.java
src/java/org/jivesoftware/openfire/audit/Auditor.java
+0
-1
ClusterEventListener.java
...g/jivesoftware/openfire/cluster/ClusterEventListener.java
+5
-5
BasicModule.java
...java/org/jivesoftware/openfire/container/BasicModule.java
+1
-5
Module.java
src/java/org/jivesoftware/openfire/container/Module.java
+6
-8
Plugin.java
src/java/org/jivesoftware/openfire/container/Plugin.java
+2
-2
PluginCacheConfigurator.java
...esoftware/openfire/container/PluginCacheConfigurator.java
+4
-4
PluginClassLoader.java
...rg/jivesoftware/openfire/container/PluginClassLoader.java
+4
-4
PluginManager.java
...va/org/jivesoftware/openfire/container/PluginManager.java
+5
-4
PluginServlet.java
...va/org/jivesoftware/openfire/container/PluginServlet.java
+5
-5
CrowdManager.java
src/java/org/jivesoftware/openfire/crowd/CrowdManager.java
+42
-43
DiscoInfoProvider.java
...va/org/jivesoftware/openfire/disco/DiscoInfoProvider.java
+3
-2
DiscoItemsProvider.java
...a/org/jivesoftware/openfire/disco/DiscoItemsProvider.java
+3
-3
DiscoServerItem.java
...java/org/jivesoftware/openfire/disco/DiscoServerItem.java
+3
-2
IQDiscoInfoHandler.java
...a/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java
+3
-3
IQDiscoItemsHandler.java
.../org/jivesoftware/openfire/disco/IQDiscoItemsHandler.java
+5
-4
ServerFeaturesProvider.java
...g/jivesoftware/openfire/disco/ServerFeaturesProvider.java
+2
-3
ServerIdentitiesProvider.java
...jivesoftware/openfire/disco/ServerIdentitiesProvider.java
+2
-3
ServerItemsProvider.java
.../org/jivesoftware/openfire/disco/ServerItemsProvider.java
+3
-3
UserIdentitiesProvider.java
...g/jivesoftware/openfire/disco/UserIdentitiesProvider.java
+2
-3
UserItemsProvider.java
...va/org/jivesoftware/openfire/disco/UserItemsProvider.java
+0
-1
DataForm.java
src/java/org/jivesoftware/openfire/forms/DataForm.java
+15
-14
FormField.java
src/java/org/jivesoftware/openfire/forms/FormField.java
+26
-26
AbstractGroupProvider.java
...rg/jivesoftware/openfire/group/AbstractGroupProvider.java
+2
-2
GroupProvider.java
src/java/org/jivesoftware/openfire/group/GroupProvider.java
+4
-3
BrowserLauncher.java
...a/org/jivesoftware/openfire/launcher/BrowserLauncher.java
+8
-9
GraphicUtils.java
...java/org/jivesoftware/openfire/launcher/GraphicUtils.java
+2
-2
LockOutEventDispatcher.java
...jivesoftware/openfire/lockout/LockOutEventDispatcher.java
+3
-3
MUCEventDispatcher.java
...ava/org/jivesoftware/openfire/muc/MUCEventDispatcher.java
+6
-6
MUCRole.java
src/java/org/jivesoftware/openfire/muc/MUCRole.java
+5
-4
MUCUser.java
src/java/org/jivesoftware/openfire/muc/MUCUser.java
+2
-1
PubSubService.java
src/java/org/jivesoftware/openfire/pubsub/PubSubService.java
+1
-1
Roster.java
src/java/org/jivesoftware/openfire/roster/Roster.java
+1
-2
RosterEventDispatcher.java
...g/jivesoftware/openfire/roster/RosterEventDispatcher.java
+4
-4
RosterItem.java
src/java/org/jivesoftware/openfire/roster/RosterItem.java
+0
-2
JDBCUserProvider.java
...java/org/jivesoftware/openfire/user/JDBCUserProvider.java
+7
-10
PresenceEventDispatcher.java
...g/jivesoftware/openfire/user/PresenceEventDispatcher.java
+4
-4
VCardEventDispatcher.java
...org/jivesoftware/openfire/vcard/VCardEventDispatcher.java
+3
-3
VCardManager.java
src/java/org/jivesoftware/openfire/vcard/VCardManager.java
+3
-2
Base64.java
src/java/org/jivesoftware/util/Base64.java
+1
-1
Blowfish.java
src/java/org/jivesoftware/util/Blowfish.java
+2
-2
ElementUtil.java
src/java/org/jivesoftware/util/ElementUtil.java
+3
-3
HttpClientWithTimeoutFeedFetcher.java
...g/jivesoftware/util/HttpClientWithTimeoutFeedFetcher.java
+2
-2
IntEnum.java
src/java/org/jivesoftware/util/IntEnum.java
+2
-2
JiveConstants.java
src/java/org/jivesoftware/util/JiveConstants.java
+2
-2
JiveGlobals.java
src/java/org/jivesoftware/util/JiveGlobals.java
+4
-4
LinkedListNode.java
src/java/org/jivesoftware/util/LinkedListNode.java
+8
-8
LocaleUtils.java
src/java/org/jivesoftware/util/LocaleUtils.java
+3
-3
PropertyEventDispatcher.java
src/java/org/jivesoftware/util/PropertyEventDispatcher.java
+1
-0
StringUtils.java
src/java/org/jivesoftware/util/StringUtils.java
+24
-24
XMLProperties.java
src/java/org/jivesoftware/util/XMLProperties.java
+0
-1
XMLWriter.java
src/java/org/jivesoftware/util/XMLWriter.java
+1
-1
XMPPDateTimeFormat.java
src/java/org/jivesoftware/util/XMPPDateTimeFormat.java
+2
-2
CacheFactory.java
src/java/org/jivesoftware/util/cache/CacheFactory.java
+4
-4
ComponentCacheWrapper.java
...va/org/jivesoftware/util/cache/ComponentCacheWrapper.java
+1
-1
ExternalizableUtil.java
src/java/org/jivesoftware/util/cache/ExternalizableUtil.java
+4
-4
No files found.
src/java/org/jivesoftware/admin/SidebarTag.java
View file @
e427fa23
...
...
@@ -43,27 +43,27 @@ import java.io.IOException;
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* currently selected sidebar item.</li>
* <li><tt>heaadercss</tt> (optional) - the CSS class name used to decorate the LI of the header
* section.</li></ul>
</p>
* section.</li></ul>
*
* <p>This class assumes there is a request attribute with the name specified by the bean attribute.</p>
*
* <p>This tag prints out minimal HTML. It basically prints an unordered list (UL element) with each
* LI containing an "A" tag specfied by the body content of this tag. For example, the body should contain
* a template A tag which will have its values replaced at runtime: <
ul
><tt>
* a template A tag which will have its values replaced at runtime: <
pre
><tt>
*
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> ... </jive:subsidebar> <br>
* </jive:sidebar></tt></
ul
>
* </jive:sidebar></tt></
pre
>
*
* There is a subsidebar tag for rendering the sub-sidebars. For more info, see the
* {@link SubSidebarTag} class.
</p>
* {@link SubSidebarTag} class.
*
* <p>Available tokens for the "A" tag are: <ul>
* <p>Available tokens for the "A" tag are:
</p>
<ul>
* <li><tt>[id]</tt> - the ID of the sidebar item, usually not needed.</li>
* <li><tt>[name]</tt> - the name of the sidebar item, should be thought of as the display name.</li>
* <li><tt>[url]</tt> - the URL of the sidebar item.</li>
* <li><tt>[description]</tt> - the description of the sidebar item, good for mouse rollovers.</li></ul>
</p>
* <li><tt>[description]</tt> - the description of the sidebar item, good for mouse rollovers.</li></ul>
*/
public
class
SidebarTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/admin/SubSidebarTag.java
View file @
e427fa23
...
...
@@ -27,14 +27,14 @@ import javax.servlet.jsp.JspTagException;
* <p>A simple tag to gather its body content and pass it to the parent tag. This tag must be used
* as a child of the {@link SidebarTag}.</p>
*
* <p>Sample usage:<
ul
><tt>
* <p>Sample usage:<
/p><pre
><tt>
*
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> <br>
* <a href="[url]">[name]</a> <br>
* </jive:subsidebar> <br>
* </jive:sidebar></tt></
ul></p
>
* </jive:sidebar></tt></
pre
>
*
* <p>Note, this class has no attributes.</p>
*/
...
...
src/java/org/jivesoftware/admin/SubnavTag.java
View file @
e427fa23
...
...
@@ -34,7 +34,7 @@ import java.io.IOException;
* <p>A simple JSP tag for displaying sub-navigation bar information in the admin console. The
* {@link TabsTag} is similiar to this one.</p>
*
* <p>Attributes: <ul>
* <p>Attributes:
</p>
<ul>
* <li><tt>bean</tt> (required) - the id of the request attribute which is a
* {@link AdminPageBean} instance. This class holds information
* needed to properly render the admin console sidebar.</li>
...
...
@@ -42,27 +42,27 @@ import java.io.IOException;
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* currently selected sidebar item.</li>
* <li><tt>heaadercss</tt> (optional) - the CSS class name used to decorate the LI of the header
* section.</li></ul>
</p>
* section.</li></ul>
*
* <p>This class assumes there is a request attribute with the name specified by the bean attribute.</p>
*
* <p>This tag prints out minimal HTML. It basically prints an unordered list (UL element) with each
* LI containing an "A" tag specfied by the body content of this tag. For example, the body should contain
* a template A tag which will have its values replaced at runtime: <
ul
><tt>
* a template A tag which will have its values replaced at runtime: <
pre
><tt>
*
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> ... </jive:subsidebar> <br>
* </jive:sidebar></tt></
ul
>
* </jive:sidebar></tt></
pre
>
*
* There is a subsidebar tag for rendering the sub-sidebars. For more info, see the
*
<p>
There is a subsidebar tag for rendering the sub-sidebars. For more info, see the
* {@link SubSidebarTag} class.</p>
*
* <p>Available tokens for the "A" tag are: <ul>
* <p>Available tokens for the "A" tag are:
</p>
<ul>
* <li><tt>[id]</tt> - the ID of the sidebar item, usually not needed.</li>
* <li><tt>[name]</tt> - the name of the sidebar item, should be thought of as the display name.</li>
* <li><tt>[url]</tt> - the URL of the sidebar item.</li>
* <li><tt>[description]</tt> - the description of the sidebar item, good for mouse rollovers.</li></ul>
</p>
* <li><tt>[description]</tt> - the description of the sidebar item, good for mouse rollovers.</li></ul>
*/
public
class
SubnavTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/admin/TabsTag.java
View file @
e427fa23
...
...
@@ -34,29 +34,29 @@ import java.util.List;
* <p>A simple JSP tag for displaying tab information in the admin console. The
* {@link SidebarTag} is similiar to this one.</p>
*
* <p>Attributes: <ul>
* <p>Attributes:
</p>
<ul>
* <li><tt>bean</tt> (required) - the id of the request attribute which is a
* {@link AdminPageBean} instance. This class holds information
* needed to properly render the admin console tabs.</li>
* <li><tt>css</tt> (optional) - the CSS class name used to decorate the LI of the tab.</li>
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* currently selected tab.</li></ul>
</p>
* currently selected tab.</li></ul>
*
* <p>This class assumes there is a request attribute with the name specified by the bean attribute.</p>
*
* <p>This tag prints out minimal HTML. It basically prints an unordered list (UL element) with each
* LI containing an "A" tag specfied by the body content of this tag. For example, the body should contain
* a template A tag which will have its values replaced at runtime:
<ul
><tt>
* a template A tag which will have its values replaced at runtime:
</p> <pre
><tt>
*
* <jive:tabs bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* </jive:tabs></tt></
ul
>
* </jive:tabs></tt></
pre
>
*
* Available token are: <ul>
* <li><tt>[id]</tt> - the ID of the tab, usually not needed.</li>
* <li><tt>[name]</tt> - the name of the tab, should be thought of as the display name.</li>
* <li><tt>[url]</tt> - the URL of the tab.</li>
* <li><tt>[description]</tt> - the description of the tab, good for mouse rollovers.</li></ul>
</p>
* <li><tt>[description]</tt> - the description of the tab, good for mouse rollovers.</li></ul>
*/
public
class
TabsTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/database/CachedPreparedStatement.java
View file @
e427fa23
...
...
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
* Allows PreparedStatement information to be cached. A prepared statement consists of
* a SQL statement containing bind variables as well as variable values. For example,
* the SQL statement <tt>"SELECT * FROM person WHERE age
>
?"</tt> would have the integer
* the SQL statement <tt>"SELECT * FROM person WHERE age
>
?"</tt> would have the integer
* variable <tt>18</tt> (which replaces the "?" chracter) to find all adults. This class
* encapsulates both the SQL string and bind variable values so that actual
* PreparedStatement can be created from that information later.
...
...
src/java/org/jivesoftware/database/ConnectionProvider.java
View file @
e427fa23
...
...
@@ -25,10 +25,10 @@ import java.sql.SQLException;
/**
* Abstract class that defines the connection provider framework. Other classes
* extend this abstract class to make connection to actual data sources.
<p>
* <p
/
>
* extend this abstract class to make connection to actual data sources.
* <p>
* It is expected that each subclass be a JavaBean, so that properties of
* the connection provider are exposed through bean introspection.
* the connection provider are exposed through bean introspection.
</p>
*
* @author Jive Software
*/
...
...
src/java/org/jivesoftware/database/DbConnectionManager.java
View file @
e427fa23
...
...
@@ -329,8 +329,7 @@ public class DbConnectionManager {
* ...
* } </pre>
*
* @param rs the result set to close.
* @param stmt the statement to close.
* @param pstmt the statement to close.
*/
public
static
void
fastcloseStmt
(
PreparedStatement
pstmt
)
throws
SQLException
{
...
...
@@ -357,8 +356,7 @@ public class DbConnectionManager {
* ...
* } </pre>
*
* @param rs the result set to close.
* @param stmt the statement to close.
* @param pstmt the statement to close.
*/
public
static
void
fastcloseStmt
(
ResultSet
rs
,
PreparedStatement
pstmt
)
throws
SQLException
{
...
...
@@ -402,7 +400,6 @@ public class DbConnectionManager {
* Closes a statement and database connection (returning the connection to
* the connection pool). This method should be called within the finally section of
* your database logic, as in the following example:
* <p/>
* <pre>
* Connection con = null;
* PrepatedStatment pstmt = null;
...
...
@@ -431,7 +428,6 @@ public class DbConnectionManager {
* statements associated with the connection should be closed before calling this method.
* This method should be called within the finally section of your database logic, as
* in the following example:
* <p/>
* <pre>
* Connection con = null;
* try {
...
...
src/java/org/jivesoftware/database/JNDIDataSourceProvider.java
View file @
e427fa23
...
...
@@ -35,11 +35,11 @@ import org.slf4j.LoggerFactory;
* An implementation of ConnectionProvider that utilizes a JDBC 2.0 DataSource
* made available via JNDI. This is useful for application servers where a pooled
* data connection is already provided so Jive can share the pool with the
* other applications.
<p>
* <p
/
>
* other applications.
* <p>
* The JNDI location of the DataSource stored as the Jive property
* <code>database.JNDIProvider.name</code>. This can be overridden by setting
* the provider's <code>name</code> property if required.
* the provider's <code>name</code> property if required.
</p>
*
* @author <a href="mailto:joe@truemesh.com">Joe Walnes</a>
* @see ConnectionProvider
...
...
src/java/org/jivesoftware/database/SequenceManager.java
View file @
e427fa23
...
...
@@ -34,18 +34,17 @@ import org.slf4j.LoggerFactory;
/**
* Manages sequences of unique ID's that get stored in the database. Database support for sequences
* varies widely; some don't use them at all. Instead, we handle unique ID generation with a
* combination VM/database solution.
<p/>
*
* combination VM/database solution.
*
<p>
* A special table in the database doles out blocks of unique ID's to each
* virtual machine that interacts with Jive. This has the following consequences:
* virtual machine that interacts with Jive. This has the following consequences:
</p>
* <ul>
* <li>There is no need to go to the database every time we want a new unique id.
* <li>Multiple app servers can interact with the same db without id collision.
* <li>The order of unique id's may not correspond to the creation date of objects.
* <li>There can be gaps in ID's after server restarts since blocks will get "lost" if the block
* size is greater than 1.
* </ul><p/>
*
* </ul>
* Each sequence type that this class manages has a different block size value. Objects that aren't
* created often have a block size of 1, while frequently created objects such as entries and
* comments have larger block sizes.
...
...
@@ -95,10 +94,10 @@ public class SequenceManager {
/**
* Returns the next id for an object that has defined the annotation {@link JiveID}.
* The JiveID annotation value is the synonymous for the type integer.<p
/
>
* The JiveID annotation value is the synonymous for the type integer.<p>
*
* The annotation JiveID should contain the id type for the object (the same number you would
* use to call nextID(int type)). Example class definition:
* use to call nextID(int type)). Example class definition:
</p>
* <code>
* \@JiveID(10)
* public class MyClass {
...
...
src/java/org/jivesoftware/openfire/IQHandlerInfo.java
View file @
e427fa23
...
...
@@ -23,7 +23,6 @@ package org.jivesoftware.openfire;
/**
* <p>A simple meta-data class that stores several related tools for
* generic IQ protocol handling.</p>
* <p/>
* <p>To handle an IQ packet, the server needs to know:</p>
* <ul>
* <li>The fully qualified name of the iq sub-element. IQ packets are
...
...
@@ -32,7 +31,6 @@ package org.jivesoftware.openfire;
* server (no 'to' attribute).</li>
* <li>The IQ parser to use to generate the correct IQ packet.</li>
* </ul>
* <p/>
* <p>We provide this information by having all IQHandlers report
* their info. Interested parties can watch for IQHandlers in the service
* lookup and build appropriate data structures on the current state of
...
...
src/java/org/jivesoftware/openfire/RoutingTable.java
View file @
e427fa23
...
...
@@ -46,7 +46,6 @@ import java.util.List;
* <p>In almost all cases, the caller should not be concerned with what
* handler is associated with a given node. Simply obtain the packet handler
* and deliver the packet to the node, leaving the details up to the handler.</p>
* <p/>
* <p>Routes are matched using the stringprep rules given in the XMPP specification.
* Wildcard routes for a particular name or resource is indicated by a null. E.g.
* routing to any address at server.com should set the name to null, the host to
...
...
@@ -55,7 +54,6 @@ import java.util.List;
* managers should add a route for both the generic user@server.com as well as
* user@server.com/resource routes (knowing that one is an alias for the other
* is the responsibility of the session or session manager).</p>
* <p/>
* <p>In order to accomodate broadcasts, you can also do partial matches by querying
* all 'child' nodes of a particular node. The routing table contains a forest of
* node trees. The node tree is arranged in the following heirarchy:</p>
...
...
@@ -81,7 +79,6 @@ import java.util.List;
* getBestRoute() if you'd like to search for both the resource leaf route, as well as a valid user
* branch for that node if no leaf exists.</li>
* </ul>
* <p/>
* <p>Note: it is important that any component or action affecting routes
* update the routing table immediately.</p>
*
...
...
src/java/org/jivesoftware/openfire/SessionResultFilter.java
View file @
e427fa23
...
...
@@ -27,14 +27,14 @@ import java.util.Date;
/**
* Filters and sorts lists of sessions. This allows for a very rich set of possible
* queries that can be run on session data. Some examples are: "Show all sessions
* started during the last hour by a certain user".
<p>
*
* started during the last hour by a certain user".
*
<p>
* The class also supports pagination of results with the setStartIndex(int)
* and setNumResults(int) methods. If the start index is not set, it will
* begin at index 0 (the start of results). If the number of results is not set,
* it will be unbounded and return as many results as available.<p>
*
* Factory methods to create common queries are provided for convenience.
* it will be unbounded and return as many results as available.<
/
p>
*
<p>
* Factory methods to create common queries are provided for convenience.
</p>
*
* @author Matt Tucker
*/
...
...
@@ -267,19 +267,20 @@ public class SessionResultFilter {
* the time portion of the date is shown for brevity) <p>
*
* <table border="1">
* <caption></caption>
* <tr><th>Date</th><th>Seconds</th><th>Result</th></tr>
* <tr><td>1:37.48</td><td>5</td><td>1:37.45</td></tr>
* <tr><td>1:37.48</td><td>10</td><td>1:37.40</td></tr>
* <tr><td>1:37.48</td><td>30</td><td>1:37.30</td</tr>
* <tr><td>1:37.48</td><td>30</td><td>1:37.30</td
>
</tr>
* <tr><td>1:37.48</td><td>60</td><td>1:37.00</td></tr>
* <tr><td>1:37.48</td><td>120</td><td>1:36.00</td></tr>
* </table>
<p>
* </table>
*
* This method is useful when calculating the last post in
*
<p>
This method is useful when calculating the last post in
* a forum or the number of new messages from a given date. Using a rounded
* date allows Jive to internally cache the results of the date query.
* Here's an example that shows the last posted message in a forum accurate
* to the last 60 seconds:<p>
* to the last 60 seconds:<
/
p>
*
* <pre>
* SessionResultFilter filter = new SessionResultFilter();
...
...
src/java/org/jivesoftware/openfire/XMPPServer.java
View file @
e427fa23
...
...
@@ -100,21 +100,21 @@ import org.xmpp.packet.JID;
/**
* The main XMPP server that will load, initialize and start all the server's
* modules. The server is unique in the JVM and could be obtained by using the
* {@link #getInstance()} method.
<p>
* <p
/
>
* {@link #getInstance()} method.
* <p>
* The loaded modules will be initialized and may access through the server other
* modules. This means that the only way for a module to locate another module is
* through the server. The server maintains a list of loaded modules.<p>
* <p/>
* through the server. The server maintains a list of loaded modules.
* </p>
* <p>
* After starting up all the modules the server will load any available plugin.
* For more information see: {@link org.jivesoftware.openfire.container.PluginManager}.
<p>
* <
p/
>
* A configuration file keeps the server configuration. This information is required for the
* For more information see: {@link org.jivesoftware.openfire.container.PluginManager}.
* <
/p
>
*
<p>
A configuration file keeps the server configuration. This information is required for the
* server to work correctly. The server assumes that the configuration file is named
* <b>openfire.xml</b> and is located in the <b>conf</b> folder. The folder that keeps
* the configuration file must be located under the home folder. The server will try different
* methods to locate the home folder.
* <p/>
* methods to locate the home folder.</p>
* <ol>
* <li><b>system property</b> - The server will use the value defined in the <i>openfireHome</i>
* system property.</li>
...
...
src/java/org/jivesoftware/openfire/audit/Auditor.java
View file @
e427fa23
...
...
@@ -25,7 +25,6 @@ import org.xmpp.packet.Packet;
/**
* <p>Use auditors to audit events and messages on the server.</p>
* <p/>
* <p>All events and messages are sent to the auditor for recording.
* The auditor will determine if auditing should take place, and what
* to do with the data.</p>
...
...
src/java/org/jivesoftware/openfire/cluster/ClusterEventListener.java
View file @
e427fa23
...
...
@@ -30,14 +30,14 @@ public interface ClusterEventListener {
/**
* Notification event indicating that this JVM is now part of a cluster. At this point the
* {@link org.jivesoftware.openfire.XMPPServer#getNodeID()} holds the new nodeID value.
<p>
* {@link org.jivesoftware.openfire.XMPPServer#getNodeID()} holds the new nodeID value.
*
* When joining the cluster as the senior cluster member the {@link #markedAsSeniorClusterMember()}
* event will be sent right after this event.<p>
*
<p>
When joining the cluster as the senior cluster member the {@link #markedAsSeniorClusterMember()}
* event will be sent right after this event.<
/
p>
*
* At this point the CacheFactory holds clustered caches. That means that modifications
*
<p>
At this point the CacheFactory holds clustered caches. That means that modifications
* to the caches will be reflected in the cluster. The clustered caches were just
* obtained from the cluster and no local cached data was automatically moved.<p>
* obtained from the cluster and no local cached data was automatically moved.<
/
p>
*/
void
joinedCluster
();
...
...
src/java/org/jivesoftware/openfire/container/BasicModule.java
View file @
e427fa23
...
...
@@ -24,7 +24,7 @@ import org.jivesoftware.openfire.XMPPServer;
/**
* A default Module implementation that basically avoids subclasses having to implement the whole
* Module interface.
</p>
* Module interface.
*
* @author Gaston Dombiak
*/
...
...
@@ -60,7 +60,6 @@ public class BasicModule implements Module {
/**
* <p>Initializes the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* call this initialize() method before accessing BasicModule resources.</p>
*
...
...
@@ -71,7 +70,6 @@ public class BasicModule implements Module {
/**
* <p>Starts the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* call this start() method before accessing BasicModule resources.</p>
*
...
...
@@ -83,7 +81,6 @@ public class BasicModule implements Module {
/**
* <p>Stops the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* call this stop() method before accessing BasicModule resources.</p>
*/
...
...
@@ -92,7 +89,6 @@ public class BasicModule implements Module {
/**
* <p>Destroys the module.</p>
* <p/>
* <p>Does nothing in the basic module.</p>
*/
public
void
destroy
()
{
...
...
src/java/org/jivesoftware/openfire/container/Module.java
View file @
e427fa23
...
...
@@ -26,23 +26,21 @@ import org.jivesoftware.openfire.XMPPServer;
* Logical, server-managed entities must implement this interface. A module
* represents an operational unit and may contain zero or more services
* and rely on zero or more services that may be hosted by the container.
* <p
/
>
* <p>
* In order to be hosted in the Jive server container, all modules must:
* </p>
* <ul>
* <li>Implement the Module interface</li>
* <li>Have a public no-arg constructor</li>
* </ul>
* <p/>
* The Jive container will run all modules through a simple lifecycle:
* <p>The Jive container will run all modules through a simple lifecycle:</p>
* <pre>
* constructor -
> initialize() -> start() -> stop() -> destroy() ->
finalizer
* |
<
-----------------------| ^
* constructor -
> initialize() -> start() -> stop() -> destroy() ->
finalizer
* |
<
-----------------------| ^
* | |
* V-----------------------------------
>
* V-----------------------------------
>
* </pre>
* </p>
* <p/>
* <p>
* The Module interface is intended to provide the simplest mechanism
* for creating, deploying, and managing server modules.
* </p>
...
...
src/java/org/jivesoftware/openfire/container/Plugin.java
View file @
e427fa23
...
...
@@ -57,9 +57,9 @@ import java.io.File;
* <minServerVersion>3.0.0</minServerVersion>
* <licenseType>gpl</licenseType>
* </plugin></pre>
* <p
/
>
* <p>
* Each plugin will be loaded in its own class loader, unless the plugin is configured
* with a parent plugin.<
p/
>
* with a parent plugin.<
/p
>
*
* Please see the Plugin Developer Guide (available with the
* Openfire documentation) for additional details about plugin development.
...
...
src/java/org/jivesoftware/openfire/container/PluginCacheConfigurator.java
View file @
e427fa23
...
...
@@ -35,8 +35,8 @@ import org.slf4j.LoggerFactory;
/**
* A helper class to read cache configuration data for a plugin and register the defined caches with
* the cache factory. Definitions should look something like this:
* <
cod
e>
*
* <
pr
e>
*
{@code
* <cache-config>
* <cache-mapping>
* <cache-name>My Cache</cache-name>
...
...
@@ -57,8 +57,8 @@ import org.slf4j.LoggerFactory;
* </init-params>
* </cache-mapping>
* </cache-config>
*
* </
cod
e>
*
}
* </
pr
e>
*/
public
class
PluginCacheConfigurator
{
...
...
src/java/org/jivesoftware/openfire/container/PluginClassLoader.java
View file @
e427fa23
...
...
@@ -37,10 +37,10 @@ import org.slf4j.LoggerFactory;
/**
* ClassLoader for plugins. It searches the plugin directory for classes
* and JAR files, then constructs a class loader for the resources found.
* Resources are loaded as follows:
<ul>
* <
p/
>
* <li>Any JAR files in the <tt>lib</tt> will be added to the classpath.
* <li>Any files in the classes directory will be added to the classpath.
* Resources are loaded as follows:
* <
ul
>
* <li>Any JAR files in the <tt>lib</tt> will be added to the classpath.
</li>
* <li>Any files in the classes directory will be added to the classpath.
</li>
* </ul>
*
* @author Derek DeMoro
...
...
src/java/org/jivesoftware/openfire/container/PluginManager.java
View file @
e427fa23
...
...
@@ -67,9 +67,9 @@ import org.slf4j.LoggerFactory;
/**
* Loads and manages plugins. The <tt>plugins</tt> directory is monitored for any
* new plugins, and they are dynamically loaded.
<p/>
* new plugins, and they are dynamically loaded.
*
*
An instance of this class can be obtained using:<p/
>
*
<p>An instance of this class can be obtained using:</p
>
*
* <tt>XMPPServer.getInstance().getPluginManager()</tt>
*
...
...
@@ -575,9 +575,10 @@ public class PluginManager {
* and not the name as given by the plugin meta-data. This method only removes
* the plugin but does not delete the plugin JAR file. Therefore, if the plugin JAR
* still exists after this method is called, the plugin will be started again the next
* time the plugin monitor process runs. This is useful for "restarting" plugins.
<p>
* <p
/
>
* time the plugin monitor process runs. This is useful for "restarting" plugins.
* <p>
* This method is called automatically when a plugin's JAR file is deleted.
* </p>
*
* @param pluginName the name of the plugin to unload.
*/
...
...
src/java/org/jivesoftware/openfire/container/PluginServlet.java
View file @
e427fa23
...
...
@@ -53,15 +53,15 @@ import org.xml.sax.SAXException;
* The plugin servlet acts as a proxy for web requests (in the admin console)
* to plugins. Since plugins can be dynamically loaded and live in a different place
* than normal Openfire admin console files, it's not possible to have them
* added to the normal Openfire admin console web app directory.
<p>
* <p
/
>
* added to the normal Openfire admin console web app directory.
* <p>
* The servlet listens for requests in the form <tt>/plugins/[pluginName]/[JSP File]</tt>
* (e.g. <tt>/plugins/foo/example.jsp</tt>). It also listens for non JSP requests in the
* form like <tt>/plugins/[pluginName]/images/*.png|gif</tt>,
* <tt>/plugins/[pluginName]/scripts/*.js|css</tt> or
* <tt>/plugins/[pluginName]/styles/*.css</tt> (e.g.
* <tt>/plugins/foo/images/example.gif</tt>).
<p>
* <
p/
>
* <tt>/plugins/foo/images/example.gif</tt>).
* <
/p
>
* JSP files must be compiled and available via the plugin's class loader. The mapping
* between JSP name and servlet class files is defined in [pluginName]/web/web.xml.
* Typically, this file is auto-generated by the JSP compiler when packaging the plugin.
...
...
@@ -259,7 +259,7 @@ public class PluginServlet extends HttpServlet {
* the servlet destroy method.
*
* @param plugin the owner of the servlet
* @param
servletU
rl the relative url where servlet has been bound
* @param
u
rl the relative url where servlet has been bound
* @return the unregistered servlet, so that it can be destroyed
*/
public
static
GenericServlet
unregisterServlet
(
Plugin
plugin
,
String
url
)
...
...
src/java/org/jivesoftware/openfire/crowd/CrowdManager.java
View file @
e427fa23
...
...
@@ -25,13 +25,13 @@ import java.util.ArrayList;
import
java.util.List
;
import
javax.xml.bind.JAXB
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.xmpp.packet.JID
;
import
org.apache.commons.httpclient.Credentials
;
import
org.apache.commons.httpclient.Header
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.xmpp.packet.JID
;
import
org.apache.commons.httpclient.Credentials
;
import
org.apache.commons.httpclient.Header
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.apache.commons.httpclient.HttpMethod
;
import
org.apache.commons.httpclient.HttpState
;
import
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
;
...
...
@@ -134,13 +134,12 @@ public class CrowdManager {
* @param username
* @param password
* @throws RemoteException
* @throws UnsupportedEncodingException
*/
public
void
authenticate
(
String
username
,
String
password
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"authenticate '"
+
String
.
valueOf
(
username
)
+
"'"
);
PostMethod
post
=
new
PostMethod
(
crowdServer
.
resolve
(
"authentication?username="
+
urlEncode
(
username
)).
toString
());
*/
public
void
authenticate
(
String
username
,
String
password
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"authenticate '"
+
String
.
valueOf
(
username
)
+
"'"
);
PostMethod
post
=
new
PostMethod
(
crowdServer
.
resolve
(
"authentication?username="
+
urlEncode
(
username
)).
toString
());
AuthenticatePost
creds
=
new
AuthenticatePost
();
creds
.
value
=
password
;
...
...
@@ -156,14 +155,14 @@ public class CrowdManager {
}
catch
(
IOException
ioe
)
{
handleError
(
ioe
);
}
finally
{
post
.
releaseConnection
();
}
LOG
.
info
(
"authenticated user:"
+
username
);
}
}
finally
{
post
.
releaseConnection
();
}
LOG
.
info
(
"authenticated user:"
+
username
);
}
/**
* Get all the users from Crowd
* @return a List of User containing all the users stored in Crowd
...
...
@@ -193,13 +192,13 @@ public class CrowdManager {
}
finally
{
get
.
releaseConnection
();
}
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
User
user
:
users
.
user
)
{
user
.
name
=
JID
.
escapeNode
(
user
.
name
);
results
.
add
(
user
);
}
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
User
user
:
users
.
user
)
{
user
.
name
=
JID
.
escapeNode
(
user
.
name
);
results
.
add
(
user
);
}
if
(
users
.
user
.
size
()
!=
maxResults
)
{
break
;
}
else
{
...
...
@@ -275,13 +274,13 @@ public class CrowdManager {
* Get all the groups of a given username
* @param username
* @return a List of groups name
* @throws RemoteException
*/
public
List
<
String
>
getUserGroups
(
String
username
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"fetch all crowd groups for user:"
+
username
);
int
maxResults
=
100
;
* @throws RemoteException
*/
public
List
<
String
>
getUserGroups
(
String
username
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"fetch all crowd groups for user:"
+
username
);
int
maxResults
=
100
;
int
startIndex
=
0
;
List
<
String
>
results
=
new
ArrayList
<
String
>();
StringBuilder
request
=
new
StringBuilder
(
"user/group/nested?username="
).
append
(
urlEncode
(
username
))
...
...
@@ -386,13 +385,13 @@ public class CrowdManager {
}
finally
{
get
.
releaseConnection
();
}
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
org
.
jivesoftware
.
openfire
.
crowd
.
jaxb
.
User
user
:
users
.
user
)
{
results
.
add
(
JID
.
escapeNode
(
user
.
name
));
}
if
(
users
.
user
.
size
()
!=
maxResults
)
{
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
org
.
jivesoftware
.
openfire
.
crowd
.
jaxb
.
User
user
:
users
.
user
)
{
results
.
add
(
JID
.
escapeNode
(
user
.
name
));
}
if
(
users
.
user
.
size
()
!=
maxResults
)
{
break
;
}
else
{
startIndex
+=
maxResults
;
...
...
src/java/org/jivesoftware/openfire/disco/DiscoInfoProvider.java
View file @
e427fa23
...
...
@@ -29,11 +29,12 @@ import java.util.Iterator;
/**
* A DiscoInfoProvider is responsible for providing information about a JID's name and its node. For
* example, the room service could implement this interface in order to provide disco#info about
* its rooms. In this case, the JID's name will be the room's name and node will be null.
<p>
* <p
/
>
* its rooms. In this case, the JID's name will be the room's name and node will be null.
* <p>
* The information to provide has to include the entity's identity and the features offered and
* protocols supported by the target entity. The identity will be provided as an Element that will
* include the categoty, type and name attributes. Whilst the features will be just plain Strings.
* </p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/DiscoItemsProvider.java
View file @
e427fa23
...
...
@@ -27,11 +27,11 @@ import java.util.Iterator;
/**
* A DiscoItemsProvider is responsible for providing the items associated with a JID's name and
* node. For example, the room service could implement this interface in order to provide
* the existing rooms as its items. In this case, the JID's name and node won't be used.
<p>
* <p
/
>
* the existing rooms as its items. In this case, the JID's name and node won't be used.
* <p>
* The items to provide must have a JID attribute specifying the JID of the item and may possess a
* name attribute specifying a natural-language name for the item. The node attribute is optional
* and must be used only for items that aren't addressable as a JID.
* and must be used only for items that aren't addressable as a JID.
</p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/DiscoServerItem.java
View file @
e427fa23
...
...
@@ -25,8 +25,8 @@ import org.xmpp.packet.JID;
/**
* Represent a DiscoItem provided by the server. Therefore, the DiscoServerItems are responsible
* for providing the DiscoInfoProvider and DiscoItemsProvider that will provide the information and
* items related to this item.
<p>
* <p
/
>
* items related to this item.
* <p>
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
...
...
@@ -34,6 +34,7 @@ import org.xmpp.packet.JID;
* which will automatically be included in IQDiscoItemsHandler. Special attention must be paid to
* the JID since all the items with the same host will share the same DiscoInfoProvider or
* DiscoItemsProvider.
* </p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java
View file @
e427fa23
...
...
@@ -50,8 +50,8 @@ import java.util.concurrent.locks.Lock;
* IQDiscoInfoHandler is responsible for handling disco#info requests. This class holds a map with
* the main entities and the associated DiscoInfoProvider. We are considering the host of the
* recipient JIDs as main entities. It's the DiscoInfoProvider responsibility to provide information
* about the JID's name together with any possible requested node.
<p>
* <p
/
>
* about the JID's name together with any possible requested node.
* <p>
* For example, let's have in the entities map the following entries: "localhost" and
* "conference.localhost". Associated with each entry we have different DiscoInfoProviders. Now we
* receive a disco#info request for the following JID: "room@conference.localhost" which is a disco
...
...
@@ -62,7 +62,7 @@ import java.util.concurrent.locks.Lock;
* could find its identity and the features it supports (e.g. 'muc_passwordprotected',
* 'muc_unmoderated', etc.). Finally, after we have collected all the information provided by the
* provider we will add it to the reply. On the other hand, if no provider was found or the provider
* has no information for the requested name/node then a not-found error will be returned.
* has no information for the requested name/node then a not-found error will be returned.
</p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/IQDiscoItemsHandler.java
View file @
e427fa23
...
...
@@ -57,8 +57,8 @@ import java.util.concurrent.locks.Lock;
* IQDiscoItemsHandler is responsible for handling disco#items requests. This class holds a map with
* the main entities and the associated DiscoItemsProvider. We are considering the host of the
* recipient JIDs as main entities. It's the DiscoItemsProvider responsibility to provide the items
* associated with the JID's name together with any possible requested node.
<p>
* <p
/
>
* associated with the JID's name together with any possible requested node.
* <p>
* For example, let's have in the entities map the following entries: "localhost" and
* "conference.localhost". Associated with each entry we have different DiscoItemsProvider. Now we
* receive a disco#items request for the following JID: "room@conference.localhost" which is a disco
...
...
@@ -69,9 +69,10 @@ import java.util.concurrent.locks.Lock;
* the list of existing occupants if that information is publicly available. Finally, after we have
* collected all the items provided by the provider we will add them to the reply. On the other
* hand, if no provider was found or the provider has no information for the requested name/node
* then a not-found error will be returned.<p>
* <p
/
>
* then a not-found error will be returned.<
/
p>
* <p>
* Publishing of client items is still not supported.
* </p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/ServerFeaturesProvider.java
View file @
e427fa23
...
...
@@ -25,13 +25,12 @@ import java.util.Iterator;
/**
* ServerFeaturesProviders are responsible for providing the features offered and supported
* protocols by the SERVER. Example of server features are: jabber:iq:agents, jabber:iq:time, etc.
* <p/>
* <p/>
* <p>
* When the server starts up, IQDiscoInfoHandler will request to all the services that implement
* the ServerFeaturesProvider interface for their features. Whenever a disco request is received
* IQDiscoInfoHandler will add to the provided information all the collected features. Therefore, a
* service must implement this interface in order to offer/publish its features as part of the
* server features.
* server features.
</p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/ServerIdentitiesProvider.java
View file @
e427fa23
...
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
* <p>
* A <code>ServerIdentitiesProvider</code> is responsible for providing the identities
* of protocols supported by the SERVER. An example of a server identity is that
* for PEP (XEP-0163): <identity category="pubsub" type="pep" />
* <p/>
*
* for PEP (XEP-0163): {@code <identity category="pubsub" type="pep" />}
* </p>
* <p>
* When the server starts up, IQDiscoInfoHandler will request to all the services that implement
* the ServerIdentitiesProvider interface for their identities. Whenever a disco request is received
...
...
src/java/org/jivesoftware/openfire/disco/ServerItemsProvider.java
View file @
e427fa23
...
...
@@ -24,8 +24,8 @@ import java.util.Iterator;
/**
* ServerItemsProvider are responsible for providing the items associated with the SERVER. Example
* of server items are: Public Chatrooms, PubSub service, etc.
<p>
* <p
/
>
* of server items are: Public Chatrooms, PubSub service, etc.
* <p>
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
...
...
@@ -33,7 +33,7 @@ import java.util.Iterator;
* which will automatically be included in IQDiscoItemsHandler. Special attention must be paid to
* the JID since all the items with the same host will share the same DiscoInfoProvider or
* DiscoItemsProvider. Therefore, a service must implement this interface in order to get its
* services published as items associatd with the server.
* services published as items associatd with the server.
</p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/disco/UserIdentitiesProvider.java
View file @
e427fa23
...
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
* <p>
* A <code>UserIdentitiesProvider</code> is responsible for providing the identities
* of protocols supported by users. An example of a user identity is one
* for PEP (XEP-0163): <identity category="pubsub" type="pep" />
* <p/>
*
* for PEP (XEP-0163): {@code <identity category="pubsub" type="pep" />}
* </p>
* <p>
* When the server starts up, IQDiscoInfoHandler will request to all the services that implement
* the UserIdentitiesProvider interface for their identities. Whenever a disco request is received
...
...
src/java/org/jivesoftware/openfire/disco/UserItemsProvider.java
View file @
e427fa23
...
...
@@ -38,7 +38,6 @@ import java.util.Iterator;
* <li>For discovering PEP items of a user.</li>
* <li>For discovering available resources of a user.</li>
* </ul>
* </p>
*
* @author Armando Jagucki
*/
...
...
src/java/org/jivesoftware/openfire/forms/DataForm.java
View file @
e427fa23
...
...
@@ -27,16 +27,16 @@ import java.util.List;
/**
* Represents a form that could be use for gathering data as well as for reporting data
* returned from a search.
* <p
/
>
* <p>
* The form could be of the following types:
* </p>
* <ul>
* <li>form -
>
Indicates a form to fill out.</li>
* <li>submit -
>
The form is filled out, and this is the data that is being returned from
* <li>form -
>
Indicates a form to fill out.</li>
* <li>submit -
>
The form is filled out, and this is the data that is being returned from
* the form.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</li>
* <li>result -
>
Data results being returned from a search, or some other query.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</li>
* <li>result -
>
Data results being returned from a search, or some other query.</li>
* </ul>
* <p/>
* In case the form represents a search, the report will be structured in columns and rows. Use
* {@link #addReportedField(FormField)} to set the columns of the report whilst the report's rows
* can be configured using {@link #addItemFields(ArrayList)}.
...
...
@@ -54,7 +54,7 @@ public interface DataForm {
/**
* Sets the description of the data. It is similar to the title on a web page or an X window.
* You can put a
<title/>
on either a form to fill out, or a set of data results.
* You can put a
{@code <title/>}
on either a form to fill out, or a set of data results.
*
* @param title description of the data.
*/
...
...
@@ -71,16 +71,17 @@ public interface DataForm {
/**
* Returns the meaning of the data within the context. The data could be part of a form
* to fill out, a form submission or data results.
<p>
* <p
/
>
* to fill out, a form submission or data results.
* <p>
* Possible form types are:
* </p>
* <ul>
* <li>form -
>
This packet contains a form to fill out. Display it to the user (if your
* <li>form -
>
This packet contains a form to fill out. Display it to the user (if your
* program can).</li>
* <li>submit -
>
The form is filled out, and this is the data that is being returned from
* <li>submit -
>
The form is filled out, and this is the data that is being returned from
* the form.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</li>
* <li>result -
>
Data results being returned from a search, or some other query.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</li>
* <li>result -
>
Data results being returned from a search, or some other query.</li>
* </ul>
*
* @return the form's type.
...
...
@@ -89,7 +90,7 @@ public interface DataForm {
/**
* Returns the description of the data. It is similar to the title on a web page or an X
* window. You can put a
<title/>
on either a form to fill out, or a set of data results.
* window. You can put a
{@code <title/>}
on either a form to fill out, or a set of data results.
*
* @return description of the data.
*/
...
...
src/java/org/jivesoftware/openfire/forms/FormField.java
View file @
e427fa23
...
...
@@ -68,21 +68,20 @@ public interface FormField {
/**
* Sets an indicative of the format for the data to answer. Valid formats are:
* <p/>
* <ul>
* <li>text-single -
>
single line or word of text
* <li>text-private -
>
instead of showing the user what they typed, you show ***** to
* <li>text-single -
>
single line or word of text
* <li>text-private -
>
instead of showing the user what they typed, you show ***** to
* protect it
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <li>boolean -
>
0 or 1, true or false, yes or no. Default value is 0
* <li>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <li>boolean -
>
0 or 1, true or false, yes or no. Default value is 0
* <li>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* site in the middle of the form
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <li>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <li>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* on the rules for a JID.
* <li>jid-multi -
>
multiple entries for JIDs
* <li>jid-multi -
>
multiple entries for JIDs
* </ul>
*
* @param type an indicative of the format for the data to answer.
...
...
@@ -107,9 +106,10 @@ public interface FormField {
/**
* Sets a description that provides extra clarification about the question. This information
* could be presented to the user either in tool-tip, help button, or as a section of text
* before the question.
<p>
* <p
/
>
* before the question.
* <p>
* If the question is of type FIXED then the description should remain empty.
* </p>
*
* @param description provides extra clarification about the question.
*/
...
...
@@ -140,21 +140,20 @@ public interface FormField {
/**
* Returns an indicative of the format for the data to answer. Valid formats are:
* <p/>
* <ul>
* <li>text-single -
>
single line or word of text
* <li>text-private -
>
instead of showing the user what they typed, you show ***** to
* <li>text-single -
>
single line or word of text
* <li>text-private -
>
instead of showing the user what they typed, you show ***** to
* protect it
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <li>boolean -
>
0 or 1, true or false, yes or no. Default value is 0
* <li>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <li>boolean -
>
0 or 1, true or false, yes or no. Default value is 0
* <li>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* site in the middle of the form
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <li>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <li>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* on the rules for a JID.
* <li>jid-multi -
>
multiple entries for JIDs
* <li>jid-multi -
>
multiple entries for JIDs
* </ul>
*
* @return format for the data to answer.
...
...
@@ -172,9 +171,10 @@ public interface FormField {
/**
* Returns a description that provides extra clarification about the question. This information
* could be presented to the user either in tool-tip, help button, or as a section of text
* before the question.
<p>
* <p
/
>
* before the question.
* <p>
* If the question is of type FIXED then the description should remain empty.
* </p>
*
* @return description that provides extra clarification about the question.
*/
...
...
src/java/org/jivesoftware/openfire/group/AbstractGroupProvider.java
View file @
e427fa23
...
...
@@ -22,7 +22,7 @@ import org.xmpp.packet.JID;
* addition, group search operations are disabled.
*
* Subclasses may optionally implement these capabilities, and must also
* at minimum implement the {@link GroupProvider
.
getGroup(String)} method.
* at minimum implement the {@link GroupProvider
#
getGroup(String)} method.
*
* @author Tom Evans
*/
...
...
@@ -253,7 +253,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* Returns a custom {@link Map} that updates the database whenever
* a property value is added, changed, or deleted.
*
* @param
name
The target group
* @param
group
The target group
* @return The properties for the given group
*/
public
PersistableMap
<
String
,
String
>
loadProperties
(
Group
group
)
{
...
...
src/java/org/jivesoftware/openfire/group/GroupProvider.java
View file @
e427fa23
...
...
@@ -46,10 +46,11 @@ import org.xmpp.packet.JID;
public
interface
GroupProvider
{
/**
* Creates a group with the given name (optional operation).
<p>
*
* Creates a group with the given name (optional operation).
*
<p>
* The provider is responsible for setting the creation date and
* modification date to the current date/time.
* </p>
*
* @param name name of the group.
* @return the newly created group.
...
...
@@ -131,7 +132,7 @@ public interface GroupProvider {
/**
* Returns an unmodifiable Collection of all shared groups in the system for a given user.
*
* @param
JID
The bare JID for the user (node@domain)
* @param
user
The bare JID for the user (node@domain)
* @return unmodifiable Collection of all shared groups in the system for a given user.
*/
Collection
<
String
>
getSharedGroupNames
(
JID
user
);
...
...
src/java/org/jivesoftware/openfire/launcher/BrowserLauncher.java
View file @
e427fa23
...
...
@@ -35,20 +35,19 @@ import org.slf4j.LoggerFactory;
* web browser for the current user of the system to the given URL. It may support other
* protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
* tested and is not guaranteed to work.
* <p/>
* Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
* <p>Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
* that are not part of the standard JDK. What we're trying to do, though, is to take something
* that's frequently desirable but inherently platform-specific -- opening a default browser --
* and allow programmers (you, for example) to do so without worrying about dropping into native
* code or doing anything else similarly evil.
* <
p/
>
* Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without
* <
/p
>
*
<p>
Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without
* modification or a need for additional libraries. All classes that are required on certain
* platforms to allow this to run are dynamically loaded at runtime via reflection and, if not
* found, will not cause this to do anything other than returning an error when opening the
* browser.
* <
p/
>
* There are certain system requirements for this class, as it's running through Runtime.exec(),
* <
/p
>
*
<p>
There are certain system requirements for this class, as it's running through Runtime.exec(),
* which is Java's way of making a native system call. Currently, this requires that a Macintosh
* have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that
* have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
...
...
@@ -57,15 +56,15 @@ import org.slf4j.LoggerFactory;
* (Windows 95, 98, and NT 4.0, as well as later versions of all). On other systems, this drops
* back from the inherently platform-sensitive concept of a default browser and simply attempts
* to launch Netscape via a shell command.
* <
p/
>
* This code is Copyright 1999-2001 by Eric Albert (ejalbert@cs.stanford.edu) and may be
* <
/p
>
*
<p>
This code is Copyright 1999-2001 by Eric Albert (ejalbert@cs.stanford.edu) and may be
* redistributed or modified in any form without restrictions as long as the portion of this
* comment from this paragraph through the end of the comment is not removed. The author
* requests that he be notified of any application, applet, or other binary that makes use of
* this code, but that's more out of curiosity than anything and is not required. This software
* includes no warranty. The author is not repsonsible for any loss of data or functionality
* or any adverse or unexpected effects of using this software.
* <
p/
>
* <
/p
>
* Credits:
* <br>Steven Spencer, JavaWorld magazine (<a href="http://www.javaworld.com/javaworld/javatips/jw-javatip66.html">Java Tip 66</a>)
* <br>Thanks also to Ron B. Yeh, Eric Shapiro, Ben Engber, Paul Teitlebaum, Andrea Cantatore,
...
...
src/java/org/jivesoftware/openfire/launcher/GraphicUtils.java
View file @
e427fa23
...
...
@@ -341,8 +341,8 @@ public final class GraphicUtils {
* not be loaded, then <code>null</code> is returned. Images loaded here
* will be added to an internal cache based upon the full {@link URL} to
* their location.
* <p
/
>
* <em>This method replaces legacy code from JDeveloper 3.x and earlier.</em>
* <p>
* <em>This method replaces legacy code from JDeveloper 3.x and earlier.</em>
</p>
*
* @see Class#getResource(String)
* @see Toolkit#createImage(URL)
...
...
src/java/org/jivesoftware/openfire/lockout/LockOutEventDispatcher.java
View file @
e427fa23
...
...
@@ -26,9 +26,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Dispatches lockout events. The following events are supported:
* <ul>
* <li><b>accountLocked</b> --
>
An account has been disabled/locked out.</li>
* <li><b>accountUnlocked</b> --
>
An account has been enabled/unlocked.</li>
* <li><b>lockedAccountDenied</b> --
>
A locked out account has been denied login.</li>
* <li><b>accountLocked</b> --
>
An account has been disabled/locked out.</li>
* <li><b>accountUnlocked</b> --
>
An account has been enabled/unlocked.</li>
* <li><b>lockedAccountDenied</b> --
>
A locked out account has been denied login.</li>
* </ul>
* Use {@link #addListener(LockOutEventListener)} and {@link #removeListener(LockOutEventListener)}
* to add or remove {@link LockOutEventListener}.
...
...
src/java/org/jivesoftware/openfire/muc/MUCEventDispatcher.java
View file @
e427fa23
...
...
@@ -27,12 +27,12 @@ import java.util.concurrent.ConcurrentLinkedQueue;
/**
* Dispatches MUC events. The following events are supported:
* <ul>
* <li><b>occupantJoined</b> --
>
Someone joined a room.</li>
* <li><b>occupantLeft</b> --
>
Someone left a room.</li>
* <li><b>nicknameChanged</b> --
>
A nickname was changed in a room.</li>
* <li><b>messageReceived</b> --
>
A message was received in a room.</li>
* <li><b>roomCreated</b> --
>
A room was created.</li>
* <li><b>roomDestr
yod</b> -->
A room was destroyed.</li>
* <li><b>occupantJoined</b> --
>
Someone joined a room.</li>
* <li><b>occupantLeft</b> --
>
Someone left a room.</li>
* <li><b>nicknameChanged</b> --
>
A nickname was changed in a room.</li>
* <li><b>messageReceived</b> --
>
A message was received in a room.</li>
* <li><b>roomCreated</b> --
>
A room was created.</li>
* <li><b>roomDestr
oyed</b> -->
A room was destroyed.</li>
* </ul>
* Use {@link #addListener(MUCEventListener)} and {@link #removeListener(MUCEventListener)}
* to add or remove {@link MUCEventListener}.
...
...
src/java/org/jivesoftware/openfire/muc/MUCRole.java
View file @
e427fa23
...
...
@@ -29,9 +29,9 @@ import org.xmpp.packet.Presence;
* Defines the permissions and actions that a MUCUser may use in
* a particular room. Each MUCRole defines the relationship between
* a MUCRoom and a MUCUser.
* <p
/
>
* <p>
* MUCUsers can play different roles in different chatrooms.
*
*
</p>
* @author Gaston Dombiak
*/
public
interface
MUCRole
{
...
...
@@ -54,9 +54,10 @@ public interface MUCRole {
* Call this method to promote or demote a user's role in a chatroom.
* It is common for the chatroom or other chat room members to change
* the role of users (a moderator promoting another user to moderator
* status for example).
<p>
* <p
/
>
* status for example).
* <p>
* Owning ChatUsers should have their membership roles updated.
* </p>
*
* @param newRole The new role that the user will play.
* @throws NotAllowedException Thrown if trying to change the moderator role to an owner or
...
...
src/java/org/jivesoftware/openfire/muc/MUCUser.java
View file @
e427fa23
...
...
@@ -29,11 +29,12 @@ import org.xmpp.packet.Packet;
* the chat server. Centralizing chat users to the Jabber entity that
* sends and receives the chat messages allows us to create quality of
* service, authorization, and resource decisions on a real-user basis.
* <p
/
>
* <p>
* Most chat users in a typical s2s scenario will not be local users.
* </p><p>
* MUCUsers play one or more roles in one or more chat rooms on the
* server.
* </p>
*
* @author Gaston Dombiak
*/
...
...
src/java/org/jivesoftware/openfire/pubsub/PubSubService.java
View file @
e427fa23
...
...
@@ -67,7 +67,7 @@ public interface PubSubService {
* Returns a registry of the presence's show value of users that subscribed to a node of
* the pubsub service and for which the node only delivers notifications for online users
* or node subscriptions deliver events based on the user presence show value. Offline
* users will not have an entry in the map. Note: Key-
> bare JID and Value->
Map whose key
* users will not have an entry in the map. Note: Key-
> bare JID and Value->
Map whose key
* is full JID of connected resource and value is show value of the last received presence.
*
* @return a registry of the presence's show value of users that subscribed to a node
...
...
src/java/org/jivesoftware/openfire/roster/Roster.java
View file @
e427fa23
...
...
@@ -62,7 +62,7 @@ import org.xmpp.packet.Presence;
/**
* <p>A roster is a list of users that the user wishes to know if they are online.</p>
* <p>Rosters are similar to buddy groups in popular IM clients. The Roster class is
* a representation of the roster data.<
p/
>
* a representation of the roster data.<
/p
>
*
* <p>Updates to this roster is effectively a change to the user's roster. To reflect this,
* the changes to this class will automatically update the persistently stored roster, as well as
...
...
@@ -571,7 +571,6 @@ public class Roster implements Cacheable, Externalizable {
/**
* <p>Broadcast the presence update to all subscribers of the roter.</p>
* <p/>
* <p>Any presence change typically results in a broadcast to the roster members.</p>
*
* @param packet The presence packet to broadcast
...
...
src/java/org/jivesoftware/openfire/roster/RosterEventDispatcher.java
View file @
e427fa23
...
...
@@ -26,10 +26,10 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Dispatches roster events. The following events are supported:
* <ul>
* <li><b>rosterLoaded</b> --
>
A roster has just been loaded.</li>
* <li><b>contactAdded</b> --
>
A contact has been added to a roster.</li>
* <li><b>contactUpdated</b> --
>
A contact has been updated of a roster.</li>
* <li><b>contactDeleted</b> --
>
A contact has been deleted from a roster.</li>
* <li><b>rosterLoaded</b> --
>
A roster has just been loaded.</li>
* <li><b>contactAdded</b> --
>
A contact has been added to a roster.</li>
* <li><b>contactUpdated</b> --
>
A contact has been updated of a roster.</li>
* <li><b>contactDeleted</b> --
>
A contact has been deleted from a roster.</li>
* </ul>
* Use {@link #addListener(RosterEventListener)} and {@link #removeListener(RosterEventListener)}
* to add or remove {@link RosterEventListener}.
...
...
src/java/org/jivesoftware/openfire/roster/RosterItem.java
View file @
e427fa23
...
...
@@ -44,7 +44,6 @@ import java.util.*;
* <p>The server doesn't need to know anything about roster groups so they are
* not stored with easy retrieval or manipulation in mind. The important data
* elements of a roster item (beyond the jid adddress of the roster entry) includes:</p>
* <p/>
* <ul>
* <li>nick - A nickname for the user when used in this roster</li>
* <li>sub - A subscription type: to, from, none, both</li>
...
...
@@ -508,7 +507,6 @@ public class RosterItem implements Cacheable, Externalizable {
/**
* <p>Update the cached item as a copy of the given item.</p>
* <p/>
* <p>A convenience for getting the item and setting each attribute.</p>
*
* @param item The item who's settings will be copied into the cached copy
...
...
src/java/org/jivesoftware/openfire/user/JDBCUserProvider.java
View file @
e427fa23
...
...
@@ -42,22 +42,19 @@ import org.xmpp.packet.JID;
/**
* The JDBC user provider allows you to use an external database to define the users.
* It is best used with the JDBCAuthProvider & JDBCGroupProvider to provide integration
* It is best used with the JDBCAuthProvider &
amp;
JDBCGroupProvider to provide integration
* between your external system and Openfire. All data is treated as read-only so any
* set operations will result in an exception.<p/>
*
* For the seach facility, the SQL will be constructed from the SQL in the <i>search</i>
* set operations will result in an exception.
* <p>For the seach facility, the SQL will be constructed from the SQL in the <i>search</i>
* section below, as well as the <i>usernameField</i>, the <i>nameField</i> and the
* <i>emailField</i>.<p/>
*
* To enable this provider, set the following in the system properties:<p/>
*
* <i>emailField</i>.</p>
* <p>To enable this provider, set the following in the system properties:</p>
* <ul>
* <li><tt>provider.user.className = org.jivesoftware.openfire.user.JDBCUserProvider</tt></li>
* </ul>
*
*
<p>
* Then you need to set your driver, connection string and SQL statements:
* <
p/
>
* <
/p
>
* <ul>
* <li><tt>jdbcProvider.driver = com.mysql.jdbc.Driver</tt></li>
* <li><tt>jdbcProvider.connectionString = jdbc:mysql://localhost/dbname?user=username&password=secret</tt></li>
...
...
src/java/org/jivesoftware/openfire/user/PresenceEventDispatcher.java
View file @
e427fa23
...
...
@@ -30,10 +30,10 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Dispatches presence events. The following events are supported:
* <ul>
* <li><b>availableSession</b> --
>
A session is now available to receive communication.</li>
* <li><b>unavailableSession</b> --
>
A session is no longer available.</li>
* <li><b>presencePriorityChanged</b> --
>
The priority of a resource has changed.</li>
* <li><b>presenceChanged</b> --
>
The show or status value of an available session has changed.</li>
* <li><b>availableSession</b> --
>
A session is now available to receive communication.</li>
* <li><b>unavailableSession</b> --
>
A session is no longer available.</li>
* <li><b>presencePriorityChanged</b> --
>
The priority of a resource has changed.</li>
* <li><b>presenceChanged</b> --
>
The show or status value of an available session has changed.</li>
* </ul>
* Use {@link #addListener(PresenceEventListener)} and
* {@link #removeListener(PresenceEventListener)} to add or remove {@link PresenceEventListener}.
...
...
src/java/org/jivesoftware/openfire/vcard/VCardEventDispatcher.java
View file @
e427fa23
...
...
@@ -27,9 +27,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Dispatches vCard events. The following events are supported:
* <ul>
* <li><b>VCardCreated</b> --
>
A VCard has been created.</li>
* <li><b>VCardDeleted</b> --
>
A VCard has been deleted.</li>
* <li><b>VCardUpdate</b> --
>
A VCard has been updated.</li>
* <li><b>VCardCreated</b> --
>
A VCard has been created.</li>
* <li><b>VCardDeleted</b> --
>
A VCard has been deleted.</li>
* <li><b>VCardUpdate</b> --
>
A VCard has been updated.</li>
* </ul>
* Use {@link #addListener(org.jivesoftware.openfire.vcard.VCardListener)}
* to add or remove {@link org.jivesoftware.openfire.vcard.VCardListener}.
...
...
src/java/org/jivesoftware/openfire/vcard/VCardManager.java
View file @
e427fa23
...
...
@@ -104,11 +104,12 @@ public class VCardManager extends BasicModule implements ServerFeaturesProvider
* has no defined text then an empty string will be returned. However, if the property
* does not exist then a <tt>null</tt> value will be answered. Advanced user systems can
* use vCard information to link to user directory information or store other relevant
* user information.</p>
* user information.
* <p>
* Note that many elements in the vCard may have the same path so the returned value in that
* case will be the first found element. For instance, "ADR:STREET" may be present in
* many addresses of the user. Use {@link #getVCard(String)} to get the whole vCard of
* the user.
* the user.
</p>
*
* @param username The username of the user to return his vCard property.
* @param name The name of the vcard property to retrieve encoded with ':' to denote
...
...
src/java/org/jivesoftware/util/Base64.java
View file @
e427fa23
...
...
@@ -9,7 +9,7 @@ package org.jivesoftware.util;
* </p>
* <ul>
* <li>v2.2.1 - Fixed bug using URL_SAFE and ORDERED encodings. Fixed bug
* when using very small files (~
<
40 bytes).</li>
* when using very small files (~
<
40 bytes).</li>
* <li>v2.2 - Added some helper methods for encoding/decoding directly from
* one file to the next. Also added a main() method to support command line
* encoding/decoding from one file to the next. Also added these Base64 dialects:
...
...
src/java/org/jivesoftware/util/Blowfish.java
View file @
e427fa23
...
...
@@ -21,9 +21,9 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
/**
* A class that provides easy Blowfish encryption.
<p>
* A class that provides easy Blowfish encryption.
*
* @author Markus Hahn
<markus_hahn@gmx.net>
* @author Markus Hahn
<markus_hahn@gmx.net>
* @author Gaston Dombiak
*/
public
class
Blowfish
implements
Encryptor
{
...
...
src/java/org/jivesoftware/util/ElementUtil.java
View file @
e427fa23
...
...
@@ -34,7 +34,7 @@ import java.util.*;
* </Y>
* </X>
* </pre>
* And X.Y.Z:key to anotherValue as:</p>
*
<p>
And X.Y.Z:key to anotherValue as:</p>
* <pre>
* <X>
* <Y>
...
...
@@ -143,9 +143,9 @@ public class ElementUtil {
* Return all values who's path matches the given property name as a String array,
* or an empty array if the if there are no children. You MAY NOT use the atttribute
* markup (using a ':' in the last element name) with this call.
* <p
/
>
* <p>
* getProperties() allows you to retrieve several values with the same property name.
* For example, consider the XML file entry:
* For example, consider the XML file entry:
</p>
* <pre>
* <foo>
* <bar>
...
...
src/java/org/jivesoftware/util/HttpClientWithTimeoutFeedFetcher.java
View file @
e427fa23
...
...
@@ -62,8 +62,8 @@ import java.util.zip.GZIPInputStream;
* which fixes a bug where users of the admin console who installed Clearspace
* behind a proxy server would have to wait upwards of 5 minutes in order for the
* HTTP connection to jivesoftware.com/blog/feed to timeout.
*
<p/>
*
S
ee <a href="http://www.jivesoftware.com/issues/browse/CS-669">http://www.jivesoftware.com/issues/browse/CS-669</a>
*
*
@s
ee <a href="http://www.jivesoftware.com/issues/browse/CS-669">http://www.jivesoftware.com/issues/browse/CS-669</a>
*
*/
public
class
HttpClientWithTimeoutFeedFetcher
extends
AbstractFeedFetcher
{
...
...
src/java/org/jivesoftware/util/IntEnum.java
View file @
e427fa23
...
...
@@ -25,8 +25,8 @@ import java.util.*;
/**
* <p>A type safe enumeration object that is keyed by an Int
* value for switch statements and storage in DBs.</p>
* <p
/
>
*
<p>
Used for indicating distinct states in a generic manner
* <p>
* Used for indicating distinct states in a generic manner
* where each enum should have an associated int value. The
* given int should be unique for each enum value as hashCode
* and equals depends solely on the int value given. Most
...
...
src/java/org/jivesoftware/util/JiveConstants.java
View file @
e427fa23
...
...
@@ -45,7 +45,7 @@ public class JiveConstants {
* a unified date/time format for XMPP.
*
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @see
{@link org.jivesoftware.util.XMPPDateTimeFormat}
* @see
org.jivesoftware.util.XMPPDateTimeFormat
*/
@Deprecated
public
static
final
String
XMPP_DATETIME_FORMAT
=
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
;
...
...
@@ -56,7 +56,7 @@ public class JiveConstants {
* a specialized date format for historical XMPP usage.
*
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @see
{@link org.jivesoftware.util.XMPPDateTimeFormat}
* @see
org.jivesoftware.util.XMPPDateTimeFormat
*/
@Deprecated
public
static
final
String
XMPP_DELAY_DATETIME_FORMAT
=
"yyyyMMdd'T'HH:mm:ss"
;
...
...
src/java/org/jivesoftware/util/JiveGlobals.java
View file @
e427fa23
...
...
@@ -787,7 +787,7 @@ public class JiveGlobals {
* names are hidden from the Openfire console.
*
* @param name The name of the property
* @return
s
True if the property is considered sensitive, otherwise false
* @return True if the property is considered sensitive, otherwise false
*/
public
static
boolean
isPropertySensitive
(
String
name
)
{
...
...
@@ -802,7 +802,7 @@ public class JiveGlobals {
* Determines whether a property is configured for encryption.
*
* @param name The name of the property
* @return
s
True if the property is stored using encryption, otherwise false
* @return True if the property is stored using encryption, otherwise false
*/
public
static
boolean
isPropertyEncrypted
(
String
name
)
{
if
(
securityProperties
==
null
)
{
...
...
@@ -818,7 +818,7 @@ public class JiveGlobals {
*
* @param name The name of the property
* @param encrypt True to encrypt the property, false to decrypt
* @return
s
True if the property's encryption status changed, otherwise false
* @return True if the property's encryption status changed, otherwise false
*/
public
static
boolean
setPropertyEncrypted
(
String
name
,
boolean
encrypt
)
{
if
(
securityProperties
==
null
)
{
...
...
@@ -839,7 +839,7 @@ public class JiveGlobals {
/**
* Fetches the current value of the property encryption key.
*
* @return
s
The property encryption key
* @return The property encryption key
*/
public
static
Encryptor
getPropertyEncryptor
()
{
if
(
securityProperties
==
null
)
{
...
...
src/java/org/jivesoftware/util/LinkedListNode.java
View file @
e427fa23
...
...
@@ -24,16 +24,16 @@ package org.jivesoftware.util;
* Doubly linked node in a LinkedList. Most LinkedList implementations keep the
* equivalent of this class private. We make it public so that references
* to each node in the list can be maintained externally.
* <p
/
>
* <p>
* Exposing this class lets us make remove operations very fast. Remove is
* built into this class and only requires two reference reassignments. If
* remove existed in the main LinkedList class, a linear scan would have to
* be performed to find the correct node to delete.
* <p
/
>
* be performed to find the correct node to delete.
</p>
* <p>
* The linked list implementation was specifically written for the Jive
* cache system. While it can be used as a general purpose linked list, for
* most applications, it is more suitable to use the linked list that is part
* of the Java Collections package.
* of the Java Collections package.
</p>
*
* @author Jive Software
* @see org.jivesoftware.util.LinkedList
...
...
@@ -48,12 +48,12 @@ public class LinkedListNode<E> {
* This class is further customized for the CoolServlets cache system. It
* maintains a timestamp of when a Cacheable object was first added to
* cache. Timestamps are stored as long values and represent the number
* of milleseconds passed since January 1, 1970 00:00:00.000 GMT.
<p>
* <p
/
>
* of milleseconds passed since January 1, 1970 00:00:00.000 GMT.
* <p>
* The creation timestamp is used in the case that the cache has a
* maximum lifetime set. In that case, when
* [current time] - [creation time]
>
[max lifetime], the object will be
* deleted from cache.
* [current time] - [creation time]
>
[max lifetime], the object will be
* deleted from cache.
</p>
*/
public
long
timestamp
;
...
...
src/java/org/jivesoftware/util/LocaleUtils.java
View file @
e427fa23
...
...
@@ -256,13 +256,13 @@ public class LocaleUtils {
/**
* Returns a list of all available time zone's as a String [][]. The first
* entry in each list item is the timeZoneID, and the second is the
* display name.
<p>
* <p
/
>
* display name.
* <p>
* The list of time zones attempts to be inclusive of all of the worlds
* zones while being as concise as possible. For "en" language locales
* the name is a friendly english name. For non-"en" language locales
* the standard JDK name is used for the given Locale. The GMT+/- time
* is also included for readability.
* is also included for readability.
</p>
*
* @return a list of time zones, as a tuple of the zime zone ID, and its
* display name.
...
...
src/java/org/jivesoftware/util/PropertyEventDispatcher.java
View file @
e427fa23
...
...
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
* and optional parameters, as follows:<p>
*
* <table border="1">
* <caption></caption>
* <tr><th>Event Type</th><th>Extra Params</th></tr>
* <tr><td>{@link EventType#property_set property_set}</td><td>A param named <tt>value</tt> that
* has the value of the property set.</td></tr>
...
...
src/java/org/jivesoftware/util/StringUtils.java
View file @
e427fa23
...
...
@@ -41,7 +41,7 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
/**
* Utility class to peform common String manipulation algorithms.
* Utility class to pe
r
form common String manipulation algorithms.
*/
public
class
StringUtils
{
...
...
@@ -255,7 +255,7 @@ public class StringUtils {
/**
* This method takes a string which may contain HTML tags (ie, <b>,
* <table>, etc) and converts the '<
'
' and '>' characters to
* <table>, etc) and converts the '<
;
' and '>' characters to
* their HTML escape sequences. It will also replace LF with <br>.
*
* @param in the text to be converted.
...
...
@@ -268,7 +268,7 @@ public class StringUtils {
/**
* This method takes a string which may contain HTML tags (ie, <b>,
* <table>, etc) and converts the '<
'
' and '>' characters to
* <table>, etc) and converts the '<
;
' and '>' characters to
* their HTML escape sequences.
*
* @param in the text to be converted.
...
...
@@ -333,20 +333,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* <p
/
>
* determining the original password.
</p>
* <p>
* In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* two passwords will generate the same hash, we know if the user gave us
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* method is used instead.
* method is used instead.
</p>
*
* @param data the String to compute the hash of.
* @return a hashed version of the passed-in String
...
...
@@ -361,20 +361,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* <p
/
>
* determining the original password.
</p>
* <p>
* In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* two passwords will generate the same hash, we know if the user gave us
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* method is used instead.
* method is used instead.
</p>
*
* @param data the String to compute the hash of.
* @param algorithm the name of the algorithm requested.
...
...
@@ -396,20 +396,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* <
p/
>
* In Jive, every time a user logs in, we simply
* <
/p
>
*
<p>
In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* two passwords will generate the same hash, we know if the user gave us
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* method is used instead.
* method is used instead.
</p>
*
* @param bytes the byte array to compute the hash of.
* @param algorithm the name of the algorithm requested.
...
...
@@ -438,10 +438,10 @@ public class StringUtils {
/**
* Turns an array of bytes into a String representing each byte as an
* unsigned hex number.
* <p
/
>
* <p>
* Method by Santeri Paavolainen, Helsinki Finland 1996<br>
* (c) Santeri Paavolainen, Helsinki Finland 1996<br>
* Distributed under LGPL.
* Distributed under LGPL.
</p>
*
* @param bytes an array of bytes to convert to a hex-string
* @return generated hex string
...
...
@@ -627,10 +627,10 @@ public class StringUtils {
* of the specified length. The method uses the Random class that is
* built-in to Java which is suitable for low to medium grade security uses.
* This means that the output is only pseudo random, i.e., each number is
* mathematically generated so is not truly random.
<p>
* <p
/
>
* mathematically generated so is not truly random.
* <p>
* The specified length must be at least one. If not, the method will return
* null.
* null.
</p>
*
* @param length the desired length of the random String to return.
* @return a random String of numbers and letters of the specified length.
...
...
@@ -653,10 +653,10 @@ public class StringUtils {
* newline character before <code>length</code>, the String will be chopped
* there. If no newline or whitespace is found in <code>string</code> up to
* the index <code>length</code>, the String will chopped at <code>length</code>.
* <p
/
>
* <p>
* For example, chopAtWord("This is a nice String", 10) will return
* "This is a" which is the first word boundary less than or equal to 10
* characters into the original String.
* characters into the original String.
</p>
*
* @param string the String to chop.
* @param length the index in <code>string</code> to start looking for a
...
...
@@ -715,9 +715,9 @@ public class StringUtils {
* are split apart at the earliest wordbreak or at maxLength, whichever is
* sooner. If the width specified is less than 5 or greater than the input
* Strings length the string will be returned as is.
* <p
/
>
* <p>
* Please note that this method can be lossy - trailing spaces on wrapped
* lines may be trimmed.
* lines may be trimmed.
</p>
*
* @param input the String to reformat.
* @param width the maximum length of any one line.
...
...
src/java/org/jivesoftware/util/XMLProperties.java
View file @
e427fa23
...
...
@@ -65,7 +65,6 @@ import org.slf4j.LoggerFactory;
* </Y>
* </X>
* </pre>
* <p/>
* The XML file is passed in to the constructor and must be readable and
* writable. Setting property values will automatically persist those value
* to disk. The file encoding used is UTF-8.
...
...
src/java/org/jivesoftware/util/XMLWriter.java
View file @
e427fa23
...
...
@@ -175,7 +175,7 @@ public class XMLWriter extends XMLFilterImpl implements LexicalHandler {
* Sets the maximum allowed character code that should be allowed
* unescaped
* such as 127 in US-ASCII (7 bit) or 255 in ISO-* (8 bit)
* or -1 to not escape any characters (other than the special XML characters like
< > &
)
* or -1 to not escape any characters (other than the special XML characters like
< > &
)
*
* If this is not explicitly set then it is defaulted from the encoding.
*
...
...
src/java/org/jivesoftware/util/XMPPDateTimeFormat.java
View file @
e427fa23
...
...
@@ -34,7 +34,7 @@ import java.util.regex.Pattern;
* Utility class for date/time format conversions as specified in
* <a href="http://www.xmpp.org/extensions/xep-0082.html">XEP-0082</a> and
* <a href="http://www.xmpp.org/extensions/xep-0090.html">XEP-0090</a> and
* For Date -
>
String converstion FastDateFormat is used
* For Date -
>
String converstion FastDateFormat is used
*
*/
//@ThreadSafe
...
...
@@ -94,7 +94,7 @@ public class XMPPDateTimeFormat {
* This method either returns a Date instance as result or it will return null or throw a ParseException
* in case the String couldn't be parsed.
*
* @param dateStr the String that should be parsed
* @param dateStr
ing
the String that should be parsed
* @return the parsed date or null if the String could not be parsed
* @throws ParseException
*/
...
...
src/java/org/jivesoftware/util/cache/CacheFactory.java
View file @
e427fa23
...
...
@@ -45,11 +45,11 @@ import org.slf4j.LoggerFactory;
/**
* Creates Cache objects. The returned caches will either be local or clustered
* depending on the clustering enabled setting and a user's license.
<p>
*
<p/>
* When clustered caching is turned on, cache usage statistics for all caches
* depending on the clustering enabled setting and a user's license.
*
*
<p>
When clustered caching is turned on, cache usage statistics for all caches
* that have been created are periodically published to the clustered cache
* named "opt-$cacheStats".
* named "opt-$cacheStats".
</p>
*
*/
@SuppressWarnings
(
"rawtypes"
)
...
...
src/java/org/jivesoftware/util/cache/ComponentCacheWrapper.java
View file @
e427fa23
...
...
@@ -24,7 +24,7 @@ package org.jivesoftware.util.cache;
* This specialized wrapper is used for the Components cache, which
* should not be purged.
*
* See
{@link http://issues.igniterealtime.org/browse/OF-114}
for more info.
* See
<a href="http://issues.igniterealtime.org/browse/OF-114">OF-114</a>
for more info.
*
*/
public
class
ComponentCacheWrapper
<
K
,
V
>
extends
CacheWrapper
<
K
,
V
>
{
...
...
src/java/org/jivesoftware/util/cache/ExternalizableUtil.java
View file @
e427fa23
...
...
@@ -226,7 +226,7 @@ public class ExternalizableUtil {
/**
* Writes a collection of Externalizable objects. The collection passed as a parameter
* must be a collection and not a <tt>null</
null
> value.
* must be a collection and not a <tt>null</
tt
> value.
*
* @param out the output stream.
* @param value the collection of Externalizable objects. This value must not be null.
...
...
@@ -238,7 +238,7 @@ public class ExternalizableUtil {
/**
* Writes a collection of Serializable objects. The collection passed as a parameter
* must be a collection and not a <tt>null</
null
> value.
* must be a collection and not a <tt>null</
tt
> value.
*
* @param out the output stream.
* @param value the collection of Serializable objects. This value must not be null.
...
...
@@ -250,7 +250,7 @@ public class ExternalizableUtil {
/**
* Reads a collection of Externalizable objects and adds them to the collection passed as a parameter. The
* collection passed as a parameter must be a collection and not a <tt>null</
null
> value.
* collection passed as a parameter must be a collection and not a <tt>null</
tt
> value.
*
* @param in the input stream.
* @param value the collection of Externalizable objects. This value must not be null.
...
...
@@ -277,7 +277,7 @@ public class ExternalizableUtil {
/**
* Reads a collection of Serializable objects and adds them to the collection passed as a parameter. The
* collection passed as a parameter must be a collection and not a <tt>null</
null
> value.
* collection passed as a parameter must be a collection and not a <tt>null</
tt
> value.
*
* @param in the input stream.
* @param value the collection of Serializable objects. This value must not be null.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment