翻译原文见https://community.igniterealtime.org/docs/DOC-1845
欢迎来到Tinder!
Tinder是基于XMPP的JAVA库,提供XMPP节和组件的实现。
Tinder起源于JIveSoftware的Openfire和Whack实现的共享代码。Tinder中提供的实现并不是重写的,而是从Openfire和Whack里面移植过来的,保证了所有已经存在的特征和功能。所以,哪些代码组成了Tinder?Openfire的org.xmpp包实现中 定义了Packet、JID、IQ、组件和其他扩展。
为什么要新建一个project?
Openfire的很多代码不仅仅作为一个XMPP服务器实现有用,在其他环境中也非常有用。例如,开发者可能想在其他的project里面使用XMPP节,如果在工程里使用openfire作为依赖,会使整个工程变得冗杂。在这个例子中,如果有一个轻量级的XMPP对象实现的project可供使用,那将会非常的有用,不需要再依赖包含了很多其他特征的Openfire。Tinder允许开发者重用Openfire的部分而不需要引入整个openfire。
Tinder其他优点:
Tinder将代替目前在Openfire、Whack和ConnectionManager共享的一些重复的代码,删除重复代码将更容易维护和完善这些project。通过转移实现和对底层XMPP实现的维护,Openfire、Whack和其他的开发者将能够集中注意力开发对他们project有价值的东西。
从另一方面来说,你可以认为组成Tinder的核心代码也会引起一些专用发展的注意(单元测试,bug跟踪等),这将有利于任何优化代码的尝试,例如高性能优化。
Tinder会替代Smack吗?
当然不会!Smack提供了一个成熟的XMPP客户端的实现,而Tinder仅仅定义了一些XMPP的构建块,Tinder提供了一些基本对象,而客户端的库例如Smack是基于此对象构建的。当然,Smack并不和Openfire、Whack和ConnectionManager共享相同的代码基础。因此,Tinder和Smack在未来合并是不可能的,他们有太多的不同。