1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-17 12:32:05 +01:00
Commit graph

24 commits

Author SHA1 Message Date
Florian Schmaus
010a86444a Streamline LastActivity API, add enable/disable
Allow LastActivity to be enabled/disabled. The API is now similar to the
ones of the other Managers. Added unit tests.
2014-03-23 14:19:05 +01:00
Florian Schmaus
978f692eb0 Use XmlStringBuilder in most toXML() bodies
Also change StringUtils.escapeForXML() and Packet.toXML() to return
CharSequence instead of String. XmlStringBuilder now has 'optX' methods.

Remove XmlUtils in favor of XmlStringBuilder
2014-03-22 16:59:15 +01:00
Florian Schmaus
fcc8414a92 "not connected" is now a checked Exception thrown by sendPacket()
There is a unsolveable race condition between the connection state and
sendPacket(), i.e. the connection could go down, right after the
method calling sendPacket is called, but before sendPacket() is
invoked. Before this change, sendPacket() has thrown an unchecked
IllegalStateException, which could be ignored by the Smack user, who
would also not notice the race condition. We have decided to throw a
checked Exception in this case now, to make the Smack user aware of
this situation.

SMACK-426
2014-03-19 15:56:41 +01:00
Florian Schmaus
c592b4f046 Improve Exceptions (SMACK-426) 2014-03-19 09:00:10 +01:00
Florian Schmaus
4b56446e40 Introduce SmackException
SmackException (and it's subclasses) is for all errors/exceptions not
defined by any XMPP specification. XMPPException is now an abstract
class for all errors defined by the XMPP specifications.

Methods that involve an IQ exchange now either return the result, which
is obtained by IQ response, or they throw an XMPPErrorException if an IQ
error was the result of the IQ set/get. If there was no response from
the server within the default packet timeout, a NoResponseException will
be thrown.

XMPP SASL errors are now also reported accordingly.

SMACK-426
2014-03-14 01:46:42 +01:00
Florian Schmaus
67722aea93 Fix typo: s/interna_server_error/internal_server_error/ 2014-03-11 19:30:55 +01:00
Florian Schmaus
4fb5b85806 Re-activate all ignored unit-tests
Make all unit tests functional again.
2014-03-10 22:41:34 +01:00
Florian Schmaus
0058631ed6 AMP should use provider/packet packages and JUL
- Move AMPExtensionProvider to amp.provider
- Move AMPExtension to amp.packet
- Move java.util.logging for logging

SMACK-544
2014-03-10 17:03:07 +01:00
Florian Schmaus
6110872062 Cleanup of PrivacyList API
Use Type enum instead of String for PrivacyItem's constructor. Add
getName() to PrivacyList. Remove PrivacyRule, as it just adds unnecessary
complexity spliting PrivacyItem and PrivacyRule, they belong
together. Don't mix camel-case and c-style method names. Some minor
improvements. Add parser test.
2014-03-10 15:32:17 +01:00
Florian Schmaus
489816c61f Renamed Connection to XMPPConnection 2014-03-10 09:45:50 +01:00
Georg Lukas
62de78ef7c SMACK-53: create VersionProvider and VersionManager
The VersionProvider is used to parse Version IQs. Integration:

	providerManager.addIQProvider("query", Version.NAMESPACE, new VersionProvider());

The VersionManager is used to reply to Version IQs. Integration:

	VersionManger.getInstanceFor(connection).setVersion(
		new Version("App Name", "1.23", "Operating System"));
2014-03-09 11:20:31 +01:00
Vyacheslav Blinov
61bf5cd4ce Advanced Message Processing implementation (XEP-0079)
Fixes SMACK-544
2014-03-09 11:20:31 +01:00
Vyacheslav Blinov
06f88674ee SMACK-541 Fix of XHTMLExtensionProvider on Android
This fixes issue there on android in XHTMLExtension bodys contained "null" instead of actual xhtml tags
This happened due to difference in XPP implementation in KXmlPullParser (on Android) MXParser (in other cases)
This fix replaces usage of getText method of XPP with restoration of xhtml tags using XPP api.
2014-03-09 11:20:31 +01:00
Florian Schmaus
585e20e93e Rework XMPP Date/Time related code
- Fix "packet.Time is not thread-safe" (SMACK-543)
- Update packet.Time to XEP-0202

Add SDM.supportsFeature(), since this is a pattern that repeats over and
over again in Smack. Also add abstract Manager class, that takes care of
the weak reference to Connection, as this is also a repeating pattern in
Smack.
2014-03-09 11:20:31 +01:00
Florian Schmaus
3a4e6c6d39 Add automatically scheduled pings in PingManager
replaces keep-alive functionality. SMACK-537
2014-02-26 22:03:02 +01:00
Florian Schmaus
3093333533 Reworked Smack initialization
Move extension relevant configuration options from SmackConfiguration to
the extension. Introduced disabledSmackClasses that can be configured
via a system property or configuration file.
2014-02-23 17:48:07 +01:00
Florian Schmaus
24b637876f Substitute MXParser with a call to XmlPullParserFactory
This makes Smack more portable, as there are platforms that support the
XmlPullParser interface, but not MXParser (e.g. Android).

Also enable checkstyle check that MXParser is not used.
2014-02-20 13:48:36 +01:00
Florian Schmaus
7bd7b3d24c Improve packet send and result collecting API
Instead of repeating the same pattern, when sending an IQ get/set packet
and collecting the response

PacketFilter filter = new PacketIDFilter(request.getPacketID()),
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(reg);
IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
// Stop queuing results
collector.cancel();
if (result == null) {
    throw new XMPPException("No response from server.");
}
else if (result.getType() == IQ.Type.ERROR) {
    throw new XMPPException(result.getError());
}

the API got redesigned, so that the above code block can be replaced
with

Packet result = connection.createPacketCollectorAndSend(request).nextResultOrThrow();
2014-02-18 19:39:47 +01:00
Florian Schmaus
312f2f7508 Move EntityCaps and Bookmarks API in correct package
Also move ProviderConfigTest into core, since it tests core
functionality, nothing provided by extensions. Found the reason the test
was failing since the gradle migration (provider entry test.providers),
and activated it again. \o/

New API design as of SMACK-545
2014-02-18 10:24:59 +01:00
Florian Schmaus
d069e1be64 Normalize newlines to '\n'
Change all \r\n into unix style newlines. Add missing newlines at the
end of a file and activate the newline checkstyle module, that enforces
'\n' as newline and a newline at the end of every file.
2014-02-17 23:58:40 +01:00
Florian Schmaus
1e57f1c659 Activate checkstyle and add missing license headers
Delete also all "All rights reserved" statements, as they are
unnecessary and conflict with checkstyle's header check. Delete unused
imports.
2014-02-17 20:09:55 +01:00
Florian Schmaus
2ad517b6dd Add initializer tests and move classpath files
The initializer tests verify that every non-optional initializer, this
includes Providers, is loadable.

Creating files under META-INF is not considered best practice. Smack's
configuration and provider files reside now in classpath directory
qualified by Smack's package namespace.
2014-02-15 22:12:12 +01:00
Florian Schmaus
8d3814a8a7 New API design (SMACK-545) 2014-02-15 13:03:47 +01:00
Florian Schmaus
201152ef42 Migrate from Ant to Gradle (SMACK-265) 2014-02-14 18:46:33 +01:00