This release contains some new features, most noteworthy:
- XEP-0059: Result Set Management
- XEP-0222: Persistent Storage of Public Data via PubSub
- XEP-0223: Persistent Storage of Private Data via PubSub
- Roster Versioning
- Optional Session Establishment
- Persistent caching of Entity Capabilities and Avatars
- More login() methods, e.g. to pass an authorization id or custom
CallbackHandler
- BOSH compression (gzip, deflate)
- Helper classes to work with standardized MUC and PubSub data forms, e.g. to configure a node.
- Improved way to respond to IQ requests more easily via an
IQHander
interface
A more comprehensive list can be found in the changelog.
Special thanks goes to Markus Karg, who has provided many good ideas and test results, issued bugs and suggested improvements!
What’s next?
Moving to Java 8
0.5.0 will be the last release for Java 7, future releases will be for Java 8.
The reasons behind this decision are:- Java 8 offers so much cool new stuff, which is worth exploring and probably helps improving the API in a sustainable way. I am thinking especially about the Stream API,
java.time
andjava.util.function
packages and the new Async API. - As of now, this library is developed and tested with Java 8 only, which makes maintaining Java 7 compatibility a burden.
New Features
I only want to give a vague preview here, but my plans for new features are currently to implement XEP-0198: Stream Management and finally finish XEP-0301: In-Band Real Time Text.
Happy coding!
Is it possible to somehow run this library for Android? I tired to use SMACK, and your solution looks very tasty)
ReplyDeleteUnfortunately no I guess. I have no experience with Android development, but JAXB doesn't run (easily) on Android as far as I know.
Deletehey,
ReplyDeleteIf there anyhow to get the RID from a bosh connection? Or at least can you provide some information about building the library from the source ?.
Hi,
Deletetry this:
1. create your XmppSession with a BoshConnectionConfiguration.
2. connect and login.
3. String rid = ((BoshConnection)xmppSession.getActiveConnection()).detach();
4. Before detach() you can get the sid with getSessionId().
Please provide feedback, if it really works for you, maybe with a working code snippet, so that I can include it in the documentation.
Build instructions are found here:
http://sco0ter.bitbucket.org/babbler/buildinstructions.html
Hi,
DeleteIt has really worked. Thank you !
here is my code :
BoshConnectionConfiguration boshConfiguration = BoshConnectionConfiguration.builder()
.hostname("hostname")
.port(5280)
.file("/http-bind")
.build();
XmppSession xmppSession = new XmppSession("Domain", boshConfiguration);
try {
xmppSession.connect();
xmppSession.login("username", "password");
sid=((BoshConnection)xmppSession.getActiveConnection()).getSessionId();
rid=((BoshConnection)xmppSession.getActiveConnection()).detach();
} catch (AuthenticationException e) {
//Do your catch
}catch (XmppException e) {
// Do your catch
}
PS: I used Strophe.js for attaching the session.
Yes, that's how it should work. Btw.: detach() stops long-polling the session (and incrementing the RID), but does not terminate it, so that you can take the session over to strophe.js.
DeleteWill write a short documentation about it.