Enable javadoc 'html' doclint

Also make all 'test' tasks depend on the 'javadoc' task.

Fixes SMACK-650.
chatStatesChat2
Florian Schmaus 5 years ago
parent 89c97bb46c
commit 34373e8710
  1. 7
      build.gradle
  2. 1
      smack-android-extensions/src/main/java/org/jivesoftware/smackx/ping/android/ServerPingWithAlarmManager.java
  3. 1
      smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java
  4. 2
      smack-core/src/main/java/org/jivesoftware/smack/XMPPConnection.java
  5. 4
      smack-core/src/main/java/org/jivesoftware/smack/compression/Java7ZlibInputOutputStream.java
  6. 5
      smack-core/src/main/java/org/jivesoftware/smack/debugger/ConsoleDebugger.java
  7. 5
      smack-core/src/main/java/org/jivesoftware/smack/debugger/JulDebugger.java
  8. 2
      smack-core/src/main/java/org/jivesoftware/smack/packet/ErrorIQ.java
  9. 2
      smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java
  10. 2
      smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java
  11. 2
      smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java
  12. 1
      smack-core/src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java
  13. 5
      smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebugger.java
  14. 5
      smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java
  15. 6
      smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java
  16. 18
      smack-extensions/src/main/java/org/jivesoftware/smackx/amp/packet/AMPExtension.java
  17. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkManager.java
  18. 4
      smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java
  19. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/BytestreamSession.java
  20. 4
      smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/CapsExtension.java
  21. 8
      smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommand.java
  22. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/commands/LocalCommand.java
  23. 7
      smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java
  24. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferRequest.java
  25. 10
      smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IncomingFileTransfer.java
  26. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/forward/packet/Forwarded.java
  27. 3
      smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/LastActivityManager.java
  28. 5
      smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/JivePropertiesManager.java
  29. 4
      smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/MessageCorrectExtension.java
  30. 8
      smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DiscussionHistory.java
  31. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCItem.java
  32. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/packet/Privacy.java
  33. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java
  34. 17
      smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/StreamInitiation.java
  35. 22
      smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java
  36. 4
      smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/DataForm.java
  37. 2
      smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java
  38. 3
      smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java
  39. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleException.java
  40. 54
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleManager.java
  41. 21
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleNegotiator.java
  42. 6
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java
  43. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionRequest.java
  44. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/ContentInfo.java
  45. 3
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/JingleMediaManager.java
  46. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/JingleMediaSession.java
  47. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/MediaNegotiator.java
  48. 14
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioChannel.java
  49. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicResolver.java
  50. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedResolver.java
  51. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedResolver.java
  52. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/ICECandidate.java
  53. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/RTPBridge.java
  54. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUN.java
  55. 6
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUNResolver.java
  56. 4
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/TransportCandidate.java
  57. 9
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/TransportNegotiator.java
  58. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/TransportResolver.java
  59. 10
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/Jingle.java
  60. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentDescription.java
  61. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentInfo.java
  62. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleDescription.java
  63. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleTransport.java
  64. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentDescriptionProvider.java
  65. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentProvider.java
  66. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleDescriptionProvider.java
  67. 2
      smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java
  68. 12
      smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
  69. 36
      smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java
  70. 2
      smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java
  71. 4
      smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java

