[BUG] PubsubManager should not be "final"

$ find -name ‘Manager.java’ -exec grep ‘class .*Manager’ ‘{}’ ‘+’|sort|sed ‘s/: */:/’|column -t -s’:’
./org/jivesoftware/smack/AccountManager.java public class AccountManager {
./org/jivesoftware/smack/ChatManager.java public class ChatManager {
./org/jivesoftware/smack/OpenTrustManager.java class OpenTrustManager implements X509TrustManager {
./org/jivesoftware/smack/PrivacyListManager.java public class PrivacyListManager {
./org/jivesoftware/smack/provider/ProviderManager.java public class ProviderManager {
./org/jivesoftware/smack/ReconnectionManager.java public class ReconnectionManager implements ConnectionListener {
./org/jivesoftware/smack/ServerTrustManager.java class ServerTrustManager implements X509TrustManager {
./org/jivesoftware/smackx/bookmark/BookmarkManager.java public class BookmarkManager {
./org/jivesoftware/smackx/ChatStateManager.java private class IncomingMessageInterceptor implements ChatManagerListener, MessageListener {
./org/jivesoftware/smackx/ChatStateManager.java public class ChatStateManager {
./org/jivesoftware/smackx/commands/AdHocCommandManager.java public class AdHocCommandManager {
./org/jivesoftware/smackx/filetransfer/FileTransferManager.java public class FileTransferManager {
./org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiatorManager.java public class Socks5TransferNegotiatorManager implements FileTransferNegotiatorManager {
./org/jivesoftware/smackx/LastActivityManager.java public class LastActivityManager {
./org/jivesoftware/smackx/MessageEventManager.java public class MessageEventManager {
./org/jivesoftware/smackx/MultipleRecipientManager.java public class MultipleRecipientManager {
./org/jivesoftware/smackx/OfflineMessageManager.java public class OfflineMessageManager {
./org/jivesoftware/smackx/PEPManager.java public class PEPManager {
./org/jivesoftware/smackx/PrivateDataManager.java public class PrivateDataManager {
./org/jivesoftware/smackx/pubsub/PubSubManager.java final public class PubSubManager
./org/jivesoftware/smackx/RosterExchangeManager.java public class RosterExchangeManager {
./org/jivesoftware/smackx/search/UserSearchManager.java public class UserSearchManager {
./org/jivesoftware/smackx/ServiceDiscoveryManager.java public class ServiceDiscoveryManager {
./org/jivesoftware/smackx/SharedGroupManager.java public class SharedGroupManager {
./org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java public class TranscriptManager {
./org/jivesoftware/smackx/workgroup/agent/TranscriptSearchManager.java public class TranscriptSearchManager {
./org/jivesoftware/smackx/XHTMLManager.java public class XHTMLManager {

As one can see the pubsub manager is one of the only final classes.

This limits the possibility to extend the PubSubManager (or overcome bugs). I think this was overseen during merge.

Attached is a trivial patch to make it non-final.
PubSubManager-non-final.patch.zip (379 Bytes)