This also resulted in a refactoring of the Providers and parsing
Exceptions. NumberFormatException and ParseException can now be thrown
directly, the wrapping in a SmackParsingException is down at a higher
layer, i.e. in AbstractProvider.
Use EntityBareJid just as its done within PepManager. There is no need
for AsyncButOrdered in the PEP user managers, as PepManager already
takes care of that. Also the message carrying the PEP event should
always be the last parameter of the callbacks, as it is the least
important piece of information.
This mini assignment kicked-off with replacing `pubsub` with `pep`,
but later transformed into something more.
The alterations and additions in this commit:
a) GeoLocation.
1) Add Documentation.
2) Add `EMPTY_GEO_LOCATION` to be used while
`stopPublishingGeoLocation()` is called.
b) Add GeoLocation IntegrationTest.
c) Add GeoLocation Listener.
d) GeoLocationManager.
1) Add Documentation.
2) Replace `pubsub` with `pep`.
3) Add methods to add-and-remove GeoLocationListeners.
4) Enable GeoLocation by default.
e) Add `package.info` for GeoLocation Integration Test.
Returning a generic would allow for
List<ExtensionElement> list = stanza.getExtension("foo", "bar");
to compile (Note the we are calling getExtension(), not
getExtension*s*()).
Users are encouraged to use the type safe getExtension(Class<? extends
ExtensionElement) variant instead.
Fixes SMACK-825.
Introducing Smack's own XmlPullParser interface which tries to stay as
compatible as possible to XPP3. The interface is used to either wrap
StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's
XmlPullParser if Smack is used on on Android.
Fixes SMACK-591.
Also introduce JUnit 5 and non-strict javadoc projects.
XEP-0080 states that lon,lat,error,alt,accuracy,bearing and speed are
decimal values, and thus should either be present as decimal, or not present
at all (as they are optional elements).
Usage of String.valueOf(value) in code lead to creating a "null"
string in case number was not present, thus creating an element with
"null" content, which is not a valid decimal value.