@ -178,8 +178,7 @@ allprojects {
// since the one paramater addStringOption doesn't seem to
// work, we extra add '-quiet', which is added anyway by
// gradle.
// TODO enable all doclints, see SMACK-650
options.addStringOption('Xdoclint:all,-html', '-quiet')
options.addStringOption('Xdoclint:all', '-quiet')
}
}
tasks.withType(Javadoc) {
@ -193,6 +192,10 @@ allprojects {
configurations.errorprone {
resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.15'
}
// Make all project's 'test' target depend on javadoc, so that
// javadoc is also linted.
test { dependsOn javadoc }
}
gradle.taskGraph.whenReady { taskGraph ->

@ -50,6 +50,7 @@ import android.os.SystemClock;
* counted towards the scheduled delay time</li>
* <li>the scheduled Runnable is not run while the system is in deep sleep.</li>
* </ul>
* <p>
* That is the reason Android comes with an API to schedule those tasks: AlarmManager. Which this
* class uses to determine every 30 minutes if a server ping is necessary. The interval of 30
* minutes is the ideal trade-off between reliability and low resource (battery) consumption.

@ -73,7 +73,6 @@ public final class SmackConfiguration {
* <li> Server Traffic -- raw XML traffic sent by the server to the client.
* <li> Interpreted Packets -- shows XML packets from the server as parsed by Smack.
* </ul>
* <p/>
* Debugging can be enabled by setting this field to true, or by setting the Java system
* property <tt>smack.debugEnabled</tt> to true. The system property can be set on the
* command line such as "java SomeApp -Dsmack.debugEnabled=true".

@ -34,7 +34,6 @@ import org.jxmpp.jid.EntityFullJid;
* implements shared methods which are used by the different types of connections (e.g.
* <code>XMPPTCPConnection</code> or <code>XMPPBOSHConnection</code>). To create a connection to an XMPP server
* a simple usage of this API might look like the following:
* <p>
*
* <pre>
* // Create a connection to the igniterealtime.org XMPP server.
@ -54,7 +53,6 @@ import org.jxmpp.jid.EntityFullJid;
* // Disconnect from the server
* con.disconnect();
* </pre>
* </p>
* <p>
* Note that the XMPPConnection interface does intentionally not declare any methods that manipulate
* the connection state, e.g. <code>connect()</code>, <code>disconnect()</code>. You should use the

@ -34,8 +34,8 @@ import java.util.zip.InflaterInputStream;
* <p>
* See also:
* <ul>
* <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#deflate(byte[], int, int, int)">The required deflate() method (Java7)</a>
* <li><a href="http://developer.android.com/reference/java/util/zip/Deflater.html#deflate(byte[], int, int, int)">The required deflate() method (Android)</a>
* <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#deflate(byte[],%20int,%20int,%20int)">The required deflate() method (Java7)</a>
* <li><a href="http://developer.android.com/reference/java/util/zip/Deflater.html#deflate(byte[],%20int,%20int,%20int)">The required deflate() method (Android)</a>
* </ul>
*
* @author Florian Schmaus

@ -28,11 +28,12 @@ import org.jivesoftware.smack.XMPPConnection;
/**
* Very simple debugger that prints to the console (stdout) the sent and received stanzas. Use
* this debugger with caution since printing to the console is an expensive operation that may
* even block the thread since only one thread may print at a time.<p>
* <p/>
* even block the thread since only one thread may print at a time.
* <p>
* It is possible to not only print the raw sent and received stanzas but also the interpreted
* packets by Smack. By default interpreted packets won't be printed. To enable this feature
* just change the <tt>printInterpreted</tt> static variable to <tt>true</tt>.
* </p>
*
* @author Gaston Dombiak
*/

@ -26,11 +26,12 @@ import org.jivesoftware.smack.XMPPConnection;
/**
* Very simple debugger that prints to the console (stdout) the sent and received stanzas. Use
* this debugger with caution since printing to the console is an expensive operation that may
* even block the thread since only one thread may print at a time.<p>
* <p/>
* even block the thread since only one thread may print at a time.
* <p>
* It is possible to not only print the raw sent and received stanzas but also the interpreted
* packets by Smack. By default interpreted packets won't be printed. To enable this feature
* just change the <tt>printInterpreted</tt> static variable to <tt>true</tt>.
* </p>
*
* @author Gaston Dombiak
*/

@ -25,7 +25,7 @@ public class ErrorIQ extends SimpleIQ {
/**
* Constructs a new error IQ.
* <p>
* According to RFC 6120 § 8.3.1 "4. An error stanza MUST contain an <error/> child element.", so the xmppError argument is mandatory.
* According to RFC 6120 § 8.3.1 "4. An error stanza MUST contain an &lt;error/&gt; child element.", so the xmppError argument is mandatory.
* </p>
* @param xmppErrorBuilder the XMPPError builder (required).
*/

@ -135,7 +135,7 @@ public interface Packet extends TopLevelStreamElement {
List<ExtensionElement> getExtensions();
/**
* Return a set of all extensions with the given element name <emph>and</emph> namespace.
* Return a set of all extensions with the given element name <i>and</i> namespace.
* <p>
* Changes to the returned set will update the stanza(/packet) extensions, if the returned set is not the empty set.
* </p>

@ -70,7 +70,7 @@ public abstract class Stanza implements TopLevelStreamElement {
* Such an attribute is defined for all stanza types. For IQ, see for
* example XEP-50 3.7:
* "The requester SHOULD provide its locale information using the "xml:lang
* " attribute on either the <iq/> (RECOMMENDED) or <command/> element."
* " attribute on either the &lt;iq/&gt; (RECOMMENDED) or &lt;command/&gt; element."
* </p>
*/
protected String language;

@ -34,7 +34,7 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
*
* <table border=1>
* <caption>XMPP Errors</caption>
* <hr><td><b>XMPP Error Condition</b></td><td><b>Type</b></td><td><b>RFC 6120 Section</b></td></hr>
* <tr><th>XMPP Error Condition</th><th>Type</th><th>RFC 6120 Section</th></tr>
* <tr><td>bad-request</td><td>MODIFY</td><td>8.3.3.1</td></tr>
* <tr><td>conflict</td><td>CANCEL</td><td>8.3.3.2</td></tr>
* <tr><td>feature-not-implemented</td><td>CANCEL</td><td>8.3.3.3</td></tr>

@ -35,6 +35,7 @@ import org.jxmpp.jid.EntityBareJid;
/**
* Base class for SASL mechanisms.
* Subclasses will likely want to implement their own versions of these methods:
* <ul>
* <li>{@link #authenticate(String, String, DomainBareJid, String, EntityBareJid, SSLSession)} -- Initiate authentication stanza using the
* deprecated method.</li>
* <li>{@link #authenticate(String, DomainBareJid, CallbackHandler, EntityBareJid, SSLSession)} -- Initiate authentication stanza

@ -93,10 +93,11 @@ import org.jxmpp.jid.Jid;
/**
* The EnhancedDebugger is a debugger that allows to debug sent, received and interpreted messages
* but also provides the ability to send ad-hoc messages composed by the user.<p>
* <p/>
* but also provides the ability to send ad-hoc messages composed by the user.
* <p>
* A new EnhancedDebugger will be created for each connection to debug. All the EnhancedDebuggers
* will be shown in the same debug window provided by the class EnhancedDebuggerWindow.
* </p>
*
* @author Gaston Dombiak
*/

@ -49,10 +49,11 @@ import org.jivesoftware.smack.provider.ProviderManager;
/**
* The EnhancedDebuggerWindow is the main debug window that will show all the EnhancedDebuggers.
* For each connection to debug there will be an EnhancedDebugger that will be shown in the
* EnhancedDebuggerWindow.<p>
* <p/>
* EnhancedDebuggerWindow.
* <p>
* This class also provides information about Smack like for example the Smack version and the
* installed providers.
* </p>
*
* @author Gaston Dombiak
*/

@ -418,7 +418,7 @@ public final class MamManager extends Manager {
/**
* Obtain page before the first message saved (specific chat).
* <p>
* Note that the messageUid is the XEP-0313 UID and <b>not</> the stanza ID of the message.
* Note that the messageUid is the XEP-0313 UID and <b>not</b> the stanza ID of the message.
* </p>
*
* @param chatJid
@ -442,7 +442,7 @@ public final class MamManager extends Manager {
/**
* Obtain page after the last message saved (specific chat).
* <p>
* Note that the messageUid is the XEP-0313 UID and <b>not</> the stanza ID of the message.
* Note that the messageUid is the XEP-0313 UID and <b>not</b> the stanza ID of the message.
* </p>
*
* @param chatJid
@ -615,7 +615,7 @@ public final class MamManager extends Manager {
* @throws XMPPErrorException
* @throws NoResponseException
* @throws InterruptedException
* @depreacted use {@link #isSupported()} instead.
* @deprecated use {@link #isSupported()} instead.
*/
@Deprecated
// TODO Remove in Smack 4.3

@ -238,9 +238,9 @@ public class AMPExtension implements ExtensionElement {
**/
public enum Action {
/**
* The "alert" action triggers a reply <message/> stanza to the sending entity.
* This <message/> stanza MUST contain the element <amp status='alert'/>,
* which itself contains the <rule/> that triggered this action. In all other respects,
* The "alert" action triggers a reply &lt;message/&gt; stanza to the sending entity.
* This &lt;message/&gt; stanza MUST contain the element &lt;amp status='alert'/&gt;,
* which itself contains the &lt;rule/&gt; that triggered this action. In all other respects,
* this action behaves as "drop".
*/
alert,
@ -251,16 +251,16 @@ public class AMPExtension implements ExtensionElement {
*/
drop,
/**
* The "error" action triggers a reply <message/> stanza of type "error" to the sending entity.
* The <message/> stanza's <error/> child MUST contain a
* <failed-rules xmlns='http://jabber.org/protocol/amp#errors'/> error condition,
* The "error" action triggers a reply &lt;message/&gt; stanza of type "error" to the sending entity.
* The &lt;message/&gt; stanza's &lt;error/&gt; child MUST contain a
* &lt;failed-rules xmlns='http://jabber.org/protocol/amp#errors'/&gt; error condition,
* which itself contains the rules that triggered this action.
*/
error,
/**
* The "notify" action triggers a reply <message/> stanza to the sending entity.
* This <message/> stanza MUST contain the element <amp status='notify'/>, which itself
* contains the <rule/> that triggered this action. Unlike the other actions,
* The "notify" action triggers a reply &lt;message/&gt; stanza to the sending entity.
* This &lt;message/&gt; stanza MUST contain the element &lt;amp status='notify'/&gt;, which itself
* contains the &lt;rule/&gt; that triggered this action. Unlike the other actions,
* this action does not override the default behavior for a server.
* Instead, the server then executes its default behavior after sending the notify.
*/

@ -37,7 +37,7 @@ import org.jxmpp.jid.parts.Resourcepart;
/**
* Provides methods to manage bookmarks in accordance with XEP-0048. Methods for managing URLs and
* Conferences are provided.
* </p>
*
* It should be noted that some extensions have been made to the XEP. There is an attribute on URLs
* that marks a url as a news feed and also a sub-element can be added to either a URL or conference
* indicated that it is shared amongst all users on a server.

@ -36,12 +36,10 @@ import org.xmlpull.v1.XmlPullParserException;
* Bookmark Storage (XEP-0048) defined a protocol for the storage of bookmarks to conference rooms and other entities
* in a Jabber user's account.
* See the following code sample for saving Bookmarks:
* <p/>
* <pre>
* XMPPConnection con = new XMPPTCPConnection("jabber.org");
* con.login("john", "doe");
* Bookmarks bookmarks = new Bookmarks();
* <p/>
* // Bookmark a URL
* BookmarkedURL url = new BookmarkedURL();
* url.setName("Google");
@ -56,8 +54,6 @@ import org.xmlpull.v1.XmlPullParserException;
* // Save Bookmarks using PrivateDataManager.
* PrivateDataManager manager = new PrivateDataManager(con);
* manager.setPrivateData(bookmarks);
* <p/>
* <p/>
* LastActivity activity = LastActivity.getLastActivity(con, "xray@jabber.org");
* </pre>
*

@ -73,7 +73,7 @@ public interface BytestreamSession {
* read() call on the input stream associated with this session will block for only this amount
* of time. If the timeout expires, a java.net.SocketTimeoutException is raised, though the
* session is still valid. The option must be enabled prior to entering the blocking operation
* to have effect. The timeout must be > 0. A timeout of zero is interpreted as an infinite
* to have effect. The timeout must be &gt; 0. A timeout of zero is interpreted as an infinite
* timeout. Default is 0.
*
* @param timeout the specified timeout, in milliseconds

@ -61,10 +61,10 @@ public class CapsExtension implements ExtensionElement {
* {@inheritDoc}.
*
* <pre>
* <c xmlns='http://jabber.org/protocol/caps'
* &lt;c xmlns='http://jabber.org/protocol/caps'
* hash='sha-1'
* node='http://code.google.com/p/exodus'
* ver='QgayPKawpkPSDYmwT/WM94uAlu0='/>
* ver='QgayPKawpkPSDYmwT/WM94uAlu0='/&gt;
* </pre>
*
*/

@ -38,6 +38,7 @@ import org.jxmpp.jid.Jid;
* <code>getForm</code> method retrieves a form with all the users.
* <p>
* Each command has a <tt>node</tt> that should be unique within a given JID.
* </p>
* <p>
* Commands may have zero or more stages. Each stage is usually used for
* gathering information required for the command execution. Users are able to
@ -49,21 +50,22 @@ import org.jxmpp.jid.Jid;
* have to provide the data forms the user must complete in each stage and the
* allowed actions the user might perform during each stage (e.g. go to the
* previous stage or go to the next stage).
* <p>
* </p>
* All the actions may throw an XMPPException if there is a problem executing
* them. The <code>XMPPError</code> of that exception may have some specific
* information about the problem. The possible extensions are:
*
* <ul>
* <li><i>malformed-action</i>. Extension of a <i>bad-request</i> error.</li>
* <li><i>bad-action</i>. Extension of a <i>bad-request</i> error.</li>
* <li><i>bad-locale</i>. Extension of a <i>bad-request</i> error.</li>
* <li><i>bad-payload</i>. Extension of a <i>bad-request</i> error.</li>
* <li><i>bad-sessionid</i>. Extension of a <i>bad-request</i> error.</li>
* <li><i>session-expired</i>. Extension of a <i>not-allowed</i> error.</li>
* </ul>
* <p>
* See the <code>SpecificErrorCondition</code> class for detailed description
* of each one.
* <p>
* </p>
* Use the <code>getSpecificErrorConditionFrom</code> to obtain the specific
* information from an <code>XMPPError</code>.
*

@ -31,7 +31,7 @@ import org.jxmpp.jid.Jid;
* <li>Current Stage</li>
* <li>Available actions</li>
* <li>Default action</li>
* </ul><p/>
* </ul>
* To implement a new command extend this class and implement all the abstract
* methods. When implementing the actions remember that they could be invoked
* several times, and that you must use the current stage number to know what to

@ -269,7 +269,7 @@ public final class FileTransferNegotiator extends Manager {
* Send a request to another user to send them a file. The other user has
* the option of, accepting, rejecting, or not responding to a received file
* transfer request.
* <p/>
* <p>
* If they accept, the stanza(/packet) will contain the other user's chosen stream
* type to send the file across. The two choices this implementation
* provides to the other user for file transfer are <a
@ -277,11 +277,12 @@ public final class FileTransferNegotiator extends Manager {
* which is the preferred method of transfer, and <a
* href="http://www.xmpp.org/extensions/jep-0047.html">In-Band Bytestreams</a>,
* which is the fallback mechanism.
* <p/>
* </p>
* <p>
* The other user may choose to decline the file request if they do not
* desire the file, their client does not support XEP-0096, or if there are
* no acceptable means to transfer the file.
* <p/>
* </p>
* Finally, if the other user does not respond this method will return null
* after the specified timeout.
*

@ -122,7 +122,7 @@ public class FileTransferRequest {
/**
* Accepts this file transfer and creates the incoming file transfer.
*
* @return Returns the <b><i>IncomingFileTransfer</b></i> on which the
* @return Returns the IncomingFileTransfer on which the
* file transfer can be carried out.
*/
public IncomingFileTransfer accept() {

@ -42,12 +42,12 @@ import org.jivesoftware.smack.XMPPException.XMPPErrorException;
* user on the jabber network. There are two stages of the file transfer to be
* concerned with and they can be handled in different ways depending upon the
* method that is invoked on this class.
* <p/>
*
* The first way that a file is recieved is by calling the
* {@link #recieveFile()} method. This method, negotiates the appropriate stream
* method and then returns the <b><i>InputStream</b></i> to read the file
* method and then returns the InputStream to read the file
* data from.
* <p/>
*
* The second way that a file can be recieved through this class is by invoking
* the {@link #recieveFile(File)} method. This method returns immediatly and
* takes as its parameter a file on the local file system where the file
@ -98,10 +98,10 @@ public class IncomingFileTransfer extends FileTransfer {
/**
* This method negotitates the stream and then transfer's the file over the negotiated stream.
* The transfered file will be saved at the provided location.
* <p/>
*
* This method will return immedialtly, file transfer progress can be monitored through several
* methods:
* <p/>
*
* <UL>
* <LI>{@link FileTransfer#getStatus()}
* <LI>{@link FileTransfer#getProgress()}

@ -23,7 +23,7 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
import org.jivesoftware.smackx.delay.packet.DelayInformation;
/**
* Stanza(/Packet) extension for >XEP-0297: Stanza Forwarding.
* Stanza extension for XEP-0297: Stanza Forwarding.
*
* @author Georg Lukas
* @see <a href="http://xmpp.org/extensions/xep-0297.html">XEP-0297: Stanza Forwarding</a>

@ -48,7 +48,6 @@ import org.jxmpp.jid.Jid;
* associated with a Jabber ID. A manager handles incoming LastActivity requests
* of existing Connections. It also allows to request last activity information
* of other users.
* <p>
*
* LastActivity (XEP-0012) based on the sending JID's type allows for retrieval
* of:
@ -58,11 +57,9 @@ import org.jxmpp.jid.Jid;
* specified when doing so.
* <li>How long a host has been up.
* </ol>
* <p/>
*
* For example to get the idle time of a user logged in a resource, simple send
* the LastActivity stanza(/packet) to them, as in the following code:
* <p>
*
* <pre>
* XMPPConnection con = new XMPPTCPConnection(&quot;jabber.org&quot;);

@ -34,9 +34,10 @@ public class JivePropertiesManager {
* you are sure that you understand the potential security implications it can cause.
* <p>
* See also:
* </p>
* <ul>
* <li> <a href="http://stackoverflow.com/questions/19054460/">"What is the security impact of deserializing untrusted data in Java?" on Stackoverflow<a>
* <ul>
* <li> <a href="http://stackoverflow.com/questions/19054460/">"What is the security impact of deserializing untrusted data in Java?" on Stackoverflow</a>
* </ul>
* @param enabled true to enable Java object deserialization
*/
public static void setJavaObjectEnabled(boolean enabled) {

@ -28,8 +28,8 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
* the XEP for more implementation guidelines.
*
* @author Fernando Ramirez, f.e.ramirez94@gmail.com
* @see <a href="http://xmpp.org/extensions/xep-0308.html">XEP-0308:&nbsp;Last&
* nbsp;Message&nbsp;Correction</a>
* @see <a href="http://xmpp.org/extensions/xep-0308.html">XEP-0308:&nbsp;Last
* &nbsp;Message&nbsp;Correction</a>
*/
public class MessageCorrectExtension implements ExtensionElement {

@ -28,11 +28,11 @@ import org.jivesoftware.smackx.muc.packet.MUCInitialPresence;
*
* You can use some or all of these variable to control the amount of history to receive:
* <ul>
* <li>maxchars -> total number of characters to receive in the history.
* <li>maxstanzas -> total number of messages to receive in the history.
* <li>seconds -> only the messages received in the last "X" seconds will be included in the
* <li>maxchars -&gt; total number of characters to receive in the history.
* <li>maxstanzas -&gt; total number of messages to receive in the history.
* <li>seconds -&gt; only the messages received in the last "X" seconds will be included in the
* history.
* <li>since -> only the messages received since the datetime specified will be included in
* <li>since -&gt; only the messages received since the datetime specified will be included in
* the history.
* </ul>
*

@ -130,7 +130,7 @@ public class MUCItem implements NamedElement {
}
/**
* Returns the <room@service/nick> by which an occupant is identified within the context of a
* Returns the &lt;room@service/nick&gt; by which an occupant is identified within the context of a
* room. If the room is non-anonymous, the JID will be included in the item.
*
* @return the room JID by which an occupant is identified within the room.

@ -29,7 +29,7 @@ import org.jivesoftware.smack.packet.IQ;
* and {@link org.jivesoftware.smackx.privacy.provider.PrivacyProvider} to allow and block
* communications from other users. It contains the appropriate structure to suit
* user-defined privacy lists. Different configured Privacy packages are used in the
* server & manager communication in order to:
* server and manager communication in order to:
* <ul>
* <li>Retrieving one's privacy lists.
* <li>Adding, removing, and editing one's privacy lists.

@ -37,7 +37,7 @@ import org.xmlpull.v1.XmlPullParser;
* has been used mainly to search for people who have registered with user directories (e.g., the "Jabber User Directory" hosted at users.jabber.org).
* However, the jabber:iq:search protocol is not limited to user directories, and could be used to search other Jabber information repositories
* (such as chatroom directories) or even to provide a Jabber interface to conventional search engines.
* <p/>
*
* The basic functionality is to query an information repository regarding the possible search fields, to send a search query, and to receive search results.
*
* @author Derek DeMoro

@ -51,7 +51,7 @@ public class StreamInitiation extends IQ {
/**
* The "id" attribute is an opaque identifier. This attribute MUST be
* present on type='set', and MUST be a valid string. This SHOULD NOT be
* sent back on type='result', since the <iq/> "id" attribute provides the
* sent back on type='result', since the &lt;iq/&gt; "id" attribute provides the
* only context needed. This value is generated by the Sender, and the same
* value MUST be used throughout a session when talking to the Receiver.
*
@ -75,7 +75,7 @@ public class StreamInitiation extends IQ {
* The "mime-type" attribute identifies the MIME-type for the data across
* the stream. This attribute MUST be a valid MIME-type as registered with
* the Internet Assigned Numbers Authority (IANA) [3] (specifically, as
* listed at <http://www.iana.org/assignments/media-types>). During
* listed at &lt;http://www.iana.org/assignments/media-types&gt;). During
* negotiation, this attribute SHOULD be present, and is otherwise not
* required. If not included during negotiation, its value is assumed to be
* "binary/octet-stream".
@ -168,26 +168,23 @@ public class StreamInitiation extends IQ {
* using the DateTime profile as described in Jabber Date and Time Profiles.</li>
* <li>hash: The MD5 sum of the file contents.</li>
* </ul>
* <p/>
* <p/>
* <p>
* &lt;desc&gt; is used to provide a sender-generated description of the
* file so the receiver can better understand what is being sent. It MUST
* NOT be sent in the result.
* <p/>
* <p/>
* </p>
* <p>
* When &lt;range&gt; is sent in the offer, it should have no attributes.
* This signifies that the sender can do ranged transfers. When a Stream
* Initiation result is sent with the <range> element, it uses these
* Initiation result is sent with the &lt;range&gt; element, it uses these
* attributes:
* <p/>
* </p>
* <ul>
* <li>offset: Specifies the position, in bytes, to start transferring the
* file data from. This defaults to zero (0) if not specified.</li>
* <li>length - Specifies the number of bytes to retrieve starting at
* offset. This defaults to the length of the file from offset to the end.</li>
* </ul>
* <p/>
* <p/>
* Both attributes are OPTIONAL on the &lt;range&gt; element. Sending no
* attributes is synonymous with not sending the &lt;range&gt; element. When
* no &lt;range&gt; element is sent in the Stream Initiation result, the

@ -47,19 +47,19 @@ import org.jxmpp.jid.EntityBareJid;
/**
* A VCard class for use with the
* <a href="http://www.jivesoftware.org/smack/" target="_blank">SMACK jabber library</a>.<p>
* <p/>
*
* You should refer to the
* <a href="http://www.xmpp.org/extensions/jep-0054.html" target="_blank">XEP-54 documentation</a>.<p>
* <p/>
*
* Please note that this class is incomplete but it does provide the most commonly found
* information in vCards. Also remember that VCard transfer is not a standard, and the protocol
* may change or be replaced.<p>
* <p/>
*
* <b>Usage:</b>
* <pre>
* <p/>
*
* // To save VCard:
* <p/>
*
* VCard vCard = new VCard();
* vCard.setFirstName("kir");
* vCard.setLastName("max");
@ -67,16 +67,16 @@ import org.jxmpp.jid.EntityBareJid;
* vCard.setJabberId("jabber@id.org");
* vCard.setOrganization("Jetbrains, s.r.o");
* vCard.setNickName("KIR");
* <p/>
*
* vCard.setField("TITLE", "Mr");
* vCard.setAddressFieldHome("STREET", "Some street");
* vCard.setAddressFieldWork("CTRY", "US");
* vCard.setPhoneWork("FAX", "3443233");
* <p/>
*
* vCard.save(connection);
* <p/>
*
* // To load VCard:
* <p/>
*
* VCard vCard = new VCard();
* vCard.load(conn); // load own VCard
* vCard.load(conn, "joe@foo.bar"); // load someone's VCard
@ -441,10 +441,10 @@ public class VCard extends IQ {
* <pre>
* // Load Avatar from VCard
* byte[] avatarBytes = vCard.getAvatar();
* <p/>
*
* // To create an ImageIcon for Swing applications
* ImageIcon icon = new ImageIcon(avatar);
* <p/>
*
* // To create just an image object from the bytes
* ByteArrayInputStream bais = new ByteArrayInputStream(avatar);
* try {

@ -93,7 +93,7 @@ public class DataForm implements ExtensionElement {
/**
* 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 &lt;title/&gt; on either a form to fill out, or a set of data results.
*
* @return description of the data.
*/
@ -184,7 +184,7 @@ public class DataForm implements ExtensionElement {
/**
* 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 &lt;title/&gt; on either a form to fill out, or a set of data results.
*
* @param title description of the data.
*/

@ -380,7 +380,7 @@ public abstract class ValidateElement implements ExtensionElement {
}
/**
* The <list-range/> element SHOULD be included only when the <field/> is of type "list-multi" and SHOULD be ignored
* The &gt;list-range/&lt; element SHOULD be included only when the &lt;field/&gt; is of type "list-multi" and SHOULD be ignored
* otherwise.
*
* @param formField

@ -77,14 +77,13 @@ import org.jxmpp.util.cache.LruCache;
/**
* Represents a user's roster, which is the collection of users a person receives
* presence updates for. Roster items are categorized into groups for easier management.
* <p>
*
* Others users may attempt to subscribe to this user using a subscription request. Three
* modes are supported for handling these requests: <ul>
* <li>{@link SubscriptionMode#accept_all accept_all} -- accept all subscription requests.</li>
* <li>{@link SubscriptionMode#reject_all reject_all} -- reject all subscription requests.</li>
* <li>{@link SubscriptionMode#manual manual} -- manually process all subscription requests.</li>
* </ul>
* </p>
*
* @author Matt Tucker
* @see #getInstanceFor(XMPPConnection)

@ -23,7 +23,7 @@ import org.jivesoftware.smackx.jingleold.packet.JingleError;
/**
* A Jingle exception.
*
* @author Alvaro Saurin <alvaro.saurin@gmail.com>
* @author Alvaro Saurin
*/
public class JingleException extends XMPPException {
private static final long serialVersionUID = -1521230401958103382L;

@ -56,34 +56,41 @@ import org.jxmpp.jid.Jid;
* Jingle is a session establishment protocol defined in (XEP-0166).
* It defines a framework for negotiating and managing out-of-band ( data that is send and receive through other connection than XMPP connection) data sessions over XMPP.
* With this protocol you can setup VOIP Calls, Video Streaming, File transfers and whatever out-of-band session based transmission.
* <p/>
* <p>
* To create a Jingle Session you need a Transport method and a Payload type.
* <p/>
* </p>
* <p>
* A transport method is how it will transmit and receive network packets. Transport MUST have one or more candidates.
* A transport candidate is an IP Address with a defined port, that other party must send data to.
* <p/>
* </p>
* <p>
* A supported payload type, is the data encoding format that the jmf will be transmitted.
* For instance an Audio Payload "GSM".
* <p/>
* </p>
* <p>
* A Jingle session negotiates a payload type and a pair of transport candidates.
* Which means that when a Jingle Session is established you will have two defined transport candidates with addresses
* and a defined Payload type.
* In other words, you will have two IP address with their respective ports, and a Codec type defined.
* <p/>
* </p>
* <p>
* The JingleManager is a facade built upon Jabber Jingle (XEP-166) to allow the
* use of Jingle. This implementation allows the user to simply
* use this class for setting the Jingle parameters, create and receive Jingle Sessions.
* <p/>
* </p>
* <p>
* In order to use the Jingle, the user must provide a
* TransportManager that will handle the resolution of potential IP addresses that can be used to transport the streaming (jmf).
* This TransportManager can be initialized with several default resolvers,
* including a fixed solver that can be used when the address and port are know
* in advance.
* This API have ready to use Transport Managers, for instance: BasicTransportManager, STUNTransportManager, BridgedTransportManager.
* <p/>
* </p>
* <p>
* You should also specify a JingleMediaManager if you want that JingleManager assume Media control
* Using a JingleMediaManager implementation is the easier way to implement a Jingle Application.
* <p/>
* </p>
* <p>
* Otherwise before creating an outgoing connection, the user must create jingle session
* listeners that will be called when different events happen. The most
* important event is <i>sessionEstablished()</i>, that will be called when all
@ -91,85 +98,60 @@ import org.jxmpp.jid.Jid;
* transmission as well as the remote and local addresses and ports for the
* communication. See JingleSessionListener for a complete list of events that can be
* observed.
* <p/>
* </p>
* This is an example of how to use the JingleManager:
* <i>This example implements a Jingle VOIP Call between two users.</i>
* <p/>
* <pre>
* <p/>
* To wait for an Incoming Jingle Session:
* <p/>
* try {
* <p/>
* // Connect to an XMPP Server
* XMPPConnection x1 = new XMPPTCPConnection("xmpp.com");
* x1.connect();
* x1.login("juliet", "juliet");
* <p/>
* // Create a JingleManager using a BasicResolver
* final JingleManager jm1 = new JingleManager(
* x1, new BasicTransportManager());
* <p/>
* // Create a JingleMediaManager. In this case using Jingle Audio Media API
* JingleMediaManager jingleMediaManager = new AudioMediaManager();
* <p/>
* // Set the JingleMediaManager
* jm1.setMediaManager(jingleMediaManager);
* <p/>
* // Listen for incoming calls
* jm1.addJingleSessionRequestListener(new JingleSessionRequestListener() {
* public void sessionRequested(JingleSessionRequest request) {
* <p/>
* try {
* // Accept the call
* IncomingJingleSession session = request.accept();
* <p/>
* <p/>
* // Start the call
* session.start();
* } catch (XMPPException e) {
* LOGGER.log(Level.WARNING, "exception", e);
* }
* <p/>
* }
* });
* <p/>
* Thread.sleep(15000);
* <p/>
* } catch (Exception e) {
* LOGGER.log(Level.WARNING, "exception", e);
* }
* <p/>
* To create an Outgoing Jingle Session:
* <p/>
* try {
* <p/>
* // Connect to an XMPP Server
* XMPPConnection x0 = new XMPPTCPConnection("xmpp.com");
* x0.connect();
* x0.login("romeo", "romeo");
* <p/>
* // Create a JingleManager using a BasicResolver
* final JingleManager jm0 = new JingleManager(
* x0, new BasicTransportManager());
* <p/>
* // Create a JingleMediaManager. In this case using Jingle Audio Media API
* JingleMediaManager jingleMediaManager = new AudioMediaManager(); // Using Jingle Media API
* <p/>
* // Set the JingleMediaManager
* jm0.setMediaManager(jingleMediaManager);
* <p/>
* // Create a new Jingle Call with a full JID
* OutgoingJingleSession js0 = jm0.createOutgoingJingleSession("juliet@xmpp.com/Smack");
* <p/>
* // Start the call
* js0.start();
* <p/>
* Thread.sleep(10000);
* js0.terminate();
* <p/>
* Thread.sleep(3000);
* <p/>
* } catch (Exception e) {
* LOGGER.log(Level.WARNING, "exception", e);
* }
@ -279,11 +261,11 @@ public class JingleManager implements JingleSessionListener {
/**
* Enables or disables the Jingle support on a given connection.
* <p/>
* <p/>
* <p>
* Before starting any Jingle jmf session, check that the user can handle
* it. Enable the Jingle support to indicate that this client handles Jingle
* messages.
* </p>
*
* @param connection the connection where the service will be enabled or
* disabled

@ -29,13 +29,10 @@ import org.jivesoftware.smackx.jingleold.listeners.JingleListener;
/**
* Basic Jingle negotiator.
* <p/>
* </p>
* <p/>
* <p>
* JingleNegotiator implements some basic behavior for every Jingle negotiation.
* It implements a "state" pattern: each stage should process Jingle packets and
* act depending on the current state in the negotiation...
* <p/>
* </p>
*
* @author Alvaro Saurin
@ -215,18 +212,18 @@ public abstract class JingleNegotiator {
* Media Negotiator
* Transport Negotiator
*
* <jingle>
* <content>
* <description>
* <transport>
* <content>
* <description>
* <transport>
* &lt;jingle&gt;
* &lt;content&gt;
* &lt;description&gt;
* &lt;transport&gt;
* &lt;content&gt;
* &lt;description&gt;
* &lt;transport&gt;
*
* This way, each segment of a Jingle stanza(/packet) has a corresponding negotiator that know how to deal with that
* part of the Jingle packet. It also allows us to support Jingle packets of arbitraty complexity.
*
* Each parent calls dispatchIncomingPacket for each of its children. The children then pass back a List<> of
* Each parent calls dispatchIncomingPacket for each of its children. The children then pass back a List of
* results that will get sent when we reach the top level negotiator (JingleSession).
*
* @param iq the stanza(/packet) received

@ -55,7 +55,7 @@ import org.jivesoftware.smackx.jingleold.packet.JingleError;
import org.jxmpp.jid.Jid;
/**
* An abstract Jingle session. <p/> This class contains some basic properties of
* An abstract Jingle session. This class contains some basic properties of
* every Jingle session. However, the concrete implementation can be found in
* subclasses.
*
@ -270,7 +270,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList
// ----------------------------------------------------------------------------------------------------------
/**
* Process and respond to an incoming packet. <p/> This method is called
* Process and respond to an incoming packet. This method is called
* from the stanza(/packet) listener dispatcher when a new stanza(/packet) has arrived. The
* method is responsible for recognizing the stanza(/packet) type and, depending on
* the current state, delivering it to the right event handler and wait for
@ -394,7 +394,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList
}
/**
* Add a new content negotiator on behalf of a <content> section received.
* Add a new content negotiator on behalf of a &lt;content/&gt; section received.
*/
public void addContentNegotiator(ContentNegotiator inContentNegotiator) {
contentNegotiators.add(inContentNegotiator);

@ -28,7 +28,7 @@ import org.jxmpp.jid.Jid;
/**
* A Jingle session request.
* <p/>
*
* This class is a facade of a received Jingle request. The user can have direct
* access to the Jingle stanza(/packet) (<i>JingleSessionRequest.getJingle() </i>) of
* the request or can use the convenience methods provided by this class.
@ -107,7 +107,7 @@ public class JingleSessionRequest {
/**
* Accepts this request and creates the incoming Jingle session.
*
* @return Returns the <b><i>IncomingJingleSession</b></i> on which the
* @return Returns the IncomingJingleSession on which the
* negotiation can be carried out.
* @throws SmackException
* @throws InterruptedException

@ -22,14 +22,14 @@ import java.util.Locale;
* Content info. Content info messages are complementary messages that ca