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;
...
@@ -43,27 +43,27 @@ import java.io.IOException;
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* currently selected sidebar item.</li>
* currently selected sidebar item.</li>
* <li><tt>heaadercss</tt> (optional) - the CSS class name used to decorate the LI of the header
* <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 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
* <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
* 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>
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> ... </jive:subsidebar> <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
* 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>[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>[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>[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
{
public
class
SidebarTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/admin/SubSidebarTag.java
View file @
e427fa23
...
@@ -27,14 +27,14 @@ import javax.servlet.jsp.JspTagException;
...
@@ -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
* <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>
* as a child of the {@link SidebarTag}.</p>
*
*
* <p>Sample usage:<
ul
><tt>
* <p>Sample usage:<
/p><pre
><tt>
*
*
* <jive:sidebar bean="jivepageinfo"> <br>
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> <br>
* <jive:subsidebar> <br>
* <a href="[url]">[name]</a> <br>
* <a href="[url]">[name]</a> <br>
* </jive:subsidebar> <br>
* </jive:subsidebar> <br>
* </jive:sidebar></tt></
ul></p
>
* </jive:sidebar></tt></
pre
>
*
*
* <p>Note, this class has no attributes.</p>
* <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;
...
@@ -34,7 +34,7 @@ import java.io.IOException;
* <p>A simple JSP tag for displaying sub-navigation bar information in the admin console. The
* <p>A simple JSP tag for displaying sub-navigation bar information in the admin console. The
* {@link TabsTag} is similiar to this one.</p>
* {@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
* <li><tt>bean</tt> (required) - the id of the request attribute which is a
* {@link AdminPageBean} instance. This class holds information
* {@link AdminPageBean} instance. This class holds information
* needed to properly render the admin console sidebar.</li>
* needed to properly render the admin console sidebar.</li>
...
@@ -42,27 +42,27 @@ import java.io.IOException;
...
@@ -42,27 +42,27 @@ import java.io.IOException;
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* <li><tt>currentcss</tt> (optional) - the CSS class name used to decorate the LI of the
* currently selected sidebar item.</li>
* currently selected sidebar item.</li>
* <li><tt>heaadercss</tt> (optional) - the CSS class name used to decorate the LI of the header
* <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 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
* <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
* 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>
* <jive:sidebar bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <jive:subsidebar> ... </jive:subsidebar> <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>
* {@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>[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>[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>[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
{
public
class
SubnavTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/admin/TabsTag.java
View file @
e427fa23
...
@@ -34,29 +34,29 @@ import java.util.List;
...
@@ -34,29 +34,29 @@ import java.util.List;
* <p>A simple JSP tag for displaying tab information in the admin console. The
* <p>A simple JSP tag for displaying tab information in the admin console. The
* {@link SidebarTag} is similiar to this one.</p>
* {@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
* <li><tt>bean</tt> (required) - the id of the request attribute which is a
* {@link AdminPageBean} instance. This class holds information
* {@link AdminPageBean} instance. This class holds information
* needed to properly render the admin console tabs.</li>
* 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>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
* <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 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
* <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
* 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>
* <jive:tabs bean="jivepageinfo"> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* <a href="[url]" title="[description]">[name]</a> <br>
* </jive:tabs></tt></
ul
>
* </jive:tabs></tt></
pre
>
*
*
* Available token are: <ul>
* Available token are: <ul>
* <li><tt>[id]</tt> - the ID of the tab, usually not needed.</li>
* <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>[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>[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
{
public
class
TabsTag
extends
BodyTagSupport
{
...
...
src/java/org/jivesoftware/database/CachedPreparedStatement.java
View file @
e427fa23
...
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
...
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
/**
* Allows PreparedStatement information to be cached. A prepared statement consists of
* Allows PreparedStatement information to be cached. A prepared statement consists of
* a SQL statement containing bind variables as well as variable values. For example,
* 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
* 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
* encapsulates both the SQL string and bind variable values so that actual
* PreparedStatement can be created from that information later.
* 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;
...
@@ -25,10 +25,10 @@ import java.sql.SQLException;
/**
/**
* Abstract class that defines the connection provider framework. Other classes
* Abstract class that defines the connection provider framework. Other classes
* extend this abstract class to make connection to actual data sources.
<p>
* extend this abstract class to make connection to actual data sources.
* <p
/
>
* <p>
* It is expected that each subclass be a JavaBean, so that properties of
* 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
* @author Jive Software
*/
*/
...
...
src/java/org/jivesoftware/database/DbConnectionManager.java
View file @
e427fa23
...
@@ -329,8 +329,7 @@ public class DbConnectionManager {
...
@@ -329,8 +329,7 @@ public class DbConnectionManager {
* ...
* ...
* } </pre>
* } </pre>
*
*
* @param rs the result set to close.
* @param pstmt the statement to close.
* @param stmt the statement to close.
*/
*/
public
static
void
fastcloseStmt
(
PreparedStatement
pstmt
)
throws
SQLException
public
static
void
fastcloseStmt
(
PreparedStatement
pstmt
)
throws
SQLException
{
{
...
@@ -357,8 +356,7 @@ public class DbConnectionManager {
...
@@ -357,8 +356,7 @@ public class DbConnectionManager {
* ...
* ...
* } </pre>
* } </pre>
*
*
* @param rs the result set to close.
* @param pstmt the statement to close.
* @param stmt the statement to close.
*/
*/
public
static
void
fastcloseStmt
(
ResultSet
rs
,
PreparedStatement
pstmt
)
throws
SQLException
public
static
void
fastcloseStmt
(
ResultSet
rs
,
PreparedStatement
pstmt
)
throws
SQLException
{
{
...
@@ -402,7 +400,6 @@ public class DbConnectionManager {
...
@@ -402,7 +400,6 @@ public class DbConnectionManager {
* Closes a statement and database connection (returning the connection to
* Closes a statement and database connection (returning the connection to
* the connection pool). This method should be called within the finally section of
* the connection pool). This method should be called within the finally section of
* your database logic, as in the following example:
* your database logic, as in the following example:
* <p/>
* <pre>
* <pre>
* Connection con = null;
* Connection con = null;
* PrepatedStatment pstmt = null;
* PrepatedStatment pstmt = null;
...
@@ -431,7 +428,6 @@ public class DbConnectionManager {
...
@@ -431,7 +428,6 @@ public class DbConnectionManager {
* statements associated with the connection should be closed before calling this method.
* 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
* This method should be called within the finally section of your database logic, as
* in the following example:
* in the following example:
* <p/>
* <pre>
* <pre>
* Connection con = null;
* Connection con = null;
* try {
* try {
...
...
src/java/org/jivesoftware/database/JNDIDataSourceProvider.java
View file @
e427fa23
...
@@ -35,11 +35,11 @@ import org.slf4j.LoggerFactory;
...
@@ -35,11 +35,11 @@ import org.slf4j.LoggerFactory;
* An implementation of ConnectionProvider that utilizes a JDBC 2.0 DataSource
* An implementation of ConnectionProvider that utilizes a JDBC 2.0 DataSource
* made available via JNDI. This is useful for application servers where a pooled
* 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
* data connection is already provided so Jive can share the pool with the
* other applications.
<p>
* other applications.
* <p
/
>
* <p>
* The JNDI location of the DataSource stored as the Jive property
* The JNDI location of the DataSource stored as the Jive property
* <code>database.JNDIProvider.name</code>. This can be overridden by setting
* <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>
* @author <a href="mailto:joe@truemesh.com">Joe Walnes</a>
* @see ConnectionProvider
* @see ConnectionProvider
...
...
src/java/org/jivesoftware/database/SequenceManager.java
View file @
e427fa23
...
@@ -34,18 +34,17 @@ import org.slf4j.LoggerFactory;
...
@@ -34,18 +34,17 @@ import org.slf4j.LoggerFactory;
/**
/**
* Manages sequences of unique ID's that get stored in the database. Database support for sequences
* 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
* 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
* 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>
* <ul>
* <li>There is no need to go to the database every time we want a new unique id.
* <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>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>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
* <li>There can be gaps in ID's after server restarts since blocks will get "lost" if the block
* size is greater than 1.
* 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
* 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
* created often have a block size of 1, while frequently created objects such as entries and
* comments have larger block sizes.
* comments have larger block sizes.
...
@@ -95,10 +94,10 @@ public class SequenceManager {
...
@@ -95,10 +94,10 @@ public class SequenceManager {
/**
/**
* Returns the next id for an object that has defined the annotation {@link JiveID}.
* 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
* 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>
* <code>
* \@JiveID(10)
* \@JiveID(10)
* public class MyClass {
* public class MyClass {
...
...
src/java/org/jivesoftware/openfire/IQHandlerInfo.java
View file @
e427fa23
...
@@ -23,7 +23,6 @@ package org.jivesoftware.openfire;
...
@@ -23,7 +23,6 @@ package org.jivesoftware.openfire;
/**
/**
* <p>A simple meta-data class that stores several related tools for
* <p>A simple meta-data class that stores several related tools for
* generic IQ protocol handling.</p>
* generic IQ protocol handling.</p>
* <p/>
* <p>To handle an IQ packet, the server needs to know:</p>
* <p>To handle an IQ packet, the server needs to know:</p>
* <ul>
* <ul>
* <li>The fully qualified name of the iq sub-element. IQ packets are
* <li>The fully qualified name of the iq sub-element. IQ packets are
...
@@ -32,7 +31,6 @@ package org.jivesoftware.openfire;
...
@@ -32,7 +31,6 @@ package org.jivesoftware.openfire;
* server (no 'to' attribute).</li>
* server (no 'to' attribute).</li>
* <li>The IQ parser to use to generate the correct IQ packet.</li>
* <li>The IQ parser to use to generate the correct IQ packet.</li>
* </ul>
* </ul>
* <p/>
* <p>We provide this information by having all IQHandlers report
* <p>We provide this information by having all IQHandlers report
* their info. Interested parties can watch for IQHandlers in the service
* their info. Interested parties can watch for IQHandlers in the service
* lookup and build appropriate data structures on the current state of
* 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;
...
@@ -46,7 +46,6 @@ import java.util.List;
* <p>In almost all cases, the caller should not be concerned with what
* <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
* 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>
* 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.
* <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.
* 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
* routing to any address at server.com should set the name to null, the host to
...
@@ -55,7 +54,6 @@ import java.util.List;
...
@@ -55,7 +54,6 @@ import java.util.List;
* managers should add a route for both the generic user@server.com as well as
* 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
* user@server.com/resource routes (knowing that one is an alias for the other
* is the responsibility of the session or session manager).</p>
* 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
* <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
* 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>
* node trees. The node tree is arranged in the following heirarchy:</p>
...
@@ -81,7 +79,6 @@ import java.util.List;
...
@@ -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
* 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>
* branch for that node if no leaf exists.</li>
* </ul>
* </ul>
* <p/>
* <p>Note: it is important that any component or action affecting routes
* <p>Note: it is important that any component or action affecting routes
* update the routing table immediately.</p>
* update the routing table immediately.</p>
*
*
...
...
src/java/org/jivesoftware/openfire/SessionResultFilter.java
View file @
e427fa23
...
@@ -27,14 +27,14 @@ import java.util.Date;
...
@@ -27,14 +27,14 @@ import java.util.Date;
/**
/**
* Filters and sorts lists of sessions. This allows for a very rich set of possible
* 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
* 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)
* The class also supports pagination of results with the setStartIndex(int)
* and setNumResults(int) methods. If the start index is not set, it will
* 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,
* 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>
* it will be unbounded and return as many results as available.<
/
p>
*
*
<p>
* Factory methods to create common queries are provided for convenience.
* Factory methods to create common queries are provided for convenience.
</p>
*
*
* @author Matt Tucker
* @author Matt Tucker
*/
*/
...
@@ -267,19 +267,20 @@ public class SessionResultFilter {
...
@@ -267,19 +267,20 @@ public class SessionResultFilter {
* the time portion of the date is shown for brevity) <p>
* the time portion of the date is shown for brevity) <p>
*
*
* <table border="1">
* <table border="1">
* <caption></caption>
* <tr><th>Date</th><th>Seconds</th><th>Result</th></tr>
* <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>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>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>60</td><td>1:37.00</td></tr>
* <tr><td>1:37.48</td><td>120</td><td>1:36.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
* 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.
* 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
* 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>
* <pre>
* SessionResultFilter filter = new SessionResultFilter();
* SessionResultFilter filter = new SessionResultFilter();
...
...
src/java/org/jivesoftware/openfire/XMPPServer.java
View file @
e427fa23
...
@@ -100,21 +100,21 @@ import org.xmpp.packet.JID;
...
@@ -100,21 +100,21 @@ import org.xmpp.packet.JID;
/**
/**
* The main XMPP server that will load, initialize and start all the server's
* 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
* modules. The server is unique in the JVM and could be obtained by using the
* {@link #getInstance()} method.
<p>
* {@link #getInstance()} method.
* <p
/
>
* <p>
* The loaded modules will be initialized and may access through the server other
* 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
* 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>
* through the server. The server maintains a list of loaded modules.
* <p/>
* </p>
* <p>
* After starting up all the modules the server will load any available plugin.
* After starting up all the modules the server will load any available plugin.
* For more information see: {@link org.jivesoftware.openfire.container.PluginManager}.
<p>
* 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
*
<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
* 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
* <b>openfire.xml</b> and is located in the <b>conf</b> folder. The folder that keeps
* the configuration file must be located under the home folder. The server will try different
* the configuration file must be located under the home folder. The server will try different
* methods to locate the home folder.
* methods to locate the home folder.</p>
* <p/>
* <ol>
* <ol>
* <li><b>system property</b> - The server will use the value defined in the <i>openfireHome</i>
* <li><b>system property</b> - The server will use the value defined in the <i>openfireHome</i>
* system property.</li>
* system property.</li>
...
...
src/java/org/jivesoftware/openfire/audit/Auditor.java
View file @
e427fa23
...
@@ -25,7 +25,6 @@ import org.xmpp.packet.Packet;
...
@@ -25,7 +25,6 @@ import org.xmpp.packet.Packet;
/**
/**
* <p>Use auditors to audit events and messages on the server.</p>
* <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.
* <p>All events and messages are sent to the auditor for recording.
* The auditor will determine if auditing should take place, and what
* The auditor will determine if auditing should take place, and what
* to do with the data.</p>
* to do with the data.</p>
...
...
src/java/org/jivesoftware/openfire/cluster/ClusterEventListener.java
View file @
e427fa23
...
@@ -30,14 +30,14 @@ public interface ClusterEventListener {
...
@@ -30,14 +30,14 @@ public interface ClusterEventListener {
/**
/**
* Notification event indicating that this JVM is now part of a cluster. At this point the
* 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()}
*
<p>
When joining the cluster as the senior cluster member the {@link #markedAsSeniorClusterMember()}
* event will be sent right after this event.<p>
* 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
* 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
();
void
joinedCluster
();
...
...
src/java/org/jivesoftware/openfire/container/BasicModule.java
View file @
e427fa23
...
@@ -24,7 +24,7 @@ import org.jivesoftware.openfire.XMPPServer;
...
@@ -24,7 +24,7 @@ import org.jivesoftware.openfire.XMPPServer;
/**
/**
* A default Module implementation that basically avoids subclasses having to implement the whole
* A default Module implementation that basically avoids subclasses having to implement the whole
* Module interface.
</p>
* Module interface.
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
@@ -60,7 +60,6 @@ public class BasicModule implements Module {
...
@@ -60,7 +60,6 @@ public class BasicModule implements Module {
/**
/**
* <p>Initializes the basic module.</p>
* <p>Initializes the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* <p>Inheriting classes that choose to override this method MUST
* call this initialize() method before accessing BasicModule resources.</p>
* call this initialize() method before accessing BasicModule resources.</p>
*
*
...
@@ -71,7 +70,6 @@ public class BasicModule implements Module {
...
@@ -71,7 +70,6 @@ public class BasicModule implements Module {
/**
/**
* <p>Starts the basic module.</p>
* <p>Starts the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* <p>Inheriting classes that choose to override this method MUST
* call this start() method before accessing BasicModule resources.</p>
* call this start() method before accessing BasicModule resources.</p>
*
*
...
@@ -83,7 +81,6 @@ public class BasicModule implements Module {
...
@@ -83,7 +81,6 @@ public class BasicModule implements Module {
/**
/**
* <p>Stops the basic module.</p>
* <p>Stops the basic module.</p>
* <p/>
* <p>Inheriting classes that choose to override this method MUST
* <p>Inheriting classes that choose to override this method MUST
* call this stop() method before accessing BasicModule resources.</p>
* call this stop() method before accessing BasicModule resources.</p>
*/
*/
...
@@ -92,7 +89,6 @@ public class BasicModule implements Module {
...
@@ -92,7 +89,6 @@ public class BasicModule implements Module {
/**
/**
* <p>Destroys the module.</p>
* <p>Destroys the module.</p>
* <p/>
* <p>Does nothing in the basic module.</p>
* <p>Does nothing in the basic module.</p>
*/
*/
public
void
destroy
()
{
public
void
destroy
()
{
...
...
src/java/org/jivesoftware/openfire/container/Module.java
View file @
e427fa23
...
@@ -26,23 +26,21 @@ import org.jivesoftware.openfire.XMPPServer;
...
@@ -26,23 +26,21 @@ import org.jivesoftware.openfire.XMPPServer;
* Logical, server-managed entities must implement this interface. A module
* Logical, server-managed entities must implement this interface. A module
* represents an operational unit and may contain zero or more services
* 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.
* 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:
* In order to be hosted in the Jive server container, all modules must:
* </p>
* </p>
* <ul>
* <ul>
* <li>Implement the Module interface</li>
* <li>Implement the Module interface</li>
* <li>Have a public no-arg constructor</li>
* <li>Have a public no-arg constructor</li>
* </ul>
* </ul>
* <p/>
* <p>The Jive container will run all modules through a simple lifecycle:</p>
* The Jive container will run all modules through a simple lifecycle:
* <pre>
* <pre>
* constructor -
> initialize() -> start() -> stop() -> destroy() ->
finalizer
* constructor -
> initialize() -> start() -> stop() -> destroy() ->
finalizer
* |
<
-----------------------| ^
* |
<
-----------------------| ^
* | |
* | |
* V-----------------------------------
>
* V-----------------------------------
>
* </pre>
* </pre>
* </p>
* <p>
* <p/>
* The Module interface is intended to provide the simplest mechanism
* The Module interface is intended to provide the simplest mechanism
* for creating, deploying, and managing server modules.
* for creating, deploying, and managing server modules.
* </p>
* </p>
...
...
src/java/org/jivesoftware/openfire/container/Plugin.java
View file @
e427fa23
...
@@ -57,9 +57,9 @@ import java.io.File;
...
@@ -57,9 +57,9 @@ import java.io.File;
* <minServerVersion>3.0.0</minServerVersion>
* <minServerVersion>3.0.0</minServerVersion>
* <licenseType>gpl</licenseType>
* <licenseType>gpl</licenseType>
* </plugin></pre>
* </plugin></pre>
* <p
/
>
* <p>
* Each plugin will be loaded in its own class loader, unless the plugin is configured
* 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
* Please see the Plugin Developer Guide (available with the
* Openfire documentation) for additional details about plugin development.
* 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;
...
@@ -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
* 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:
* the cache factory. Definitions should look something like this:
* <
cod
e>
* <
pr
e>
*
*
{@code
* <cache-config>
* <cache-config>
* <cache-mapping>
* <cache-mapping>
* <cache-name>My Cache</cache-name>
* <cache-name>My Cache</cache-name>
...
@@ -57,8 +57,8 @@ import org.slf4j.LoggerFactory;
...
@@ -57,8 +57,8 @@ import org.slf4j.LoggerFactory;
* </init-params>
* </init-params>
* </cache-mapping>
* </cache-mapping>
* </cache-config>
* </cache-config>
*
*
}
* </
cod
e>
* </
pr
e>
*/
*/
public
class
PluginCacheConfigurator
{
public
class
PluginCacheConfigurator
{
...
...
src/java/org/jivesoftware/openfire/container/PluginClassLoader.java
View file @
e427fa23
...
@@ -37,10 +37,10 @@ import org.slf4j.LoggerFactory;
...
@@ -37,10 +37,10 @@ import org.slf4j.LoggerFactory;
/**
/**
* ClassLoader for plugins. It searches the plugin directory for classes
* ClassLoader for plugins. It searches the plugin directory for classes
* and JAR files, then constructs a class loader for the resources found.
* and JAR files, then constructs a class loader for the resources found.
* Resources are loaded as follows:
<ul>
* Resources are loaded as follows:
* <
p/
>
* <
ul
>
* <li>Any JAR files in the <tt>lib</tt> will be added to the classpath.
* <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>Any files in the classes directory will be added to the classpath.
</li>
* </ul>
* </ul>
*
*
* @author Derek DeMoro
* @author Derek DeMoro
...
...
src/java/org/jivesoftware/openfire/container/PluginManager.java
View file @
e427fa23
...
@@ -67,9 +67,9 @@ import org.slf4j.LoggerFactory;
...
@@ -67,9 +67,9 @@ import org.slf4j.LoggerFactory;
/**
/**
* Loads and manages plugins. The <tt>plugins</tt> directory is monitored for any
* 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>
* <tt>XMPPServer.getInstance().getPluginManager()</tt>
*
*
...
@@ -575,9 +575,10 @@ public class PluginManager {
...
@@ -575,9 +575,10 @@ public class PluginManager {
* and not the name as given by the plugin meta-data. This method only removes
* 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
* 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
* 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>
* time the plugin monitor process runs. This is useful for "restarting" plugins.
* <p
/
>
* <p>
* This method is called automatically when a plugin's JAR file is deleted.
* This method is called automatically when a plugin's JAR file is deleted.
* </p>
*
*
* @param pluginName the name of the plugin to unload.
* @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;
...
@@ -53,15 +53,15 @@ import org.xml.sax.SAXException;
* The plugin servlet acts as a proxy for web requests (in the admin console)
* The plugin servlet acts as a proxy for web requests (in the admin console)
* to plugins. Since plugins can be dynamically loaded and live in a different place
* to plugins. Since plugins can be dynamically loaded and live in a different place
* than normal Openfire admin console files, it's not possible to have them
* than normal Openfire admin console files, it's not possible to have them
* added to the normal Openfire admin console web app directory.
<p>
* added to the normal Openfire admin console web app directory.
* <p
/
>
* <p>
* The servlet listens for requests in the form <tt>/plugins/[pluginName]/[JSP File]</tt>
* The servlet listens for requests in the form <tt>/plugins/[pluginName]/[JSP File]</tt>
* (e.g. <tt>/plugins/foo/example.jsp</tt>). It also listens for non JSP requests in the
* (e.g. <tt>/plugins/foo/example.jsp</tt>). It also listens for non JSP requests in the
* form like <tt>/plugins/[pluginName]/images/*.png|gif</tt>,
* form like <tt>/plugins/[pluginName]/images/*.png|gif</tt>,
* <tt>/plugins/[pluginName]/scripts/*.js|css</tt> or
* <tt>/plugins/[pluginName]/scripts/*.js|css</tt> or
* <tt>/plugins/[pluginName]/styles/*.css</tt> (e.g.
* <tt>/plugins/[pluginName]/styles/*.css</tt> (e.g.
* <tt>/plugins/foo/images/example.gif</tt>).
<p>
* <tt>/plugins/foo/images/example.gif</tt>).
* <
p/
>
* <
/p
>
* JSP files must be compiled and available via the plugin's class loader. The mapping
* 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.
* 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.
* Typically, this file is auto-generated by the JSP compiler when packaging the plugin.
...
@@ -259,7 +259,7 @@ public class PluginServlet extends HttpServlet {
...
@@ -259,7 +259,7 @@ public class PluginServlet extends HttpServlet {
* the servlet destroy method.
* the servlet destroy method.
*
*
* @param plugin the owner of the servlet
* @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
* @return the unregistered servlet, so that it can be destroyed
*/
*/
public
static
GenericServlet
unregisterServlet
(
Plugin
plugin
,
String
url
)
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;
...
@@ -25,13 +25,13 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
javax.xml.bind.JAXB
;
import
javax.xml.bind.JAXB
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.xmpp.packet.JID
;
import
org.xmpp.packet.JID
;
import
org.apache.commons.httpclient.Credentials
;
import
org.apache.commons.httpclient.Credentials
;
import
org.apache.commons.httpclient.Header
;
import
org.apache.commons.httpclient.Header
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.apache.commons.httpclient.HttpMethod
;
import
org.apache.commons.httpclient.HttpMethod
;
import
org.apache.commons.httpclient.HttpState
;
import
org.apache.commons.httpclient.HttpState
;
import
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
;
import
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
;
...
@@ -134,13 +134,12 @@ public class CrowdManager {
...
@@ -134,13 +134,12 @@ public class CrowdManager {
* @param username
* @param username
* @param password
* @param password
* @throws RemoteException
* @throws RemoteException
* @throws UnsupportedEncodingException
*/
*/
public
void
authenticate
(
String
username
,
String
password
)
throws
RemoteException
{
public
void
authenticate
(
String
username
,
String
password
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"authenticate '"
+
String
.
valueOf
(
username
)
+
"'"
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"authenticate '"
+
String
.
valueOf
(
username
)
+
"'"
);
PostMethod
post
=
new
PostMethod
(
crowdServer
.
resolve
(
"authentication?username="
+
urlEncode
(
username
)).
toString
());
PostMethod
post
=
new
PostMethod
(
crowdServer
.
resolve
(
"authentication?username="
+
urlEncode
(
username
)).
toString
());
AuthenticatePost
creds
=
new
AuthenticatePost
();
AuthenticatePost
creds
=
new
AuthenticatePost
();
creds
.
value
=
password
;
creds
.
value
=
password
;
...
@@ -156,14 +155,14 @@ public class CrowdManager {
...
@@ -156,14 +155,14 @@ public class CrowdManager {
}
catch
(
IOException
ioe
)
{
}
catch
(
IOException
ioe
)
{
handleError
(
ioe
);
handleError
(
ioe
);
}
finally
{
}
finally
{
post
.
releaseConnection
();
post
.
releaseConnection
();
}
}
LOG
.
info
(
"authenticated user:"
+
username
);
LOG
.
info
(
"authenticated user:"
+
username
);
}
}
/**
/**
* Get all the users from Crowd
* Get all the users from Crowd
* @return a List of User containing all the users stored in Crowd
* @return a List of User containing all the users stored in Crowd
...
@@ -193,13 +192,13 @@ public class CrowdManager {
...
@@ -193,13 +192,13 @@ public class CrowdManager {
}
finally
{
}
finally
{
get
.
releaseConnection
();
get
.
releaseConnection
();
}
}
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
User
user
:
users
.
user
)
{
for
(
User
user
:
users
.
user
)
{
user
.
name
=
JID
.
escapeNode
(
user
.
name
);
user
.
name
=
JID
.
escapeNode
(
user
.
name
);
results
.
add
(
user
);
results
.
add
(
user
);
}
}
if
(
users
.
user
.
size
()
!=
maxResults
)
{
if
(
users
.
user
.
size
()
!=
maxResults
)
{
break
;
break
;
}
else
{
}
else
{
...
@@ -275,13 +274,13 @@ public class CrowdManager {
...
@@ -275,13 +274,13 @@ public class CrowdManager {
* Get all the groups of a given username
* Get all the groups of a given username
* @param username
* @param username
* @return a List of groups name
* @return a List of groups name
* @throws RemoteException
* @throws RemoteException
*/
*/
public
List
<
String
>
getUserGroups
(
String
username
)
throws
RemoteException
{
public
List
<
String
>
getUserGroups
(
String
username
)
throws
RemoteException
{
username
=
JID
.
unescapeNode
(
username
);
username
=
JID
.
unescapeNode
(
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"fetch all crowd groups for user:"
+
username
);
if
(
LOG
.
isDebugEnabled
())
LOG
.
debug
(
"fetch all crowd groups for user:"
+
username
);
int
maxResults
=
100
;
int
maxResults
=
100
;
int
startIndex
=
0
;
int
startIndex
=
0
;
List
<
String
>
results
=
new
ArrayList
<
String
>();
List
<
String
>
results
=
new
ArrayList
<
String
>();
StringBuilder
request
=
new
StringBuilder
(
"user/group/nested?username="
).
append
(
urlEncode
(
username
))
StringBuilder
request
=
new
StringBuilder
(
"user/group/nested?username="
).
append
(
urlEncode
(
username
))
...
@@ -386,13 +385,13 @@ public class CrowdManager {
...
@@ -386,13 +385,13 @@ public class CrowdManager {
}
finally
{
}
finally
{
get
.
releaseConnection
();
get
.
releaseConnection
();
}
}
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
if
(
users
!=
null
&&
users
.
user
!=
null
)
{
for
(
org
.
jivesoftware
.
openfire
.
crowd
.
jaxb
.
User
user
:
users
.
user
)
{
for
(
org
.
jivesoftware
.
openfire
.
crowd
.
jaxb
.
User
user
:
users
.
user
)
{
results
.
add
(
JID
.
escapeNode
(
user
.
name
));
results
.
add
(
JID
.
escapeNode
(
user
.
name
));
}
}
if
(
users
.
user
.
size
()
!=
maxResults
)
{
if
(
users
.
user
.
size
()
!=
maxResults
)
{
break
;
break
;
}
else
{
}
else
{
startIndex
+=
maxResults
;
startIndex
+=
maxResults
;
...
...
src/java/org/jivesoftware/openfire/disco/DiscoInfoProvider.java
View file @
e427fa23
...
@@ -29,11 +29,12 @@ import java.util.Iterator;
...
@@ -29,11 +29,12 @@ import java.util.Iterator;
/**
/**
* A DiscoInfoProvider is responsible for providing information about a JID's name and its node. For
* 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
* 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>
* its rooms. In this case, the JID's name will be the room's name and node will be null.
* <p
/
>
* <p>
* The information to provide has to include the entity's identity and the features offered and
* 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
* 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.
* include the categoty, type and name attributes. Whilst the features will be just plain Strings.
* </p>
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/DiscoItemsProvider.java
View file @
e427fa23
...
@@ -27,11 +27,11 @@ import java.util.Iterator;
...
@@ -27,11 +27,11 @@ import java.util.Iterator;
/**
/**
* A DiscoItemsProvider is responsible for providing the items associated with a JID's name and
* 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
* 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>
* the existing rooms as its items. In this case, the JID's name and node won't be used.
* <p
/
>
* <p>
* The items to provide must have a JID attribute specifying the JID of the item and may possess a
* 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
* 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
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/DiscoServerItem.java
View file @
e427fa23
...
@@ -25,8 +25,8 @@ import org.xmpp.packet.JID;
...
@@ -25,8 +25,8 @@ import org.xmpp.packet.JID;
/**
/**
* Represent a DiscoItem provided by the server. Therefore, the DiscoServerItems are responsible
* Represent a DiscoItem provided by the server. Therefore, the DiscoServerItems are responsible
* for providing the DiscoInfoProvider and DiscoItemsProvider that will provide the information and
* for providing the DiscoInfoProvider and DiscoItemsProvider that will provide the information and
* items related to this item.
<p>
* items related to this item.
* <p
/
>
* <p>
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
...
@@ -34,6 +34,7 @@ import org.xmpp.packet.JID;
...
@@ -34,6 +34,7 @@ import org.xmpp.packet.JID;
* which will automatically be included in IQDiscoItemsHandler. Special attention must be paid to
* 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
* the JID since all the items with the same host will share the same DiscoInfoProvider or
* DiscoItemsProvider.
* DiscoItemsProvider.
* </p>
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java
View file @
e427fa23
...
@@ -50,8 +50,8 @@ import java.util.concurrent.locks.Lock;
...
@@ -50,8 +50,8 @@ import java.util.concurrent.locks.Lock;
* IQDiscoInfoHandler is responsible for handling disco#info requests. This class holds a map with
* 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
* 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
* 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>
* about the JID's name together with any possible requested node.
* <p
/
>
* <p>
* For example, let's have in the entities map the following entries: "localhost" and
* 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
* "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
* 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;
...
@@ -62,7 +62,7 @@ import java.util.concurrent.locks.Lock;
* could find its identity and the features it supports (e.g. 'muc_passwordprotected',
* 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
* '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
* 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
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/IQDiscoItemsHandler.java
View file @
e427fa23
...
@@ -57,8 +57,8 @@ import java.util.concurrent.locks.Lock;
...
@@ -57,8 +57,8 @@ import java.util.concurrent.locks.Lock;
* IQDiscoItemsHandler is responsible for handling disco#items requests. This class holds a map with
* 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
* 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
* 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>
* associated with the JID's name together with any possible requested node.
* <p
/
>
* <p>
* For example, let's have in the entities map the following entries: "localhost" and
* 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
* "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
* 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;
...
@@ -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
* 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
* 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
* 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>
* then a not-found error will be returned.<
/
p>
* <p
/
>
* <p>
* Publishing of client items is still not supported.
* Publishing of client items is still not supported.
* </p>
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/ServerFeaturesProvider.java
View file @
e427fa23
...
@@ -25,13 +25,12 @@ import java.util.Iterator;
...
@@ -25,13 +25,12 @@ import java.util.Iterator;
/**
/**
* ServerFeaturesProviders are responsible for providing the features offered and supported
* 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.
* 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
* 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
* 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
* 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
* service must implement this interface in order to offer/publish its features as part of the
* server features.
* server features.
</p>
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/ServerIdentitiesProvider.java
View file @
e427fa23
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
* <p>
* <p>
* A <code>ServerIdentitiesProvider</code> is responsible for providing the identities
* A <code>ServerIdentitiesProvider</code> is responsible for providing the identities
* of protocols supported by the SERVER. An example of a server identity is that
* of protocols supported by the SERVER. An example of a server identity is that
* for PEP (XEP-0163): <identity category="pubsub" type="pep" />
* for PEP (XEP-0163): {@code <identity category="pubsub" type="pep" />}
* <p/>
* </p>
*
* <p>
* <p>
* When the server starts up, IQDiscoInfoHandler will request to all the services that implement
* 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
* 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;
...
@@ -24,8 +24,8 @@ import java.util.Iterator;
/**
/**
* ServerItemsProvider are responsible for providing the items associated with the SERVER. Example
* ServerItemsProvider are responsible for providing the items associated with the SERVER. Example
* of server items are: Public Chatrooms, PubSub service, etc.
<p>
* of server items are: Public Chatrooms, PubSub service, etc.
* <p
/
>
* <p>
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* When the server starts up, IQDiscoItemsHandler will request to all the services that implement
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* the ServerItemsProvider interface for their DiscoServerItems. Each DiscoServerItem will provide
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
* its DiscoInfoProvider which will automatically be included in IQDiscoInfoHandler as the provider
...
@@ -33,7 +33,7 @@ import java.util.Iterator;
...
@@ -33,7 +33,7 @@ import java.util.Iterator;
* which will automatically be included in IQDiscoItemsHandler. Special attention must be paid to
* 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
* 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
* 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
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/disco/UserIdentitiesProvider.java
View file @
e427fa23
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
...
@@ -28,9 +28,8 @@ import java.util.Iterator;
* <p>
* <p>
* A <code>UserIdentitiesProvider</code> is responsible for providing the identities
* A <code>UserIdentitiesProvider</code> is responsible for providing the identities
* of protocols supported by users. An example of a user identity is one
* of protocols supported by users. An example of a user identity is one
* for PEP (XEP-0163): <identity category="pubsub" type="pep" />
* for PEP (XEP-0163): {@code <identity category="pubsub" type="pep" />}
* <p/>
* </p>
*
* <p>
* <p>
* When the server starts up, IQDiscoInfoHandler will request to all the services that implement
* 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
* 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;
...
@@ -38,7 +38,6 @@ import java.util.Iterator;
* <li>For discovering PEP items of a user.</li>
* <li>For discovering PEP items of a user.</li>
* <li>For discovering available resources of a user.</li>
* <li>For discovering available resources of a user.</li>
* </ul>
* </ul>
* </p>
*
*
* @author Armando Jagucki
* @author Armando Jagucki
*/
*/
...
...
src/java/org/jivesoftware/openfire/forms/DataForm.java
View file @
e427fa23
...
@@ -27,16 +27,16 @@ import java.util.List;
...
@@ -27,16 +27,16 @@ import java.util.List;
/**
/**
* Represents a form that could be use for gathering data as well as for reporting data
* Represents a form that could be use for gathering data as well as for reporting data
* returned from a search.
* returned from a search.
* <p
/
>
* <p>
* The form could be of the following types:
* The form could be of the following types:
* </p>
* <ul>
* <ul>
* <li>form -
>
Indicates a form to fill out.</li>
* <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>submit -
>
The form is filled out, and this is the data that is being returned from
* the form.</li>
* the form.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</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>result -
>
Data results being returned from a search, or some other query.</li>
* </ul>
* </ul>
* <p/>
* In case the form represents a search, the report will be structured in columns and rows. Use
* 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
* {@link #addReportedField(FormField)} to set the columns of the report whilst the report's rows
* can be configured using {@link #addItemFields(ArrayList)}.
* can be configured using {@link #addItemFields(ArrayList)}.
...
@@ -54,7 +54,7 @@ public interface DataForm {
...
@@ -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.
* 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.
* @param title description of the data.
*/
*/
...
@@ -71,16 +71,17 @@ public interface DataForm {
...
@@ -71,16 +71,17 @@ public interface DataForm {
/**
/**
* Returns the meaning of the data within the context. The data could be part of a form
* 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>
* to fill out, a form submission or data results.
* <p
/
>
* <p>
* Possible form types are:
* Possible form types are:
* </p>
* <ul>
* <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>
* 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>
* the form.</li>
* <li>cancel -
>
The form was cancelled. Tell the asker that piece of information.</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>result -
>
Data results being returned from a search, or some other query.</li>
* </ul>
* </ul>
*
*
* @return the form's type.
* @return the form's type.
...
@@ -89,7 +90,7 @@ public interface DataForm {
...
@@ -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
* 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.
* @return description of the data.
*/
*/
...
...
src/java/org/jivesoftware/openfire/forms/FormField.java
View file @
e427fa23
...
@@ -68,21 +68,20 @@ public interface FormField {
...
@@ -68,21 +68,20 @@ public interface FormField {
/**
/**
* Sets an indicative of the format for the data to answer. Valid formats are:
* Sets an indicative of the format for the data to answer. Valid formats are:
* <p/>
* <ul>
* <ul>
* <li>text-single -
>
single line or word of text
* <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-private -
>
instead of showing the user what they typed, you show ***** to
* protect it
* protect it
* <li>text-multi -
>
multiple lines of text entry
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <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>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>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* site in the middle of the form
* site in the middle of the form
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <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>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* on the rules for a JID.
* on the rules for a JID.
* <li>jid-multi -
>
multiple entries for JIDs
* <li>jid-multi -
>
multiple entries for JIDs
* </ul>
* </ul>
*
*
* @param type an indicative of the format for the data to answer.
* @param type an indicative of the format for the data to answer.
...
@@ -107,9 +106,10 @@ public interface FormField {
...
@@ -107,9 +106,10 @@ public interface FormField {
/**
/**
* Sets a description that provides extra clarification about the question. This information
* 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
* could be presented to the user either in tool-tip, help button, or as a section of text
* before the question.
<p>
* before the question.
* <p
/
>
* <p>
* If the question is of type FIXED then the description should remain empty.
* If the question is of type FIXED then the description should remain empty.
* </p>
*
*
* @param description provides extra clarification about the question.
* @param description provides extra clarification about the question.
*/
*/
...
@@ -140,21 +140,20 @@ public interface FormField {
...
@@ -140,21 +140,20 @@ public interface FormField {
/**
/**
* Returns an indicative of the format for the data to answer. Valid formats are:
* Returns an indicative of the format for the data to answer. Valid formats are:
* <p/>
* <ul>
* <ul>
* <li>text-single -
>
single line or word of text
* <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-private -
>
instead of showing the user what they typed, you show ***** to
* protect it
* protect it
* <li>text-multi -
>
multiple lines of text entry
* <li>text-multi -
>
multiple lines of text entry
* <li>list-single -
>
given a list of choices, pick one
* <li>list-single -
>
given a list of choices, pick one
* <li>list-multi -
>
given a list of choices, pick one or more
* <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>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>fixed -
>
fixed for putting in text to show sections, or just advertise your web
* site in the middle of the form
* site in the middle of the form
* <li>hidden -
>
is not given to the user at all, but returned with the questionnaire
* <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>jid-single -
>
Jabber ID - choosing a JID from your roster, and entering one based
* on the rules for a JID.
* on the rules for a JID.
* <li>jid-multi -
>
multiple entries for JIDs
* <li>jid-multi -
>
multiple entries for JIDs
* </ul>
* </ul>
*
*
* @return format for the data to answer.
* @return format for the data to answer.
...
@@ -172,9 +171,10 @@ public interface FormField {
...
@@ -172,9 +171,10 @@ public interface FormField {
/**
/**
* Returns a description that provides extra clarification about the question. This information
* 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
* could be presented to the user either in tool-tip, help button, or as a section of text
* before the question.
<p>
* before the question.
* <p
/
>
* <p>
* If the question is of type FIXED then the description should remain empty.
* If the question is of type FIXED then the description should remain empty.
* </p>
*
*
* @return description that provides extra clarification about the question.
* @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;
...
@@ -22,7 +22,7 @@ import org.xmpp.packet.JID;
* addition, group search operations are disabled.
* addition, group search operations are disabled.
*
*
* Subclasses may optionally implement these capabilities, and must also
* 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
* @author Tom Evans
*/
*/
...
@@ -253,7 +253,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
...
@@ -253,7 +253,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* Returns a custom {@link Map} that updates the database whenever
* Returns a custom {@link Map} that updates the database whenever
* a property value is added, changed, or deleted.
* 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
* @return The properties for the given group
*/
*/
public
PersistableMap
<
String
,
String
>
loadProperties
(
Group
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;
...
@@ -46,10 +46,11 @@ import org.xmpp.packet.JID;
public
interface
GroupProvider
{
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
* The provider is responsible for setting the creation date and
* modification date to the current date/time.
* modification date to the current date/time.
* </p>
*
*
* @param name name of the group.
* @param name name of the group.
* @return the newly created group.
* @return the newly created group.
...
@@ -131,7 +132,7 @@ public interface GroupProvider {
...
@@ -131,7 +132,7 @@ public interface GroupProvider {
/**
/**
* Returns an unmodifiable Collection of all shared groups in the system for a given user.
* 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.
* @return unmodifiable Collection of all shared groups in the system for a given user.
*/
*/
Collection
<
String
>
getSharedGroupNames
(
JID
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;
...
@@ -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
* 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
* protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
* tested and is not guaranteed to work.
* tested and is not guaranteed to work.
* <p/>
* <p>Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
* 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 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 --
* 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
* and allow programmers (you, for example) to do so without worrying about dropping into native
* code or doing anything else similarly evil.
* code or doing anything else similarly evil.
* <
p/
>
* <
/p
>
* Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without
*
<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
* 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
* 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
* found, will not cause this to do anything other than returning an error when opening the
* browser.
* browser.
* <
p/
>
* <
/p
>
* There are certain system requirements for this class, as it's running through Runtime.exec(),
*
<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
* 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 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
* have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
...
@@ -57,15 +56,15 @@ import org.slf4j.LoggerFactory;
...
@@ -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
* (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
* back from the inherently platform-sensitive concept of a default browser and simply attempts
* to launch Netscape via a shell command.
* to launch Netscape via a shell command.
* <
p/
>
* <
/p
>
* This code is Copyright 1999-2001 by Eric Albert (ejalbert@cs.stanford.edu) and may be
*
<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
* 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
* 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
* 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
* 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
* 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.
* or any adverse or unexpected effects of using this software.
* <
p/
>
* <
/p
>
* Credits:
* Credits:
* <br>Steven Spencer, JavaWorld magazine (<a href="http://www.javaworld.com/javaworld/javatips/jw-javatip66.html">Java Tip 66</a>)
* <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,
* <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 {
...
@@ -341,8 +341,8 @@ public final class GraphicUtils {
* not be loaded, then <code>null</code> is returned. Images loaded here
* 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
* will be added to an internal cache based upon the full {@link URL} to
* their location.
* their location.
* <p
/
>
* <p>
* <em>This method replaces legacy code from JDeveloper 3.x and earlier.</em>
* <em>This method replaces legacy code from JDeveloper 3.x and earlier.</em>
</p>
*
*
* @see Class#getResource(String)
* @see Class#getResource(String)
* @see Toolkit#createImage(URL)
* @see Toolkit#createImage(URL)
...
...
src/java/org/jivesoftware/openfire/lockout/LockOutEventDispatcher.java
View file @
e427fa23
...
@@ -26,9 +26,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
...
@@ -26,9 +26,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
/**
* Dispatches lockout events. The following events are supported:
* Dispatches lockout events. The following events are supported:
* <ul>
* <ul>
* <li><b>accountLocked</b> --
>
An account has been disabled/locked out.</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>accountUnlocked</b> --
>
An account has been enabled/unlocked.</li>
* <li><b>lockedAccountDenied</b> --
>
A locked out account has been denied login.</li>
* <li><b>lockedAccountDenied</b> --
>
A locked out account has been denied login.</li>
* </ul>
* </ul>
* Use {@link #addListener(LockOutEventListener)} and {@link #removeListener(LockOutEventListener)}
* Use {@link #addListener(LockOutEventListener)} and {@link #removeListener(LockOutEventListener)}
* to add or remove {@link 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;
...
@@ -27,12 +27,12 @@ import java.util.concurrent.ConcurrentLinkedQueue;
/**
/**
* Dispatches MUC events. The following events are supported:
* Dispatches MUC events. The following events are supported:
* <ul>
* <ul>
* <li><b>occupantJoined</b> --
>
Someone joined a room.</li>
* <li><b>occupantJoined</b> --
>
Someone joined a room.</li>
* <li><b>occupantLeft</b> --
>
Someone left 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>nicknameChanged</b> --
>
A nickname was changed in a room.</li>
* <li><b>messageReceived</b> --
>
A message was received 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>roomCreated</b> --
>
A room was created.</li>
* <li><b>roomDestr
yod</b> -->
A room was destroyed.</li>
* <li><b>roomDestr
oyed</b> -->
A room was destroyed.</li>
* </ul>
* </ul>
* Use {@link #addListener(MUCEventListener)} and {@link #removeListener(MUCEventListener)}
* Use {@link #addListener(MUCEventListener)} and {@link #removeListener(MUCEventListener)}
* to add or remove {@link 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;
...
@@ -29,9 +29,9 @@ import org.xmpp.packet.Presence;
* Defines the permissions and actions that a MUCUser may use in
* Defines the permissions and actions that a MUCUser may use in
* a particular room. Each MUCRole defines the relationship between
* a particular room. Each MUCRole defines the relationship between
* a MUCRoom and a MUCUser.
* a MUCRoom and a MUCUser.
* <p
/
>
* <p>
* MUCUsers can play different roles in different chatrooms.
* MUCUsers can play different roles in different chatrooms.
*
*
</p>
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
public
interface
MUCRole
{
public
interface
MUCRole
{
...
@@ -54,9 +54,10 @@ public interface MUCRole {
...
@@ -54,9 +54,10 @@ public interface MUCRole {
* Call this method to promote or demote a user's role in a chatroom.
* 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
* It is common for the chatroom or other chat room members to change
* the role of users (a moderator promoting another user to moderator
* the role of users (a moderator promoting another user to moderator
* status for example).
<p>
* status for example).
* <p
/
>
* <p>
* Owning ChatUsers should have their membership roles updated.
* Owning ChatUsers should have their membership roles updated.
* </p>
*
*
* @param newRole The new role that the user will play.
* @param newRole The new role that the user will play.
* @throws NotAllowedException Thrown if trying to change the moderator role to an owner or
* @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;
...
@@ -29,11 +29,12 @@ import org.xmpp.packet.Packet;
* the chat server. Centralizing chat users to the Jabber entity that
* the chat server. Centralizing chat users to the Jabber entity that
* sends and receives the chat messages allows us to create quality of
* sends and receives the chat messages allows us to create quality of
* service, authorization, and resource decisions on a real-user basis.
* 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.
* Most chat users in a typical s2s scenario will not be local users.
* </p><p>
* </p><p>
* MUCUsers play one or more roles in one or more chat rooms on the
* MUCUsers play one or more roles in one or more chat rooms on the
* server.
* server.
* </p>
*
*
* @author Gaston Dombiak
* @author Gaston Dombiak
*/
*/
...
...
src/java/org/jivesoftware/openfire/pubsub/PubSubService.java
View file @
e427fa23
...
@@ -67,7 +67,7 @@ public interface PubSubService {
...
@@ -67,7 +67,7 @@ public interface PubSubService {
* Returns a registry of the presence's show value of users that subscribed to a node of
* 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
* 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
* 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.
* 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
* @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;
...
@@ -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>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
* <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,
* <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
* 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 {
...
@@ -571,7 +571,6 @@ public class Roster implements Cacheable, Externalizable {
/**
/**
* <p>Broadcast the presence update to all subscribers of the roter.</p>
* <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>
* <p>Any presence change typically results in a broadcast to the roster members.</p>
*
*
* @param packet The presence packet to broadcast
* @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;
...
@@ -26,10 +26,10 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
/**
* Dispatches roster events. The following events are supported:
* Dispatches roster events. The following events are supported:
* <ul>
* <ul>
* <li><b>rosterLoaded</b> --
>
A roster has just been loaded.</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>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>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>contactDeleted</b> --
>
A contact has been deleted from a roster.</li>
* </ul>
* </ul>
* Use {@link #addListener(RosterEventListener)} and {@link #removeListener(RosterEventListener)}
* Use {@link #addListener(RosterEventListener)} and {@link #removeListener(RosterEventListener)}
* to add or remove {@link 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.*;
...
@@ -44,7 +44,6 @@ import java.util.*;
* <p>The server doesn't need to know anything about roster groups so they are
* <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
* 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>
* elements of a roster item (beyond the jid adddress of the roster entry) includes:</p>
* <p/>
* <ul>
* <ul>
* <li>nick - A nickname for the user when used in this roster</li>
* <li>nick - A nickname for the user when used in this roster</li>
* <li>sub - A subscription type: to, from, none, both</li>
* <li>sub - A subscription type: to, from, none, both</li>
...
@@ -508,7 +507,6 @@ public class RosterItem implements Cacheable, Externalizable {
...
@@ -508,7 +507,6 @@ public class RosterItem implements Cacheable, Externalizable {
/**
/**
* <p>Update the cached item as a copy of the given item.</p>
* <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>
* <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
* @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;
...
@@ -42,22 +42,19 @@ import org.xmpp.packet.JID;
/**
/**
* The JDBC user provider allows you to use an external database to define the users.
* The JDBC user provider allows you to use an external database to define the users.
* It is best used with the JDBCAuthProvider & JDBCGroupProvider to provide integration
* It is best used with the JDBCAuthProvider &
amp;
JDBCGroupProvider to provide integration
* between your external system and Openfire. All data is treated as read-only so any
* between your external system and Openfire. All data is treated as read-only so any
* set operations will result in an exception.<p/>
* set operations will result in an exception.
*
* <p>For the seach facility, the SQL will be constructed from the SQL in the <i>search</i>
* For the seach facility, the SQL will be constructed from the SQL in the <i>search</i>
* section below, as well as the <i>usernameField</i>, the <i>nameField</i> and the
* section below, as well as the <i>usernameField</i>, the <i>nameField</i> and the
* <i>emailField</i>.<p/>
* <i>emailField</i>.</p>
*
* <p>To enable this provider, set the following in the system properties:</p>
* To enable this provider, set the following in the system properties:<p/>
*
* <ul>
* <ul>
* <li><tt>provider.user.className = org.jivesoftware.openfire.user.JDBCUserProvider</tt></li>
* <li><tt>provider.user.className = org.jivesoftware.openfire.user.JDBCUserProvider</tt></li>
* </ul>
* </ul>
*
*
<p>
* Then you need to set your driver, connection string and SQL statements:
* Then you need to set your driver, connection string and SQL statements:
* <
p/
>
* <
/p
>
* <ul>
* <ul>
* <li><tt>jdbcProvider.driver = com.mysql.jdbc.Driver</tt></li>
* <li><tt>jdbcProvider.driver = com.mysql.jdbc.Driver</tt></li>
* <li><tt>jdbcProvider.connectionString = jdbc:mysql://localhost/dbname?user=username&password=secret</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;
...
@@ -30,10 +30,10 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
/**
* Dispatches presence events. The following events are supported:
* Dispatches presence events. The following events are supported:
* <ul>
* <ul>
* <li><b>availableSession</b> --
>
A session is now available to receive communication.</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>unavailableSession</b> --
>
A session is no longer available.</li>
* <li><b>presencePriorityChanged</b> --
>
The priority of a resource has changed.</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>presenceChanged</b> --
>
The show or status value of an available session has changed.</li>
* </ul>
* </ul>
* Use {@link #addListener(PresenceEventListener)} and
* Use {@link #addListener(PresenceEventListener)} and
* {@link #removeListener(PresenceEventListener)} to add or remove {@link PresenceEventListener}.
* {@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;
...
@@ -27,9 +27,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
/**
* Dispatches vCard events. The following events are supported:
* Dispatches vCard events. The following events are supported:
* <ul>
* <ul>
* <li><b>VCardCreated</b> --
>
A VCard has been created.</li>
* <li><b>VCardCreated</b> --
>
A VCard has been created.</li>
* <li><b>VCardDeleted</b> --
>
A VCard has been deleted.</li>
* <li><b>VCardDeleted</b> --
>
A VCard has been deleted.</li>
* <li><b>VCardUpdate</b> --
>
A VCard has been updated.</li>
* <li><b>VCardUpdate</b> --
>
A VCard has been updated.</li>
* </ul>
* </ul>
* Use {@link #addListener(org.jivesoftware.openfire.vcard.VCardListener)}
* Use {@link #addListener(org.jivesoftware.openfire.vcard.VCardListener)}
* to add or remove {@link 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
...
@@ -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
* 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
* 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
* 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
* 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
* 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
* 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 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
* @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;
...
@@ -9,7 +9,7 @@ package org.jivesoftware.util;
* </p>
* </p>
* <ul>
* <ul>
* <li>v2.2.1 - Fixed bug using URL_SAFE and ORDERED encodings. Fixed bug
* <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
* <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
* 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:
* 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;
...
@@ -21,9 +21,9 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
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
* @author Gaston Dombiak
*/
*/
public
class
Blowfish
implements
Encryptor
{
public
class
Blowfish
implements
Encryptor
{
...
...
src/java/org/jivesoftware/util/ElementUtil.java
View file @
e427fa23
...
@@ -34,7 +34,7 @@ import java.util.*;
...
@@ -34,7 +34,7 @@ import java.util.*;
* </Y>
* </Y>
* </X>
* </X>
* </pre>
* </pre>
* And X.Y.Z:key to anotherValue as:</p>
*
<p>
And X.Y.Z:key to anotherValue as:</p>
* <pre>
* <pre>
* <X>
* <X>
* <Y>
* <Y>
...
@@ -143,9 +143,9 @@ public class ElementUtil {
...
@@ -143,9 +143,9 @@ public class ElementUtil {
* Return all values who's path matches the given property name as a String array,
* 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
* 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.
* 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.
* 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>
* <pre>
* <foo>
* <foo>
* <bar>
* <bar>
...
...
src/java/org/jivesoftware/util/HttpClientWithTimeoutFeedFetcher.java
View file @
e427fa23
...
@@ -62,8 +62,8 @@ import java.util.zip.GZIPInputStream;
...
@@ -62,8 +62,8 @@ import java.util.zip.GZIPInputStream;
* which fixes a bug where users of the admin console who installed Clearspace
* 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
* 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.
* 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
{
public
class
HttpClientWithTimeoutFeedFetcher
extends
AbstractFeedFetcher
{
...
...
src/java/org/jivesoftware/util/IntEnum.java
View file @
e427fa23
...
@@ -25,8 +25,8 @@ import java.util.*;
...
@@ -25,8 +25,8 @@ import java.util.*;
/**
/**
* <p>A type safe enumeration object that is keyed by an Int
* <p>A type safe enumeration object that is keyed by an Int
* value for switch statements and storage in DBs.</p>
* value for switch statements and storage in DBs.</p>
* <p
/
>
* <p>
*
<p>
Used for indicating distinct states in a generic manner
* Used for indicating distinct states in a generic manner
* where each enum should have an associated int value. The
* where each enum should have an associated int value. The
* given int should be unique for each enum value as hashCode
* given int should be unique for each enum value as hashCode
* and equals depends solely on the int value given. Most
* 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 {
...
@@ -45,7 +45,7 @@ public class JiveConstants {
* a unified date/time format for XMPP.
* a unified date/time format for XMPP.
*
*
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @see
{@link org.jivesoftware.util.XMPPDateTimeFormat}
* @see
org.jivesoftware.util.XMPPDateTimeFormat
*/
*/
@Deprecated
@Deprecated
public
static
final
String
XMPP_DATETIME_FORMAT
=
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
;
public
static
final
String
XMPP_DATETIME_FORMAT
=
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
;
...
@@ -56,7 +56,7 @@ public class JiveConstants {
...
@@ -56,7 +56,7 @@ public class JiveConstants {
* a specialized date format for historical XMPP usage.
* a specialized date format for historical XMPP usage.
*
*
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @deprecated Deprecated by the org.jivesoftware.util.XMPPDateTimeFormat class
* @see
{@link org.jivesoftware.util.XMPPDateTimeFormat}
* @see
org.jivesoftware.util.XMPPDateTimeFormat
*/
*/
@Deprecated
@Deprecated
public
static
final
String
XMPP_DELAY_DATETIME_FORMAT
=
"yyyyMMdd'T'HH:mm:ss"
;
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 {
...
@@ -787,7 +787,7 @@ public class JiveGlobals {
* names are hidden from the Openfire console.
* names are hidden from the Openfire console.
*
*
* @param name The name of the property
* @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
)
{
public
static
boolean
isPropertySensitive
(
String
name
)
{
...
@@ -802,7 +802,7 @@ public class JiveGlobals {
...
@@ -802,7 +802,7 @@ public class JiveGlobals {
* Determines whether a property is configured for encryption.
* Determines whether a property is configured for encryption.
*
*
* @param name The name of the property
* @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
)
{
public
static
boolean
isPropertyEncrypted
(
String
name
)
{
if
(
securityProperties
==
null
)
{
if
(
securityProperties
==
null
)
{
...
@@ -818,7 +818,7 @@ public class JiveGlobals {
...
@@ -818,7 +818,7 @@ public class JiveGlobals {
*
*
* @param name The name of the property
* @param name The name of the property
* @param encrypt True to encrypt the property, false to decrypt
* @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
)
{
public
static
boolean
setPropertyEncrypted
(
String
name
,
boolean
encrypt
)
{
if
(
securityProperties
==
null
)
{
if
(
securityProperties
==
null
)
{
...
@@ -839,7 +839,7 @@ public class JiveGlobals {
...
@@ -839,7 +839,7 @@ public class JiveGlobals {
/**
/**
* Fetches the current value of the property encryption key.
* Fetches the current value of the property encryption key.
*
*
* @return
s
The property encryption key
* @return The property encryption key
*/
*/
public
static
Encryptor
getPropertyEncryptor
()
{
public
static
Encryptor
getPropertyEncryptor
()
{
if
(
securityProperties
==
null
)
{
if
(
securityProperties
==
null
)
{
...
...
src/java/org/jivesoftware/util/LinkedListNode.java
View file @
e427fa23
...
@@ -24,16 +24,16 @@ package org.jivesoftware.util;
...
@@ -24,16 +24,16 @@ package org.jivesoftware.util;
* Doubly linked node in a LinkedList. Most LinkedList implementations keep the
* Doubly linked node in a LinkedList. Most LinkedList implementations keep the
* equivalent of this class private. We make it public so that references
* equivalent of this class private. We make it public so that references
* to each node in the list can be maintained externally.
* to each node in the list can be maintained externally.
* <p
/
>
* <p>
* Exposing this class lets us make remove operations very fast. Remove is
* Exposing this class lets us make remove operations very fast. Remove is
* built into this class and only requires two reference reassignments. If
* built into this class and only requires two reference reassignments. If
* remove existed in the main LinkedList class, a linear scan would have to
* remove existed in the main LinkedList class, a linear scan would have to
* be performed to find the correct node to delete.
* be performed to find the correct node to delete.
</p>
* <p
/
>
* <p>
* The linked list implementation was specifically written for the Jive
* The linked list implementation was specifically written for the Jive
* cache system. While it can be used as a general purpose linked list, for
* 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
* 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
* @author Jive Software
* @see org.jivesoftware.util.LinkedList
* @see org.jivesoftware.util.LinkedList
...
@@ -48,12 +48,12 @@ public class LinkedListNode<E> {
...
@@ -48,12 +48,12 @@ public class LinkedListNode<E> {
* This class is further customized for the CoolServlets cache system. It
* This class is further customized for the CoolServlets cache system. It
* maintains a timestamp of when a Cacheable object was first added to
* maintains a timestamp of when a Cacheable object was first added to
* cache. Timestamps are stored as long values and represent the number
* cache. Timestamps are stored as long values and represent the number
* of milleseconds passed since January 1, 1970 00:00:00.000 GMT.
<p>
* of milleseconds passed since January 1, 1970 00:00:00.000 GMT.
* <p
/
>
* <p>
* The creation timestamp is used in the case that the cache has a
* The creation timestamp is used in the case that the cache has a
* maximum lifetime set. In that case, when
* maximum lifetime set. In that case, when
* [current time] - [creation time]
>
[max lifetime], the object will be
* [current time] - [creation time]
>
[max lifetime], the object will be
* deleted from cache.
* deleted from cache.
</p>
*/
*/
public
long
timestamp
;
public
long
timestamp
;
...
...
src/java/org/jivesoftware/util/LocaleUtils.java
View file @
e427fa23
...
@@ -256,13 +256,13 @@ public class LocaleUtils {
...
@@ -256,13 +256,13 @@ public class LocaleUtils {
/**
/**
* Returns a list of all available time zone's as a String [][]. The first
* 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
* entry in each list item is the timeZoneID, and the second is the
* display name.
<p>
* display name.
* <p
/
>
* <p>
* The list of time zones attempts to be inclusive of all of the worlds
* 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
* zones while being as concise as possible. For "en" language locales
* the name is a friendly english name. For non-"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
* 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
* @return a list of time zones, as a tuple of the zime zone ID, and its
* display name.
* display name.
...
...
src/java/org/jivesoftware/util/PropertyEventDispatcher.java
View file @
e427fa23
...
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
...
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
* and optional parameters, as follows:<p>
* and optional parameters, as follows:<p>
*
*
* <table border="1">
* <table border="1">
* <caption></caption>
* <tr><th>Event Type</th><th>Extra Params</th></tr>
* <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
* <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>
* 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;
...
@@ -41,7 +41,7 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
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
{
public
class
StringUtils
{
...
@@ -255,7 +255,7 @@ public class StringUtils {
...
@@ -255,7 +255,7 @@ public class StringUtils {
/**
/**
* This method takes a string which may contain HTML tags (ie, <b>,
* 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>.
* their HTML escape sequences. It will also replace LF with <br>.
*
*
* @param in the text to be converted.
* @param in the text to be converted.
...
@@ -268,7 +268,7 @@ public class StringUtils {
...
@@ -268,7 +268,7 @@ public class StringUtils {
/**
/**
* This method takes a string which may contain HTML tags (ie, <b>,
* 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.
* their HTML escape sequences.
*
*
* @param in the text to be converted.
* @param in the text to be converted.
...
@@ -333,20 +333,20 @@ public class StringUtils {
...
@@ -333,20 +333,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* 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
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* determining the original password.
</p>
* <p
/
>
* <p>
* In Jive, every time a user logs in, we simply
* In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* 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
* 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
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* 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 data the String to compute the hash of.
* @return a hashed version of the passed-in String
* @return a hashed version of the passed-in String
...
@@ -361,20 +361,20 @@ public class StringUtils {
...
@@ -361,20 +361,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* 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
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* determining the original password.
</p>
* <p
/
>
* <p>
* In Jive, every time a user logs in, we simply
* In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* 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
* 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
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* 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 data the String to compute the hash of.
* @param algorithm the name of the algorithm requested.
* @param algorithm the name of the algorithm requested.
...
@@ -396,20 +396,20 @@ public class StringUtils {
...
@@ -396,20 +396,20 @@ public class StringUtils {
* excessive MessageDigest object creation. If calling this method becomes
* excessive MessageDigest object creation. If calling this method becomes
* a bottleneck in your code, you may wish to maintain a pool of
* a bottleneck in your code, you may wish to maintain a pool of
* MessageDigest objects instead of using this method.
* MessageDigest objects instead of using this method.
* <p
/
>
* <p>
* A hash is a one-way function -- that is, given an
* A hash is a one-way function -- that is, given an
* input, an output is easily computed. However, given the output, the
* input, an output is easily computed. However, given the output, the
* input is almost impossible to compute. This is useful for passwords
* 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
* since we can store the hash and a hacker will then have a very hard time
* determining the original password.
* determining the original password.
* <
p/
>
* <
/p
>
* In Jive, every time a user logs in, we simply
*
<p>
In Jive, every time a user logs in, we simply
* take their plain text password, compute the hash, and compare the
* take their plain text password, compute the hash, and compare the
* generated hash to the stored hash. Since it is almost impossible that
* 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
* 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
* the correct password or not. The only negative to this system is that
* password recovery is basically impossible. Therefore, a reset password
* 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 bytes the byte array to compute the hash of.
* @param algorithm the name of the algorithm requested.
* @param algorithm the name of the algorithm requested.
...
@@ -438,10 +438,10 @@ public class StringUtils {
...
@@ -438,10 +438,10 @@ public class StringUtils {
/**
/**
* Turns an array of bytes into a String representing each byte as an
* Turns an array of bytes into a String representing each byte as an
* unsigned hex number.
* unsigned hex number.
* <p
/
>
* <p>
* Method by Santeri Paavolainen, Helsinki Finland 1996<br>
* Method by Santeri Paavolainen, Helsinki Finland 1996<br>
* (c) 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
* @param bytes an array of bytes to convert to a hex-string
* @return generated hex string
* @return generated hex string
...
@@ -627,10 +627,10 @@ public class StringUtils {
...
@@ -627,10 +627,10 @@ public class StringUtils {
* of the specified length. The method uses the Random class that is
* 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.
* 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
* This means that the output is only pseudo random, i.e., each number is
* mathematically generated so is not truly random.
<p>
* mathematically generated so is not truly random.
* <p
/
>
* <p>
* The specified length must be at least one. If not, the method will return
* 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.
* @param length the desired length of the random String to return.
* @return a random String of numbers and letters of the specified length.
* @return a random String of numbers and letters of the specified length.
...
@@ -653,10 +653,10 @@ public class StringUtils {
...
@@ -653,10 +653,10 @@ public class StringUtils {
* newline character before <code>length</code>, the String will be chopped
* 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
* 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>.
* 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
* 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
* "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 string the String to chop.
* @param length the index in <code>string</code> to start looking for a
* @param length the index in <code>string</code> to start looking for a
...
@@ -715,9 +715,9 @@ public class StringUtils {
...
@@ -715,9 +715,9 @@ public class StringUtils {
* are split apart at the earliest wordbreak or at maxLength, whichever is
* 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
* sooner. If the width specified is less than 5 or greater than the input
* Strings length the string will be returned as is.
* Strings length the string will be returned as is.
* <p
/
>
* <p>
* Please note that this method can be lossy - trailing spaces on wrapped
* 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 input the String to reformat.
* @param width the maximum length of any one line.
* @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;
...
@@ -65,7 +65,6 @@ import org.slf4j.LoggerFactory;
* </Y>
* </Y>
* </X>
* </X>
* </pre>
* </pre>
* <p/>
* The XML file is passed in to the constructor and must be readable and
* The XML file is passed in to the constructor and must be readable and
* writable. Setting property values will automatically persist those value
* writable. Setting property values will automatically persist those value
* to disk. The file encoding used is UTF-8.
* 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 {
...
@@ -175,7 +175,7 @@ public class XMLWriter extends XMLFilterImpl implements LexicalHandler {
* Sets the maximum allowed character code that should be allowed
* Sets the maximum allowed character code that should be allowed
* unescaped
* unescaped
* such as 127 in US-ASCII (7 bit) or 255 in ISO-* (8 bit)
* 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.
* 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;
...
@@ -34,7 +34,7 @@ import java.util.regex.Pattern;
* Utility class for date/time format conversions as specified in
* 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-0082.html">XEP-0082</a> and
* <a href="http://www.xmpp.org/extensions/xep-0090.html">XEP-0090</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
//@ThreadSafe
...
@@ -94,7 +94,7 @@ public class XMPPDateTimeFormat {
...
@@ -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
* 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.
* 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
* @return the parsed date or null if the String could not be parsed
* @throws ParseException
* @throws ParseException
*/
*/
...
...
src/java/org/jivesoftware/util/cache/CacheFactory.java
View file @
e427fa23
...
@@ -45,11 +45,11 @@ import org.slf4j.LoggerFactory;
...
@@ -45,11 +45,11 @@ import org.slf4j.LoggerFactory;
/**
/**
* Creates Cache objects. The returned caches will either be local or clustered
* Creates Cache objects. The returned caches will either be local or clustered
* depending on the clustering enabled setting and a user's license.
<p>
* depending on the clustering enabled setting and a user's license.
*
<p/>
*
* When clustered caching is turned on, cache usage statistics for all caches
*
<p>
When clustered caching is turned on, cache usage statistics for all caches
* that have been created are periodically published to the clustered cache
* that have been created are periodically published to the clustered cache
* named "opt-$cacheStats".
* named "opt-$cacheStats".
</p>
*
*
*/
*/
@SuppressWarnings
(
"rawtypes"
)
@SuppressWarnings
(
"rawtypes"
)
...
...
src/java/org/jivesoftware/util/cache/ComponentCacheWrapper.java
View file @
e427fa23
...
@@ -24,7 +24,7 @@ package org.jivesoftware.util.cache;
...
@@ -24,7 +24,7 @@ package org.jivesoftware.util.cache;
* This specialized wrapper is used for the Components cache, which
* This specialized wrapper is used for the Components cache, which
* should not be purged.
* 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
>
{
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 {
...
@@ -226,7 +226,7 @@ public class ExternalizableUtil {
/**
/**
* Writes a collection of Externalizable objects. The collection passed as a parameter
* 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 out the output stream.
* @param value the collection of Externalizable objects. This value must not be null.
* @param value the collection of Externalizable objects. This value must not be null.
...
@@ -238,7 +238,7 @@ public class ExternalizableUtil {
...
@@ -238,7 +238,7 @@ public class ExternalizableUtil {
/**
/**
* Writes a collection of Serializable objects. The collection passed as a parameter
* 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 out the output stream.
* @param value the collection of Serializable objects. This value must not be null.
* @param value the collection of Serializable objects. This value must not be null.
...
@@ -250,7 +250,7 @@ public class ExternalizableUtil {
...
@@ -250,7 +250,7 @@ public class ExternalizableUtil {
/**
/**
* Reads a collection of Externalizable objects and adds them to the collection passed as a parameter. The
* 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 in the input stream.
* @param value the collection of Externalizable objects. This value must not be null.
* @param value the collection of Externalizable objects. This value must not be null.
...
@@ -277,7 +277,7 @@ public class ExternalizableUtil {
...
@@ -277,7 +277,7 @@ public class ExternalizableUtil {
/**
/**
* Reads a collection of Serializable objects and adds them to the collection passed as a parameter. The
* 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 in the input stream.
* @param value the collection of Serializable objects. This value must not be null.
* @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