![]() |
Hubiquitus Android
0.3
Android client for hubiquitus protocol
|
00001 package org.hubiquitus.hapi.transport.xmpp; 00002 00003 00004 import org.jivesoftware.smack.provider.PrivacyProvider; 00005 import org.jivesoftware.smack.provider.ProviderManager; 00006 import org.jivesoftware.smackx.GroupChatInvitation; 00007 import org.jivesoftware.smackx.PrivateDataManager; 00008 import org.jivesoftware.smackx.packet.AttentionExtension; 00009 import org.jivesoftware.smackx.packet.ChatStateExtension; 00010 import org.jivesoftware.smackx.packet.LastActivity; 00011 import org.jivesoftware.smackx.packet.Nick; 00012 import org.jivesoftware.smackx.packet.OfflineMessageInfo; 00013 import org.jivesoftware.smackx.packet.OfflineMessageRequest; 00014 import org.jivesoftware.smackx.packet.SharedGroupsInfo; 00015 import org.jivesoftware.smackx.provider.DataFormProvider; 00016 import org.jivesoftware.smackx.provider.DelayInformationProvider; 00017 import org.jivesoftware.smackx.provider.DiscoverInfoProvider; 00018 import org.jivesoftware.smackx.provider.DiscoverItemsProvider; 00019 import org.jivesoftware.smackx.provider.HeaderProvider; 00020 import org.jivesoftware.smackx.provider.HeadersProvider; 00021 import org.jivesoftware.smackx.provider.MUCAdminProvider; 00022 import org.jivesoftware.smackx.provider.MUCOwnerProvider; 00023 import org.jivesoftware.smackx.provider.MUCUserProvider; 00024 import org.jivesoftware.smackx.provider.MessageEventProvider; 00025 import org.jivesoftware.smackx.provider.MultipleAddressesProvider; 00026 import org.jivesoftware.smackx.provider.RosterExchangeProvider; 00027 import org.jivesoftware.smackx.provider.StreamInitiationProvider; 00028 import org.jivesoftware.smackx.provider.VCardProvider; 00029 import org.jivesoftware.smackx.provider.XHTMLExtensionProvider; 00030 import org.jivesoftware.smackx.pubsub.provider.AffiliationProvider; 00031 import org.jivesoftware.smackx.pubsub.provider.AffiliationsProvider; 00032 import org.jivesoftware.smackx.pubsub.provider.ConfigEventProvider; 00033 import org.jivesoftware.smackx.pubsub.provider.EventProvider; 00034 import org.jivesoftware.smackx.pubsub.provider.FormNodeProvider; 00035 import org.jivesoftware.smackx.pubsub.provider.ItemProvider; 00036 import org.jivesoftware.smackx.pubsub.provider.ItemsProvider; 00037 import org.jivesoftware.smackx.pubsub.provider.PubSubProvider; 00038 import org.jivesoftware.smackx.pubsub.provider.RetractEventProvider; 00039 import org.jivesoftware.smackx.pubsub.provider.SimpleNodeProvider; 00040 import org.jivesoftware.smackx.pubsub.provider.SubscriptionProvider; 00041 import org.jivesoftware.smackx.pubsub.provider.SubscriptionsProvider; 00042 import org.jivesoftware.smackx.search.UserSearch; 00043 00056 public class SmackConfigureProviderManager { 00057 00058 public static void configureProviderManager() { 00059 ProviderManager pm = ProviderManager.getInstance(); 00060 00061 // The order is the same as in the smack.providers file 00062 00063 // Private Data Storage 00064 pm.addIQProvider("query", "jabber:iq:private", 00065 new PrivateDataManager.PrivateDataIQProvider()); 00066 // Time 00067 try { 00068 pm.addIQProvider("query", "jabber:iq:time", 00069 Class.forName("org.jivesoftware.smackx.packet.Time")); 00070 } catch (ClassNotFoundException e) { 00071 System.err 00072 .println("Can't load class for org.jivesoftware.smackx.packet.Time"); 00073 } 00074 00075 // Roster Exchange 00076 pm.addExtensionProvider("x", "jabber:x:roster", 00077 new RosterExchangeProvider()); 00078 // Message Events 00079 pm.addExtensionProvider("x", "jabber:x:event", 00080 new MessageEventProvider()); 00081 // Chat State 00082 pm.addExtensionProvider("active", 00083 "http://jabber.org/protocol/chatstates", 00084 new ChatStateExtension.Provider()); 00085 pm.addExtensionProvider("composing", 00086 "http://jabber.org/protocol/chatstates", 00087 new ChatStateExtension.Provider()); 00088 pm.addExtensionProvider("paused", 00089 "http://jabber.org/protocol/chatstates", 00090 new ChatStateExtension.Provider()); 00091 pm.addExtensionProvider("inactive", 00092 "http://jabber.org/protocol/chatstates", 00093 new ChatStateExtension.Provider()); 00094 pm.addExtensionProvider("gone", 00095 "http://jabber.org/protocol/chatstates", 00096 new ChatStateExtension.Provider()); 00097 00098 // XHTML 00099 pm.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im", 00100 new XHTMLExtensionProvider()); 00101 00102 // Group Chat Invitations 00103 pm.addExtensionProvider("x", "jabber:x:conference", 00104 new GroupChatInvitation.Provider()); 00105 // Service Discovery # Items 00106 pm.addIQProvider("query", "http://jabber.org/protocol/disco#items", 00107 new DiscoverItemsProvider()); 00108 // Service Discovery # Info 00109 pm.addIQProvider("query", "http://jabber.org/protocol/disco#info", 00110 new DiscoverInfoProvider()); 00111 // Data Forms 00112 pm.addExtensionProvider("x", "jabber:x:data", new DataFormProvider()); 00113 // MUC User 00114 pm.addExtensionProvider("x", "http://jabber.org/protocol/muc#user", 00115 new MUCUserProvider()); 00116 // MUC Admin 00117 pm.addIQProvider("query", "http://jabber.org/protocol/muc#admin", 00118 new MUCAdminProvider()); 00119 // MUC Owner 00120 pm.addIQProvider("query", "http://jabber.org/protocol/muc#owner", 00121 new MUCOwnerProvider()); 00122 // Delayed Delivery 00123 pm.addExtensionProvider("x", "jabber:x:delay", 00124 new DelayInformationProvider()); 00125 pm.addExtensionProvider("delay", "urn:xmpp:delay", 00126 new DelayInformationProvider()); 00127 // Version 00128 try { 00129 pm.addIQProvider("query", "jabber:iq:version", 00130 Class.forName("org.jivesoftware.smackx.packet.Version")); 00131 } catch (ClassNotFoundException e) { 00132 System.err 00133 .println("Can't load class for org.jivesoftware.smackx.packet.Version"); 00134 } 00135 // VCard 00136 pm.addIQProvider("vCard", "vcard-temp", new VCardProvider()); 00137 // Offline Message Requests 00138 pm.addIQProvider("offline", "http://jabber.org/protocol/offline", 00139 new OfflineMessageRequest.Provider()); 00140 // Offline Message Indicator 00141 pm.addExtensionProvider("offline", 00142 "http://jabber.org/protocol/offline", 00143 new OfflineMessageInfo.Provider()); 00144 // Last Activity 00145 pm.addIQProvider("query", "jabber:iq:last", new LastActivity.Provider()); 00146 // User Search 00147 pm.addIQProvider("query", "jabber:iq:search", new UserSearch.Provider()); 00148 // SharedGroupsInfo 00149 pm.addIQProvider("sharedgroup", 00150 "http://www.jivesoftware.org/protocol/sharedgroup", 00151 new SharedGroupsInfo.Provider()); 00152 00153 // JEP-33: Extended Stanza Addressing 00154 pm.addExtensionProvider("addresses", 00155 "http://jabber.org/protocol/address", 00156 new MultipleAddressesProvider()); 00157 00158 // FileTransfer 00159 pm.addIQProvider("si", "http://jabber.org/protocol/si", 00160 new StreamInitiationProvider()); 00161 // pm.addIQProvider("query","http://jabber.org/protocol/bytestreams", 00162 // new BytestreamsProvider()); 00163 // pm.addIQProvider("open","http://jabber.org/protocol/ibb", new 00164 // OpenIQProvider()); 00165 // pm.addIQProvider("data","http://jabber.org/protocol/ibb", new 00166 // DataPacketProvider()); 00167 // pm.addIQProvider("close","http://jabber.org/protocol/ibb", new 00168 // CloseIQProvider()); 00169 // pm.addExtensionProvider("data","http://jabber.org/protocol/ibb", new 00170 // DataPacketProvider()); 00171 00172 // Privacy 00173 pm.addIQProvider("query", "jabber:iq:privacy", new PrivacyProvider()); 00174 00175 // SHIM 00176 pm.addExtensionProvider("headers", "http://jabber.org/protocol/shim", 00177 new HeadersProvider()); 00178 pm.addExtensionProvider("header", "http://jabber.org/protocol/shim", 00179 new HeaderProvider()); 00180 00181 // PubSub 00182 pm.addIQProvider("pubsub", "http://jabber.org/protocol/pubsub", 00183 new PubSubProvider()); 00184 pm.addExtensionProvider("create", "http://jabber.org/protocol/pubsub", 00185 new SimpleNodeProvider()); 00186 pm.addExtensionProvider("items", "http://jabber.org/protocol/pubsub", 00187 new ItemsProvider()); 00188 pm.addExtensionProvider("item", "http://jabber.org/protocol/pubsub", 00189 new ItemProvider()); 00190 pm.addExtensionProvider("subscriptions", 00191 "http://jabber.org/protocol/pubsub", 00192 new SubscriptionsProvider()); 00193 pm.addExtensionProvider("subscription", 00194 "http://jabber.org/protocol/pubsub", new SubscriptionProvider()); 00195 pm.addExtensionProvider("affiliations", 00196 "http://jabber.org/protocol/pubsub", new AffiliationsProvider()); 00197 pm.addExtensionProvider("affiliation", 00198 "http://jabber.org/protocol/pubsub", new AffiliationProvider()); 00199 pm.addExtensionProvider("options", "http://jabber.org/protocol/pubsub", 00200 new FormNodeProvider()); 00201 // PubSub owner 00202 pm.addIQProvider("pubsub", "http://jabber.org/protocol/pubsub#owner", 00203 new PubSubProvider()); 00204 pm.addExtensionProvider("configure", 00205 "http://jabber.org/protocol/pubsub#owner", 00206 new FormNodeProvider()); 00207 pm.addExtensionProvider("default", 00208 "http://jabber.org/protocol/pubsub#owner", 00209 new FormNodeProvider()); 00210 // PubSub event 00211 pm.addExtensionProvider("event", 00212 "http://jabber.org/protocol/pubsub#event", new EventProvider()); 00213 pm.addExtensionProvider("configuration", 00214 "http://jabber.org/protocol/pubsub#event", 00215 new ConfigEventProvider()); 00216 pm.addExtensionProvider("delete", 00217 "http://jabber.org/protocol/pubsub#event", 00218 new SimpleNodeProvider()); 00219 pm.addExtensionProvider("options", 00220 "http://jabber.org/protocol/pubsub#event", 00221 new FormNodeProvider()); 00222 pm.addExtensionProvider("items", 00223 "http://jabber.org/protocol/pubsub#event", new ItemsProvider()); 00224 pm.addExtensionProvider("item", 00225 "http://jabber.org/protocol/pubsub#event", new ItemProvider()); 00226 pm.addExtensionProvider("retract", 00227 "http://jabber.org/protocol/pubsub#event", 00228 new RetractEventProvider()); 00229 pm.addExtensionProvider("purge", 00230 "http://jabber.org/protocol/pubsub#event", 00231 new SimpleNodeProvider()); 00232 00233 // Nick Exchange 00234 pm.addExtensionProvider("nick", "http://jabber.org/protocol/nick", 00235 new Nick.Provider()); 00236 00237 // Attention 00238 pm.addExtensionProvider("attention", "urn:xmpp:attention:0", 00239 new AttentionExtension.Provider()); 00240 00241 // Custom provider 00242 pm.addExtensionProvider("hbody", "jabber:client", new HMessageXMPP.Provider()); 00243 00244 // Pubsub entry provider 00245 pm.addExtensionProvider("entry", "http://jabber.org/protocol/pubsub", new HXMPPPubsubEntry.Provider()); 00246 } 00247 } 00248