From 29159b831cb78ab722fd544255e355964e6d4a82 Mon Sep 17 00:00:00 2001 From: Matt Tucker Date: Wed, 24 Aug 2005 18:28:36 +0000 Subject: [PATCH] Removing odd intellij branching... git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2717 b35dd754-fafc-0310-a699-88a17e54d16e --- CopyOftrunk/apps/webchat/build/ant | 42 - CopyOftrunk/apps/webchat/build/ant.bat | 52 - CopyOftrunk/apps/webchat/build/build.xml | 91 - .../apps/webchat/build/lib/servlet.jar | Bin 78351 -> 0 bytes .../webchat/source/config/WEB-INF/web.xml | 167 -- .../jivesoftware/webchat/EmoticonFilter.java | 292 -- .../jivesoftware/webchat/JiveChatServlet.java | 729 ----- .../org/jivesoftware/webchat/TextStyle.java | 126 - .../org/jivesoftware/webchat/URLFilter.java | 312 -- .../jivesoftware/webchat/URLTranscoder.java | 188 -- .../webchat/source/web/account_creation.jsp | 116 - .../webchat/source/web/chat-hiddenform.jsp | 19 - .../apps/webchat/source/web/chat-launcher.jsp | 39 - CopyOftrunk/apps/webchat/source/web/common.js | 182 -- .../apps/webchat/source/web/frame_master.jsp | 33 - .../source/web/images/emoticons/angry.gif | Bin 692 -> 0 bytes .../source/web/images/emoticons/blush.gif | Bin 688 -> 0 bytes .../source/web/images/emoticons/confused.gif | Bin 688 -> 0 bytes .../source/web/images/emoticons/cool.gif | Bin 687 -> 0 bytes .../source/web/images/emoticons/cry.gif | Bin 693 -> 0 bytes .../source/web/images/emoticons/devil.gif | Bin 1093 -> 0 bytes .../source/web/images/emoticons/grin.gif | Bin 680 -> 0 bytes .../source/web/images/emoticons/happy.gif | Bin 675 -> 0 bytes .../source/web/images/emoticons/laugh.gif | Bin 670 -> 0 bytes .../source/web/images/emoticons/love.gif | Bin 1084 -> 0 bytes .../source/web/images/emoticons/mischief.gif | Bin 693 -> 0 bytes .../source/web/images/emoticons/plain.gif | Bin 678 -> 0 bytes .../source/web/images/emoticons/sad.gif | Bin 694 -> 0 bytes .../source/web/images/emoticons/shocked.gif | Bin 688 -> 0 bytes .../source/web/images/emoticons/silly.gif | Bin 685 -> 0 bytes .../source/web/images/emoticons/wink.gif | Bin 634 -> 0 bytes .../apps/webchat/source/web/images/logo.gif | Bin 925 -> 0 bytes .../source/web/images/logout-16x16.gif | Bin 325 -> 0 bytes CopyOftrunk/apps/webchat/source/web/index.jsp | 164 -- .../apps/webchat/source/web/input_frame.jsp | 75 - .../webchat/source/web/participants_frame.jsp | 46 - .../apps/webchat/source/web/style_sheet.jsp | 132 - .../webchat/source/web/transcript_frame.html | 13 - CopyOftrunk/build/README.html | 309 -- CopyOftrunk/build/ant | 42 - CopyOftrunk/build/ant-contrib.jar | Bin 10378 -> 0 bytes CopyOftrunk/build/ant.bat | 51 - CopyOftrunk/build/ant.jar | Bin 2440562 -> 0 bytes CopyOftrunk/build/build.properties | 15 - CopyOftrunk/build/build.xml | 311 -- CopyOftrunk/build/junit.jar | Bin 121179 -> 0 bytes CopyOftrunk/build/lib/jcert.jar | Bin 7637 -> 0 bytes CopyOftrunk/build/lib/jnet.jar | Bin 3098 -> 0 bytes CopyOftrunk/build/lib/jsse.jar | Bin 463863 -> 0 bytes CopyOftrunk/build/merge/xpp.jar | Bin 24676 -> 0 bytes CopyOftrunk/build/projects/Smack.iml | 80 - CopyOftrunk/build/projects/Smack.ipr | 217 -- CopyOftrunk/build/release.xml | 188 -- .../build/resources/META-INF/smack-config.xml | 18 - .../build/resources/META-INF/smack.providers | 124 - .../build/resources/images/message.png | Bin 759 -> 0 bytes .../build/resources/images/nav_left_blue.png | Bin 793 -> 0 bytes .../build/resources/images/nav_right_red.png | Bin 774 -> 0 bytes .../build/resources/images/photo_portrait.png | Bin 702 -> 0 bytes .../resources/images/question_and_answer.png | Bin 783 -> 0 bytes .../resources/images/trafficlight_green.png | Bin 633 -> 0 bytes .../resources/images/trafficlight_off.png | Bin 626 -> 0 bytes .../resources/images/trafficlight_red.png | Bin 616 -> 0 bytes .../build/resources/images/unknown.png | Bin 723 -> 0 bytes .../build/resources/images/warning.png | Bin 719 -> 0 bytes .../build/resources/releasedocs/README.html | 120 - .../resources/releasedocs/changelog.html | 296 -- CopyOftrunk/documentation/debugging.html | 116 - .../documentation/extensions/dataforms.html | 137 - .../documentation/extensions/disco.html | 236 -- .../documentation/extensions/index.html | 15 - .../documentation/extensions/intro.html | 70 - .../documentation/extensions/invitation.html | 60 - .../extensions/messageevents.html | 244 -- CopyOftrunk/documentation/extensions/muc.html | 619 ---- .../documentation/extensions/privatedata.html | 30 - .../extensions/rosterexchange.html | 179 -- .../documentation/extensions/style.css | 57 - .../documentation/extensions/time.html | 22 - CopyOftrunk/documentation/extensions/toc.html | 26 - .../documentation/extensions/xhtml.html | 200 -- CopyOftrunk/documentation/gettingstarted.html | 109 - .../documentation/images/debugwindow.gif | Bin 15064 -> 0 bytes .../documentation/images/enhanceddebugger.png | Bin 33334 -> 0 bytes CopyOftrunk/documentation/images/roster.png | Bin 18413 -> 0 bytes .../documentation/images/smacklogo.png | Bin 4538 -> 0 bytes CopyOftrunk/documentation/index.html | 37 - CopyOftrunk/documentation/messaging.html | 108 - CopyOftrunk/documentation/overview.html | 72 - CopyOftrunk/documentation/processing.html | 87 - CopyOftrunk/documentation/properties.html | 119 - CopyOftrunk/documentation/providers.html | 121 - CopyOftrunk/documentation/roster.html | 125 - CopyOftrunk/documentation/style.css | 56 - CopyOftrunk/sample/conf/WEB-INF/web.xml | 16 - CopyOftrunk/sample/web/addContact.jsp | 138 - CopyOftrunk/sample/web/chat.jsp | 60 - CopyOftrunk/sample/web/css/general.css | 36 - CopyOftrunk/sample/web/global.jsp | 66 - .../sample/web/images/address_book.png | Bin 1214 -> 0 bytes .../sample/web/images/businessman_add.png | Bin 738 -> 0 bytes .../sample/web/images/businessman_delete.png | Bin 761 -> 0 bytes CopyOftrunk/sample/web/images/businessmen.png | Bin 790 -> 0 bytes CopyOftrunk/sample/web/images/garbage.png | Bin 905 -> 0 bytes CopyOftrunk/sample/web/images/messages.png | Bin 756 -> 0 bytes .../sample/web/images/nav_right_blue.png | Bin 799 -> 0 bytes CopyOftrunk/sample/web/images/plug_delete.png | Bin 1437 -> 0 bytes CopyOftrunk/sample/web/images/refresh.png | Bin 1349 -> 0 bytes CopyOftrunk/sample/web/index.jsp | 53 - CopyOftrunk/sample/web/login.jsp | 190 -- CopyOftrunk/sample/web/moveContact.jsp | 208 -- CopyOftrunk/sample/web/viewRoster.jsp | 230 -- .../jivesoftware/smack/AccountManager.java | 298 -- .../source/org/jivesoftware/smack/Chat.java | 266 -- .../smack/ConnectionEstablishedListener.java | 41 - .../smack/ConnectionListener.java | 45 - .../org/jivesoftware/smack/GroupChat.java | 353 --- .../jivesoftware/smack/PacketCollector.java | 184 -- .../jivesoftware/smack/PacketListener.java | 48 - .../org/jivesoftware/smack/PacketReader.java | 593 ---- .../org/jivesoftware/smack/PacketWriter.java | 340 --- .../source/org/jivesoftware/smack/Roster.java | 780 ----- .../org/jivesoftware/smack/RosterEntry.java | 173 -- .../org/jivesoftware/smack/RosterGroup.java | 263 -- .../jivesoftware/smack/RosterListener.java | 44 - .../jivesoftware/smack/SSLXMPPConnection.java | 168 -- .../smack/SmackConfiguration.java | 207 -- .../jivesoftware/smack/XMPPConnection.java | 867 ------ .../org/jivesoftware/smack/XMPPException.java | 183 -- .../smack/debugger/ConsoleDebugger.java | 145 - .../smack/debugger/LiteDebugger.java | 320 -- .../smack/debugger/SmackDebugger.java | 78 - .../jivesoftware/smack/debugger/package.html | 1 - .../jivesoftware/smack/filter/AndFilter.java | 103 - .../smack/filter/FromContainsFilter.java | 54 - .../smack/filter/FromMatchesFilter.java | 71 - .../smack/filter/MessageTypeFilter.java | 54 - .../jivesoftware/smack/filter/NotFilter.java | 50 - .../jivesoftware/smack/filter/OrFilter.java | 103 - .../smack/filter/PacketExtensionFilter.java | 51 - .../smack/filter/PacketFilter.java | 63 - .../smack/filter/PacketIDFilter.java | 49 - .../smack/filter/PacketTypeFilter.java | 58 - .../smack/filter/ThreadFilter.java | 55 - .../smack/filter/ToContainsFilter.java | 55 - .../jivesoftware/smack/filter/package.html | 1 - .../org/jivesoftware/smack/package.html | 1 - .../smack/packet/Authentication.java | 186 -- .../smack/packet/DefaultPacketExtension.java | 134 - .../org/jivesoftware/smack/packet/IQ.java | 167 -- .../jivesoftware/smack/packet/Message.java | 273 -- .../org/jivesoftware/smack/packet/Packet.java | 423 --- .../smack/packet/PacketExtension.java | 56 - .../jivesoftware/smack/packet/Presence.java | 327 --- .../smack/packet/Registration.java | 113 - .../smack/packet/RosterPacket.java | 348 --- .../jivesoftware/smack/packet/XMPPError.java | 117 - .../jivesoftware/smack/packet/package.html | 1 - .../smack/provider/IQProvider.java | 47 - .../provider/PacketExtensionProvider.java | 46 - .../smack/provider/ProviderManager.java | 359 --- .../jivesoftware/smack/provider/package.html | 1 - .../smack/util/ObservableReader.java | 118 - .../smack/util/ObservableWriter.java | 120 - .../smack/util/PacketParserUtils.java | 417 --- .../smack/util/ReaderListener.java | 41 - .../jivesoftware/smack/util/StringUtils.java | 437 --- .../smack/util/WriterListener.java | 41 - .../org/jivesoftware/smack/util/package.html | 1 - .../DefaultMessageEventRequestListener.java | 55 - .../source/org/jivesoftware/smackx/Form.java | 539 ---- .../org/jivesoftware/smackx/FormField.java | 350 --- .../smackx/GroupChatInvitation.java | 115 - .../smackx/MessageEventManager.java | 304 -- .../MessageEventNotificationListener.java | 74 - .../smackx/MessageEventRequestListener.java | 86 - .../smackx/NodeInformationProvider.java | 44 - .../smackx/OfflineMessageHeader.java | 85 - .../smackx/OfflineMessageManager.java | 284 -- .../smackx/PrivateDataManager.java | 345 --- .../smackx/RemoteRosterEntry.java | 118 - .../org/jivesoftware/smackx/ReportedData.java | 255 -- .../smackx/RosterExchangeListener.java | 42 - .../smackx/RosterExchangeManager.java | 177 -- .../smackx/ServiceDiscoveryManager.java | 476 --- .../org/jivesoftware/smackx/XHTMLManager.java | 141 - .../org/jivesoftware/smackx/XHTMLText.java | 429 --- .../smackx/debugger/EnhancedDebugger.java | 858 ------ .../debugger/EnhancedDebuggerWindow.java | 348 --- .../jivesoftware/smackx/debugger/package.html | 1 - .../jivesoftware/smackx/muc/Affiliate.java | 98 - .../muc/DefaultParticipantStatusListener.java | 79 - .../smackx/muc/DefaultUserStatusListener.java | 70 - .../smackx/muc/DiscussionHistory.java | 173 -- .../jivesoftware/smackx/muc/HostedRoom.java | 65 - .../smackx/muc/InvitationListener.java | 49 - .../muc/InvitationRejectionListener.java | 38 - .../smackx/muc/MultiUserChat.java | 2572 ----------------- .../org/jivesoftware/smackx/muc/Occupant.java | 104 - .../smackx/muc/ParticipantStatusListener.java | 173 -- .../org/jivesoftware/smackx/muc/RoomInfo.java | 184 -- .../smackx/muc/SubjectUpdatedListener.java | 38 - .../smackx/muc/UserStatusListener.java | 127 - .../org/jivesoftware/smackx/muc/package.html | 1 - .../org/jivesoftware/smackx/package.html | 1 - .../jivesoftware/smackx/packet/DataForm.java | 296 -- .../smackx/packet/DefaultPrivateData.java | 137 - .../smackx/packet/DelayInformation.java | 142 - .../smackx/packet/DiscoverInfo.java | 268 -- .../smackx/packet/DiscoverItems.java | 235 -- .../jivesoftware/smackx/packet/MUCAdmin.java | 234 -- .../smackx/packet/MUCInitialPresence.java | 223 -- .../jivesoftware/smackx/packet/MUCOwner.java | 339 --- .../jivesoftware/smackx/packet/MUCUser.java | 627 ---- .../smackx/packet/MessageEvent.java | 334 --- .../smackx/packet/OfflineMessageInfo.java | 128 - .../smackx/packet/OfflineMessageRequest.java | 237 -- .../smackx/packet/PrivateData.java | 52 - .../smackx/packet/RosterExchange.java | 175 -- .../org/jivesoftware/smackx/packet/Time.java | 196 -- .../org/jivesoftware/smackx/packet/VCard.java | 646 ----- .../jivesoftware/smackx/packet/Version.java | 132 - .../smackx/packet/XHTMLExtension.java | 123 - .../jivesoftware/smackx/packet/package.html | 1 - .../smackx/provider/DataFormProvider.java | 160 - .../provider/DelayInformationProvider.java | 71 - .../smackx/provider/DiscoverInfoProvider.java | 83 - .../provider/DiscoverItemsProvider.java | 71 - .../smackx/provider/MUCAdminProvider.java | 81 - .../smackx/provider/MUCOwnerProvider.java | 108 - .../smackx/provider/MUCUserProvider.java | 174 -- .../smackx/provider/MessageEventProvider.java | 77 - .../smackx/provider/PrivateDataProvider.java | 46 - .../provider/RosterExchangeProvider.java | 90 - .../smackx/provider/VCardProvider.java | 209 -- .../provider/XHTMLExtensionProvider.java | 78 - .../jivesoftware/smackx/provider/package.html | 1 - CopyOftrunk/source/overview.html | 4 - CopyOftrunk/test/config/test-case.xml | 13 - .../test/org/jivesoftware/smack/ChatTest.java | 131 - .../org/jivesoftware/smack/FloodTest.java | 102 - .../test/org/jivesoftware/smack/IQTest.java | 78 - .../org/jivesoftware/smack/LoginTest.java | 104 - .../org/jivesoftware/smack/MessageTest.java | 139 - .../smack/MessengerLoginTest.java | 101 - .../jivesoftware/smack/PacketReaderTest.java | 102 - .../smack/PresencePriorityTest.java | 137 - .../org/jivesoftware/smack/RosterTest.java | 527 ---- .../smack/filter/AndFilterTest.java | 99 - .../smack/filter/FromContainsFilterTest.java | 104 - .../smack/filter/NotFilterTest.java | 86 - .../smack/filter/OrFilterTest.java | 133 - .../smack/filter/PacketIDFilterTest.java | 98 - .../smack/filter/PacketTypeFilterTest.java | 147 - .../smack/filter/ToContainsFilterTest.java | 104 - .../jivesoftware/smack/packet/MockPacket.java | 69 - .../smack/packet/MockPacketFilter.java | 73 - .../smack/test/SmackTestCase.java | 370 --- .../smack/util/StringUtilsTest.java | 236 -- .../org/jivesoftware/smackx/FormTest.java | 182 -- .../smackx/GroupChatInvitationTest.java | 119 - .../smackx/MessageEventManagerTest.java | 278 -- .../smackx/MessageEventTests.java | 76 - .../smackx/OfflineMessageManagerTest.java | 184 -- .../smackx/RosterExchangeManagerTest.java | 246 -- .../smackx/RosterExchangeTests.java | 76 - .../smackx/ServiceDiscoveryManagerTest.java | 190 -- .../org/jivesoftware/smackx/VCardTest.java | 60 - .../org/jivesoftware/smackx/VersionTest.java | 76 - .../jivesoftware/smackx/XHTMLManagerTest.java | 284 -- .../smackx/XHTMLSupportTests.java | 75 - .../smackx/muc/MultiUserChatCreationTest.java | 149 - .../smackx/muc/MultiUserChatTest.java | 1810 ------------ .../smackx/packet/MessageEventTest.java | 171 -- .../smackx/packet/RosterExchangeTest.java | 208 -- .../smackx/packet/XHTMLExtensionTest.java | 259 -- 276 files changed, 40441 deletions(-) delete mode 100644 CopyOftrunk/apps/webchat/build/ant delete mode 100644 CopyOftrunk/apps/webchat/build/ant.bat delete mode 100644 CopyOftrunk/apps/webchat/build/build.xml delete mode 100644 CopyOftrunk/apps/webchat/build/lib/servlet.jar delete mode 100644 CopyOftrunk/apps/webchat/source/config/WEB-INF/web.xml delete mode 100644 CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/EmoticonFilter.java delete mode 100644 CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/JiveChatServlet.java delete mode 100644 CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/TextStyle.java delete mode 100644 CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLFilter.java delete mode 100644 CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLTranscoder.java delete mode 100644 CopyOftrunk/apps/webchat/source/web/account_creation.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/chat-hiddenform.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/chat-launcher.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/common.js delete mode 100644 CopyOftrunk/apps/webchat/source/web/frame_master.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/angry.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/blush.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/confused.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/cool.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/cry.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/devil.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/grin.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/happy.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/laugh.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/love.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/mischief.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/plain.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/sad.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/shocked.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/silly.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/emoticons/wink.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/logo.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/images/logout-16x16.gif delete mode 100644 CopyOftrunk/apps/webchat/source/web/index.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/input_frame.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/participants_frame.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/style_sheet.jsp delete mode 100644 CopyOftrunk/apps/webchat/source/web/transcript_frame.html delete mode 100644 CopyOftrunk/build/README.html delete mode 100644 CopyOftrunk/build/ant delete mode 100644 CopyOftrunk/build/ant-contrib.jar delete mode 100644 CopyOftrunk/build/ant.bat delete mode 100644 CopyOftrunk/build/ant.jar delete mode 100644 CopyOftrunk/build/build.properties delete mode 100644 CopyOftrunk/build/build.xml delete mode 100644 CopyOftrunk/build/junit.jar delete mode 100644 CopyOftrunk/build/lib/jcert.jar delete mode 100644 CopyOftrunk/build/lib/jnet.jar delete mode 100644 CopyOftrunk/build/lib/jsse.jar delete mode 100644 CopyOftrunk/build/merge/xpp.jar delete mode 100644 CopyOftrunk/build/projects/Smack.iml delete mode 100644 CopyOftrunk/build/projects/Smack.ipr delete mode 100644 CopyOftrunk/build/release.xml delete mode 100644 CopyOftrunk/build/resources/META-INF/smack-config.xml delete mode 100644 CopyOftrunk/build/resources/META-INF/smack.providers delete mode 100644 CopyOftrunk/build/resources/images/message.png delete mode 100644 CopyOftrunk/build/resources/images/nav_left_blue.png delete mode 100644 CopyOftrunk/build/resources/images/nav_right_red.png delete mode 100644 CopyOftrunk/build/resources/images/photo_portrait.png delete mode 100644 CopyOftrunk/build/resources/images/question_and_answer.png delete mode 100644 CopyOftrunk/build/resources/images/trafficlight_green.png delete mode 100644 CopyOftrunk/build/resources/images/trafficlight_off.png delete mode 100644 CopyOftrunk/build/resources/images/trafficlight_red.png delete mode 100644 CopyOftrunk/build/resources/images/unknown.png delete mode 100644 CopyOftrunk/build/resources/images/warning.png delete mode 100644 CopyOftrunk/build/resources/releasedocs/README.html delete mode 100644 CopyOftrunk/build/resources/releasedocs/changelog.html delete mode 100644 CopyOftrunk/documentation/debugging.html delete mode 100644 CopyOftrunk/documentation/extensions/dataforms.html delete mode 100644 CopyOftrunk/documentation/extensions/disco.html delete mode 100644 CopyOftrunk/documentation/extensions/index.html delete mode 100644 CopyOftrunk/documentation/extensions/intro.html delete mode 100644 CopyOftrunk/documentation/extensions/invitation.html delete mode 100644 CopyOftrunk/documentation/extensions/messageevents.html delete mode 100644 CopyOftrunk/documentation/extensions/muc.html delete mode 100644 CopyOftrunk/documentation/extensions/privatedata.html delete mode 100644 CopyOftrunk/documentation/extensions/rosterexchange.html delete mode 100644 CopyOftrunk/documentation/extensions/style.css delete mode 100644 CopyOftrunk/documentation/extensions/time.html delete mode 100644 CopyOftrunk/documentation/extensions/toc.html delete mode 100644 CopyOftrunk/documentation/extensions/xhtml.html delete mode 100644 CopyOftrunk/documentation/gettingstarted.html delete mode 100644 CopyOftrunk/documentation/images/debugwindow.gif delete mode 100644 CopyOftrunk/documentation/images/enhanceddebugger.png delete mode 100644 CopyOftrunk/documentation/images/roster.png delete mode 100644 CopyOftrunk/documentation/images/smacklogo.png delete mode 100644 CopyOftrunk/documentation/index.html delete mode 100644 CopyOftrunk/documentation/messaging.html delete mode 100644 CopyOftrunk/documentation/overview.html delete mode 100644 CopyOftrunk/documentation/processing.html delete mode 100644 CopyOftrunk/documentation/properties.html delete mode 100644 CopyOftrunk/documentation/providers.html delete mode 100644 CopyOftrunk/documentation/roster.html delete mode 100644 CopyOftrunk/documentation/style.css delete mode 100644 CopyOftrunk/sample/conf/WEB-INF/web.xml delete mode 100644 CopyOftrunk/sample/web/addContact.jsp delete mode 100644 CopyOftrunk/sample/web/chat.jsp delete mode 100644 CopyOftrunk/sample/web/css/general.css delete mode 100644 CopyOftrunk/sample/web/global.jsp delete mode 100644 CopyOftrunk/sample/web/images/address_book.png delete mode 100644 CopyOftrunk/sample/web/images/businessman_add.png delete mode 100644 CopyOftrunk/sample/web/images/businessman_delete.png delete mode 100644 CopyOftrunk/sample/web/images/businessmen.png delete mode 100644 CopyOftrunk/sample/web/images/garbage.png delete mode 100644 CopyOftrunk/sample/web/images/messages.png delete mode 100644 CopyOftrunk/sample/web/images/nav_right_blue.png delete mode 100644 CopyOftrunk/sample/web/images/plug_delete.png delete mode 100644 CopyOftrunk/sample/web/images/refresh.png delete mode 100644 CopyOftrunk/sample/web/index.jsp delete mode 100644 CopyOftrunk/sample/web/login.jsp delete mode 100644 CopyOftrunk/sample/web/moveContact.jsp delete mode 100644 CopyOftrunk/sample/web/viewRoster.jsp delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/AccountManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/Chat.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/ConnectionEstablishedListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/ConnectionListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/GroupChat.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/PacketCollector.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/PacketListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/PacketReader.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/PacketWriter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/Roster.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/RosterEntry.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/RosterGroup.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/RosterListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/SSLXMPPConnection.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/SmackConfiguration.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/XMPPConnection.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/XMPPException.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/debugger/LiteDebugger.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/debugger/SmackDebugger.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/debugger/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/AndFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/FromContainsFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/FromMatchesFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/MessageTypeFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/NotFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/OrFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/PacketExtensionFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/PacketFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/PacketIDFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/PacketTypeFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/ThreadFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/ToContainsFilter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/filter/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/Authentication.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/DefaultPacketExtension.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/IQ.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/Message.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/Packet.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/PacketExtension.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/Presence.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/Registration.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/RosterPacket.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/XMPPError.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/packet/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/provider/IQProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/provider/PacketExtensionProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/provider/ProviderManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/provider/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/ObservableReader.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/ObservableWriter.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/PacketParserUtils.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/ReaderListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/StringUtils.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/WriterListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smack/util/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/DefaultMessageEventRequestListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/Form.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/FormField.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/GroupChatInvitation.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/MessageEventManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/MessageEventNotificationListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/MessageEventRequestListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/NodeInformationProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageHeader.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/PrivateDataManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/RemoteRosterEntry.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/ReportedData.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/XHTMLManager.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/XHTMLText.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/debugger/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/Affiliate.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/DiscussionHistory.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/HostedRoom.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationRejectionListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/MultiUserChat.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/Occupant.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/ParticipantStatusListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/RoomInfo.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/SubjectUpdatedListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/UserStatusListener.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/muc/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/DataForm.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/DefaultPrivateData.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/DelayInformation.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverInfo.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverItems.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCAdmin.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCInitialPresence.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCOwner.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCUser.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/MessageEvent.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageInfo.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageRequest.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/PrivateData.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/RosterExchange.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/Time.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/VCard.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/Version.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/XHTMLExtension.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/packet/package.html delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/DataFormProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/DelayInformationProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCAdminProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCOwnerProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCUserProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/MessageEventProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/PrivateDataProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/RosterExchangeProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/VCardProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/XHTMLExtensionProvider.java delete mode 100644 CopyOftrunk/source/org/jivesoftware/smackx/provider/package.html delete mode 100644 CopyOftrunk/source/overview.html delete mode 100644 CopyOftrunk/test/config/test-case.xml delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/ChatTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/FloodTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/IQTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/LoginTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/MessageTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/MessengerLoginTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/PacketReaderTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/PresencePriorityTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/RosterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/AndFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/FromContainsFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/NotFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/OrFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/PacketIDFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/PacketTypeFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/filter/ToContainsFilterTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacket.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacketFilter.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/test/SmackTestCase.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smack/util/StringUtilsTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/FormTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/GroupChatInvitationTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/MessageEventManagerTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/MessageEventTests.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/OfflineMessageManagerTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeManagerTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeTests.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/ServiceDiscoveryManagerTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/VCardTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/VersionTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/XHTMLManagerTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/XHTMLSupportTests.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatCreationTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/packet/MessageEventTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/packet/RosterExchangeTest.java delete mode 100644 CopyOftrunk/test/org/jivesoftware/smackx/packet/XHTMLExtensionTest.java diff --git a/CopyOftrunk/apps/webchat/build/ant b/CopyOftrunk/apps/webchat/build/ant deleted file mode 100644 index b4319cf79..000000000 --- a/CopyOftrunk/apps/webchat/build/ant +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh - -# //--------------------------------------------------------------------------// -# // $RCSfile$ -# // $Revision$ -# // $Date$ -# // -# // Standard Jive Software ant file. Do not change this file. If you do, -# // you will have seven years of bad luck and bad builds. -# //--------------------------------------------------------------------------// - -# //--------------------------------------------------------------------------// -# // Uncomment the following lines if you wish to set JAVA_HOME in this script -# //--------------------------------------------------------------------------// -# JAVA_HOME= -# EXPORT JAVA_HOME - -# //--------------------------------------------------------------------------// -# // Check for the JAVA_HOME environment variable // -# //--------------------------------------------------------------------------// -if [ "$JAVA_HOME" != "" ] ; then - # //----------------------------------------------------------------------// - # // Create Ant's classpath // - # //----------------------------------------------------------------------// - CP=$JAVA_HOME/lib/tools.jar:../../../build/ant.jar - - # //----------------------------------------------------------------------// - # // Run ant // - # //----------------------------------------------------------------------// - $JAVA_HOME/bin/java -classpath $CP -Dant.home=. org.apache.tools.ant.Main $@ -else - # //----------------------------------------------------------------------// - # // No JAVA_HOME error message // - # //----------------------------------------------------------------------// - echo "Jive Forums Build Error:" - echo "" - echo "The JAVA_HOME environment variable is not set. JAVA_HOME should point" - echo "to your java directory, ie: /usr/local/bin/jdk1.3. You can set" - echo "this via the command line like so:" - echo " export JAVA_HOME=/usr/local/bin/jdk1.3" -fi - diff --git a/CopyOftrunk/apps/webchat/build/ant.bat b/CopyOftrunk/apps/webchat/build/ant.bat deleted file mode 100644 index fcbd96e70..000000000 --- a/CopyOftrunk/apps/webchat/build/ant.bat +++ /dev/null @@ -1,52 +0,0 @@ -@echo off - -rem //------------------------------------------------------------------------// -rem // $RCSfile$ -rem // $Revision$ -rem // $Date$ -rem // -rem // Standard Jive Software ant.bat file. Do not change this file. If you do, -rem // you will have seven years of bad luck and bad builds. -rem //------------------------------------------------------------------------// - -rem //------------------------------------------------------------------------// -rem // Uncomment the following if you wish to set JAVA_HOME in this bat file: -rem //------------------------------------------------------------------------// -rem SET JAVA_HOME= - -rem //------------------------------------------------------------------------// -rem // Check for the JAVA_HOME environment variable -rem //------------------------------------------------------------------------// -if "%JAVA_HOME%" == "" goto noJavaHome - -rem //------------------------------------------------------------------------// -rem // Make the correct classpath (should include the java jars and the -rem // Ant jars) -rem //------------------------------------------------------------------------// -SET CP=%JAVA_HOME%\lib\tools.jar;..\..\..\build\ant.jar - -rem //------------------------------------------------------------------------// -rem // Run Ant -rem // Note for Win 98/95 users: You need to change "%*" in the following -rem // line to be "%1 %2 %3 %4 %5 %6 %7 %8 %9" -rem //------------------------------------------------------------------------// - -%JAVA_HOME%\bin\java -Xms32m -Xmx128m -classpath %CP% -Dant.home=. org.apache.tools.ant.Main %* -goto end - -rem //------------------------------------------------------------------------// -rem // Error message for missing JAVA_HOME -rem //------------------------------------------------------------------------// -:noJavaHome -echo. -echo Jive Forums Build Error: -echo. -echo The JAVA_HOME environment variable is not set. JAVA_HOME should point to -echo your java directory, ie: c:\jdk1.3.1. You can set this via the command -echo line like so: -echo SET JAVA_HOME=c:\jdk1.3 -echo. -goto end - -:end - diff --git a/CopyOftrunk/apps/webchat/build/build.xml b/CopyOftrunk/apps/webchat/build/build.xml deleted file mode 100644 index eb9095f21..000000000 --- a/CopyOftrunk/apps/webchat/build/build.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/build/lib/servlet.jar b/CopyOftrunk/apps/webchat/build/lib/servlet.jar deleted file mode 100644 index cda22d2a4f61a3a3398569ceab9cedc2a1ea8722..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78351 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�E;^w&iBptzL}R$7mD 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 - - - - - - WebChat - Smack-powered WebChat Application - - - host - jivesoftware.com - - - - - - - allowAnonymous - true - - - - - allowAccountCreation - true - - - - - allowLogin - true - - - - - logoFilename - images/logo.gif - - - - - chat.announcement-color - #009d00 - - - - - chat.owner-label-color - #aa0000 - - - - - chat.participant-label-color - #0000aa - - - - - chat.text-color - #434343 - - - - - error.text-color - #ff0000 - - - - - link.color - #045d30 - - - - - link.hover-color - #350000 - - - - - link.visited-color - #3b3757 - - - - - body.background-color - #ffffff - - - - - body.text-color - #362f2d - - - - - frame.divider-color - #83272b - - - - - button.color - #d6dfdf - - - - - button.text-color - #333333 - - - - - textfield.color - #f7f7fb - - - - - textfield.text-color - #333333 - - - - - - org.jivesoftware.webchat.JiveChatServlet - - - - - ChatServlet - org.jivesoftware.webchat.JiveChatServlet - 1 - - - - - ChatServlet - /ChatServlet/* - - - - 3 - - - - - index.jsp - - - \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/EmoticonFilter.java b/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/EmoticonFilter.java deleted file mode 100644 index 293edf0ff..000000000 --- a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/EmoticonFilter.java +++ /dev/null @@ -1,292 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2003 Jive Software. All rights reserved. - * - * This software is the proprietary information of Jive Software. Use is subject to license terms. - */ - -package org.jivesoftware.webchat; - -/** - * A Filter that converts ASCII emoticons into image equivalents. - * This filter should only be run after any HTML stripping filters.

- * - * The filter must be configured with information about where the image files - * are located. A table containing all the supported emoticons with their - * ASCII representations and image file names is as follows:

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
EmotionASCIIImage
Happy:) or :-)happy.gif
Sad:( or :-(sad.gif
Grin:Dgrin.gif
Love:xlove.gif
Mischief;\mischief.gif
CoolB-)cool.gif
Devil]:)devil.gif
Silly:psilly.gif
AngryX-(angry.gif
Laugh:^Olaugh.gif
Wink;) or ;-)wink.gif
Blush:8}blush.gif
Cry:_|cry.gif
Confused?:|confused.gif
Shocked:Oshocked.gif
Plain:|plain.gif
- * - * Note: special thanks to August Harrison for implementing an earlier version of this filter. - */ -public class EmoticonFilter { - - private static String imageHappy = "happy.gif"; - private static String imageSad = "sad.gif"; - private static String imageGrin = "grin.gif"; - private static String imageLove = "love.gif"; - private static String imageMischief = "mischief.gif"; - private static String imageCool = "cool.gif"; - private static String imageDevil = "devil.gif"; - private static String imageSilly = "silly.gif"; - private static String imageAngry = "angry.gif"; - private static String imageLaugh = "laugh.gif"; - private static String imageWink = "wink.gif"; - private static String imageBlush = "blush.gif"; - private static String imageCry = "cry.gif"; - private static String imageConfused = "confused.gif"; - private static String imageShocked = "shocked.gif"; - private static String imagePlain = "plain.gif"; - private static String imageURL = "images/emoticons"; - - // Placeholders for the built image tags - private static String imgHappy; - private static String imgSad; - private static String imgGrin; - private static String imgLove; - private static String imgMischief; - private static String imgCool; - private static String imgDevil; - private static String imgSilly; - private static String imgAngry; - private static String imgLaugh; - private static String imgWink; - private static String imgBlush; - private static String imgCry; - private static String imgConfused; - private static String imgShocked; - private static String imgPlain; - - public EmoticonFilter() { - buildImageTags(); - } - - public String applyFilter(String string) { - if (string == null || string.length() < 1) { - return string; - } - - int length = string.length(); - StringBuffer filtered = new StringBuffer(string.length() + 100); - char[] chars = string.toCharArray(); - - int length1 = length - 1; - int length2 = length - 2; - - int index = -1, i = 0, oldend = 0; - String imgTag; - - // Replace each of the emoticons, expanded search for performance - while (++index < length1) { - // no tag found yet... - imgTag = null; - - switch (chars[i = index]) { - case ']': - // "]:)" - if (i < length2 && chars[++i] == ':' && chars[++i] == ')') { - imgTag = imgDevil; - } - break; - case ':': - switch (chars[++i]) { - case ')': - // ":)" - imgTag = imgHappy; - break; - case '-': - // ":-)" - if (i < length1 && chars[++i] == ')') { - imgTag = imgHappy; - } - // ":-(" - else if (chars[i] == '(') { - imgTag = imgSad; - } - break; - case '(': - // ":(" - imgTag = imgSad; - break; - case 'D': - // ":D" - imgTag = imgGrin; - break; - case 'x': - // ":x" - imgTag = imgLove; - break; - case 'p': - // ":p" - imgTag = imgSilly; - break; - case '^': - // ":^O" - if (i < length1 && chars[++i] == 'O') { - imgTag = imgLaugh; - } - break; - case '8': - // ":8}" - if (i < length1 && chars[++i] == '}') { - imgTag = imgBlush; - } - break; - case '_': - // ":_|" - if (i < length1 && chars[++i] == '|') { - imgTag = imgCry; - } - break; - case 'O': - // ":O" - imgTag = imgShocked; - break; - case '|': - // ":|" - imgTag = imgPlain; - break; - default: - break; - } - break; - case ';': - switch (chars[++i]) { - case ')': - // ";)" - imgTag = imgWink; - break; - case '-': - // ";-)" - if (i < length1 && chars[++i] == ')') { - imgTag = imgWink; - } - break; - case '\\': - // ";\\" - imgTag = imgMischief; - break; - default: - break; - } - break; - case 'B': - // "B-)" - if (i < length2 && chars[++i] == '-' && chars[++i] == ')') { - imgTag = imgCool; - } - break; - case 'X': - // "X-(" - if (i < length2 && chars[++i] == '-' && chars[++i] == '(') { - imgTag = imgAngry; - } - break; - case '?': - // "?:|" - if (i < length2 && chars[++i] == ':' && chars[++i] == '|') { - imgTag = imgConfused; - } - break; - default: - break; - } - - // if we found one, replace - if (imgTag != null) { - filtered.append(chars, oldend, index-oldend); - filtered.append(imgTag); - - oldend = i + 1; - index = i; - } - } - - if (oldend < length) { - filtered.append(chars, oldend, length-oldend); - } - - return filtered.toString(); - } - - /** - * Returns the base URL for emoticon images. This can be specified as - * an absolute or relative path. - * - * @return the base URL for smiley images. - */ - public String getImageURL() { - return imageURL; - } - - /** - * Sets the base URL for emoticon images. This can be specified as - * an absolute or relative path. - * - * @param imageURL the base URL for emoticon images. - */ - public void setImageURL(String imageURL) { - if (imageURL != null && imageURL.length() > 0) { - if (imageURL.charAt(imageURL.length()-1) == '/') { - imageURL = imageURL.substring(0, imageURL.length()-1); - } - } - this.imageURL = imageURL; - - // rebuild the image tags - buildImageTags(); - } - - /** - * Build image tags - */ - private void buildImageTags() { - imgHappy = buildURL(imageHappy); - imgSad = buildURL(imageSad); - imgGrin = buildURL(imageGrin); - imgLove = buildURL(imageLove); - imgMischief = buildURL(imageMischief); - imgCool = buildURL(imageCool); - imgDevil = buildURL(imageDevil); - imgSilly = buildURL(imageSilly); - imgAngry = buildURL(imageAngry); - imgLaugh = buildURL(imageLaugh); - imgWink = buildURL(imageWink); - imgBlush = buildURL(imageBlush); - imgCry = buildURL(imageCry); - imgConfused = buildURL(imageConfused); - imgShocked = buildURL(imageShocked); - imgPlain = buildURL(imagePlain); - } - - /** - * Returns an HTML image tag using the base image URL and image name. - */ - private String buildURL(String imageName) { - String tag = ""; - - return tag; - } -} \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/JiveChatServlet.java b/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/JiveChatServlet.java deleted file mode 100644 index b509da321..000000000 --- a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/JiveChatServlet.java +++ /dev/null @@ -1,729 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2003 Jive Software. All rights reserved. - * - * This software is the proprietary information of Jive Software. Use is subject to license terms. - */ - -package org.jivesoftware.webchat; - -import java.io.*; -import java.util.*; - -import javax.servlet.*; -import javax.servlet.http.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.util.StringUtils; - - -/** - * An extension of HttpServlet customized to handle transactions between N webclients - * and M chats located on a given XMPP server. While N >= M in the case of group chats, - * the code will currently, never the less, hold onto N connections to the XMPP server.
- * - * It is assumed that all JSP pages are in the context root. The init params should be: - *

    - *
  • host
  • - *
  • port (optional)
  • - *
  • SSLEnabled (optional)
  • - *
- * - * @author Bill Lynch - * @author loki der quaeler - */ -public class JiveChatServlet - extends HttpServlet - implements HttpSessionListener, PacketListener { - - static public final String JIVE_WEB_CHAT_RESOURCE_NAME = "WebChat"; - - static protected long PACKET_RESPONSE_TIMEOUT_MS = 5000; - - static protected String CHAT_LAUNCHER_URI_SUFFIX = "/chat-launcher.jsp"; - static protected String CREATE_ACCOUNT_URI = "/account_creation.jsp"; - static protected String LOGIN_URI = "/index.jsp"; - - static protected String ERRORS_ATTRIBUTE_STRING = "messenger.servlet.errors"; - static protected String NICKNAME_ATTRIBUTE_STRING = "messenger.servlet.nickname"; - static protected String ROOM_ATTRIBUTE_STRING = "messenger.servlet.room"; - - static protected String HOST_PARAM_STRING = "host"; - static protected String PORT_PARAM_STRING = "port"; - static protected String SSL_PARAM_STRING = "SSLEnabled"; - - static protected String COMMAND_PARAM_STRING = "command"; - static protected String NICKNAME_PARAM_STRING = "nickname"; - static protected String PASSWORD_PARAM_STRING = "password"; - static protected String RETYPED_PASSWORD_PARAM_STRING = "password_zwei"; - static protected String ROOM_PARAM_STRING = "room"; - static protected String USERNAME_PARAM_STRING = "username"; - - static protected String ANON_LOGIN_COMMAND_STRING = "anon_login"; - static protected String CREATE_ACCOUNT_COMMAND_STRING = "create_account"; - static protected String LOGIN_COMMAND_STRING = "login"; - static protected String LOGOUT_COMMAND_STRING = "logout"; - static protected String READ_COMMAND_STRING = "read"; - static protected String SILENCE_COMMAND_STRING = "silence"; - static protected String WRITE_COMMAND_STRING = "write"; - - static protected String MESSAGE_REQUEST_STRING = "message"; - - // is this value used elsewhere? (if not, why a string?) PENDING - static protected String ERROR_RETURN_CODE_STRING = "error"; - static protected String SUCCESS_RETURN_CODE_STRING = "success"; - - // k/v :: S(session id) / ChatData - static protected Map SESSION_CHATDATA_MAP = new HashMap(); - // k/v :: S(unique root of packet ids) / ChatData - static protected Map PACKET_ROOT_CHATDATA_MAP = new HashMap(); - - static protected EmoticonFilter EMOTICONFILTER = new EmoticonFilter(); - static protected URLTranscoder URLTRANSCODER = new URLTranscoder(); - - - protected String host; - protected int port; - protected boolean sslEnabled; - - public void init (ServletConfig config) - throws ServletException { - ServletContext context = null; - String portParameter = null; - - super.init(config); - -// XMPPConnection.DEBUG_ENABLED = true; - - context = config.getServletContext(); - - this.host = context.getInitParameter(HOST_PARAM_STRING); - if (this.host == null) { - throw new ServletException("Init parameter \"" + HOST_PARAM_STRING + "\" must be set."); - } - - this.port = -1; - - portParameter = context.getInitParameter(PORT_PARAM_STRING); - if (portParameter != null) { - try { - this.port = Integer.parseInt(portParameter); - } catch (NumberFormatException nfe) { - throw new ServletException("Init parameter \"" + PORT_PARAM_STRING - + "\" must be a valid number.", nfe); - } - } - - this.sslEnabled - = Boolean.valueOf(context.getInitParameter(SSL_PARAM_STRING)).booleanValue(); - } - - /** - * Take care of closing down everything we're holding on to, then bubble up the destroy - * to our superclass. - */ - public void destroy () { - synchronized (SESSION_CHATDATA_MAP) { - for (Iterator i = SESSION_CHATDATA_MAP.values().iterator(); i.hasNext(); ) { - ChatData chatData = (ChatData)i.next(); - - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - - chatData.connection.close(); - } - } - - super.destroy(); - } - - protected void service (HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - HttpSession session = request.getSession(); - String sessionID = session.getId(); - String path = request.getContextPath(); - String command = request.getParameter(COMMAND_PARAM_STRING); - - if (READ_COMMAND_STRING.equals(command)) { - ChatData chatData = (ChatData)SESSION_CHATDATA_MAP.get(sessionID); - StringBuffer reply = null; - boolean foundData = false; - Message message = null; - int i = 0; - - if (chatData == null) { - this.writeData("Must login first.", response); - - return; - } - - reply = new StringBuffer(); - reply.append("\n"); - reply.append("Chat Read Page\n"); - reply.append("\n"); - reply.append(""); - reply.append("\n"); - - this.writeData(reply.toString(), response); - } else if (WRITE_COMMAND_STRING.equals(command)) { - String message = request.getParameter(MESSAGE_REQUEST_STRING); - ChatData chatData = (ChatData)SESSION_CHATDATA_MAP.get(sessionID); - - if (message == null) { - this.writeData("Parameter \"" + MESSAGE_REQUEST_STRING + "\" is required.", - response); - - return; - } else if (chatData == null) { - this.writeData("Must login first.", response); - - return; - } - - try { - StringBuffer reply = new StringBuffer(); - - chatData.groupChat.sendMessage(message.trim()); - - reply.append("\n"); - reply.append("\n"); - reply.append( - "\n"); - reply.append("Chat Form"); - reply.append("\n"); - reply.append("
\n"); - reply.append("\n"); - reply.append("\n"); - reply.append("
"); - - this.writeData(reply.toString(), response); - } catch (XMPPException e) { - // PENDING - better handling - e.printStackTrace(); - } - } else if (LOGOUT_COMMAND_STRING.equals(command)) { - ChatData chatData = null; - - synchronized (SESSION_CHATDATA_MAP) { - chatData = (ChatData)SESSION_CHATDATA_MAP.remove(sessionID); - } - - if (chatData != null) { - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - - synchronized (PACKET_ROOT_CHATDATA_MAP) { - Packet p = new IQ(); - String root = this.getPacketIDRoot(p); - - PACKET_ROOT_CHATDATA_MAP.remove(root); - } - - chatData.connection.close(); - } - } else if (ANON_LOGIN_COMMAND_STRING.equals(command)) { - String returnCode = this.handleLogin(request, true); - - if (SUCCESS_RETURN_CODE_STRING.equals(returnCode)) { - response.sendRedirect(path + CHAT_LAUNCHER_URI_SUFFIX); - } else { - // error, return to the original page to display errors and allow re-attempts - RequestDispatcher rd = request.getRequestDispatcher(LOGIN_URI); - - rd.forward(request, response); - } - } else if (LOGIN_COMMAND_STRING.equals(command)) { - String returnCode = this.handleLogin(request, false); - - if (SUCCESS_RETURN_CODE_STRING.equals(returnCode)) { - response.sendRedirect(path + CHAT_LAUNCHER_URI_SUFFIX); - } else { - // error, return to the original page to display errors and allow re-attempts - RequestDispatcher rd = request.getRequestDispatcher(LOGIN_URI); - - rd.forward(request, response); - } - } else if (CREATE_ACCOUNT_COMMAND_STRING.equals(command)) { - String returnCode = this.createAccount(request); - - if (SUCCESS_RETURN_CODE_STRING.equals(returnCode)) { - response.sendRedirect(path + LOGIN_URI); - } else { - // error, return to the original page to display errors and allow re-attempts - RequestDispatcher rd = request.getRequestDispatcher(CREATE_ACCOUNT_URI); - - rd.forward(request, response); - } - } else if (SILENCE_COMMAND_STRING.equals(command)) { - // do nothing - } else if (command != null) { - this.writeData(("Invalid command: " + command), response); - } else { - this.writeData("Jive Messenger Chat Servlet", response); - } - } - - protected String getPacketIDRoot (Packet p) { - if (p == null) { - return null; - } - - return p.getPacketID().substring(0, 5); - } - - /** - * Creates an account for the user data specified. - */ - private String createAccount (HttpServletRequest request) { - String sessionID = request.getSession().getId(); - String username = request.getParameter(USERNAME_PARAM_STRING); - String password = request.getParameter(PASSWORD_PARAM_STRING); - String retypedPassword = request.getParameter(RETYPED_PASSWORD_PARAM_STRING); - Map errors = new HashMap(); - - // PENDING: validate already taken username - - if ((username == null) || (username.trim().length() == 0)) { - errors.put("empty_username", ""); - } - - if ((password == null) || (password.trim().length() == 0)) { - errors.put("empty_password", ""); - } - - if ((retypedPassword == null) || (retypedPassword.trim().length() == 0)) { - errors.put("empty_password_two", ""); - } - - if ((retypedPassword != null) && (password != null) - && (! retypedPassword.equals(password))) { - errors.put("mismatch_password", ""); - } - - // If there were no errors, continue - if (errors.size() == 0) { - ChatData chatData = (ChatData)SESSION_CHATDATA_MAP.get(sessionID); - - // If a connection already exists for this session, close it before creating - // another. - if (chatData != null) { - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - - chatData.connection.close(); - } - - chatData = new ChatData(); - - try { - AccountManager am = null; - - // Create connection. - if (! this.sslEnabled) { - if (port != -1) { - chatData.connection = new XMPPConnection(this.host, this.port); - } else { - chatData.connection = new XMPPConnection(this.host); - } - } else { - if (port != -1) { - chatData.connection = new SSLXMPPConnection(this.host, this.port); - } - else { - chatData.connection = new SSLXMPPConnection(this.host); - } - } - - am = chatData.connection.getAccountManager(); - - // PENDING check whether the server even supports account creation - am.createAccount(username, password); - } catch (XMPPException e) { - errors.put("general", "The server reported an error in account creation: " - + e.getXMPPError().getMessage()); - } - } - - if (errors.size() > 0) { - request.setAttribute(ERRORS_ATTRIBUTE_STRING, errors); - - return ERROR_RETURN_CODE_STRING; - } - - return SUCCESS_RETURN_CODE_STRING; - } - - /** - * Handles login logic. - */ - private String handleLogin (HttpServletRequest request, boolean anonymous) { - String sessionID = request.getSession().getId(); - String username = request.getParameter(USERNAME_PARAM_STRING); - String password = request.getParameter(PASSWORD_PARAM_STRING); - String room = request.getParameter(ROOM_PARAM_STRING); - String nickname = request.getParameter(NICKNAME_PARAM_STRING); - Map errors = new HashMap(); - - // Validate parameters - if ((! anonymous) && ((username == null) || (username.trim().length() == 0))) { - errors.put(USERNAME_PARAM_STRING, ""); - } - - if ((! anonymous) && ((password == null) || (password.trim().length() == 0))) { - errors.put(PASSWORD_PARAM_STRING, ""); - } - - if ((room == null) || (room.trim().length() == 0)) { - errors.put(ROOM_PARAM_STRING, ""); - } - - if ((nickname == null) || (nickname.trim().length() == 0)) { - errors.put(NICKNAME_PARAM_STRING, ""); - } - - // If there were no errors, continue - if (errors.size() == 0) { - ChatData chatData = (ChatData)SESSION_CHATDATA_MAP.get(sessionID); - - // If a connection already exists for this session, close it before creating - // another. - if (chatData != null) { - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - - chatData.connection.close(); - } - - chatData = new ChatData(); - - try { - // Create connection. - if (! this.sslEnabled) { - if (port != -1) { - chatData.connection = new XMPPConnection(this.host, this.port); - } else { - chatData.connection = new XMPPConnection(this.host); - } - } else { - if (port != -1) { - chatData.connection = new SSLXMPPConnection(this.host, this.port); - } - else { - chatData.connection = new SSLXMPPConnection(this.host); - } - } - - if (anonymous) { - Authentication a = new Authentication(); - PacketCollector pc = chatData.connection.createPacketCollector( - new PacketIDFilter(a.getPacketID())); - Authentication responsePacket = null; - - a.setType(IQ.Type.SET); - - chatData.connection.sendPacket(a); - - responsePacket = (Authentication)pc.nextResult(PACKET_RESPONSE_TIMEOUT_MS); - if (responsePacket == null) { -// throw new XMPPException("No response from the server."); - } - // check for error response - - pc.cancel(); - - // since GroupChat isn't setting the 'from' in it's message sends, - // i can't see a problem in not doing anything with the unique resource - // we've just been given by the server. if GroupChat starts setting the - // from, it would probably grab the information from the XMPPConnection - // instance it holds, and as such we would then need to introduce the - // concept of anonymous logins to XMPPConnection, or tell GroupChat what - // to do what username is null or blank but a resource exists... PENDING - } else { - chatData.connection.login(username, password, JIVE_WEB_CHAT_RESOURCE_NAME); - } - - chatData.connection.addPacketListener(this, - new PacketTypeFilter(Presence.class)); - - synchronized (SESSION_CHATDATA_MAP) { - SESSION_CHATDATA_MAP.put(sessionID, chatData); - } - - synchronized (PACKET_ROOT_CHATDATA_MAP) { - Packet p = new IQ(); - String root = this.getPacketIDRoot(p); - - // PENDING -- we won't do anything with this packet, so it will ultimately look - // to the server as though a packet has disappeared -- is this ok with the - // server? - PACKET_ROOT_CHATDATA_MAP.put(root, chatData); - } - - // Join groupChat room. - chatData.groupChat = chatData.connection.createGroupChat(room); - chatData.groupChat.join(nickname); - - // Put the user's nickname in the session - this is used by the view to correctly - // display the user's messages in a different color: - request.getSession().setAttribute(NICKNAME_ATTRIBUTE_STRING, nickname); - request.getSession().setAttribute(ROOM_ATTRIBUTE_STRING, room); - } catch (XMPPException e) { - XMPPError err = e.getXMPPError(); - - errors.put("general", ((err != null) ? err.getMessage() : e.getMessage())); - - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - } - } - - if (errors.size() > 0) { - request.setAttribute(ERRORS_ATTRIBUTE_STRING, errors); - - return ERROR_RETURN_CODE_STRING; - } - - return SUCCESS_RETURN_CODE_STRING; - } - - private void writeData (String data, HttpServletResponse response) { - try { - PrintWriter responseWriter = response.getWriter(); - - response.setContentType("text/html"); - - responseWriter.println(data); - responseWriter.close(); - } catch (IOException ioe) { - // PENDING - } - } - - // a hack class to hold a data glom (really hacky) - private class ChatData { - - private XMPPConnection connection; - private GroupChat groupChat; - private Set newJoins = new HashSet(); - private Set newDepartures = new HashSet(); - - } - - /** - * Replaces all instances of oldString with newString in string. - * - * PENDING - why is this final? - * PENDING - take this out -- it fails under some cases... - * - * @param string the String to search to perform replacements on - * @param oldString the String that should be replaced by newString - * @param newString the String that will replace all instances of oldString - * - * @return a String will all instances of oldString replaced by newString - */ - static public final String replace (String string, String oldString, String newString) { - int i = 0; - - // MAY RETURN THIS BLOCK - if (string == null) { - return null; - } - - if (newString == null) { - return string; - } - - // Make sure that oldString appears at least once before doing any processing. - if (( i=string.indexOf(oldString, i)) >= 0) { - // Use char []'s, as they are more efficient to deal with. - char[] string2 = string.toCharArray(); - char[] newString2 = newString.toCharArray(); - int oLength = oldString.length(); - StringBuffer buf = new StringBuffer(string2.length); - int j = 1; - - buf.append(string2, 0, i).append(newString2); - - i += oLength; - - // Replace all remaining instances of oldString with newString. - while ((i=string.indexOf(oldString, i)) > 0) { - buf.append(string2, j, (i - j)).append(newString2); - - i += oLength; - j = i; - } - - buf.append(string2, j, (string2.length - j)); - - return buf.toString(); - } - - return string; - } - - /** - * - * HttpSessionListener implementation - * - */ - public void sessionCreated (HttpSessionEvent event) { } - - public void sessionDestroyed (HttpSessionEvent event) { - String sessionID = event.getSession().getId(); - ChatData chatData = null; - - synchronized (SESSION_CHATDATA_MAP) { - chatData = (ChatData)SESSION_CHATDATA_MAP.remove(sessionID); - } - - if (chatData != null) { - if (chatData.groupChat != null) { - chatData.groupChat.leave(); - } - - synchronized (PACKET_ROOT_CHATDATA_MAP) { - Packet p = new IQ(); - String root = this.getPacketIDRoot(p); - - PACKET_ROOT_CHATDATA_MAP.remove(root); - } - - chatData.connection.close(); - } - } - - /** - * - * PacketListener implementation - * - */ - public void processPacket (Packet packet) { - Presence presence = (Presence)packet; - String root = null; - ChatData chatData = null; - String userName = null; - - // MAY RETURN THIS BLOCK - if (presence.getMode() == Presence.Mode.INVISIBLE) { - return; - } - - root = this.getPacketIDRoot(presence); - chatData = (ChatData)PACKET_ROOT_CHATDATA_MAP.get(root); - - // MAY RETURN THIS BLOCK - if (chatData == null) { - return; - } - - userName = StringUtils.parseResource(packet.getFrom()); - - if (presence.getType() == Presence.Type.UNAVAILABLE) { - synchronized (chatData.newDepartures) { - synchronized (chatData.newJoins) { - chatData.newJoins.remove(userName); - - chatData.newDepartures.add(userName); - } - } - } else if (presence.getType() == Presence.Type.AVAILABLE) { - synchronized (chatData.newJoins) { - synchronized (chatData.newDepartures) { - chatData.newDepartures.remove(userName); - - chatData.newJoins.add(userName); - } - } - } - } - -} diff --git a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/TextStyle.java b/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/TextStyle.java deleted file mode 100644 index 3e6aa955e..000000000 --- a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/TextStyle.java +++ /dev/null @@ -1,126 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 1999-2002 CoolServlets, Inc. All rights reserved. - * - * This software is the proprietary information of CoolServlets, Inc. - * Use is subject to license terms. - */ - -package org.jivesoftware.webchat; - -/** - * A Filter that replaces [b][/b], [i][/i], [u][/u], [pre][/pre] tags with their HTML - * tag equivalents. - */ -public class TextStyle { - - public String applyFilter(String string) { - if (string == null || string.length() == 0) { - return string; - } - - // To figure out how many times we've made text replacements, we - // need to pass around integer count objects. - int[] boldStartCount = new int[1]; - int[] italicsStartCount = new int[1]; - int[] boldEndCount = new int[1]; - int[] italicsEndCount = new int[1]; - int[] underlineStartCount = new int[1]; - int[] underlineEndCount = new int[1]; - int[] preformatStartCount = new int[1]; - int[] preformatEndCount = new int[1]; - - // Bold - string = replaceIgnoreCase(string, "[b]", "", boldStartCount); - string = replaceIgnoreCase(string, "[/b]", "", boldEndCount); - int bStartCount = boldStartCount[0]; - int bEndCount = boldEndCount[0]; - - while (bStartCount > bEndCount) { - string = string.concat("
"); - bEndCount++; - } - - // Italics - string = replaceIgnoreCase(string, "[i]", "", italicsStartCount); - string = replaceIgnoreCase(string, "[/i]", "", italicsEndCount); - int iStartCount = italicsStartCount[0]; - int iEndCount = italicsEndCount[0]; - - while (iStartCount > iEndCount) { - string = string.concat(""); - iEndCount++; - } - - // Underline - string = replaceIgnoreCase(string, "[u]", "", underlineStartCount); - string = replaceIgnoreCase(string, "[/u]", "", underlineEndCount); - int uStartCount = underlineStartCount[0]; - int uEndCount = underlineEndCount[0]; - - while (uStartCount > uEndCount) { - string = string.concat(""); - uEndCount++; - } - - // Pre - string = replaceIgnoreCase(string, "[pre]", "
", preformatStartCount);
-        string = replaceIgnoreCase(string, "[/pre]", "
", preformatEndCount); - int preStartCount = preformatStartCount[0]; - int preEndCount = preformatEndCount[0]; - - while (preStartCount > preEndCount) { - string = string.concat(""); - preEndCount++; - } - - return string; - } - - /** - * Replaces all instances of oldString with newString in line with the - * added feature that matches of newString in oldString ignore case. - * The count paramater is set to the number of replaces performed. - * - * @param line the String to search to perform replacements on - * @param oldString the String that should be replaced by newString - * @param newString the String that will replace all instances of oldString - * @param count a value that will be updated with the number of replaces - * performed. - * - * @return a String will all instances of oldString replaced by newString - */ - private static final String replaceIgnoreCase(String line, String oldString, - String newString, int [] count) - { - if (line == null) { - return null; - } - String lcLine = line.toLowerCase(); - String lcOldString = oldString.toLowerCase(); - int i=0; - if ((i=lcLine.indexOf(lcOldString, i)) >= 0) { - int counter = 1; - char [] line2 = line.toCharArray(); - char [] newString2 = newString.toCharArray(); - int oLength = oldString.length(); - StringBuffer buf = new StringBuffer(line2.length); - buf.append(line2, 0, i).append(newString2); - i += oLength; - int j = i; - while ((i=lcLine.indexOf(lcOldString, i)) > 0) { - counter++; - buf.append(line2, j, i-j).append(newString2); - i += oLength; - j = i; - } - buf.append(line2, j, line2.length - j); - count[0] = counter; - return buf.toString(); - } - return line; - } -} \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLFilter.java b/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLFilter.java deleted file mode 100644 index de2f972b5..000000000 --- a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLFilter.java +++ /dev/null @@ -1,312 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 1999-2002 CoolServlets, Inc. All rights reserved. - * - * This software is the proprietary information of CoolServlets, Inc. - * Use is subject to license terms. - */ - -package org.jivesoftware.webchat; - -import java.util.*; - -/** - * A Filter that converts URL's to working HTML web links.

- * - * The default set of patterns recognized are ftp://path-of-url, - * http://path-of-url, https://path-of-url but can be expanded upon.

- * - * In addition, the following patterns are also recognized. - * - * [url path-of-url]descriptive text[/url] and - * [url=path-of-url]descriptive text[/url].

- * - * The [url] allows any path to be defined as link. - */ -public class URLFilter{ - - private ArrayList schemes = new ArrayList(); - - // define a preset default set of schemes - public URLFilter() { - schemes.add("http://"); - schemes.add("https://"); - schemes.add("ftp://"); - } - - public String applyFilter(String string) { - if (string == null || string.length() == 0) { - return string; - } - - int length = string.length(); - StringBuffer filtered = new StringBuffer((int) (length * 1.5)); - ArrayList urlBlocks = new ArrayList(5); - - // search for url's such as [url=..]text[/url] or [url ..]text[/url] - int start = string.indexOf("[url"); - while (start != -1 && (start + 5 < length)) { - // check to verify we're not in another block - if (withinAnotherBlock(urlBlocks, start)) { - start = string.indexOf("[url", start + 5); - continue; - } - - int end = string.indexOf("[/url]", start + 5); - - if (end == -1 || end >= length) { - // went past end of string, skip - break; - } - - String u = string.substring(start, end + 6); - int startTagClose = u.indexOf(']'); - String url; - String description; - if (startTagClose > 5) { - url = u.substring(5, startTagClose); - description = u.substring(startTagClose + 1, u.length() - 6); - - // Check the user entered URL for a "javascript:" or "file:" link. Only - // append the user entered link if it doesn't contain 'javascript:' and 'file:' - String lcURL = url.toLowerCase(); - if (lcURL.indexOf("javascript:") == -1 && lcURL.indexOf("file:") == -1) { - URLBlock block = new URLBlock(start, end + 5, url, description); - urlBlocks.add(block); - } - } - else { - url = description = u.substring(startTagClose + 1, u.length() - 6); - // Check the user entered URL for a "javascript:" or "file:" link. Only - // append the user entered link if it doesn't contain 'javascript:' and 'file:' - String lcURL = url.toLowerCase(); - if (lcURL.indexOf("javascript:") == -1 && lcURL.indexOf("file:") == -1) { - URLBlock block = new URLBlock(start, end + 5, url); - urlBlocks.add(block); - } - } - - start = string.indexOf("[url", end + 6); - } - - // now handle all the other urls - Iterator iter = schemes.iterator(); - - while (iter.hasNext()) { - String scheme = (String) iter.next(); - start = string.indexOf(scheme, 0); - - while (start != -1) { - int end = start; - - // check context, don't handle patterns preceded by any of '"<= - if (start > 0) { - char c = string.charAt(start - 1); - - if (c == '\'' || c == '"' || c == '<' || c == '=') { - start = string.indexOf(scheme, start + scheme.length()); - continue; - } - } - - // check to verify we're not in another block - if (withinAnotherBlock(urlBlocks, start)) { - start = string.indexOf(scheme, start + scheme.length()); - continue; - } - - // find the end of the url - int cur = start + scheme.length(); - while (end == start && cur < length) { - char c = string.charAt(cur); - - switch (c) { - case ' ': - end = cur; - break; - case '\t': - end = cur; - break; - case '\'': - end = cur; - break; - case '\"': - end = cur; - break; - case '<': - end = cur; - break; - case '[': - end = cur; - break; - case '\n': - end = cur; - break; - case '\r': - end = cur; - break; - default: - // acceptable character - } - - cur++; - } - - // if this is true it means the url goes to the end of the string - if (end == start) { - end = length - 1; - } - - URLBlock block = new URLBlock(start, end-1, string.substring(start, end)); - urlBlocks.add(block); - - start = string.indexOf(scheme, end); - } - } - - // sort the blocks so that they are in start index order - sortBlocks(urlBlocks); - - // now, markup the urls and pass along the filter chain the rest - Iterator blocks = urlBlocks.iterator(); - int last = 0; - - while (blocks.hasNext()) { - URLBlock block = (URLBlock) blocks.next(); - - if (block.getStart() > 0) { - filtered.append(string.substring(last, block.getStart())); - } - - last = block.getEnd() + 1; - - filtered.append(""); - if (block.getDescription().length() > 0) { - filtered.append(block.getDescription()); - } - else { - filtered.append(block.getUrl()); - } - filtered.append(""); - } - - if (last < string.length() - 1) { - filtered.append(string.substring(last)); - } - - return filtered.toString(); - } - - /** - * Returns the current supported uri schemes as a comma seperated string. - * - * @return the current supported uri schemes as a comma seperated string. - */ - public String getSchemes() { - StringBuffer buf = new StringBuffer(50); - - for (int i = 0; i < schemes.size(); i++) { - buf.append((String) schemes.get(i)).append(","); - } - buf.deleteCharAt(buf.length() - 1); - - return buf.toString(); - } - - /** - * Sets the current supported uri schemes as a comma seperated string. - * - * @param schemes a comma seperated string of uri schemes. - */ - public void setSchemes(String schemes) { - if (schemes == null) { - return; - } - - // enpty the current list - this.schemes.clear(); - - StringTokenizer st = new StringTokenizer(schemes, ","); - - while (st.hasMoreElements()) { - this.schemes.add(st.nextElement()); - } - } - - private void sortBlocks(ArrayList blocks) { - Collections.sort(blocks, new Comparator() { - public int compare(Object object1, Object object2) { - URLBlock b1 = (URLBlock) object1; - URLBlock b2 = (URLBlock) object2; - return (b1.getStart() > b2.getStart()) ? 1 : -1; - } - }); - } - - private boolean withinAnotherBlock(List blocks, int start) { - for (int i = 0; i < blocks.size(); i++) { - URLBlock block = (URLBlock) blocks.get(i); - - if (start >= block.getStart() && start < block.getEnd()) { - return true; - } - } - - return false; - } - - class URLBlock { - int start = 0; - int end = 0; - String description = ""; - String url = ""; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - URLBlock(int start, int end, String url) { - this.start = start; - this.end = end; - this.url = url; - } - - URLBlock(int start, int end, String url, String description) { - this.start = start; - this.end = end; - this.description = description; - this.url = url; - } - - public int getStart() { - return start; - } - - public void setStart(int start) { - this.start = start; - } - - public int getEnd() { - return end; - } - - public void setEnd(int end) { - this.end = end; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLTranscoder.java b/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLTranscoder.java deleted file mode 100644 index 84310eca0..000000000 --- a/CopyOftrunk/apps/webchat/source/java/org/jivesoftware/webchat/URLTranscoder.java +++ /dev/null @@ -1,188 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 1999-2003 Jive Software. All rights reserved. - * - * This software is the proprietary information of Jive Software. - * Use is subject to license terms. - */ - -package org.jivesoftware.webchat; - -import java.util.*; - -/** - * This is a really good example of why software development projects have frameworks, and the - * other apps in their own modules that sit on top of the frameworks... this class should not - * be confused with com.jivesoftware.messenger.operator.util.URLTranscoder, which does a - * variant of the functionality found here.
- * - * The default set of patterns recognized are ftp://path-of-url, - * http://path-of-url, https://path-of-url but can be expanded upon.
- * - * This was originally URLTranscoder, from CoolServlets, but that class did basically nothing that - * i wanted, so i kept the schemes collection and that was about it.
- * - * @author loki der quaeler - */ -public class URLTranscoder { - - static protected final String A_HREF_PREFIX = ""; - static protected final String A_HREF_CLOSING_TAG = ""; - - - protected ArrayList schemes; - - public URLTranscoder () { - super(); - - this.schemes = new ArrayList(); - - this.schemes.add("http://"); - this.schemes.add("https://"); - this.schemes.add("ftp://"); - } - - /** - * Sets the current supported uri schemes. - * - * @param schemeCollection a collection of String instances of uri schemes. - */ - public synchronized void setSchemes (Collection schemeCollection) { - // MAY EXIT THIS BLOCK - if (schemes == null) { - return; - } - - this.schemes.clear(); - - this.schemes.addAll(schemeCollection); - } - - /** - * Returns a String based off the original text, but now with any a.href blocks html-ized - * inside. (for example, supplying the string "this: http://dict.leo.org/ is a cool url" - * returns "this: http://dict.leo.org/ - * is a cool url" - */ - public String encodeURLsInText (String text) { - StringBuffer rhett = null;; - List runs = this.getURLRunsInString(text); - Iterator it = null; - int lastStart = 0; - - // MAY RETURN THIS BLOCK - if (runs.size() == 0) { - return text; - } - - rhett = new StringBuffer(); - it = runs.iterator(); - while (it.hasNext()) { - URLRun run = (URLRun)it.next(); - String url = text.substring(run.getStartIndex(), run.getEndIndex()); - - if (lastStart < run.getStartIndex()) { - rhett.append(text.substring(lastStart, run.getStartIndex())); - - lastStart += run.getEndIndex(); - } - - rhett.append(A_HREF_PREFIX).append(url).append(A_HREF_SUFFIX).append(url); - rhett.append(A_HREF_CLOSING_TAG); - } - - if (lastStart < text.length()) { - rhett.append(text.substring(lastStart, text.length())); - } - - return rhett.toString(); - } - - protected List getURLRunsInString (String text) { - ArrayList rhett = new ArrayList(); - Vector vStarts = new Vector(); - Iterator sIt = this.schemes.iterator(); - Integer[] iStarts = null; - char[] tArray = null; - - while (sIt.hasNext()) { - String scheme = (String)sIt.next(); - int index = text.indexOf(scheme); - - while (index != -1) { - vStarts.add(new Integer(index)); - - index = text.indexOf(scheme, (index + 1)); - } - } - - // MAY RETURN THIS BLOCK - if (vStarts.size() == 0) { - return rhett; - } - - iStarts = (Integer[])vStarts.toArray(new Integer[0]); - Arrays.sort(iStarts); - - tArray = text.toCharArray(); - - for (int i = 0; i < iStarts.length; i++) { - int start = iStarts[i].intValue(); - int end = start + 1; - - while ((end < tArray.length) && (! this.characterIsURLTerminator(tArray[end]))) { - end++; - } - - if (end == tArray.length) { - end--; - } - - rhett.add(new URLRun(start, end)); - } - - return rhett; - } - - protected boolean characterIsURLTerminator (char c) { - switch (c) { - case ' ': - case '\n': - case '(': - case ')': - case '>': - case '\t': - case '\r': return true; - } - - return false; - } - - - protected class URLRun { - - protected int start; - protected int end; - - protected URLRun (int s, int e) { - super(); - - this.start = s; - this.end = e; - } - - protected int getStartIndex () { - return this.start; - } - - protected int getEndIndex () { - return this.end; - } - - } - -} \ No newline at end of file diff --git a/CopyOftrunk/apps/webchat/source/web/account_creation.jsp b/CopyOftrunk/apps/webchat/source/web/account_creation.jsp deleted file mode 100644 index b30e1f503..000000000 --- a/CopyOftrunk/apps/webchat/source/web/account_creation.jsp +++ /dev/null @@ -1,116 +0,0 @@ -<%-- - - - - ---%> - -<%@ page import="java.util.*" %> - -<% // Get error map as a request attribute: - Map errors = (Map)request.getAttribute("messenger.servlet.errors"); - if (errors == null) { errors = new HashMap(); } -%> - - - - - - Create an account - - - - - - - - - - -
- - - - - - - - - - - - - -
-

Jive Account Creation

- - <% if (errors.get("general") != null) { %> -

- - Error creating account. <%= errors.get("general") %> - -

-
- <% } %> -
-
- - - - - - - - - - - - - - - -
Desired username: - - <% if (errors.get("empty_username") != null) { %> -
- Please enter a username. -
- <% } %> -
Desired password: - - <% if (errors.get("empty_password") != null) { %> -
- Please enter a password. -
- <% } %> - <% if (errors.get("mismatch_password") != null) { %> -
- Your passwords did not match. -
- <% } %> -
Retype your password: - - <% if (errors.get("empty_password_two") != null) { %> -
- You must retype your password. -
- <% } %> -
-
-
- - -
-
Click here to return to the login page. -
-
- - - - diff --git a/CopyOftrunk/apps/webchat/source/web/chat-hiddenform.jsp b/CopyOftrunk/apps/webchat/source/web/chat-hiddenform.jsp deleted file mode 100644 index c29c3d0a4..000000000 --- a/CopyOftrunk/apps/webchat/source/web/chat-hiddenform.jsp +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Chat Form - - - - - -

- - -
- - - diff --git a/CopyOftrunk/apps/webchat/source/web/chat-launcher.jsp b/CopyOftrunk/apps/webchat/source/web/chat-launcher.jsp deleted file mode 100644 index fba6cceb2..000000000 --- a/CopyOftrunk/apps/webchat/source/web/chat-launcher.jsp +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - Web Chat Session - - - - - - - -

Chat Session Options

- - Your chat session should have already started. If for some reason it did - not, click this link - to start your chat session. - -

- - Other options: - - - - - diff --git a/CopyOftrunk/apps/webchat/source/web/common.js b/CopyOftrunk/apps/webchat/source/web/common.js deleted file mode 100644 index ace272e48..000000000 --- a/CopyOftrunk/apps/webchat/source/web/common.js +++ /dev/null @@ -1,182 +0,0 @@ -function addChatText (someText, isAnnouncement) { - var yakDiv = window.parent.frames['yak'].document.getElementById('ytext'); - var children = yakDiv.childNodes.length; - var appendFailed = false; - var spanElement = document.createElement("span"); - - if (! isAnnouncement) { - spanElement.setAttribute("class", "chat_text"); - } else { - spanElement.setAttribute("class", "chat_announcement"); - } - // it's easier to dump the possibily html-containing text into the innerHTML - // of the span element than deciphering and building sub-elements. - spanElement.innerHTML = someText; - - try { - // various versions of IE crash out on this, and safari - yakDiv.appendChild(spanElement); - } catch (exception) { - appendFailed = true; - } - - if (! appendFailed) { - // really make sure the browser appended - appendFailed = (children == yakDiv.childNodes.length); - } - - if (appendFailed) { - // try this, the only way left - var inn = yakDiv.innerHTML; - - inn += "" : "chat_text\">"); - inn += someText + "
"; - - yakDiv.innerHTML = inn; - } else { - yakDiv.appendChild(document.createElement("br")); - } - - scrollYakToEnd(); -} - -function addUserName (userName) { - var yakDiv = window.parent.frames['yak'].document.getElementById('ytext'); - var children = yakDiv.childNodes.length; - var appendFailed = false; - var spanElement = document.createElement("span"); - var userIsClientOwner = false; - var announcement = false; - - if (userName == "") { - announcement = true; - - spanElement.setAttribute("class", "chat_announcement"); - - userName = "room announcement"; - } else if (userName == nickname) { - userIsClientOwner = true; - - spanElement.setAttribute("class", "chat_owner"); - } else { - spanElement.setAttribute("class", "chat_participant"); - } - - try { - spanElement.appendChild(document.createTextNode(userName + ": ")); - - // various versions of IE crash out on this, and safari - yakDiv.appendChild(spanElement); - } catch (exception) { - appendFailed = true; - } - - if (! appendFailed) { - // really make sure the browser appended - appendFailed = (children == yakDiv.childNodes.length); - } - - if (appendFailed) { - // try this, the only way left - var inn = yakDiv.innerHTML - - inn += "" + userName + ": "; - - yakDiv.innerHTML = inn; - } -} - -function scrollYakToEnd () { - var endDiv = window.parent.frames['yak'].document.getElementById('enddiv'); - - window.parent.frames['yak'].window.scrollTo(0, endDiv.offsetTop); -} - -function userJoined (username) { - var parentDIV = window.parent.frames['participants'].document.getElementById('par__list'); - var children = parentDIV.childNodes.length; - var appendFailed = false; - var divElement = document.createElement("div"); - - divElement.setAttribute("id", username); - - try { - divElement.appendChild(document.createTextNode(username)); - divElement.appendChild(document.createElement("br")); - - parentDIV.appendChild(divElement); - } catch (exception) { - appendFailed = true; - } - - if (! appendFailed) { - // really make sure the browser appended - appendFailed = (children == parentDIV.childNodes.length); - } - - if (appendFailed) { - // try this, the only way left - var inn = parentDIV.innerHTML; - - inn += "
· " + username + "
"; - - parentDIV.innerHTML = inn; - } -} - -function userDeparted (username) { - var partDoc = window.parent.frames['participants'].document; - var parentDIV = partDoc.getElementById('par__list'); - var userDIV = partDoc.getElementById(username); - var children = parentDIV.childNodes.length; - var removeFailed = false; - - // MAY RETURN THIS BLOCK - if (userDIV == null) { - return; - } - - try { - parentDIV.removeChild(userDIV); - } catch (exception) { - removeFailed = true; - } - - if (! removeFailed) { - // really make sure the browser appended - removeFailed = (children == parentDIV.childNodes.length); - } - - if (removeFailed) { - // try this, the only way left - var inn = parentDIV.innerHTML; - var openingTag = "
"; - var index = inn.toLowerCase().indexOf(openingTag); - var patchedHTML = inn.substring(0, index); - var secondIndex = openingTag.length + username.length + 13; - - patchedHTML += inn.substring(secondIndex, (inn.length)); - - parentDIV.innerHTML = inn; - } -} - -function writeDate () { - var msg = "This frame loaded at: "; - var now = new Date(); - - msg += now + "

"; - - document.write(msg); -} diff --git a/CopyOftrunk/apps/webchat/source/web/frame_master.jsp b/CopyOftrunk/apps/webchat/source/web/frame_master.jsp deleted file mode 100644 index a96b88f4c..000000000 --- a/CopyOftrunk/apps/webchat/source/web/frame_master.jsp +++ /dev/null @@ -1,33 +0,0 @@ - - - <%= request.getSession().getAttribute("messenger.servlet.room") %> - - Jive Web Chat Client - - - - - - - - - - - - - - - - diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/angry.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/angry.gif deleted file mode 100644 index 6489c9bc9ffaa5448b597b17249d090228556243..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 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 diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/devil.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/devil.gif deleted file mode 100644 index 31bca49fb84673af853fdd6ca0b7f124930cc901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1093 zcmZ?wbhEHb6krfw_&$YU*Up_*rskK9T|B=2z>Q0{uAaVXX=)x79#L0W>+0yddfA$b zM=zY%cyRyR%}18+x_J2fg+u2~Z$EbZ!p-X!Z)N(#p51fm{DHG8`}?;vEjYXPR9-;f z!G+rnF51@L(zC8)+S%jh=S`n?{rt_$u*8gzgpIXxuAaTNy=&>@p2>?U`!Aooa%}b9 zdEGOPuG~|dS-haEr>(AKUQSW9Tk4flSCT_x56s;>DJ1sn{u3uRA9i(c-aBLcfq9#c zuiJla{~2Rd9VZ=&`Lh<3c_nXYS(p`_a%9D>gL@87>6@}5t#^6T%!2H^iJcS9?mjuU zed^hL$7{-}>-@9oD(j5ZbXsd$f{a~{t=;FOZE@q`t>nn~LkqVpOYGV=Yvbg;$=A-` z*i=97!2B&qA<@xck=gO-t8ympnX~pHxosUw^0RZ#A3S?>)t((a z%ZrnCMFoi(}WD6+!FmQZl zP!E*y*pP70lf6Y@p~=fjbKG@*#R$z{Khx+L<@Y5+xs!XIiNp>nx#Pnd&L>WO5 zQ%;8l2L@wJt%45)FNKyE+uZTlaO9d0qXYjk7ESLa))sx2TT#Cp+!>gKr!yQVT)@uT zXU`>K!^x0zu)&-`YkF%;xshjQy z9BJ`kl;&58(M&0DQ5NmcN@*}`a8qe!-n&EMii10^i17sBJqsF{Sb4>H*jN~>0cN^+ AtpET3 diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/grin.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/grin.gif deleted file mode 100644 index e5c92e2d588ee89b770d2fc9e0edbb3b8a75a13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmZ?wbhEHb6krfwcoxcV;`s6OIOWebOnyJtjSTkr@z9_#&7iMAqp7B>AQDqF+{A z5*et{->mlMxz3LV2EU)`UD%_0aj&kAi}LJl&By?i@AnPgpSOqz^6_?2etkuMR+rY# zM+Qx`W%DMgeZOb;=Y>vxS4&io@`M((j~_o?yL$ESOYQ$)z(9AP_)p!&**_rC&N;uJ zvM4h>qeQ_gvn*91I6tkVJh3QM!N|bCNEb*LGbsLKVPs$kWzYdR5)^$5?6(?1o0=@m zIoVA4o4Z4UM6`{yR5W!=f_gj!4VeO1h1@N8Bw3n+1U&-Gm;(dt9UW8!riY3c28h`) zhKDnTFtbYWhFWSfnFR(1?>-qWW~9eqZXCcI?jN!{#40?{mrtBii#2ff)2E^m23%|^ zLQkGOmyqT*)$|cQ8S*QHF<97DCe9|I@vsMn4ucTW0ii|gQ}}IGT}asA+{vyZv9Uto z5@QR8W0295h@wL--C}BfB?1OaM-`X^Oil+TW PdKwWQ4skAaV6X-NY#!&a diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/happy.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/happy.gif deleted file mode 100644 index 20a93e32b9fc9798bf305cad7f8dc8ec5a0678b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmZ?wbhEHb6krfwcoxL)>xq6;kn)d*29d!&pKqA_ey%&AMXfqF==BN9pN|Y0tIOV< zvzRwg?a%`A-_LYga`jqr^cyque?HRxc-idz9j%X7Oj~mGe?Bz$`B?wgQ@!SF{iDlG z8`BKF-7)%p-|)sp>w9}G`kU20UNL)r-u&Gei}x4I-<-BwJy*RZKQKK`xv8eCIwz8R*ZFkSw6Uh_!$tGEyDa~{(5Wd1e09v~)>f-Si_CvKFqk_* zy}!HV%Pr$8hc!#GRNtSs`2AEbJx;~WLhz|milH89Z7$y&*3dXS)+KcAvzNQfpIE0YO- z5SKiQWFRBs?vo*WvZh+v7XGXuJZ!t!)I$O}xixh3nF4n|eQL%aEFhyI{^Z$n22n9~ z4mraQPXmQi&5bSXCTv-d(C5^xmwdxq3&Jo8H@N(VVS+ zW25!^^X6Y}8P^m9e!OD(_KZbKuD+p;;)jdoKAv9R?;GCQYE_b@`tFQHYk}VWSr&&D zn18!tba$8Kj|T=n9~v}f=zqLoc4(1#V|Ce;!uz15-B_mf;H=Kuo4OG}K0hDn|9Ywy8K7ck zssH<#?$NE9-|rblg-7&vwS4^e@x<}t*REcj(4zMDrM9xX!vFvO8R!la|Eb$J`v*kY zIp-Ht7GiF32F0H&j0_CH3_2i3f})Rs{X#=< zQ-iJH*)}^ftsAG4pVcGwnKoU4GW9EhrW^V^k75o z0C(jG28IY_5k?h>U=tZ;Z(&o0@NfoGVLx3xR!)Hcm(w?Huvqbnu_-dzhdqAsgv(q= zRMWsW3BqUF0kW`5hNj#9iK80J-Lw8cs!K2O63IZ7cfs-aKU=ma5_|ecD IsK8(i0Nbz>% diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/love.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/love.gif deleted file mode 100644 index d1c320e3db12012e643d97224823da4e99dc531e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmZ?wbhEHb6krfw_|CwvX7%ciA3t8ZdbPR8;O`6bw4|t)XYG{b6~5lHdUwV4{T;J6 zmu&4Ulg8Uzt^srCE>>P?hiY>xo5rocf!KcHiz>JwI*VR9p7$s_om$w!3!j z{CwN`@*(4!`)ohmvVPH%`}vObmBYpr*;eJ5R^RSf&2Be&(VO@4vBmse;|FI=@0>8- zGS}kWEwdNR$q$a%+&^Rb;fBqfhUASiEs}i=s-e^;r zrI`?7b|=jG&ohe;*KJZ_{a)0>yuWIruc>69t#tc#4=7s}_-gYHb$Uug=^3eroaK zv1LJw){lpl@2}c^ykXOrZ}_4w??rdcym;>;n~e&5T@Pcrzh;^bea^TYQ4Q-_T{ei!}BJ2J{G0fn$iF3 z2F0H&j3A43Km;iJFmSwMVC0bb(a<6x#LuQBvLdZbhB=zY#_(gBVuM_$RtsmMx=SCc zoDxrtaEiN>enf!JgilM|*!Wo)UcB7=;+UX(ww26_hQ%GyylM;?f|HgA%+w59AXBmA z@qzjL;s$dH3!N@-I+)1>RxDBQmSquDVQ64Z;^C0ul3Q8p^1yu&3p0a&rZRIshhX;2 zZ4na{^A?EYB;2{V%dD%*P5+3}&JPFsg*YlN2}LaG;FITJl2p|&OypN&vr#bUU`{*d z;NsUXjrW#8^w{d!_iQyld6vTb!?(2qx!%|!;kpIW>+ zXZPp1`IkG^ks&_cA6m|vsQdew#h1I*jroS@aq91`*uK4FdwsXvorAVNA6tICXZ_-g z{nxwJuP@p))|MSuVbxe*@b`uJ$D1}$L2A!W+y8lP@#dmkONl{Kp}~#4wmVlDG~^rp zd}7g5Wbo^$#l9t0w+`4ISZ;M_wdMB*mUb4(vwQT4Gc_;mH;D{XdwLX`bI>`uUFamBYsKCg`5oY4-8s$7@%w_IJ1Z zd13zdrTPE={~2fu6#uE)IQs`g+BxSJR2F5XXOt*-WtOEX1m~xflqVLYDi|3U80i8D zV+O^aEQ|~cQ4BgDCxN1mf&Fdevpe3Z={1A zgCSpYj6MTnsF{wrq^TpD{PZXVA4YyXo7h-y4_96_&L}zY0A{@qkvJ`{SV4Xz115GA zMh+ee@OzV@vcRF6g;$c5iNP8G4(sr0 diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/plain.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/plain.gif deleted file mode 100644 index a5beeea43d6524c0159b811f3decae667faa7773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmZ?wbhEHb6krfwc;?A4p+)D%Bg@wp?3!xJUY)b6E)4o|$NI}%>t9bSYKnv2Ubby6 zGKdWEIkMU4&vWySH*MZtvVDKe_Rc}u*B9*$t+sr3#rE$D^QJZ)Bb(_z3tec7q8f(jb zKef1Z!1ntC%k(()pN}mY3k+`TwS95M{^eP_?+-1HY%)5($220?XWj(epN}mjH0#Xm z*ZuX>qQ6P!&vT2i;*$5*Z01hT?Q7Dxu-9buT)j`XtiRp2`t!p47IrrZl=!q9v=F3jBLu>p4y6n?zWPuK0d0FvZnmH%&aPIjC__1 zrx{%NIM|su)mhl&Jx;&y@z8M>(2`rfD+*5+1bmvT1Zya5yD~39(7L*;o`j;b2o1 f)tC^qCB>1OQ9#6J0>dHI#f+RGIvOW51Q@IVtmn`@ diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/sad.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/sad.gif deleted file mode 100644 index 0320885df0790a2be3ba5eed317e02a461d32c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmZ?wbhEHb6krfwc$UO);rYiCkKVU+^&NfiZq>zC?wJjnuD-6SX$S}kt7`7tapO%y zY~qG1uiLx&CLDe`@AQjv&pw=g_Q5wGr0d|5>BpaKy!v{}wb#>*J==5p?a>GCXB>aF z`qHb4>V~vgd)HrnHR;IHeRtljz5L2GqdsrmzKm5@wqAcd zqNeR$e*R@eO+)+sCyUO$h{&$=&2G$Jd$pshFE+2rHnq+swXW~*)80c*{R2ZHb1FSE z8xGukcl6eiV-Mc%y7^}NjW>RQAx(Q9r_9<@yZQRTd+%27I}w*x<&ai?^3i)|7x((z zkIITm^2@9H=PWvQ`^nr5yI1Wyaq#ZD`KMn528SJg_`d(})0Y0JRh^S9Ev)MIJnEmb zc;(&``)s^e+KFS#eeEH&i(cV(8;l8}><I~#U^noVcGV2$OiktVOJ-)XFfmgXWlm`l>!h1XL0_*w_@>v`MkdVY8>c(5P b;6Pzx6SIeY$1+<*xPbXBKZS+5UWD@$QQ4^V9Y(&)VJCYkPgSU1Xrz^NW^^wPl+Z8NE1T ze`vL3L%!j!rxx$;nEiZgxo?Tp>x*{jaq71Y*v^}vdtkX$Q<1@rl?Im&8n=`f+&O6b z_l3EEw$j&o)^9G_H5M2&6&geZseQX|bzp_n$D204pIS8L8{Ru&6A|q5;J9^Rs@9+9 z7N74}f4yt{`L^|k>o&`$8{9i;Q&wEEVur!G*(O_;7%rY{`17&F(kX_AHX0YEX|11Q za%`L7-4kZ}R-0^HYWV$u<@;;4cTWPjriV8f9p7g7{+f-lyuzOs<{v+Pyms|!e|O8@ zm*)Tf|7V~*Q2eKE8LUm06am5S*V@Ql40ps$gVbV5AEqj2RSv zvM@3*L^0@qTm_0g2KGk{QB6&fY_jHT49(q9F$QA7Oia?EhA};siXyHdoP7R17HZth zF^W#sZtQ{_3IX0$Cexz~MBKgP7$YMY`9nSRnWH4df*j>ERAXaRHTYdjRT$WWdD$7o zjZPbhGjj0pu*foT3P!RjpH^m#G&2@ZH)rDGh>Vp#{X^#+7c-l*y#q^x+Xinj7CRRK zh5$y7DeRH6L^KjwS^JrJ!+0(VH9Ph*Yi{T`GKr~^n^TLW&~Twb<76?VXrIEu*26lw q+!=dTG&(l3@$jk?C~WOG%^<|1pdql)>8P(81IHYR4HE(t7_0#s@9g~m diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/silly.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/silly.gif deleted file mode 100644 index a162605bd4cd0a6f36c3cf2b0c669d528e1021fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmZ?wbhEHb6krfwcoxa<=Y@GwZP}+=)~_$veYs;@Qylc_oZZ{Ywm%+OHWwLuyKhxp z7!(=e^XrMlm%G;AA6iam(K)o*vZ=`6#$MZ(XYKABwEcYB`qly4-%l+*-?4si#{S(E z+v~gSKHju>d&#!3w(P@on*%GX{yaB-n&ft1xz*1n7H=-v?F+GQ$T$3Y&pI_kvoYUr z-x90zIQ5nigQ!5Y$UwE%7wz6(vyBQ;o9=G@{Iq>jp+RGTK}4{RorUuIYc{X1nZLen z{`Ic4x2@`%8|HOcx<4OV_BZKVK4|>=nZ>bfhWAdHK0RmESf>5_qUGNg=IOB-rP-R@ z35I3GCC9cJ)@AFio~t)+g6_*J7T+IO-iUSi_0-~1nrB~=&c}}*uU);`-`(=}rTPE= z{~7246#uE)IQs`g+BxSJR2F5XXOt*-WtOEX1m~xflqVLYDi|3U80i8DV+O^aEQ|~c zkqkN@hk>Gxf&G3%WK)wow}v)1V{><8w7HBa8=I7{S#*zuj))Nx3!j(*vkFghv<@>9 z7l$gZV~8ZX;`B&!5hnf!T?PhSCk_@h&PaI~Bd#z5{g@bi0~dZ-aYk-aCJv<_fztwk zO1yl`tQu@Astl)J#4t#3$q8w*@$o)?8RPYaos(Ni%*Ov~OxK?mf{Ps*I2D#DoHT6a zY>~8^_C_G!pr@ELvyp;?)8iwZS|&Y9Zai?hAST4lVH05Z=oE*jW{Jy;sjZG2!m^Vb kGMS#7XyaHSmg`xN*wD^wsI_CkNeu@^PEH;pE*1uB06o|0lK=n! diff --git a/CopyOftrunk/apps/webchat/source/web/images/emoticons/wink.gif b/CopyOftrunk/apps/webchat/source/web/images/emoticons/wink.gif deleted file mode 100644 index 6d91b0fa25aa104127aba70ba3a81baa17f958b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmZ?wbhEHb6krfwcoxj?`?+pZkn*o5`ad2Te7<248SK+kt~zg`T4}aQbxzQq=Q=+h z>93xv-jb`|SY6hft$%B))uBb^ExCG)8T$KYSsYqm-ddpd=CoyFnn8be%f~CGzn<#d z-DUayg8BFRhTrZOeY$FTW25!YM+R@tShVEmzdK`bbh&9$P1(<_&2E@6K7&6a?PeYw_rUmXE8_gch|A7tI@M%06B(`*O>;IydO!WwX~OEE~(z z-rv#cZ&H7CMgQS>t)p8t-`~+bwoS9Fxa9XU-J@Hy-rmxQ2=Y;uSNQ!@FFj8A{do&J z3&p0|vbht~e>^bwe$TMKtL5XzkAGh1T)TSp?@R6f|Nk=#5K#Qd!pOi7%%B6Z9~37H z?AIHDo0|AI^&~9Kn!AI8gcY@vRjmd1gL*tf#90EFHRLRGMOmAJM0^6J8A3w1yaLPx zrw0p*2ip0E?b^k_Y$_DYr^q7h$r#4Y6J`|VDlenXsTIh;=pAOu!N_P7qNJ~_r_3C( z`&pPKla-2us>ajjyIxB1T3X9-ePjy@;g&TpQ+QxdbU>zAl8wQo(=p{#vzUE_$wJ3u zHYUZ8h=vUc9$u}|%zZ49Of6gtVk|x>5+Mpsz5Gfn91#MnEu2B!OFSNYaB6SkGt^m= SqVnPhmk@7)MWP4?gEau!n$Kwf diff --git a/CopyOftrunk/apps/webchat/source/web/images/logo.gif b/CopyOftrunk/apps/webchat/source/web/images/logo.gif deleted file mode 100644 index ad9573d9240bcf918ba05bc22c75b8c443c65a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmZ?wbhEHbT+blGa72K?p?*)ps>=fLYuXZK%u$q=&a|Ns9CqyWXAEQ|~c0t`AJO&~iNSpO@i^rd9Z%UHE8=k>k< zo%1ER_bb-DuX+Ffz=8q~9jX2kOFmf?SjaL*f8M#KOQt{P8sot%M%TlRt8F#Xct3sP zVu4EBz|EOus<`Zg{Vs;cvV6x9{^FEod$z3PtQdWs6eb3ilCBoJwh89`bF?O< z3b0nG2J>;NHAZoScUmpyW7THeq`K8F&~kQcXGK)HKy6et^Zw5Ht0r?C%jIQcQ|4Qp z%DArX2LEyXmCTcsxKpY*IO}+JF{V6?b*F(e{cMBr7P{+A8ve7&#dGV$Z%~E zG-La^>8YcG+APN~0XaK|0|wF7954U8iCkVNC+QNeU~$Um!0c&dKUx0w)F?Pi@2tJa zCtz~K(3`=TYqP_H<-ATBNp@Q~8Ui-=%?gwJtmAR2FOE0vdt0iZ!bOIaMuBy99A%3R zoU*yN<=w;^mmGar{g&8yJYZouz|LN_O7hfZ#$#q5cI0e679t(GGb(MR>yIh-_A=UV z%4DxJb8KL^&9U6Uq2amt>6I>%W=`e5WGfiHdBxRF-wv)3WaSa~aca6x%!SEv#O{tv99Y zQs%>n8+gN&6cX-E+VW(wN7}oH^1dRuThrN9DmIxkrRqJrF}I6xQh-BX6T`1V3<7q` z7#3csJd~xgEKV`HW#hb=uaY?&yqH#Pl3egwV;%$7;+%j5-&hvzIAL*!iED+G_of(~ r2PfArF#SD4YW>WV)o-`mDSQ2P`-3*^cRQX;%YL`>#jQI$YcUHsvRY13ihgA- zZpD|rB}7VBR9szn!p90LU(?+$)}Q>bclZ8XX8ZVcX7E^@7BrkHpxePOZqKP_p!@#~ z^Z%Qy`=_(+?_=NJ#!(;67U1o;zm7A&%P}D;Fy4YSz|-;l`}gP1pPxT}et&;|eSLjG zLV|;XgMop8f`S6bO+*95pDaL6Ff!WdG25SIWA7SzU diff --git a/CopyOftrunk/apps/webchat/source/web/index.jsp b/CopyOftrunk/apps/webchat/source/web/index.jsp deleted file mode 100644 index 617b63b77..000000000 --- a/CopyOftrunk/apps/webchat/source/web/index.jsp +++ /dev/null @@ -1,164 +0,0 @@ -<%-- - - - - ---%> - -<%@ page import="java.util.*" %> - -<% // Get error map as a request attribute: - Map errors = (Map)request.getAttribute("messenger.servlet.errors"); - boolean allowAnonymous = true; - boolean allowAccountCreate = true; - boolean allowLogin = true; - String param = null; - if (errors == null) { errors = new HashMap(); } - param = application.getInitParameter("allowAnonymous"); - if ((param != null) && (param.equalsIgnoreCase("false"))) { - allowAnonymous = false; - } - param = application.getInitParameter("allowAccountCreation"); - if ((param != null) && (param.equalsIgnoreCase("false"))) { - allowAccountCreate = false; - } - param = application.getInitParameter("allowLogin"); - if ((param != null) && (param.equalsIgnoreCase("false"))) { - allowLogin = false; - } -%> - - - - - - Jive Web Chat Client Login - - - - - - - - - - - - -
- - - - - - - - - - - <% if (allowAccountCreate) { %> - - - - <% } %> -
-

Welcome to the Jive Web Chat Client - Please Login

- <% if (errors.get("general") != null) { %> -

- Error logging in. Make sure your username and - password are correct. <%= errors.get("general") %> -

- <% } %> -
-
- - - - <% if (allowLogin) { %> - - - - - - - - - <% } %> - - - - - - - - -
Username: - - <% if (errors.get("username") != null) { %> -
- Please enter a valid username. -
- <% } %> -
Password: - - <% if (errors.get("password") != null) { %> -
- Please enter a valid password. -
- <% } %> -
Nickname: - - <% if (errors.get("nickname") != null) { %> -
- Please enter a nickname. -
- <% } %> -
Room: - - <% if (errors.get("room") != null) { %> -
- Please enter a valid room. -
- <% } %> -
-
-
- <% if (allowLogin) { %> - - <% } %> - <% if (allowAnonymous) { %> - - <% } %> - -
-
Don't have an account and would like to create one? - Click here. -
-
- - - - - diff --git a/CopyOftrunk/apps/webchat/source/web/input_frame.jsp b/CopyOftrunk/apps/webchat/source/web/input_frame.jsp deleted file mode 100644 index 352863160..000000000 --- a/CopyOftrunk/apps/webchat/source/web/input_frame.jsp +++ /dev/null @@ -1,75 +0,0 @@ -<%@ page import="javax.servlet.*" %> - -<% // Get error map as a request attribute: - String logoFilename = application.getInitParameter("logoFilename"); - if (logoFilename == null) { - logoFilename = "images/logo.gif"; - } -%> - - - - - - - - - - - -
-
- -
- -
-
- - - - - diff --git a/CopyOftrunk/apps/webchat/source/web/participants_frame.jsp b/CopyOftrunk/apps/webchat/source/web/participants_frame.jsp deleted file mode 100644 index a2369de83..000000000 --- a/CopyOftrunk/apps/webchat/source/web/participants_frame.jsp +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - -
In the room:
-
-
- -
- -
- -
- - - - Logout - - - diff --git a/CopyOftrunk/apps/webchat/source/web/style_sheet.jsp b/CopyOftrunk/apps/webchat/source/web/style_sheet.jsp deleted file mode 100644 index 381dceeef..000000000 --- a/CopyOftrunk/apps/webchat/source/web/style_sheet.jsp +++ /dev/null @@ -1,132 +0,0 @@ -<% // Set the content type of the this page to be CSS - String contentType = "text/css"; - String chatAnnouncementColor = application.getInitParameter("chat.announcement-color"); - String chatOwnerLabelColor = application.getInitParameter("chat.owner-label-color"); - String chatParticipantLabelColor = application.getInitParameter("chat.participant-label-color"); - String chatTextColor = application.getInitParameter("chat.text-color"); - String errorTextColor = application.getInitParameter("error.text-color"); - String linkColor = application.getInitParameter("link.color"); - String linkHoverColor = application.getInitParameter("link.hover-color"); - String linkVisitedColor = application.getInitParameter("link.visited-color"); - String bodyBGColor = application.getInitParameter("body.background-color"); - String bodyTextColor = application.getInitParameter("body.text-color"); - String frameDividerColor = application.getInitParameter("frame.divider-color"); - String buttonColor = application.getInitParameter("button.color"); - String buttonTextColor = application.getInitParameter("button.text-color"); - String textFieldColor = application.getInitParameter("textfield.color"); - String textFieldTextColor = application.getInitParameter("textfield.text-color"); - response.setContentType(contentType); - if (chatAnnouncementColor == null) { - chatAnnouncementColor = "#009d00"; - } - if (chatOwnerLabelColor == null) { - chatOwnerLabelColor = "#aa0000"; - } - if (chatParticipantLabelColor == null) { - chatParticipantLabelColor = "#0000aa"; - } - if (chatTextColor == null) { - chatTextColor = "#434343"; - } - if (errorTextColor == null) { - errorTextColor = "#ff0000"; - } - if (linkColor == null) { - linkColor = "#045d30"; - } - if (linkHoverColor == null) { - linkHoverColor = "#350000"; - } - if (linkVisitedColor == null) { - linkVisitedColor = "#3b3757"; - } - if (bodyBGColor == null) { - bodyBGColor = "#ffffff"; - } - if (bodyTextColor == null) { - bodyTextColor = "#362f2d"; - } - if (frameDividerColor == null) { - frameDividerColor = "#83272b"; - } - if (buttonColor == null) { - buttonColor = "#d6dfdf"; - } - if (buttonTextColor == null) { - buttonTextColor = "#333333"; - } - if (textFieldColor == null) { - textFieldColor = "#f7f7fb"; - } - if (textFieldTextColor == null) { - textFieldTextColor = "#333333"; - } -%> - -BODY, TD, TH { font-family : Tahoma, Arial, Verdana, sans serif; font-size: 13px; } - -H3 { font-size : 1.2em; } - -.error-text { color : <%= errorTextColor %>; } - - -/* default unvisited, visited and hover link presentation */ -A:link { background: transparent; color: <%= linkColor %>; - text-decoration: none; } -A:visited { background: transparent; color: <%= linkVisitedColor %>; - text-decoration: none; } -A:hover { background: transparent; color: <%= linkHoverColor %>; - text-decoration: underline; } - -/** - * site wide BODY style rule; the scrollbar stuff only works in IE for windows, - * but doesn't seem to hurt on other browsers.. - */ -BODY.deffr { background-color: <%= bodyBGColor %>; color: <%= bodyTextColor %>; - scrollbar-face-color: <%= bodyBGColor %>; - scrollbar-shadow-color: <%= bodyTextColor %>; - scrollbar-highlight-color: <%= bodyBGColor %>; - scrollbar-darkshadow-color: <%= bodyBGColor %>; - scrollbar-track-color: <%= bodyBGColor %>; - scrollbar-arrow-color: <%= bodyTextColor %>; } - - -FRAME.bordered_left { border-left: 3px solid <%= frameDividerColor %>; } - - -IMG.logo { position: absolute; bottom: 12px; left: 10px; } - -IMG.logout { vertical-align: middle; } - - -INPUT.submit { background-color: <%= buttonColor %>; color: <%= buttonTextColor %>; - font-size: 12px; font-family: Arial, Verdana, sans serif; - border-style: ridge; margin: 1px 5px 1px 5px; } - -INPUT.submit_right { background-color: <%= buttonColor %>; color: <%= buttonTextColor %>; - font-size: 12px; font-family: Arial, Verdana, sans serif; - border-style: ridge; margin: 1px 5px 1px 5px; - position: absolute; right: 10px; } - -INPUT.text { background-color: <%= textFieldColor %>; color: <%= textFieldTextColor %>; - font: normal 12px Arial, Verdana, sans serif; height: 20px; width: 271px; - border-style: groove; margin-left: 10px; } - - -SPAN.chat_text { font: normal 11px Arial, Verdana, sans serif; - color: <%= chatTextColor %>; } - -SPAN.chat_announcement { font: italic 11px Arial, Verdana, sans serif; - color: <%= chatAnnouncementColor %>; } - -SPAN.chat_owner { font: bold 11px Arial, Verdana, sans serif; - color: <%= chatOwnerLabelColor %>; } - -SPAN.chat_participant { font: bold 11px Arial, Verdana, sans serif; - color: <%= chatParticipantLabelColor %>; } - -SPAN.logout { position: absolute; bottom: 12px; right: 15px; } - - -TEXTAREA { color: <%= textFieldTextColor %>; font: normal 12px Arial, Verdana, sans serif; - width: 500px; height: 130px; } diff --git a/CopyOftrunk/apps/webchat/source/web/transcript_frame.html b/CopyOftrunk/apps/webchat/source/web/transcript_frame.html deleted file mode 100644 index a4cc1faf5..000000000 --- a/CopyOftrunk/apps/webchat/source/web/transcript_frame.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - -

- - - diff --git a/CopyOftrunk/build/README.html b/CopyOftrunk/build/README.html deleted file mode 100644 index 5d6cc5d92..000000000 --- a/CopyOftrunk/build/README.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - Smack Source Distribution - - - - - - -Smack Source Distribution
-

-

- -This document provides detailed information for developers that wish to -compile and make changes to the Smack source code. - -

For additional developer resources, please visit: - -http://www.jivesoftware.org/smack/. The Smack build process is based on Ant. Visit the -Ant website -for more information. There is no need to download and install Ant - a version of it is included -in this distribution. -

-This documentation is divided into two sections: -

    -
  1. Setup -- how to setup your environment for Smack development. -
  2. Build tasks -- tasks that can be performed using the build program. -
- -

1. Setup Your Environment

- -Getting your machine ready for Smack development requires a few steps. Wherever -possible, instructions are provided for both Unix/Linux and Windows users. -

-Configure Java -

    - Java 2 (JDK 1.2 or later) must be installed and setup on your machine. To test the installation, - open a shell in a Unix or a MS-DOS prompt in Windows. Check your version of - Java with "java -version" -- it must version 1.2 or greater. - If Java isn't installed, download a copy from the - Java website. -

    - Important! -- the Smack build tool needs to know - where Java is installed on your system. You must configure the "JAVA_HOME" - environment variable to point to the correct directory. Instructions on - how to set this variable for various platforms are as follows: -

    -

      -
    • Unix/Linux -
        -
      1. Edit the ".profile" file in your home directory (or - corresponding file for your shell). -
      2. Set the JAVA_HOME environment variable by adding the - following line to the file: -

        - export JAVA_HOME=/usr/local/jdk1.3 - -

        - The value "/usr/local/jdk1.3" should be replaced with your actual - Java directory. Be sure there are no spaces after the end of - the directory name. Do not add an extra slash after the directory name. -

      3. Save changes to the file and then "source" it: -

        - source .profile - -

        - The JAVA_HOME variable should now be configured correctly. -

      -

      -

    • WindowsNT/2000 -
        -
      1. Navigate to your desktop and right click on "My Computer"; - choose properties. -
      2. Select the "Advanced" tab and click on the - "Environment Variables" button. -
      3. Click the "New..." button in the System variables section. - Enter the variable name "JAVA_HOME" and set the variable - value to the full path of your Java installation. For example, - "c:\jdk1.3". Be sure to not add an extra slash to the end - of the directory name. -
      4. Click "OK" in all of the menus to accept the changes. -
      5. Close any open command prompt windows. The next time you - open a command prompt, the "JAVA_HOME" variable will be set - correctly. -
      -

      -

    • Windows95/98 -
        -
      1. Open your autoexec.bat file (often at "c:\autoexec.bat") using Notepad. -
      2. Add a line to the end of the file that resembles the following: -

        - set JAVA_HOME=c:\jdk1.3 - -

        - The value "c:\jdk1.3" should be replaced with your actual - Java directory. Be sure there are no spaces between - the "=" sign or after the end of the directory name. Do - not add an extra slash after the directory name. -

      3. Save changes to autoexec.bat and restart your computer. -
      -
    -
- -

Test the Build Script

-

    -Navigate into the subdirectory of this distribution named "build" via the command-line.

    - -
    - -Linux/Unix users only:You must make the ant script -executable. From the build directory, type: -

    -chmod u+x ant - -

    - -

    -Now, invoke the build tool to compile the Smack source code - -

    -Windows: ant
    -
    -Unix/Linux: ./ant - -

    - -If the build tool is invoked correctly and Smack compiles, you've correctly -configured your copy of the Smack developer distribution. - -

- -

Finished!

-

    -If you've gotten this far, you've finished setting up the Smack developer -distribution. Now, read below to learn about all of the tasks that you can perform -with the build tool. -
- -

- -

2. Build Tasks

- - The list of build tasks is below. All build commands should be - run from the "build" directory of your Smack distribution. - -

- - For a list of the commands and a brief description from the command line, type - ant -projecthelp. For more complete help, read the documentation below. - -

- - To execute a build task, type ant [options] targetname where "targetname" is - one of the targets listed below: - -

-

-Each task is documented with a syntax guide and description. Optional paramaters -for each task are enclosed with braces. - - -

Default -

- - -

compile -

    -Syntax:

    - - -ant compile
    -
    - -

    Description:

    - -Compiles all the Smack source code. -The build directory is the "classes" directory under your Smack source distribution. - -

    [return to task list] -

- - - -

jar -

    -Syntax:

    - - -ant jar
    -
    - -

    Description:

    - -Bundles the Smack class files into a JAR file (smack.jar) -that is suitable for adding -into the classpath of an application server. -

    [return to task list] -

- - - -

javadoc -

    -Syntax:

    - - -ant javadoc
    -
    - -

    Description:

    - -JavaDocs all Smack source code in the source directory. - -

    [return to task list] -

- - -

clean -

    -Syntax:

    - - -ant clean
    -
    - -

    Description:

    - -Cleans your Smack distribution directory by deleting compiled class files, the -smack.jar file and Javadoc files.

    - -

    [return to task list] -

- - - diff --git a/CopyOftrunk/build/ant b/CopyOftrunk/build/ant deleted file mode 100644 index 0543a62e2..000000000 --- a/CopyOftrunk/build/ant +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh - -# //--------------------------------------------------------------------------// -# // $RCSfile$ -# // $Revision$ -# // $Date$ -# // -# // Standard Jive Software ant file. Do not change this file. If you do, -# // you will have seven years of bad luck and bad builds. -# //--------------------------------------------------------------------------// - -# //--------------------------------------------------------------------------// -# // Uncomment the following lines if you wish to set JAVA_HOME in this script -# //--------------------------------------------------------------------------// -# JAVA_HOME= -# EXPORT JAVA_HOME - -# //--------------------------------------------------------------------------// -# // Check for the JAVA_HOME environment variable // -# //--------------------------------------------------------------------------// -if [ "$JAVA_HOME" != "" ] ; then - # //----------------------------------------------------------------------// - # // Create Ant's classpath // - # //----------------------------------------------------------------------// - CP=$JAVA_HOME/lib/tools.jar:./ant.jar:./junit.jar - - # //----------------------------------------------------------------------// - # // Run ant // - # //----------------------------------------------------------------------// - $JAVA_HOME/bin/java -classpath $CP -Dant.home=. org.apache.tools.ant.Main $@ -else - # //----------------------------------------------------------------------// - # // No JAVA_HOME error message // - # //----------------------------------------------------------------------// - echo "Jive Forums Build Error:" - echo "" - echo "The JAVA_HOME environment variable is not set. JAVA_HOME should point" - echo "to your java directory, ie: /usr/local/bin/jdk1.3. You can set" - echo "this via the command line like so:" - echo " export JAVA_HOME=/usr/local/bin/jdk1.3" -fi - diff --git a/CopyOftrunk/build/ant-contrib.jar b/CopyOftrunk/build/ant-contrib.jar deleted file mode 100644 index 14bfe5a26f9d1f4624f09ac41f39ff47ac811ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10378 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 J@BW5@`hV+tBH{o5 diff --git a/CopyOftrunk/build/ant.bat b/CopyOftrunk/build/ant.bat deleted file mode 100644 index 14c97c382..000000000 --- a/CopyOftrunk/build/ant.bat +++ /dev/null @@ -1,51 +0,0 @@ -@echo off - -rem //------------------------------------------------------------------------// -rem // $RCSfile$ -rem // $Revision$ -rem // $Date$ -rem // -rem // Standard Jive Software ant.bat file. Do not change this file. If you do, -rem // you will have seven years of bad luck and bad builds. -rem //------------------------------------------------------------------------// - -rem //------------------------------------------------------------------------// -rem // Uncomment the following if you wish to set JAVA_HOME in this bat file: -rem //------------------------------------------------------------------------// -rem SET JAVA_HOME= - -rem //------------------------------------------------------------------------// -rem // Check for the JAVA_HOME environment variable -rem //------------------------------------------------------------------------// -if "%JAVA_HOME%" == "" goto noJavaHome - -rem //------------------------------------------------------------------------// -rem // Make the correct classpath (should include the java jars and the -rem // Ant jars) -rem //------------------------------------------------------------------------// -SET CP=%JAVA_HOME%\lib\tools.jar;.\ant.jar;.\junit.jar - -rem //------------------------------------------------------------------------// -rem // Run Ant -rem // Note for Win 98/95 users: You need to change "%*" in the following -rem // line to be "%1 %2 %3 %4 %5 %6 %7 %8 %9" -rem //------------------------------------------------------------------------// -%JAVA_HOME%\bin\java -Xms32m -Xmx128m -classpath %CP% -Dant.home=. org.apache.tools.ant.Main %* -goto end - -rem //------------------------------------------------------------------------// -rem // Error message for missing JAVA_HOME -rem //------------------------------------------------------------------------// -:noJavaHome -echo. -echo Jive Forums Build Error: -echo. -echo The JAVA_HOME environment variable is not set. JAVA_HOME should point to -echo your java directory, ie: c:\jdk1.3.1. You can set this via the command -echo line like so: -echo SET JAVA_HOME=c:\jdk1.3 -echo. -goto end - -:end - diff --git a/CopyOftrunk/build/ant.jar b/CopyOftrunk/build/ant.jar deleted file mode 100644 index dcd4b8da89032a1a0c2fa67d5ad05deb4ce5ddd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2440562 zcmbSy1C(aVvS!&;UAAr8w%uiR*|u%lwv8^^wr!)Ux@zj2b7$_mciy=(>+OH#T6^sk zxp!tnMn>fK#V;=f41x>*@%4LhL2!M=;vH*>QtSH^b7ytk;fV>nq#2*qs z{}7Y^+s?>e691>OjDW0!sECp>t&Hfs%*42~6b&Y?Z6qztu$ z%&b#62xRIB28Ag|$`QrO4^p&4G&R(e!Xs2F*CUd1vpf4+d%!LGp?5 zwP9rBL4aA6m4)q`9<_CzZC<>8Pi^R4O{6(YO{95f!*Ob=GhPFf_2~BeTv=V6U5l6> z+HJCZxr~~;biw1Zv8;xh>eh6lkhDObvcehd;O#w4B|k+!z8R9@#ML@QSbpFwJx#N~ zP;Y0U#mMxcO#hBX_cL9`o5H)k>$YzE^S#O!x&?^N5j68UjQl$4odbm@?$8C%0t8YG z1d_#n08>GufWAr~b!i1xmsHXQ`(^p$m+jW0o$PQx`qnGztX70=x5~pyNw=x9m-}Io z>+4|v*>$q6HMg7HeDdb5&djbtkHhqF8=B+mCv&^}kz4y5U%?8MakWSzCp#TRrpN1! zNnujT-k}Rs4QsM)GiH%4+f=Jr#^R6h?l!*j&AWR=~77oytvFB#{a61EFh6@0uYIkfOs$o_=AXY)=w;pfl zq3ZtHtnGE?7~LedjpzP|NT!g262G!62Ewr?k5T3QU~I5xl+19t;l}_<#KF0CpUFN7 zi2q%Cu;y}mK>5#-YW$5+nYy^GQq;w`JNHO_GtTY_K1d;l%^GteT$63rhZ08AkB+1M zlR-GOTi45hAK8LzhjD;{<U`9h6hs^Em=xRhw{i8`w2#ifi%zF;SO(;|O~^l0mN+&14i4Q^FmILHX1v%H%H z&OeV9g}7zZC_iCllN4{>p_f-x>B|JMDpSrJOkF};sT+fQ8=}B%hdHKF3(0bQbEqBur4tXw-ihB7gZedwJr3Hm|Rjg;()9bsp>IctNK(-TeH z&|=~`dLGj);;sg8wQ$NvMT(0PVl~gEVh<1 z&tkR(g0fehH&dyemy`ON`E^Ti5ovrX0UpGXfTWr0mRv$rxyv-pU&7t1z0!s%> zdVJDTSw(qSMaa4CLDh(Mb%)CVa`Lw4DPf5h_^Q^@gZGD>ghl6+p5xXl{viDjC^CV| zLA_5w&8HNwZdr!wV^m>l=k3{2E0@4PEqcI?JxO2YqQ?8))AJY&b&z-B`p_)dQtX{5?97L66(=sbT!{Z>|UD^&{9PK z%g;aNo%8Ts6_qAogpOfj8XQwP_Aq&W1| zGRY&N&rfp9%G)2#VeCloD;N0v7niq*N=#cv(^5EMBlbHHSBeIC2F*a3${T+x&sDrf zrTTC+Lb*EgKRK$A%O{llbQv}Jw2(w)Ab6P6|C#w>T=^=?MK0y)k0gW^#17A6J=zHV zn|=w)DXR2=@{wANC8n7dA{@$brFtX7;M`#vBTbgGy_Ixf z-~8toE51(NF6(9%d)lx(EbDS$wr26lfvCY}{{F>jipnUg$C9*Z*l1tnmCOjf!-Akr zY#w??2vgKsl||Dm)r!K)6b4SjO-vO*mPKx4ql%=o}Dj5M?y*7t8(Jk7co zyrpbWO0ekURa-3`ntdbrr1fTZ{Hz`=5g%!NP4)Zon7BySE3K@#%Bj;qofthMA(3OD zXioiH#3tnDz~VO6EU#-KiWX=QCc6+Fn@r6!PsL#q$SkTIsAxgX%O?x8gu zMKrCe^}2k&Lw(>nPlZ1* zNgd}i)486;nYh*Km9b-Ro?jS;ljKlD=FEMn>pk^?!ChTKF?I1oT3JiJTX=Jv5qV4o zIwIG@(V(n{T?*{#%)S=mK~S&!fqVULL3%F2{x`#P5+rLB`? zkZiF+NU+^6&Q{g{N6~7nn3y^dUl&^}T9Y|CGNG+wVI5D)LEH#y9+fU=^&HUF%t78s zuZ+Gx`*A6e?tXOdqiHe19GWZe-63~D5gX|sPAQ<!a+eDhxdELN1BJqTYU-@oyQGnf1m!o=FG@2#tB9qdHY;EJU9r zta>0)-Kg@<@*Sk*)eEC$x7*w?tInI%ftEy_x?$~1dg+{=)fZIA**IBh1fHU^O5pJS zv@ct#A=PtWgiEAeix5M3V%IPoeaxKxu1neUnxtL$a2Wt2^v+J@D;j~)+V}Z^nAFid z?l@2h!09gBcZ)!1F?aC|)TAzq0Oc0{vsioMN1DrxL!ny4`couV>2)z%gld*_QcbZd z7?l2Ny^zVPKp6mn+=ss(Z`K#l6~MSEpnA1@^7djDy(W%>3UJ*Gm$)@ zT9V3&O>$<6+0nD%5f*k2%w4CCcK74dxg4R9?P>m)YHkIm$L*fX+jlBcbtV_(YMAQ` zc3*-Bj@3=SwS`$pwsaZ)Y;+kGvj8xUcYsBfa>xp2E>LcLr5=~ z=lxLqKQ?(uNrIJQR4sVNyk5pG-)-Lz3usI_P@t6?q!%*^@v#z6=-Y>CTR3&J@r-`N zF0cfPidUnF#qB=5j3-NXQzcsS&2qH(!8Ql}c#^#B9)q>}9!~-i{W~4bG=X@z!WQ`? zP3-$G&CAveG=dM{ibycKc1cH0SymE@>2?; zT|1!zwU;#UqV zOCbdu&2mrFki{IvEY6-(vY88ehO2Mm6mQwOWuc(FZ}RqbDV%fz z!xjd(iK_Lx3yQ7`9ZBh_lP^B$Q4K5+(xtP+wu&M9C6jQ~U$>xK{CDx8g|4{No#HU) zH*$(})Izr@T-y+SJ7RK*>5WV*&Wa@7t-KEnagQpqW)gpDaCzo>J&O*c9@f-MYVx$^=j)ROYP`DaDfAGR$^oovG zr(5&YTSf;(>?yZ7^k?4a2?Ql*Oq0|uK5v^Z1w<6a#XOy8D78K2{8X}+7`H2z zI>{qB5bV#Nvu@wGH+C)y2-mY?+xWT^nJJ=wCVZUo7P=Jn7>;i^AURJyya=9!feV?( z2+w>gxZ9LyUcU%mQB7i!KsZPJz{vULEW86IDYM^5{V^}ZSzlZT80B_W70*=AE~-DJ z4~^ZVyq>em{hdU#xHjVzmW_I{yR5H@FcM7#_Q88Qq8FEaPEhB!hO%`zjTPRT@%Yd# zEUWuE9*AD6%ybayU522;+s`o=N!c39LoWEnY4Z*q2i9)2a$Y1`jtqM}x%#{)A(k8i zFQU;O!t17h^NuNypuqeN+2fE*L=Hi zuAY?&pNl^w^t03gc5Gv>YgWpO5@<@KP;H-(yc`Sb^>7!A{6bKwu%cwk5ZtKI)2^WM ziABA~_8*@&$3gdxBR0`>CwZPa8=gXZOZ$a1`sQ8~3F+_%9t4jFcNJa>3&ET_aZ*v) z)Q!V+UT{wG6Ly5a)jphi#f9G)$+sKy;5dpIFuRiF8}0;=otwQZ4wo6u=R2$~HSS9m zILTd4H{8ZL-@#GF&bFI9rw_b1j=2;L=2aHwHrMP@mPZxWp>v@dUm>!#n%`y?yyliq zI^U+SXORyZ+qHrS^O3nBn?tQ}kLqL2xQ@Ia%5AV$oC>f3oo$4=`&x2#Jr}eA-D`{r zDrd@;3^7I9d9J-gDK_UXLg+}sy!`512K!WIL{2AwprRab%PB3Z# zvF`;dbG5Q0(upkUfsn;0S5n?s^Zofhg2eaaR>|=R+a}Y}-vWF}fk-pQGEghW zyzRv3^=^_7Fe8-p2tOBp6U5+wr+2$0$ajNGJD?Tzfb1Uj--YppF`3yR`Xxu$lUr~@ zpvO>hy+`UF3rHFdKo04oGe@-#SS;}?f)$|%2ASe28(9gT5J(nRZxcnI*$O~fFbNJ{ z_DcNMy+p1`{!d_Scz<9;TOfAuN-nlUZ{RYEP-bS4MT9uWWBz_vkiglW7}Ut!mqH_( ztDSyri{7n9AX*~)Yzpw$h;Y(`V$ce&2q61^^Q35kx)9B8Ytw?v4$B zApk7ONRTJ+*>VTV4sFk72(A{(+T5vF^KTNy#{r?W|8;gX4wGm6snnH@NF51>}%r@VBzgBOZ+>JZ=3RkmdMsiDxBnlpk! zii4=kcS?0QB{=Z@jC5aLY#2wKc-^su&Z%w&aYQeS{x0M=IwD)^e{4OmfQSetu#8ZW zjW&&cNZ(S~s}%pi0=uAF=ihSWKgio?h>gC@nrj@fwdj}m%^L)PsATRw=C8y|Wq9}Wfq`L2C;r#;Z}=bB z7qn-t@2v0oC;aypM)>bCe?0w5#?{L5zsNQJ+q)3|Mb1{=-oe=Zzru>lvZB;qBLC+i z`?~w*d;hn*u#KUUm9e#>pp%)Uk+D6kp{2fqgO{?E5~2dKcXfV5EvW(BlR;h*py2vj zMlqndqJMD$l8kP(ZIM;7_74|{H@4q_XTTE&(q5Luc#Do#g27{BFwYk}#~jlRSE~)r z&pFq8GcnAp{v#l_?4jTS+zPoA>Z&(_z489XPc~?F?J1Y+ zGIkxg>wfw99HjS7mN%cSwSUhtP9<(JR%_bqFs?FKY#eM7>{ewHmPw^`aT+I{cu|N{ zu^wR$@~>VjHaLkP+hU|1Sf^|+I-GRxFDl(>THT-PPCVU$>3*@pdrwwFtSWP*dn~B7 zG&B)g8DRUJWAmLY@aN5n-^JRT&i4i57W80uFdF29W2k# z3EPzpSauiOz8g8W$rP2hHw?md2|{q#8s0r(S14Y3yTO?3w`ooHe&g!fd_QQ-PcA7C zjwXa_TWaPDt(P+D3JD&Ou6w(VeUOn@$zD$3Y{Ajz0>>F)bu1ucD*jM9gcVY5i>s@^ zEwo4m>vRlu;I%5=y^gm0vE@iY)m)0DQLr&pnvLOU zkm?HIH+Yx_I&ijZeL(_#mUlf8IH#9YmaSQFP@Ev+p;X+7{KiEh=VC^FDrxvFl4RSV zrlb#=+(JpBZ(%A?et$R1#v|t&)U#2a?jLT=WnL`{1`Gh;^5wbzMC||FwP^o;TuW5n z(9y=;?Jp0DQqfeJmxuoV3gXAKrhy6#-;iomMnD0jD?+Z)>Vk>x40@99D}+n{f%*&s z&qA*t)(LG~@?ouE(*glXZ4F!3<)2v_30 zve08hVMpeCxR%yd+B~pjV&)w%HXBJ(;S^!wtc}h|5jHd)#-mv>p&<%3L0X`o@B*3JGl%s8N^bB8(smz^1S`ShZ?sc|^dN34!QK z&UCX0@j z3EQJ5W}fLvP?qD=C4x3FL@aK7F%h{jGF1FSX%!RaXhbOZQlU8vb7)h2@Q(7hY4qqL z>~3RC;Z)XpXYN&UVcIhf~dG@pZ`8?Z=5EG$YXFP9gsFs(T1bKGngDhjfXJC`ElFtzf7$qrLO(Z+u zc0>Og*vX#?&t|va12JQ2jdRP+K&L6^_qw%4+!PwSE+ z2JEvFW)QqV$J^E_Za?L-}{HN z3E5cxFf(zo*LO6tu@yl5rN7gs zvpdhv@PX%n`@($%vZr>p-w%z@7ta6-C%D(v(T?Z}bUIMhO;P5sQ@IV7=^=zFV0?}| zD_TtLz^=TJavD9KC9p|Hbuscj&FEyXty}dp3&A-aJpn8DM$5u%PZ~Lh`edIE_3n@j zUxIS{0Nhy>S!$YRz0B1qBcxaR_GGM#HAZKbA0BSfphBAbZ zKZBD%1-K7(?DFIWbn@f`MH;rnd^_K8$QoUVvi4Bs{y_)Z;21p zwKO-T6YG++I5yH1&uSIF^&I!WtN0u(q%j(`9?M!~HviUr&FUlkv*tJFy=uH#v-H{T z_v*CQNgI zJ9DGmDcaAS;T0u@(y7vKyiu@Q@lqQs(kaxxzwwT9y>KJu{6MDqK~~`jY%_a9=b2bk zvv`BHK?I1nP-@&UTdCd1h)9?P9!z(_BVe?=78bHs4py2v2&JeaaJ8CAxz@v-Snx8m)S zZu-E%f=R@{&LQFPetD=eq^sABCU7$I+5=T2?!XVlP7A3PcNo~Bq6Q*2P)NpcnY^L+ zy1gl_reVCP3G7Ob!sEcc&>TLpXPe%yXi-{>W%{7Q<`C z&QeT}iY9!Hui`j7ux4o!jkr-{zFlRLV6m#XOaiWvV4M+~fobGS94Y)*E$x+pQ#Bk9!EGH5u% zwHuf{s(S*bc2V)?RIL7^=tzSS;TISrYGh`3^dAg!hpBepq9x0 z{!LE$0URG11}`!xn8?&NN%vsoOt^3WQ5v_|lDVT;$($8&=oC_30WWoCw(R^PA(4A& zU8^4+qm01jV1rfI%Ar5T-%BD#uedJ#5u-wW;@B#r+g&2aD`F+~(l)$zMwmCVvEIKs_vlx6(9CJ*15DlRi@ZJ)t{Gf#x^N>+E3h5Ta1 zRi)fov%MkPz(mQ))_bOnFuXBop2wq|Lln>UQY?{z@%l1n4eu^g$4BIEAz9J+2b-NrxCLlAKE)q3LUyyT-x7jdl_kA!|>vm7wf2DWPd=W z@3UHJG@?_YALx<|J7QhtO3|O-{sh(?GC84q228IiXzNRnO!ooW>iVGArWXHnWGQ;} zFl!8RZwJjUs_@Uit16#wO4L*D%;{NDz`N4u347fYc_?ZhM=#&mL79%s=2`HVq1@K2 z=&ACZi8asF?Rn#tKSkKfmG`k}wE`SQjm0K-h@0IaxzG?cq3o>l_uFE$rrD<+_3%Ko zb^p+EMLMtTbOAgT-)9_>AnQy^KdaqrkN`nNkPrbv*+?`EYfQ9T4`A;M#ZpAsNQDsf zk64KdZ&bc{XVgK4bWUPOj}6*Z6^t5j8b8hSBp+2N)?ZXgq-;G5kF_L|aM^6vL?`lvZ$Dj? z+vfW=KObdsWAhH)p%53Z7=P3Qe#*zcdQk#14=&!sikr()9Tn-g#|TG5Abg44c(VkG zEx{8kw0mC2XwAnE(skU2$r2k<+*azIJkM*wLTMp$gp|R~BDe_;zpXGnlnA7%nZCD3~gI?@)iw zXb&7AJ32-x3v)j@hA@j~J>odxqXXjo++%=LIOF|XmB5}QYnodciE|_j_0%gxStLv! zgi1BaXc;I;+N)b6j641;)bH>O?BD(a`Fjib2EPI5FEevelGAiF5+M}9mwR$YdO#e( zAbd@8HGPTEV#y#11@3_q-*=->K!(V-M|xp;@_>#i32gCw%;ypHT)Pc%z}CYb6>>%LZyRHOAMYiTDzx>6d(~aKmmndT*GD zl5|>Y>-I}q(h)6R9q5_mVOp9R@b9c0C%b1JsSFK+KuqO|?GD&K66|4A`b%U2mUEZY zCor}4-=roO9<%C$C?z#8SpA_{;F_)0y!qovO>-7tqP9swC$5as23h89Aq35shBr9O z7u;o}oFrv8ZIdyBM?=_FY84io{F`O+vhdL#b{8;Ue`%Cm)oLEFH4z}v+Bb{8CPU zQ#Kd2{baG2w*)tn}(dBA6@Xfj5pV=V5~%uZm32%GU5w zDXjRw58^evBS~ht4}Qu#^o;C!%rU%eE4O=E6|*Rjfw9;zznRKy;5V2O0>{72f3B8bRCDfX=h9Rx$(J-d6x11~J`;AJyrcJA8i})hwhU zrF1|505D*5&H*3d(kJLTE$Gjt0U3{sK{bqD&(@k-=~ z2n{%z+uj$c82@^nah%e1R zt}^t@G@Z1{whqw8=l&1^qZDm46$1qd-UX>wX2xLA$sK~W+YeeA!azqzq8YB5Yg`9M znOB8G;|;KmxG7~U!*@`*v0X-k-4BBRvQC)Y<|MV}=*8Sd5Xe#!Hp>}@--KLpn=HGF zC1#q)QuHxjb!fr%SU#?Q55M*xHhanukhthI)TYyU+v44>jEffZh#pFmEoQgY`usNlTf1$!R0fBr&DT zRnw_if8&Qe< zic#ftL;yCiKxTAU@d@0PORv=n(>rfec#0Mm43=aGy>IsdP{r6e{~r3`!WcSX5oX&A zXkrU~Tvi%L6HmCSm0U+R<3o7=G0R3?GckRVS8@&C#YgB5_F5xIEF4Tud`UYsG}lh9 zjk$TC*;fS8_RN5CJ}P>j3&Hfu3MfAL!X&R6|W zf&Wkb$|LQpZ{LUY}gym$UZ4C9laQMH1 zy_GB%TpvC1eLy)NX<#dWG<_}`J!7BxnjcaivvAd#FchFWD;Qi)9y}le;kRb$*L%-R zyc5HqIDSfekl?^mgES7Cmu6M1_GAaOGgyLEQPM~Yx1G+SyDwxUjeZghp`gzJC18+bJ5T%u2+Y71a zF#`ic0*4+!{^+JM9j@VnlXm%$Xb4NeU&V(?x6Kqr$<>yl(^%qr<_{osYB+1Lw~zqo-AH5PEEcc^091b zt#z6&({#>Afi0Owgb8>{K84ssM(J8)Ku;{_?;5YTBM_oIL5cGUA23JXo0vpQ)aK^s zGsRmrlJh-`!Xmh8W_Phl91$%uDG;733b>!I#?oPPoUM~!F>oGc|42Q^xq5x9QXn~o z{3^}2oFOW@&E^!ExIGz}BNfVxnoa8?J|fQn*w7HKUYs;5`zn#09Xrh~{)rGCY0&uM z=Z7{T*GKUUx1;Wj?>mrkBCOk=S&@~0#cUDzMssBvZx5NV@~N%L_g z4^zf!&UTFrNS$92eLW?rGIhCnIKJ-)eQ>S_x$vR6aJ48)A$_qv5F{){Aq%ykMnCls zMts}*Y1c>TeYYO{YMR;w7+(t&SZ}Y^M=(JW*2dm0um^GXS-=|? zc?U}c=@WW>HG$-GH9aO7N^l(Tx_yv!7*^L7GkP%Gh(E#Za+`fc$Ixh=kr!MpF5acC zwl3~$IAvywRsPYZM)~UCzSncax<>&uI_q_y>&lT9W0gUL0v(iC%SQPnbGUMmtE-)A zeTMAnj*1YPOo$ev6%859wV9jPK{cF{xRh1 zj4efZ;A{_t>}<|Nq8V{zcJ3wM7=i@a5-}zdX&;OGe7?%WQK;}t1b>zH!DNnXW z(P}JU#BxDl6N2{V>h&_6Ct#EzMl$}T1{J>3_wA-&AValLZ?H$^YJbCF#O>47D(RoJ3mnrXHC@h}c_oElpJ^Z5!k2ERSK0 z-m+?jnhU&Isc5lMylS^R)0|04%+suF zdy4tCQ+xs1Lj1l7NQ`l9|~8V1?PwSQue@q zRQTUTl7CV7Uzx|UVT9*aSC9!B* zRg}~uzd$ z;(co(<96NTNhY5-|e`g-*2-#Dj z*9IjKnVS41+`k0nUAC9)ix=p{L-CXvYBBZ{8)9Ol9e=5g+#Y#Ji@Y9xiHjt`;7hzU z#Ndm&Wx(Kzy(PooOSx6T_!)m|f$=l;RtjS~;noAgN4^f)rFhD zk$W>BrF><&W3yJJ@perh^Kh1`)vYZYx06vYYHBht+^aQXkdaa&?oeAugv*|rvxE>X zBIAC8osu)oWZ#XIchG{VGB-CLc)oMDE_K|(I}jgD-68IBs$Nm4|LsQ9dTU_vyw#14 z&1V0I2D96j&EXywR&FN?6L(Mu6L?qUcbGmeBN5_+$sMr4{UxG#Q7fhUm41-#*fDWTYGr zS4y6cbKVJ(w$LOAZ3endgB%u0gYnWP}B+Va^LT)T@*j_;06OT0Vn(NuY9sDq1q zRhlAmHA@p7h|L2`?b@TUlCoA-@BmgL&9G_{F!5&={I?gFb?)KSaSfq{_5(L1*i*I1 zO3e&PxgpGF#7M!FHYE_1Uro%+aTE(>9@97m^o7)U|iOSX(S-ykgA!i z6bmVqGc5Kq`|n3qDlg?Qy3+`}gqu>yHgCD2aU-4`pT$i%S$J2R#QUCLa)^4tkSysD z7Qi79jb-yc0G=8X5P0#HHzoROxP%;vPuhbo)kMBgpJz%;98?8fpEZj$-h~P9>~mdR z!9Dg)ked&LXaF^Nq%A13+Gg=EONCIdyvE912e>+c94ta9%d96FAlT)!@{j zse0_XC_yD>dl0R3g;~HbKizf|>H1=2I;)n<1H_ZVzBl7~=MK ziSk~xeNyvsiEvZ2J>v)=P4qFjh1Gsv?2BeRL5c`>K`s&rX+iCp{(Q0Vpo{;_%v)m! zZh!9cJFO=|P7&EAxM{PWd(d{$f)7+L)#q&c_tcO1^Tea;l3CTWQJ5S4U+BtYU=>tX!LsstAf%PAZ|Bs}4R+q@sv$@wwDFYOSM+b>o? zBC$xoEcOppz$Y}{EtXIkk1(mj4zKEVb3}5OHs1#l!TdN^q(-MFVoolXuU&?6H`>r) z#f7vyt~cTYDVG;a8_D;Vr0XrW$S1jg9CwtL=OA2hK?Y~4BfT}Mq20IVd{D>-{Zwz7 z{GSQD#%f=*KrYlz!cCcvF_{Dp*4y7WX+nhoT1>2S-}_G9#V3vJ7mf3JxUwwkdY{0| z#UE@@2%~=nc!Phj0+c2auIj{~F&;PgiJyRf#CgL+EP{kDR>1o|vI4|^lUT_)Iodio zN*TL3{1xP7;wP;a=#hhBOxB_?*5;BK<-MT}TdI%`0r|xV!te?CRFFg+QQE>N$`DPM zZ9_z=PP{KhBfEp9+E%p@g%*ynv=_yuM_mQD%ao&+5#iL9yh^l73zbkpj~hKCz?e0i|4I#M;Da8NU?Mn89U$@hs`(R-O&y+d_|&m& zmrBOeSZnxN@}657^4X(*YV)vfktE@)iQFMYsu_8Mg0icsv41h#3O4pe-b8k}e9LPd zZ{fq$*A;B(`f-V*Zgq|Mv*j-{Dmb|ETx=@A0a?%e(*R^~Fv7S0e;{9qQM=4)s|0tkHSI zuvU=E{CTqS4csYEkOc7J;^H9kx-CYK0?`4T8DqaIRL?}tg!p`8$~i4AY{NjkQ@>Ah zG#tBfvweQN4?=7eSob&7TIQMS4+_9dv5P9u_p<2E<GxLPJoT~0wDYPF?s0YTkMmzgmkzH=$2iL32J>~uq{b(ZzZ z&J^E;s&N^nJ_R!<={{sDvcg!{xV#-axTfe2dQ1iG##}vU#OKW#7}( zDLQ*g*FT#&nmwj+lPxkw-G*Ro;VZI=rYrFCEx7VhRe*h?EqyCkYhC#D3;4KBI=~1M zI1Ox+8I18=5Nh+AS$eZ%yF!u7xSu!YA%=8;;4ub%_2IAFMjVWAlbvpV3tKU8LjW=%}TCL zdbx?{Bg@M^ggN0gadj{olD96dX+i5P>>qz(0G^K$0V7|_Y5aeL0sLce{8z;1t7uFHr~|WA%gUS ze80_Wm2<=QV9R0pKJz{^yTRl0{r4{%n$(_k)rq^*<6Hk>>=;m7I?%uwBK$~iK!t~) z5lmG0UVP18sn=i)nZ~|2Vi?Au-`Q3f`;s*YjW!G;i1#Q+g}Fr~2beZc8KSrdv-jgd zv9m){4Njo0B3y$Q5Ny;37>VJ+7GBok?iAu8+B?fA-^v-r^XPW87Ne<_l8s9x(_&p^ zm!+j zDWt+xVG70gpO1BMTh-GR%=4Wmu4;I+Rw%!YDzpSk|klqQxVN zTB0Y5krReFPEl+p_7k0|wPr3Stc{4-+7{hBv8PDOiMI4wRwLm`B zuvhTNUf}98pm5qAng;!8sRB)Wyf%nh>8YX+r|{b#2gq0C1w7w=?#6^J0ji)*`A6tx zvs9r7M!`_DB~FiUd_y2XH>=m_$Ix`5&jTm!2_nZ|y#xj>I6%L=h( zV+639lJOfSn}+wZtks&Jw+o=cAu+_!xF0xVQFUkv?j8R_YuuR zH=l`&y!$P}|4O}Q{0HCl`vOt?cbdV_?oS!ByckUhAbym9^@|+lY4PEq_RN&Zfz=Xx z1|NjHE~}Z`7Icf+Fh`ZXs$*kEREJ6U0}&zP1T`V*sPeINw*#?f|aPNuEFxuh`$p%lPyQ8RczT{G^asHDbfu{++k8mK%-~ z!pUHo(+;|kK~loiRV2poIUaL})7eLN@126>I23tJfq~YLA}k~}Z6z?K*t5jaWmlw%HcRoY0L`TjpnM!ez|A@QQj=yn2ec@26p1! z4MX}yJ{b98d8mJ7a-yFw51)I8WmH4i#9775(H%{l9`L3d5Gx^Km7wb^@JU-b6zX0D zWr;rs7Y>0BlTy@Y$qko?mt_MyQ;xWehA>1B$pB;V{FTy3>j0P_z)=u_rUh;hKMHmv zJhBN936D@c5sv`c7vvu3L+4)u9BpIXH${l|^yojs;D0W+_#@}>p>st;OB)Ma2Sa;N zT`L2Nf8(Q;;q*}Nd~d=16qA|4uO|A&2`JUzm9=sRR47lgrJa!$2F_6~%+T-~Sv}06 z@?<~J6Yq3huN=KQI$?m}ap2nnadk2Mj{LM;JAY6a3fmURGz~3C8zjVHW$pV-&g+sV z&@W>;##fc~cUoheLY@*vfOJOqFRs-hE>aM}yjMkt_DmwUDHj?+bpB+mwWKf}G>nB3 zO5CBK>4n$YnSwB-I5=`^5Hk68%npE^Fd>Xwx#+KMghwrL4)!6H!XPl$k1P<@@6pHK z#}Rb@WhMN_GWfGxV+jLFn9?)acUqhNF!*6YjfaH;($T z(3-}dKWLNI5M=Eq5SROf-;Wqog$MYO`mloo1=s+rG6$?$7DLwOt zQ>xOP7kx4pVUwsSj78m%D=w2zL0r!FlKv@;Gv1GS(h4`Qa#=L8%~yz;CAQ$?J>7wp zd=B7(s|!y(-+0wIk>me^$p6zV{{hX@ zIDt7ifx!ubA;L<10P}(`sXeU@FB{R>BdreR!eDZ+l5(ST!eFP@GtnDEThTKb<0!&l zX#3Bxio#%ke)4a*r87H7!eHc)vi@E|R^eV^a(Y^}YF={XUN&B)atyNE&h%XfEW%)) z-|1QiI(oVWI-t$rfTH#cmEZh+L*7sCC&z-`=Un;z{$qJD|JOpnKbF_Op6XBeQ=xDP zI3GF`p)-XZcubr|Kw}0v&2L{shy|s-@_!entCbR`Z)66i=@7yw%DDebx({Quw(Z)I z69Jq5MKS;a;>8giG5&~-=L*^wRRvU{lw7HbWCU8*x!EjtiIo90fbK|KgW|&8y1HEXa|1N;PkK?i4KmEH*wY`I#q3(aCp8qO2>i_;l zh2Osap8>t2!oSMEvV2FjM@i&92FnP~tZ_cKkAw#&X(@VJ~* zajYFV2<7d-+ifgJsLeC|s04euJx;eaetUho0mn(~a)MBUuqU7jprhUX{tk1OFr*KD zjfzs7@J9sI)lkUPQFPfy1+gWN><@u5&_L{%rR$}EK8p?tgS>9WUq@Jz3Q%_$d}nh6 z1d7s8>7?qy-k~#yGII4=2J9#5xO_+HX2=)pW9kMo!e9Y)g}x(!DMUWhe`zb_kjFGj~0Q zm9Sz_@6j9dYyC%~nFc=Tk{C~ctvW56>hPGkG{!tdEp@l8y@pS&7{pi#XbkNH0g3KJ z1$1*YqahADlAFA8=ce2Dvjg^ou_`CGffCA)3N7n0(V$u$UU}N8Drbvh1tR{ouS`(j zxd|CTcJYeIvxSSYvqTL~6C2BTI95CJWEBb0A@1RE_DxkqS2^OjRg{prKNOQA>Fj%4 zqi853;)si)(-jAQC=Lo2)s|-2&*ziY^bOV_9^)uEk10nyj8}_=L-BEN3d=P(S}hh4 zrIF=$A(z2MsY*E-ER*eBd;Th0HdQRt=H`T?U#L`=7tESmT3KZF_aNvWhOsS~`x;0Q z?SnUjf$qDYPMC>Il-No2;0y?2vJ0$NG{keFy*OnSW!RHNo%e>raT66c;M6NK`2xFz zd~SdmE~oablyKwT0FvABoj@X8J0{k!4Ku?&{hFE)G|Lu|RbTrA995xokJ#tA@fFs~ zrxBh@!#ANVP_P6RMCd}a?7o?_4@X?hMsfv-kkf(k+|%cl*LE1TaSCXMrq zlHqZ!ghS29u?>DN7ygu+aE`PsO z>0(46#9cs1a3#lG03l+i2MvpEw1--b3@r2_V~~#wx`ZT#GVSNl({2O68ys&|g?egT zz##(qW);;j-uM>p%yb1u>$%n2RO4q-GSyMyV;Ac!W=B)S4u$GSjnX=x+1Sy=iZ0w< z&Wp&VP)l*oIf%pgE!npQW~}^PO6h zTsn`+*cH3~p;_ku%1vuDMf?p>@@|7W(kXJ7Wjwt7V$Kfzp^5}a8Q=FR8*c5 zE9NxEDJiDEnbc8BH;+w`vP7)2b;-w}2lVWbVPS<>`UwQ|`Q*8nLLoUW3c6W&sE8|C z9Jb{#w4PtOo1=Bv#8%l_Ts`mtT}^CONqGjjfFdh;@|(tW`oV~(aZ?ErrE;7;_A^+P zTy3}xqV11Q0Bi@Bw&!PSp?Bt-n$UaFp8!sHwx%rkkG?$4%e3&h%iIHuqvYt>IIzQGGJvrI+1r z?VN@K_Ud@51EVF<1AaO>mmp)QtbqGjUxr)QT@+ydn%u5cKB_)nKRvPT^K^9Y)Ln|U zqS8MdR?rY=HC@PjS!n&j3FbLu?2>IH%m3y!L#s%437NCGj&S!94n1IyTi_#C{R^6# zh;el_x;}rQxODR#{v#F)Qn>tr@D3S3z2m(9?81ru!4dsWbo?)f*I%06>K)We1qBC> z!6(K{Rx}m(UY;!;d=QyA01o$+O8qv?Q49HJm=E|lSr0oUdS_*B4x*Pa@(a?&Lg`U$EO8X6{ZSS4N*NQ zF$g24VL#oG>eAf89oES6TWj=vq5Ql_a9&OZOT9Xcf>y+?YyP*9WKAR$Y1WrJ0>Adn zGv0c*EKmXavTx_10O$8Uq~lIpSS}X8pFRWv{;-|j@&34ke~Q%py7&CK@a>P7=05`C z-$fF${1Ficyv>@_&Y6|%D{!YkMS~YY5NbjAY#s8mwr-s$n zo7OfB7#O#+KO^66U!CCiF7$_oF=J7(C|kzbqj%Wg+LO_baK_b$oDJIR<3QXA2*c7i zb|}T^K9SBiq&RMx9s2(wh<3aa91=|j6~Bs<*kXCxu%eNnZTiupAaKIA?&oCX2EcFHzU>Bc#G?zfWb4{?sfx+T+lmXT0 zDT6J>TYe?$%$IXQ!4&yxQ9#VFh&sP5H$StPSpCSM3`{58_Uj(Scg%?*(fBBwCHLNm zkYIHfMidq&G@@Y5Z)ppLI}qtCkzz#SgniKiNW#c1{JSl|Qj)n`>SVcGR|BMr%ZcL0 zZVbvHmEYbegWwRl***Aq?>a~S(^2uSdguJ7h42S1@ZTyS(xN_4@AvqY&yq5m5Bdk^ z>MY^mP!Gs-&&yZnx!7=wAD8Ooq8j&rUa_`XLKI?H$jdt;Bkuds+EWqZ4bHKX zy;Z?qfJMNTP#wz=ZXsIyJO%20pqYWB$dZ2b1N*Yb-ePEzwn^l@r`5Av#42upF5~`_ zVjG-X>s}M(TC|-iI$_NY%{6%E!h>*U1S{D8+BfUmmCyjQ?LoWNCbnK-!ED##$1gSQ z6>ykGCG@~SX5ZCM7sRPF#4-Yi88Eph(VK+Ug%{&Ak?L8UQ}F2~-5bwQ%Y|%0VlS9( z4uz(+nG1@f>a$5|u=9G9CKW{jK5b}JB(Y?BPW6vn&=oo++yBTuIzjEv(WoM%?A&rc2On*w-V=UY;=Q(CPj zz3N&cE^_ArH-wa1o``tCE-F2wgghv=Vm-!$0~ z{XS#s*+%x-BN1a8bt6KK-qH|sMs$anbZ7dZaZLv~VOw@NVH;nR3P$vQ<)S4BB7h8I zBPaOwY4Op=uZ*n|m#CGqw^1S0B#{Wd(y9X-lpJrZbGVgrbPE*?@7@MZpT{FG!R4+P z-gV?rM`s2chaC@XL8`YA{!Di$(3Qob*9!UA7I2ye#nm~gm(}70&7McYmrBRH(b+*u zD|WlM)Nq@8dcbti4?v~SS+IkrzY#@ysKj)YHFZ!v}S~2OZfN*r75Fr zz4EMj36f2z^imD8W~mc%tZJOcwpefKG-I&1oa3)BOTDEXo4Y`~s;$2Esf=&=f+k;8 zLR`z-@de`rO_&PE=e+bANW)T#765&^tLO9su7!Hp#+PK(XwVMMJ%eR`33Mu65|Og` zxPKjwtlu<|9!~PzsfWDKBo|6M*+#EUny!n?Pssx99oUyt7=$?R%B4gs<-`I?Hsxr_ zuhR1prVk2ht;{q*nG*?!kuWvo^(8@TO|iun?Q zEf0k9lauIhtQ~US)Ro4R#>5)Cgqv9jBjn6bYJFiw&NphT&*}0r?yv}9ZKx+f#T2Tl zI1JUjt=UR=Lh7K3c{kQDWcZ3$)M@!$zxpXy1v}DzI7!N&PTM;z-qb8Mcya@lFdl8O zfyn1uP$=1E*Qt2>H5)Z}2(Zk-Z`ME3iZ_R*wDE&DyzDDNAe6Byl7DH$b<3_*2&G_v zEzUNS!gP|O?lo1dJVOh+0+C_V1W}+(3s5AJVQxOKrvzLOc)LCUew!4DHGl?r?TH?l zn5Ge+>%$8!&t@ci_UTu>Ua#juckSc9MIIA6S`&4Em3IK0#ER6TWUGW}*u^Tj@hqbV zG5-?3z_Fu;I;F{fJ4-muF~ALXRS#jy-m!5Y420Q-V?)Xhs-{lFi@f()P#1&n%$i-c z4#qMsE-T%P@g>=2Bm`yf%Mn-7(|lx8$Xt< zg(|-Z1E&6>YZ@wz#AK7tY7GCKW34c-l?1Xw%?~K|U-7bAI)ti$dftPriuo={WGoYI zRU?+Do??0vCI$6LG6@(FaTs{-eSh5_i^=Y)9MGGK(ZRT9bGZ$t&nVHu8y(u7VO7)dgbNjBPrkm`imFwnnLo6I2Vqzdc#q< zY+FK89U^g<_)?1(1*XtXG{9qU7PLXOX;y=I_#~7@CI_IpR;X#6kHpfu*~0FLi`=8j zI}K5C0Kdaj@lJT*EbHG*O2Yx4!m+Y8c8`Ak1^6HuGsy?cTb{{@A1%`(d=dof!m&ax zf4$Z}XAns0gq${ffEYatAzf`zWspOnnV=z1p#2D`cihRVLUvicJOjnsT$SPV1uwh0 zz%5hx0E0uu-lVIRnZ;Ceg*l|+4ufzi;e z_F)LR)Qqur>_rNyn`%9ug+L&?efyQB@#E8Y1D;7QQ#{A{2;W#o==TD!OE4{T7sHL< z?+Kry8+EgR+ddV*Q9g-=>Vb^vFaL}@ z?9iyTTVD*Zwz9L@w*;2(-5EWZ%0OQ%g;mt?WQs9^0#LoY-Q+=^oJ zQJO!7aS^>0&aI_wT;fM9seaHWS2ep+yFEi`h6_-WEZ2!2n)o_6u$iz3)Nm#3mKZ&R+{NhbiN9RzcC0(5{it-5 z*X@FNfsGhY?Iiz%F=%-EW6^A;T&a9|U&Op!v0giya76R0E*P50o?8Jbjcaamh6^_J z=cn2@*fz;w(JN#kx&zp`3>vk=UC>pmrJIQ%6U*T=!W-2LQuJzcBDx&b+InP$Fn32$ zXaab81UqY8LJjJb{AuDn8)WLNT2#C5Sz3MV*;k)JWh#CWJrLZ1YF^KKLR}e)(q(yL z%Erk=uW+3T3XtiX12G`+quKBx?GfS%M((4}n!f&q8jgEhUQA6;o2qa;2GH2U9$OJpeqo;Hat^u$XJX9c(YHy~w@&QK-FzRyu9U8w73N4lIB z2ICE}sf&O67C1IC_QuM|xSX*bAtPuT>Ivxx*@EO`K$q(mr4WQq9a9QXlZPJ>N(TyR zsE9ffsZbe+{YBAIgHdtzw(Y?H({s8mY_8Cp`#yX>9ZGDOikhUtLScX)VqRjZt8?~>t7NCA9DHkC`qv|LedICH1E|_)CRxz z68x>(5{-k4Lz&95-SPmUr!neVmc%ZFgc1Uo>KeEytNM4b0RhP<4TR7w@m*aIm_b!w zbTCGQ-k*c!TDMqt*8m&6YX&jm780Lnrad1W?hg0NqqOsz$sA0=)Ln3_^^WpZh0bXBKv)#~LWtfFLA2codKx|jw` zzX@nU(b_3at?UHXx2d(gt*yoi> zujY&v@F_XnAGv$W>{4$%}Lx^ z@XF}|gxVJ#qAev709cJ<2@9EIis{y|9TgA!6&q8iZl3>nY9! z5UKFi4xvt3+AaF4eqknYHQOg#`%TuzL2i87T}l^2lqayvsW{a@eQSZ4pjJB@6ciy< z^w@llkU3+lfhiSIRlL)K>T%PX4HEa1c6%mkAu#>#(x~FfE~~q=8zfgY<&STLf4W?PAo- zez3MnQ(1`r=7Wq%EmntuRWa#HEQ)p&zH80!R4ZI-L=+j+hZ5e@Wgj-Xn=fnvr@73# z8hdmH^9u{omB%DEq6dKND?>ebYd+eDn&l(6Zc4kskw{?SNuD%un=gI~=9I<|gcRBU zWr9my4M*Lc>>~LNXp-<<5+?QRY^_h_z{}nQSkJ0G1w;Yt&Qhakc6lJSDzcQ6WtYoQ z#l&J1;WpKbRNKa7p6Qr=7a&ghQurIxp)T*mA-^@r5LEEj=mE^pFPBf;MoLQ6NecUE ziviqlPA=#YcbzhytoYD%=p}l4dn%rBy~wuZ0EV8s4+PYd27u3W_AdY@z6edr1wtqisaY`8h2vPuO+Ex1WYgPvpwENPINnPL2a{h zgJlTB;yQ)cpat5e!bO{KBuz8r7vP8ciXr*iM|Ax>*LUW0OAX7h@k`Hu=?{@(dN`O2 z6!OuKMy4`}kOOKMoZ;k=E@r9pc6X$Vvz#~CsafMF-43I&{0Yuxz&tD`= zm)g$)*NGW6vBT>Y8HjQ{<_(Uvz2_!@=l9Vj@JS|iVL7|o@V7p8h1iPR3xS~N*WEU{ zY+`)n4()d*GO-uj^=Q1uIQO9USimYMFyY$6&4Y_z1Y6riq`w}={_Z}@IT1Q8h8^0~ zkN>*Un9`*pIm$?Uy6kbh>H*QY3wbVw64>o$YR!A&ex=G5>O-#%HsN|d4FquCN9F>< z<8y}}z6T&NE!0I&mDJ0X8$d=ShNBSvBhpA0#yX-CL}13~F*Zh_ojuXU?PrEDi8t&9 zfhA?spn#&bMmO$f^@c@My?q})4c%&+8vZ^8CNj)nDT9G1bwYZuuYzSAH2o5$2%6z5wL>z0!ZZ_GqBk!VM7F+xuTS}mP~O1r5fcZcqo5=P;61$e&CsVzc$%02Y2Vr+5AJ3%?p9%<*%wb>q%w++nhz?WF0Y($%jRnT3)4MkNNw&u!T_ zHKDc{Z{5{LKXO-{(%>ZzX!S^3#XX|#Z$kaMascYclf&+0%nWB`WDLDj;L=#})y)AB0RIt<^G$4S#zO1>1!z)@dOu_-?>crX4X_SMhoPjqq zy!KXnKyom$b7`*cS%RxSvBCf9%klrgm)lz#IXLUu8Gg9&Je6guZDAx&(hhGjbTB<& zCc_Bug`NR035n}O&gxuQ`BvXvLX#-!BK_#H6Dzg3^<#6b%P@AKUwatidf!GyiCbEJ z%@h?YaMK#vMjckq#GO2UP8SksXEUXcb9fYE#SPu2o8R@HwQoQZ4mju-Lm{;~S zZicEjSl!)i8QWFb$BdX~Rhegf_u$G{&qd^3s*^=$7iWX=suYT!DJjX3^KzRecVVg1 z)K?uij&3+Kv;&u@I5Yuf`ih#5uXlmY8QPZ6>%KO(J%yCudELKWTA$IVFGtL;@|tk9 zrf>_DZ3Gj>3Z6<%fR%16BcQ+I+9r#ghVrt-FU8Wtx z<#Ku+{&fM77u2Di^TfS>KV&2z&n|1k9NiUR?uUh{`eABbZnbpNlGv1eB}t889(3D6 zE!et14n>Y28!KHMrzG%ZtgtwFLVH425YxRxwa-fv3rYN&`u6HYL7|h|({5eDd|^iJ zRMtS(y7KuoA}v$dObwHA6WFS&sGOYa(6yR)UfiDQUe=lC7qh##?E`x)-V9Pn*ir>5AMl;4aa7yJU@d@kR_XO1^}Cj+y023a3$iVci`x^`*SAxC8c#S$-UtBX-gjoh;M$NuFykr5?giL0Bk9kr4F%B7XXbb08+0PrTezCivgqcp*T1_gopk7C%M$WND`?ii^+ z>_P;LDmkY7lj4{Y;1a3?ijYr$N=sSQ$y0#^tWbox2H~2hkIAEiPX-D22JUteo3>>& zC=-iz-D_+Hg3yZgrZC24Z^0!a1j+XGDm7c9#3HNtI6XEijA_;jpyJzac9Dmvi#+V{ zTizLa2b<8`>y%I4YI6Ck%n!%Q#Eh9gO9KHtKRb8}?MSm-`FheM7Fv)OgQ_&RYNl%_ zOHvGPYM>5qTw7`nws!fQL{!KflWk)cJKheE3|whuvo*Fhz>2i9O2xG8dXik-=iSH~ z4ws4RQAV#Bz(l37hS_F>!u!UNnprQT@$~qLF^L5Lcl{#6d5yl_!c7y@Zv`i9g#~tI zdyM^zcS`EOdwjR$APGMyl0F*Sm&1g6CK+m)h*VlIsT19^{cX$pg2DT?ZAW)TW()U{ z{ouBs&EWjIRROYJZu8l)#fOGpDLcywgt4MY!ZOfR}#St$+wK* zkBxm!g3M&V(@9NdLh!P$^^u(@$c~!bEIY zgC8xLpq;ie3IICr+$O(V1HuTIG8hpC;v*4MCw-}9d#khQPLoykaMlO31M^pbx|#{P zPEe>vNddc)W>oYajLFGJH8Y|ZcH-`y5p=Jbvk*Bgm%aP(6NkRtScPF*xigocR0368 zqblx&3C1*AgK`XX^X0q4UB^w?19sHKh4B9u5~B4dP$2@8`Y|Mc$&p zgezOPu?Cm=nJB|0B&ystf*7&6aiJ=@+mKX~0>VO@QY~Zgec7e7yYHKnERO@L9%WgT z@~o66uq6nCBJYUXeG;)epwm3f&cFgb@pjGh;WJT>LS<~Pu4Uzf;6af=sYeuC*C#^o zaP{zAKwV3juj(75!KAwfY4uOm#Roz84luda_gaLeT>51Lon?N0e3FU4G6WyEiP}=u zVGo9YF+U_e(7V<*|8Sr#HLeRN;Vcc+CDSdA71VR7J0gYk&DqKA^|z*|H+}|9b?=}J zG~9nC%m3;EKmCmhe5aCrcs|W&Yx89~guZpGXB?}EPgulG(N_8(eQ0x`pi5Lt{*JV$ zPkJSF4#M7BJIi-fG5ji277w}Zr+29iOrwnm`aO@&VmOLp{T*Y)pMPq;d@XMn9x2gB z3;$lOyqmfPA_AUlq>wE2xyFNGw1U1ZeVk{U*DH&VBUE%)UqZ!niWk1_cILpR%$Oop zcZrkUzW9sDzU!K!rcq;Y?TsEI-|lj+zLu!_RQ=E|on$70M-m*o1-a!)pU^mfB=l^3 zfdzAPf<t+Js26tmjc7=Tt5!hJ*C%b0Ar7A|rv#DJtkmh=kb z0K*xUQdiOHsx#Te9BPqWS%$cuj$xp`sg6HP)BijIru2b1lg@RLMTI^=2Fx@3B)#LH z1TMo5cB#seb=MYG#&SSK%~FEPB!zos#TyD%3{6;+f9OtU(Qe>&j^ddkfxBs`wwk%V zubrDOMlQr;(Y*l%ooE_Dy(9oWl6TvAsEHk42dYT>GnjJ)tr^jGb#bFoMI?a($4u=l zpEu;`srPY{Hmg8MQF`$k5#Xv8`0yJ1Xut`RX^wgC)kF!F;{?g-ON$v%Dk;$VTZ_A? zj|4Y{43BQ>Z;VNR+?(!~cc6&)PgNR!wV?NVAO060@@_qK%9_?WY$%=;GjBGiVNBDA zQu%48-A=rdNn&w$DLY|rA zgtCU*_Ur;(eWX&xVcRwjNy4rUtDfIUv8<0FG2BASB+!2 z*?SP@=6+keG6b(xM(s6CW=^8mPQ9dxGE9q$h>b(1(0lQ6^KkHBa+mRb_B*-{T2r_u z9$f2zv=S&wvD6T=lQJ@$EGso5o^`u6K;9@EEg!FE+-a#KyWS*)Sq5bJ zTC*MOc`6I+7AO!yW+R0V{*{+<;Os zTx0)Iu!gap`M$M8?rt0tsr8xnyz~NdxWY1GN>gan7F+EBjIkoRxr7dtrPXW|feeX{ zx|Jg6M;N(YsmZ6&hHgIs3bl3zhKQ~Ebtbs_s@%>kV0k!8t_<;R#FbN@)r&1@rbWWM z7e%&`{gzV3hQBz3U7o3P$Bi?nU`@CzgrOcDJq`P;aWjwZ*|98JHB2u^rWF6Obz(@n z25^F#7yp`Yb_?nzhE#t_wq{{aDxrIgEovx5eRU%Nyn*}!upV{RG8=Zd_}T$kW%Lx) zF08$yK4zc$RW>T5oX}9C!&j`pTCan2{SznsScF?RZm!nm0d-zT2}P-s1GFTKB9VKI zxr@5t0=Y>TpgwOPOADMaAv6@+X%_(jma-QS}W9>*U8#hYIOjg8gCP}?>k@b2@KPatmf6p)yu z+9Llz+CUw!no#G^r%=9?p7ACdjTG8NY!R5d$m9j;D*+_d`lIBL+aV_#&I8T+DAtBA zr|yvkd@f`I7j1MKI%nWM<>>dzDl|tB9Rcj{iO6Po-7&z!e9I>k6v`u;_u%35CUw5< z66#3AfD1*Qe(FFarzBD80cz^)qHVF+t^m1Knf>4ku6cS)HKJRu{Vj zUPSYO>aShj1btKoP?iD!bT&TcZ#+;St=tc_MS}9zPSK=Jgn5Hccg%)6WXXLiXGxEO zgMZo3QkY0j#8h=~?mp+4h{xKuunhj@E6tWX*9j7d>_;@ZQ)Ql@%{Z>>HZw2ktWk*^ z8wbt(-MQ$@VkfMtUBQ95v(g>AuF}v<+Jpc0IX*?}k~sF=*2Wo z-ff1$wiLj!SXj(}2N_pMYww;x#1^F^Vz*Ax3g8U4j$=#TT|I{tCs(mVME8v4IESG51w z8s&xf1*Lw2ia&g7n}WJ^3LT1+Oilhu5X(jtlltTKm1HFb8y^uaE#epYLhAJsg>s&gfx;r-}(j)r!WLw z)d_)%rSdgv9&6C*dheodGL*^k``YzeihJm%SmIXdgjc9r|ffhjua8$Z5NxSK1;OoRr zxl-O)0+=`kI}yvvXF7>)gPSMY9-7x{@o7uQ0cT;C9U6!+GONXMq~}^$&GqiLOnO~s z+l>e(!j%C_D|;343VkLl@;8$xDzQD$iDmF~iN?iZEfPWZvJ#Fw59-?gj(&jd)g(6t zWn|I&C@GoIg`z1teJWuJ+4nX0v@WnlP#cRq;_0mkBWQs>`p%t}lW?=EK_d+H9%ZR! zv)Rnm|D6AqT&C;{0k%*Y6jE!_Em>f2;q7Z8OdEYx%r)Y)G@&T(0KJ*!+rE3`@* ziJ)8~^~6(OgLTY^{jZ1k`^%W9g$B!#Sg*y+# zCRY#%!$OPe%O^ywwevR39!VJueE>HI@DNIX-}pRJb44P{fiZx{sfnB>qQucOW94Fi zn+i~Ln-(lH_&KHL0lC6a9EjiGNPbQexV6cUG~EU5d4>y0V@8tsf-fy;+`&R zw~U9Q;!J`^!npJ~z)iVVlgfp3XKLcBROM($B+ZzzdOV*Dq9+f{2NQT>!sisQDprxB zbWpxIl66w@dm&&GB-+CTE*5ts-KO1A32EuyCw$$L?s^-Ded!sI?~?J;3)V{E_w%=c>3jWlgpl{RY4}eGw!fRn1G-C(m=5)h7wxKHSaIYJgdec ziX6@6@tS_ibXgHP)euyV)dK2~7;vJm8Qz+vreFUx1x_p%5TU>IngC`Uxq= z>nw7h5#Utu*f~mDX1i$W zE~A&oGdNefRnBR~b>A;AqJ`)e^1nW1@GLok`F4FpIB1M>Jg|>!WJIyU(3Ewu$VCc% zI~)Cx^Ao;pLANZ zhBhWEM$12uq>$r=rN7eonws8x(Tp%9^%EFhe?$BL~lB={;ml3yz&etsVdQV z2BpnbNzOR}^1SFOenXkd&DxN=I-JI%I ztw{Z~S*uQ8j}7dYHi9v6>*$KXtTV!lXEwIr&gRS&uv78a~+C;Lku*a*+!MdpThpnEfw;nyqF>WJo z_C9@^t0U()1(=!CqYCk)d3BK-4S}e$W3UbB>i29<+EMW$B?OmgQpb_>5zVj zOOt{iK}Zr;7^X(GqsR$jCtdVt_-)w8!mMzm|Bxi1cU4Wwrwgu8{O%P^c;4g(WQ!{% z(}_i|R0LDQe|Fw6w21{G2zb~8g9^WqapS1yzGjUETw_gXcc~Ty|aW zC@Ps)aQTC|N|%FoK56Jua!M##l6l)aNvlNmmo}Mrtq~X1NF59U1#&vjc84NWXSZwl z?3xy;F@w|gsdvf|Hx2HCLA4>vQ z+V0~)alwEFjBOk|r~tC~Pf^X0wq)Fsev?+Q@uZ?vQ>`Ea>78MG4lW>I8gf*K+n;W* z?~(ACiRjyu+imW!WLec<{rAdXXafznSo&fe>V<_g9C+2h`?Pjq^xKK$nuiVUW2 zAC%?)d42RG{NLk$D;1=9zpRnw_e&LN{&K0}@3gjITJd=aDpAQX(b*DFYH?}mxnc2A zvI+Y^8Jbb4QA%5i(Gf8*YC8!@nnBv)>k;aKO`zW}h`SlNH z_EC@d&od~Ew0+(^0d zFV;@}58wD=ZDC=k|8ZS}*!%TdF8`{V5t1H$ubV;Pj*(2s7c(!(4#Mh`!iszVw4GK` zK8123qG!xih{g!!f5w=%T0ueS^v9cspjfLV8rxg3AJ;!MdU^rIQ(=RH6!x?U1;z$r z(>qu*Cz^!@mcVfHH=E+VAyrU2Pm23N5KB>^lqXq(yoWL^1Ff`-qlwTqC(O!EPv>b>k)|e^54ggkR znNws4=vE79iiyn7C4C8a8~$=cWOqs4tIjTdD!PA(Y;ht<4>sno#{p*9PYLu2cKYTB zYrA1V>fke9PpW+$ef3uSTLA=XEXC*NcY%F<53K$$xxb3^!zlkw38IQplKfWsCf0UB z7KR_!v5LKSG5D8Y9b;8h-g~?Ezh!-wlt7>kg0^bp`&4y`Wd%Vo3k8LGM*{mrU1~a= zSm@&F{=m0AvmYGK^ZbizYfQf3gsFRS)7_Z2m;KqOr1#sy1v0&4mtJFP2Sh$nqfg0} zE%o=K#!kA?_f9?my78N6-If8IF!ll|#*LJH?gCmmjpKB*&!E8YFkDQPg`HGaI!pCU zXY1QXm;nlhUFzneL+tVDW7MEpv(z%C6UM(NQ+r;~F2-iwmaeMpQF6|2LRnj@lajRHAyRegiSOm1NE4*9d^Zdu17q(tKSlu=69zizcbHK6%2k-_7{kw>#K}8 zZ4b}{5H?*2t?c&AZCVjKyKhokhIDt`Q|6cl5fpNYw(lLgGsH4R*f04 z3{z~>Pw^4E7bN49JRq=6t`3O@n@xFUprP;>=?L_fAt z0Xhs@LH{6$pd1Q84Pk5r0wg3o4S&&rAV}0~ZGl|HATNw4WdcdaC^-U2jHnZQrzipZ zN5-Tb0D6|nvM~1YE|`Htu~b%msz#>sV8ou2n zTdL(aeUYk^%da*H#567dxKQ-llG(v-#h>LpjGm8%M+Vuv-(FsQ30bO!D|NSkSfo}0 zN6)`)5_A&PG zMSr4(&1(=F-|lq4)F{muVZLQPXo|ZajPoZq3a~;5Z`8>j>ez7ZtBjH^E>2x`l&2S; zmGfU;z7pWwFe6biqtAfDo{zbzMtdbKpnb6=sm^EtPp1qs9o@e})t3)h^MH0&rCV#G zx;dePtHFUSb0fugtncprZVaxte{wpvIBnT ze-35|DqG@|AM1u9q7k3~mVar3tjgU1fVyAdmL@y0(ZgOUV&C>s*6aTXM zE{at(KOkSsfq@WY&r+XjkGWW=Rv~m&fm$bU%YQM9!iJPfsb0ajJ zJjPp0T?HHw*!_pac^kwIq@P+{|A(`83e$95l0dt<%j~jk+qP}nwr$(CZQEv-ZChP9 z)oaf=bN1|6>tZhci+buZGvCZFGBN_=Gvg@V6~P4v<;;GS7MvSL>&>+%50c{AxT2>z z0wisiD5Lmrd}P%+?qD4csnL5>m!d7yJH7$IZ#(#4(JyJq zH9fzG;j(TYP=9eJ*Nj*v2~dQqz}AxSRM8mMD(E$J_C^6lke>8`T=0yaq{)t6uqaKI z>;nlTPtxJndh&Tloh%h?fuU?mY~=Pl`k@#mNzRk4A*>D8io7_6U&tH$hW%xgdcl%c z@U+VQCZVvhR~;kLAis!aAXdk|gJbC2m}i!-lH0CYn1MMVh?r;{-O3kUW!Z)eL$MH% zcBjCjMVg{SSj^ZUmv~Snr8%8A>1O5WTwkM?l;&u}V%C{^)Q|piex1nEK$uQTM{=MI z5-}_ydHJVoOl>ITZE-6nnQLc=QYjDWnv0-lzr~j2ZljM^dNT1I)KZCtF!_=TEuB*h z`5vXqFlO_&)S>+%9|h{OaHM%9$HR7Hnt5?oKE^@C>_hQOd1WW?!^l{EOcEwcwvd&Y zQBd@Xoq5(WL1Ur8(p!I1Bui@6suD929X6R>-1?G>s&V*_jap8oWN_MFdl;o}ON$_-NFok!krSjnns2EU^mxx`;*(JhLTXAZeQhYri#Ml_-m7#kjTIAaw$k zY$ayCl&MMYk!OX^42Wo~8&Viu@GN0Ot<@7&xE_KoQUY;}-!KP(a}W$1AdB zM1cK$3T9+ei4H5>M01Q^<*XqQ!yIx=D`%Ol$>*P@zKi>I$RgywHyH+%nr z$)BrczHtWAW^`6nstK`WHwoc2U06YJ87*875wA%)I*`mprFfq0c{56h>(guO@&>hEy{m zlWN4h_`^&0PWD^>6oZ`~S>VE6F6?_`4L2Qd;+!-f=4}&oiD-jh7b!L~J zff57dy#eiTdr@ZyVD`-MW9n5dY`H_Q#v~ z?;f^4p%SvT`p;(T`2U70){txg%2wMJ08o;;V<4pkR`MEr?_Gs#$pP0vV^{tJib(7E z8&|?j!*^enrqK%RuFrjgt}bpa*nTWr;{&(z#Y(P(*?t|$27#C=g_ShP{`M9i5u!>`^lbBMMR=rj^pa%3af61 zX)oo`A8Yjoxcr4GcWaXT4FRsksLpea5kXgIN6N{K@>?D@l+s!)l*M^b;wieUY<9~t zwV_Z^l$dKH@}teNP8>Nbn5q*r37-&bNWO{>oUVr|og6`vpU1dn6}hHQ)xTeE|+A!j0k)}i^m&z z3qUA@*Eeo(+YE=q_Edqe=^NMgXU8b)>`UyJVJa>#4+>p0a>9x{q8g$asv6uH(wahW z$0%Uoc>Q$V=d8D-li*^=MWK58-3)f8?SQU#;i2~#YkCzB*=c-TIwUHlk6(<@C}abx z&g=5rQ9-)Vw+3|7rET6nfn+5_^9VD@P}7O`LJpxj#ZxB@W9{4%5)-p!Ro>=ce&3Sw zx6g*^Z8=S0JT2EpAK=uu&-Q${KDXa-+6DihPUr?U=3TSs-UbXH&kw|m+Ms*XiJz=; z`nLJ7F;Rn9z^+c$sK_#{)HMte^eT?@n7_Fg-Shj*PxqbhAizwql!~j}lri!BhdxO; zkr#?(?$=|yVOEX6sPG z)l9@N2A(hb{e~QL%Xc5XYPGWewNPDP-D;GMyLjW~*Rw;dQucX-#tfPIW4v)6m%n}U z!9)J&ht+-HW^z>J6NfN&d)IN6%g_jH6^Aph6ML7$DyRWNMNXbBA|jAE+LG)dO|WZF zrD0nMQuW(#jJEmxzF8k$`ZBr>Qwo2UE5`1Ub z`^kaqa}Y|9TdY)ru7C-#5XltvLQHPzoX|0wM~P&YaN)5kDgEJe`INB*MP|39HX1aR>eUyWC>PnbrS-xKod$b(A?S)3@bjZC zo3WAgfCLH`P0?ej)&tb=NJ2nRK+q+$6{T>K3yeIVVzC)4F3N8uCf zHAG~iBC5sPH-poLyER3e-d07N-gzO=lDRfSH1!}1ttNX;>(P|GcGP{y^Rq5N8Dt*Z zR`1KVCV!6dyCQqW;y>csWF#M7zd?OG(x{GM6bn+_U&-sXFuuFAd%O>%Z;jtcJ2{Bs zoQlz)ANCp^_Y7Th*5jG03kbq!?$fr9i1Z`Fpv`r{y}H=S=cLTc10$Zf8=nJ}58I$e1-B$z zT0wI#wMVFFZq=<~H?zfk!Yw<@-IHA@FMF|gasDGzA$ecKH5>4iyDnqaz#HICVh=eg zC6BE7v5%ITQaEkQEoA@X@QJ(~)S_w5TOLtPT1HOF1?KUeDB({02(MyU;<}XZE~})! zwFVKY=phGKkEuiA2((lRAcO7HEHZ!77ZnCkH+=~1YKK1NmJPC5|5FE=Oj3s*4D@at-xdsT+ zFv$ez1un4^<@i#L9==~o)UKLq2hpz-V2fk|W!!_Od8|#o)>6&kiP)48YHJvVL=}5Y zuQ3M8?7m}&QEqv{AY_j7QkjGJUbx?wCU+;;MYccsT0iL0#5N>K{u&;NdvF>BDTto5N9ICrl9L+m0&>O zZgM3D^3Kh%PI$sh<_&6hk8*!o%D@(%xPE^2nB3D+59lR5qvyVZ;m8oXBh{rtnd^%) zl=Utp)SipaPL&cPH>!h^KeI71b*yHP=B$2!(m*j3u{8vbwY?$zdfR~w1o5$mctT}y zYX@f0$tgrW4KB>-iGx+S?f3KOtviIwZ?i&$;r(`F>vzNlJ3Tf8iEFF8dy{Ej@(Nbu z^Lq)?uU2!m&LZLOjV0*47%eM?31SOe@`B(j7gR&zD%n=%u1B*Ef}}r-)#ZQkYo9z8 zBi09L?(BLUcwtJD=A>dcgL}nlz;hT-ZLg+=6`meSD?+w&P-cV63#B%<=%4J&z*;2g zk}&z)fcRZ6IscHpd2}|4`Q+RyO~n3c)Lfcgy(gFpI<=?c27@s_(ZB3 z+3=uP+}&twq*Lzzo$>%yA%O`k;&Vr{<oO?G;EU;y0Y)`WuxKwDK(TujH1vmYccAPq0t7B^o%wwn8KKnlSZ3(li2v&x{6E z2TcD9zn90I+^zxkmP#nO&CMV(Cr#0su7Mf$<;m;YNSL(zXH^aiE4RQQOM>i()vkP` zL9$DNJ7>*7pBZbOV$k!G4fR1TxvR5I_BYu<&h(IXUlbQ8O}b0-61}Hg(_W1I4 zdmlQS^%ZPKVnzHd9yhHZ158xdP?jQk+<6u@(H{o+68`F`Of(GKE$NT!>v48PQmjG= zc|4c625XAPpTx7O84#gaiJHI(-?xPP;l#sVU0|4H3nOJR>J{Mm>V0QjnOGX4YRRB0 zc3gZ`$Z3AnlGkve1rVw%a3e3M8^?F86boOQEH`r!2(nwkhcNeBaYjSzeAyRM!Oh2_ zb_DqYz;gYiLJX>%HE{U#4H^yef5j2`93332t^Q-Y@l25ZgXIreo8aaG27>1y3G(1t z_LeP;0yHU1qjR(p9!oUuV1+s|aw}B&GN3q`%H_ z%96YiImVqNoTm>%A{P%aJ<$wv-BHn4L(Gxb4w5A_TrsZ_xNVYMxS(Udj(>>XpI6bC zPaj+ zKU+*=MAwvP-a&qg#Vk`1&>D&hGmI!z=_N-kCv)g1`kmyzs!)-O<9BAT@JKG#BKyU? zM@1)Nx)JIdIjLkiUBt6j#%MOXKJbV8k~XSU>=Ug>$u<)EsEW>v{~euBlkIGA$)+?TmyxAYJ5~A?T0#|SR@ddN z?+}DkPwo*d)mx6-iQ}R={~+Q!8`JsYaIW?RczWTa`MR`q6x81G)u&92!Lr}-*K>Q{ z%1g`E@q4lE#$iRDhFN&pj++GXG^1SftJdSR$6Y5*p14#(MA|6S_}c_c7(wS2CQ1*^ zH^hAqeg>^CMG8+oHWREVfHWpSPM%ZZNVJUuX)zk87UJjdm5jM$7hyhx%15amh`)xwzt zredm;6mY$QaLtam-9&zrqIMF;6H1O5k@6J&1oP?s^En`@B?JEJYtRJyN9^X$%J}bw z&Hvw8@&8+XMJij`qc0+QEhROWt4@XcnM&yG0>&@PVGy5s32O3aX z?@KDF39GS-s*AaLdz<<;Ns-DJv1RG@N$B)s#h^}%Lr&1lQ@<}qdz^cd+_RQ9Hh|4B z%&l`it^dxj&vL)qurIvwdOo*j$cMQKu0@V6aZ%{Mp-Hp(^6NRiO@Y3Pm8Z?`1?BGt zLnQ7u5!4zoW=z48Zro*{Km?KvyR9)akn%C!mz9%U+HTOpKkQfOQAIpb$WXp9N9>-x zR)>lny}n}LsM>j&^W+=h zm3Jy4O0r0}J}(e~Avzi>v8s$m(ohb+w8A`pmWVY=jOlX(MpJr|-EAv@gxf}sC2>^b zvm0D3TD{40mEsU)l@N$>7}K3fp8_Sx?=eDijCktt2#($fH?}UqPu2k#^~0*(gpD8E z>0To+#SvU-_j+H%2#RgiT|jSz9vJfoidY}vZi)i+>Ar|nmrcl5)@`m+xpfq7nuJoY zQ)i+;b7CrMg4B~&TE&evJHuW7AI!gyvk=f|TWb#;0dZa%1(oq?$umkZh#bDLiXDz7Eb(&wgx%`UjI9mN= zo_>Pdk=;_dU{+}nDr{lp?SJfUl3in5lU zz1lZEepPKj9^v4M^%st~Cw^JXWhuZnM~4*sFWfn^C-M@ihz-2Ov8nTfpu(@8NEoMFY2 zHMLWj$YnQ0*#5RaT$)E=l4Ye??wwk>s~9y&f(gh_vU@a%FZhAs+Pts^2(N$mgPR4hmqwzpP#p& z$hXR7OsosE1XRTnS~)w2#%Qf#*C&_R-O9TFPb)DRf;FyPCI+qI={)8gqTS)$1%(5&Si5a$8aQgdk*xL!PON;M}C#DX+rR@Q4 zFCe9^0y*`UAM%T!&=LvqE+9yE*^p-q+*1torDS{ZY*&cL7EcNOv!n1a+yi>@j3(~f z37#`OZe4)&%o40h|DucM2*6I^SU_8uhMlYGo07{7)~yStkXGI7A!7%$qRWP2=;3V{ zY+KOiD_Xo54|Y7cVm^RmLDQ++>`S6FPZe9V7)T*TBGaYzF=mM`Az&J{8;w>tVv1c* zgyNWR2PX#HGYFN0X?%9rZF-#N=%e@Y2jO1AQw`^sQ(Wc9Bko%FN|*6(;WzO&3)qXB zyGB^4$4xE`y;L|7weyj!asC);7Y;CVpWqTLu7jU{v3PQf;c%?J zdf36gX_@^`SnCfJ>+kxQfT`UVJI31Xe?dND#l^okGJ(?swW8)84+rLicm-;seTD)v zWF!NLyLs&?(53{V2`q}Q+3PK(+kM#E(QsD{iU@P4E%eEEle&i!N56i9IAG|F_lW@! zR+QBhi7g6D3Tz1Y=fc^pz@FfM68c{@v_T39-?NZLdn5FpG+m;I4cj7(!vjy>2x7GY zlzLu18m6^y#gdB^_4^y zS1~e~W{kAQ5{r$dg8R^)s$qxu6uuxmeIdyxfv*^e&6SYN7*vgkMnRM6og_t1=VMJ= z*n%N6T%hP7AvxFawJQq#eh&hPG^Rklu$VIoP4iT40eJyrMnln;1>ne*GiwH0!x{9! zhEI~M4Ut(?$70gmoAUknFXxL>oa#raF9_@U>-YB?{ePM&1WcX&V+?nU9sk!tD3_;p z0UcSkNLF&Bxu!YwOO0`9Kd3u?+#$c|y%SppBW=(ES9(_>3?n$&+&^aMTzV#bX@I}h30+rc$jr)}^jjG1eeuaw z+Ya&b1}-G|`acvg(@V;h=V~J{G5}j4KT6f)JFDHHfW_K@km>N8eb* zN60LXIv!)-ZG=rM3X-u*Xb!?425lzk95ub)dKRo89zvK|d;MqF1oOXC zc&Us#uY|vXWBiX8;~%!*-S4FE!rH*u~gf6K#=WtoZ`)fdG$01ybQ zfW{Z4EtNsc->y^+d4RpP1|ihrjvKZPM+2T;RIpd?}Vmm zKY2-T9%K0!M8)I%1c@O|3L}d|CFQWv-L0jb9H^Ny?9-*%n|)UOGH-42)2BK&4jt0l zUNY?MPnk07*^jv92qb+!KjWv5ysq9ehp#g3*t_rC_j{W!JF&%j@EKWkFsYJf3G>%{ z8;@;yz?N9INh_Rtpfz@S5?!()%ExXzG$x}N>9lb6)O^n{Xn@c$Y*?#wrye8-rl2Cw z4LfAEi9jX{qA*=zdxq?6bmdu@^dY!A=$exHIo2s`AjF@a_w-PyZF}%6VrHrJd4_U& zm_R5P6BtI9rz+H6^7)5iesG{r^-HZE_FTA>{%EfW-Ez8KGn{Z_<=!01PEMX(Lxf%q zWHb)1(u^T#ihOXg55!?IAi(q$S!*gf{7O^HruD0(zt+!k7thq$9%I#!oLP z_geB~EEgY5Ioza!2HpMEe7-ZR<#oO{?B&(LKjh4&gAU@1u7!WCN!OKLcxvbYQ|?AR zY~R@PWZSSg&FR521XH(y4d+tX14Do3_`MqW8P*pY@tM{a8~GW`HygplzegJEt)XWc z^sS<28mvQh`v}O3cN@T$8SE{uCmqO3ber;fH^nvi_inOlCEsSSx3r!$piNvGneAUd zUi{n4Kwje8%|Kql+s;6nq}Mq;{NG_9I>fg(zF)zz5ZI_}!}_l1FY3+>4Ue@pGjhIk9?(FT7@ z>=6e1P}{Z!{7~A?|L#qEP3s#C@z&YH4f>YfLk!48dQIx<4fky9D-Gcxv|ax_8~(YY z2O01~a6A0_C)qWjuQ&X&voAHoTX2suU>DgnqwnWF?Mrfxx4nw?QGiRo?`JPF>-J~j z4W+L>-*?>HA6WftdPxMhi6e26N#~$?#sshzl0|c%j2{MN#awgPp^s({ovB?ep3ZgE zUg9j<)>1=zY7Fq=L>`{+HxHnN?9RmUo&@+;5f6fH4GheK`l01>Z9^X)ElIPb?(($} zNqi{>-E?)ta@gWa!E~i6dB*LVQfWn33%hFBNh1MIPv)kVkh(>^95JDTXUzh0ov9;L zElCHKQNnX4G8Mzyiq!Ned$9u2ol7f-Rh9!Hb+;=JvOEPaHa%r4vyT+ilEh$_KDi;W zelZbFZ&tiVqQb2)#^j1na_TpvrYa=Li?BCrsF4lAH%mw#b%{{$f=ORxVtVD*vZi*B z3Av5Wv0g1)(x3J2j?TGuq}U*cCl%j!8Gl?$!Jy`!n>MGwWBp3YSL zLLM`~+!G+h7vqCCmA5sTj0*kH;T0z%y`4_6koZ3O;rr}T^UxPalP^NwS67d&n5I=I zl=@}3>5xOTL{f{3_6s5gZ?q-iR2V>b3Vnfp~Jjp}^!89U8oC!`%+1zc3rp6Hmki{e{h~fw?upeb2;)G+Hra&v@J>u8Qf@QHu_zDs8t6wN_BY%=c z*nX1P=%KBgR95@2y8NnD71Kl4K$ZbR-@XmOV0h4Ar3h9jv~F)pNc5?^Gy&GwwE>ng zTe*!A6V&8{lqPKp3^Ahw@UD=Alv#4{Y>&rgiXX-IY`|nd=S&uZz>J19UnoF|TQz|Sk zb|x_`GcSzV8Xk<9isOE~193J4d#Mz(t@cp7 zplZ%-?l9)hWsPB5t&4RAr?GonBzfnWkS%3j@tcmEVZ-odfxme1Ao{ZA=Bxe`Han%NG5)fdNCh z9y`7gyRNR&Sj&mZOlDA_52VrIt#4szp8qqn=4q}*_7G}uwQC|kPFvLjhR9LPb%7Q4 z%k-1BoF1v3P3!K|gtT0K`|7%`7E3Azu__pxN^q5^BAIDqPDrp#X0<>BS=8W=b??oFA+42%$GWx}|I*bu@t(<_z2i}^f&eDA?Ed9N8F=fCVm)nHQm&5QjRMj|%H6ZKsLX;K))C8xLuuAgkYRCiuY0j2 zMnh(fTA*R)k3_azdLHdZ#hz@@-RDqNkH7g8#1*`89X&U5d&ZV;CF}SP2cj3iPpptmo zRWr(jPuaYn>;l@#po$kw+^Z`YSRr(u%0Ay7OC;+E+T|&r7 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

    nD7e=$&#;^IM;M%r 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 z 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

    7ky)j?`rL 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%0D5}lZi9}4e^9Fr-bueh_d}}i zMdx5-Y>>r#~=Hwc60INxv?#! zEoDG*HlKJVxWsl+3a=P`XU33!GczDr5DpIHGkjYw1js}W92`7k*H`c5s@iHa2IsAR zt1H%V>T}9O-ml zZgNAagC7i-C8!rd8nAds;CN{L5J6X%V6i)u0X4hl1@6pYwqfbR0dCx3WI-2+1|LcY zvg2+dLu@2g92oc)TnQL|d0ot$sC~@5?q0;U?X(2Q?FDk@3o$n{V(?rXidi;^^!xp+ z4{exP7nqPercn0hil);U?vXf=U2HhZO&<@U5S^{K5@V617iRCD zOQM{3*L3NbD5kMolkP*9P6Ad@bfSmAc6O7Z6GiHGYSGge9+Kks7b@eY&*!tsS*)8i zRgywQ_Q?`OmKdxfpU&^zvf}StJQr)h}ezL4$p1rILD=uL%J2r7Hnad1` zswx?x>|8;!(VhPN&%7;9Q^g;zo{|CL_#rBN4y<8Jzavf(3r{f`b)_S?J>oO0>;?9z ztX1-1$X;j=qnn)H`Sq+>OCNK(`~@v1@wPL5D&Q#D zL+zy0S6wu6W~j0vjO#Ama~?4AQXPE0@y7fscPrT0`_U>s=-yej2dtA^m$yggL##ji z4Fw3oZYr|oXg5D($`bQ9=kvN%CtdD3~6TcLtyE1R?r3`hF#$=`}4ECXLF`rF|C z4e&4HXzmM0NFHCP11Gf)y8KnV%|}?%LPN^xz=gWZZ6&7Htr&|@OmS~xU7-ebESQQe zRtN4Ayj-N*J7NrUJ$c0(u25;Z+Fe1fp25iG)F;l)sW4ru$uY1-N)A4()@oKk4XTI_ z3qYG`Q16!z4-2Y*)M7b2beP7vr7T?vgTVDn&n>o7R^TkZ&}CraO>8&@lc%-tWi&iK zJ7Z7;CxOx-n9I@dbG&#6i2{bCV|-nudr8I`p1iXb0QS?WoSJ{vko1}X1^31DCTdMg%%Ml`4dRi zzV~2rXd(GG()U-4uvn_r?7E~t4ze{4w58#^7>j0c1P zqJT78DCa~08$^i-^zztOBAO4>d|JJ0uno+6x_o^HL~OxmVJoBn;h=~W92n|+^Lmn* zJ>7v6Dh78Tf3#N#YVxL+DMP`?ny@37o8dDpS6Xnch?TMEP3snI!tTunlV8{`e}5&a zLFl!8E3!v3Wj%N1_MkPRbxq&tXYEUJOov+f=W_~ALSWX;!;bYgI)}LA6elx<-79<2 z>2{Lh0Tv9C+yWY6_o;IXuGKq(jKr?LS_CyP+D zl2Pxs+*fv(ws}ni8{$RM8<#L*^!6_IyF3$W@AMMt_<)SospCj=Or1ksjbBf$AwPFG z37gUFH|-7>t9>ntgdD?nXG%s~f^zfLjukG?k)-B}B1EkE;7B4ev;%7dJCRv;;euYI zPKE-`3+yVfAFB;{s~dL_;E_pzDv4)&mZ9{UB4sWBixMYZKFN9CfgbgLge0i-A@VKy zC0EoXvX_L48p5>Ww?a293{SiJ8lqJe8i)5<&O<5J~MVd+y-62 z)+Gqm2LD9JE!l0tSoC~)QirWV;Q*$SySJMh^5E@cYM)|=H@uOfadmjn?TP%|2`srn zHR*^h;MQVwdU6Ib;#}NzA68CLdLL9crwKZ}MhFiD(a!D;kOgw~Hc4*Hf?uSUk^Tw& zb;%2~*FLI8$6ozP5&!1GtK4>c{H^s3L-IAk{fc~lFm1F`lQyvJHu5!9crS~W=gUy> z72R^1i>kA4#Cmlk!4_Mfr&!>X%|#~f(Iz@10h{WcY^F``^ZZ}16_;Ye^)-l}mf@$@ z|9`g)RR4S1plst|ZpZjvlfGz`bw^}njPLBD`qTO(Rs=IXiPqHztmr0zQoea`*kbfk zu(g0%an{j37d9idMim4(+WnK4g6UG(ofpC=Vy2~h-rF8zrV08lsP4C`ux;@2{!mR;)bly@jEL3|?{5x%_o;XOdWmrefK9)jSuYvSJ z!XbKEJpmyQQZO9k*^yIwL>sAFV~w6D7_u`cSA`%5d>D3;zVT!@b{YW@Exx|sB1kZb z7_lGRu4~e68tkwUXesa%Ju{pL{G;r^kgRY_tZ2w^0nrcEdIj^f6KBSV2N$Ekp*&}6 zxYng-Mp|;IN?d)M3U-QDS+(jDmeqHiIMBOCEWt@zYB72D!%Ay3dfZ-mcPc8VQhJOd z`5rZYbF7q9&~jn~0OFt`W0d4)jFEwv_X|jpb(%Ce2@_KG1jd3@Y<9T>)lyD;)O|8y zLNmgqJY=f2cUy%@nLoY7!J*GU&;Bh|q5js35^#WVX3_^66BNHJZkfq4-}uv{9#C*8 zMDsZjGv>&GIWd4WkDjO$i{= zQ}Krq5Wqz1??+z3sA7?b95vME5Qoe5aU2k*K_(F88prhr$noj)xlb@K|Er|nW`DGq zmmD)(xr?Z8y(L3JyP@cx$}mKls?ezSP+=aE|Lm+R6USdXla#NtfkL;7=X#6k{cb-d z{5hh)wDuYL$|R~9(v}|0X7ML-pDUJIQ?}hhy$JLvgSszRB30jCUHeo~n65lpYy`=a zH!x3_oHk-&sldWd`af{XR+45e#lhP7mxN&x}Bq&U$Iqi?CE{o`vPpIk+Rc;4eg$+3FT}JUR${m+M_FIB>*~<+yk(VDS-ed-Y_$I! z*~OBut^HJ8fv!ciM|iy=JvY}4ax91Jy`;?Ru0%6G)=@OUHE#Y@=GR0$6tY4Ovx+`T zKbS1+;f^*t^4v_A5rV#(b4F?4J#y8AUYozXYtJ0=PjsG;Tk$G7XiZ7zevWDLfpU|u zQ&GngF*7v7>tz$wVa+2LzGnUi5qf1#9J}V;2gvpT8ZZAUw8VFFXiIY>1ZP~hQLb8N z%w3b?I4;rinX@aV-gjGJ#2H(r#*#wmy6JC^M$Xuird`lLHAGxH^oqOzXV@vZo@w|g zadCs6Hpx-R8yA8dM(ho!W;m}&=do;BqTcW&Xo3^MbSg2Gujk)TI$11v>1EORetm>*$GFX=kT z9W!>ZI?3QuCK@LKvn z?N*+4$(Oy(OQG0SzjTvLPO;xc69C*EH?)&e+KqYW*RzeA{b&~i>3mz*b*Uzs;&p2X zeZ1`Cz%!y;@l7hOJd4`jckmGDaMy~Lu=-;+znt@8%6%hz&H|%7ZhnJ@wcLkSNihi) zG2e%Nf&AzAmrsW(U<>x^*U1lC^#5JQDgO65uJQj@aV2%dc{!9X8*}Wi_%7-K$kv(U z5kd+1g#hx5dbBh~&Wz@Kp|xVtvQl3$Z=)e|(~GF?*PU1gZZ@Cvv+vmW=U>gYbXuBpG2VNpV zC=DM@l0BDb6T2~Cv>S*1&!7XK6HIQlr(l~ohGusV%@`Z^A|i%niVp$JT4N>5O!>tQ zMW;$pjT!3-(%Ivp5-nXNny{)U{S#vr^3vDl_0||1k}5FGRuxM=BI`{DD=|7*X(X<9 zDQOK==2YnzKwGz|*%ktCk|tSl_DThi`S>YVW?MGExca+z`b!_n|wwdj-o5BIEQPl+(FP zZi@!;R7MzmUvF#}rHYGxa(VFL4aG0ghxo0P2P#d5S;iF_h@IZg_bKXESuIT4H3VCc zK+)R{%}^}^|E;*)ClNu6wJqei1NcK5zDEx9GNv$7Li8WzAVR;j^t@QY;NysqO$T^- zp;z(^d1V*Q$?^Ar<;#xz__c_yhGy*PBjZ&5Y+@HH?MkT3Cc*jybpXqPZMn7bsDvQc zY!he*J2GnVMTf0K~TD#KH79)0+tbedY{BfbefJil(oPI= zU~262-!X(LnvRP9f!SeauyQmqCvl05O~y%pM4(d#02F{E+ZHAG7v_yx;EKq0vyg4J z_y=LaWI4Of$muu>nSQ{pg)uRV`;jsGg)#g1_8&{5Hb{a3I|S#IUDIpZ&zDV0TV($} zJU=y=4MD1d5c>UDH=+X#;DhM{$TS(S`V`r52GXSP;?oKZa?l*5CYTIzQ17)M`PB%9 z)RDOHgz8btSi9v3gy?4@#DOvsY8%t`4P?Sb!_v_VBS#}fp-f~t6Zf)FrV)Q0)M>ar z7(&}T5_4ll2~0JfBxh1&l_?3CvY^ySlZ_x_PpD}J*`kG@%#)TbUJz>=AFlxi(qz*= zj7}Sz#w3g>Jn8HQ9Oj-0K>3Y4fUL&l+))hr7!1hs@IX+4&85cdr)EsEm@0f01dNfN zBwL20=0!Un4=oO&B{vZ$my|vc8ZsI~9?YBKxq&b?InEwjR2GG4EmijpDq=7L(IECx zWlS?V2ow@m8vLdKk_E2tV&Hds7D~X^&ae0y?JZupQ-d8yBfxcO{+5UIU?IFp$_9MqYlF@ zj{F)kq0bnF0)k+Uzw0+rCw_83V&?BewIxsMnf2 z1*H$N?I`#b>&)0;7xG3yxU1dhfH8rO)IA(D zX4s}p2ez65lT%PWxW`o<6KrJ_=A;d8b;1^(3ukImvh)yw`(vfQS=W9Z(Td%;?PHGJ z;J&g_R_S6~6O<9qELW+?wt1$11E#vVtiox?iCx9A(0LY5m(Y}uo5EDIr@=~wNqxJR z!agl*M>2oCkWG^Ty7Tfp3wFVBs%m9k`O{`Z(w+IVt`|D~X5M-YC6m=IVN8(rFv){MWi!5@8*6+q=hlOeP!0DJ5 z7L3~-*o?hNCbO?OT|0bhuD`QAY*aKp9gf_6|>!ysN*4p=N3tko8K4J6%Ba>hw< ze>3}V$no{{86=3pT7vi7z{c~dgBP`;S){2u;8g?+ACsHiGdd6^HTQ0Tf#W&A8ogq7 zU^Vu2Z∓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

    {+r2iR`& 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%0A)TB1#SFOvm#{R) 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%0Dnjw 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

    aG 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 z�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≻U&qOA98s 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 h4|poF8%i;FsXqKgLE|;T)4D`~l$R+l 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

    jKni`-d#{> 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

    -3;d)^-zg9-b!?u9A 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

  1. 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 Rkli8kJEo!8 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

    w&QE$k))XoJxg>u&wg63M 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

    }P1Xrf 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 z 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

    mA_?ZlO`h)3aNrOwJks3SQ%kLQt8+GNy zCV(y=|I=h)|E8@!bl~v&CfEB8wL$RHZTuh7`(G|HG+-i85}_O{Sbq|VQ64spo%JRA zUzlNLLL9&+Twi5Z@^$pCC_+p#(UCOxe%~pe<0}8z#|F*ctmMF5k5eY z4!&luo+lH*Vcg)yKnvV9nP0~ngH8j>+P!5TdsU#uul(aUad-n=ZUHpW`=7eP|4mnd z0KP8(1GlK2wV~xN!=CZ89BBet0wf0_*9%^aD>>ee#E&ROZ!S91J6)?KQFF}N8dmb7 zAvSzER95{}zjn*jQ|q@cOj$Z-c(UG1?2Xyh{5`&2z@U%UnVlir$rCDvAd0RZC&+bN z(cBQ%Ef-&waFL~gMHa>|MTcXSARe5`kXnc?RU5!Z8V4Q${+Fzlr?;Mz&IKco@g4}< zITr;JAe5TTNwH&vn&|Nh$&|w|D&z@rhoE2HaC|eVZMM;JxLP*gq4B|NS*QGZ{AQjR z=7Q2E@C>qKpL_$(0B<`eUTdKgT6Q-wrdfT~x-qce#0Lzxyx}Z;Q&yIn{$GDhy zTiu|keL`exA-xKN_LcT*AZ4AVj8ezF-r#B`eY+b`b;f=e&TO2$Q8A(qEI$0Z1VSEf zn(|>)lnWg`c`<1-`G5?Vk}m$h<6Y0x>J)-j*>2#w7!R-HBR3G`zzCF0+iF?KJ~uAHXEul;@FNI`dA>O6nrS5iCT2C;@)45a zqFENBplBUC6>w$!&P(6lcHJX{SXZn`ma z?0I(?ZwHjg7~g(;cqIB_XCia3pfjehexAU4`Yv1rxqu}ZPLc%gA1&tO|5Kd7%K@_ma}NIdB|d3oVRJiNL~^< zhI$N=;WVji5xYyLoXk*dVj4!az%Z9Z$~ld;BE@3G0y;s-VOxsE>b5NdnmCeL0!~o} zd=W4F()_%dCTN(hSufe&J!kYpJ!dMI04pH$pDXaYX%SKs`kV6qjIsf7DeJH5)X(7a zZ;|FdM4}R~c>cP!VsggXEi4R#se0isTy75}A^3S(@^KF67`@NUCsY9XhcG0nYb^my zF2pN&d-*UxS4uRAFAmX$w7%gv>9qUtD@4jMDp6`mX(_ugsv+tU5RM-JgE2rL$pCmS zcJu`wE@k{EP*J9r!mjAeF~UD%RuB+4?dNuT>HjN(A#Ckv=IHkK#xx@t38-#B;w!IU zvJ}4=K_(k|2uL$H7&=F`8mp-$a7sQdR-{D5VH1ce9vwx|c7tYZ^pU>laW|B-aGwDL zh9;0zFlmG4MjO#rDPwTTSY65gfqk@3>|CHYeqhd!GULgHG>4U<3J$bNXl%ZeYe^MP ziqOQrOCrOpJ(8!(f3ixiz|wdeOYLBb7&hk{O|bKON$MPvwfUxa`Y$&FVJBouWOtaG z96Jb{x{(i&52l?Co!{HGcXbgCpEDBQ0H1&NKz>zkeqFJ`_VzaR|GoVui-1Y|0}qhC5Hq0fN`GiZqWpmxFt}d=pxdfM87cuKNqKPV3x{b7A>jiRDx*!w;;+y1)Q@>iLIzr>AGQp{omexxmkbKL&%mX}BSR zve5793t_SY7AR+6NVtC@k`-}Mv`Jtp4s47Jn1 zV4yJb8N5<+AYfEoGaz3#XCqe_M8$y7Ki-gV2>)VM^SKkql__*?E}$;Of#;ONCAsM? zNd?B%$H0f%N6^Qs8=tF#B;CKRz+Jvpku=F+8JV=>@L?D43vd2-=s8cObcXm*=~O?W zuUOLI8;zMll4H}jKC${>2%Ztc82Gm4kIZ_5Z}lzpvLLs!ZqtGaq~Cukx3*tYDzH={ zb28bLbP+BcwlJ!dXVY9&pH-blXMbqeb7WzUI&IGqM1TK&ynyE$G{h4EZWDhsR_)dO znm!_XgSZHmA=BhmHTK!(Y=AzjXL>gFTa${&4d$ z;xufg>5&JbJk+u+^em6N`>nR;tR#0)V14@4Lqf$Rkr{|HHSZ>jhK~oGMIMyT{d-@w zUFEpuUgUj-C>vu1!> zvQf3_8TOUJ8bmWTbBpq$eRbqKBMC<22Y7)Mc+I{6t0RAuBFROHPYj;X67*r;N`($v0_|-8 zmaKj={a#ujQO=?OV-&02WI8;tN7p+2vd|^mHy-Vak7DW_Fc;S)O=>hWWi4gGZe=NH zsJHn;FAbb}i2ayq<%uh#gc@AxS!z}DF}Uc)Qg3Il%o_{L2q@_qk_wv+deyNhvAtz~ zeAnG9zmygc6V4g&Yz9L<4a_p4m}{B*-hv_pm2H&#PqZdO2-mS#wOx;+4a5Kj=-8ZA zn5TS36X(OdFfTLzbS-y8*}T?(&a)HXPfpuI2XFu~ zepXEX*&rhSW)Mw{ENua4+y5|%ze;+)_Uf-U{)kMTqcbrpTgx9iH$rh)9*G~GJB<&u zn-GnE3=|%I6f}GbG&+pb8#4lAru)*4KoFu~F`pHS^8Q$7KTM|m9=?njS>5R2*yNtT z+{HQ0mM*rGhiP^1TJmo6__+;xzT1a}M?1WJW@W4fv2(KP4oQ(sg%s^M>-ZuKQY~RP`iVaj;%H+OeUoloW zA>>g5%`R+fa@Stc{&rAF@?Zn;u9um#+l9U$RLYAyNuS59d?3FJT#%KD ziKWM6Z=VRUxXTpEx2#+Y&t%vman!iTO_?OLs8{}ouk;Q-hG{BBUO5bTMn1p&NT^WP zCeU1MN=SL1bhas4LXLk7D^(U2vcgP{)IXE8$&{K}KHik^A!(MHp-5(7#*M3u(ZsDG zt%#b2SzV!l5Oy~_6R}{Y(4S8bnFYp)O&b<@Y{!^dWkw;OU@CAhEhU{c=gKs#Bv#;4 z1v_$$a^?G1jvM!}ZWZ-iLJPAPX!s=Xqp z3_KDsxlgDet_EYrNS%UqDsfJwfc&m0vGI97Ae}3Le^a*9tjHCxb0;%2F=geK46$Xd z2j{qc`H{`T_MM=L!M+*H2c1$kRbHzjGO;s!m@ElAC>7iHiT;@t8HWDy%n0rRI+Mcj ztODc70c&>MsfLa1X9NOkcO;356J1cyZ6GW>UN0=)Mvd9j+^g^`!+b_u2*Cr z;;U0M&aCopiTuF1a;AH`~$f8r8U1w=S=`7-WcCct* zVtiI&^e)olrpHB*ZrC(}W$zsvp3Ij7a}#b>cMJ3-*BSd&y?eOllQ@XIKHe^}i}cmBF|bCaNeZSFk5i647oN9w zr$aX1zSP6v2K#*qxFZ%7vlaAJg5*ius06tqZr&EWiiT6i-+9@k4(7EHKu<&FiQgp_ z8|c;9b5ubd(dYwVVj41GpIXiktDR@$pQx~dRv>GKLED)Rle9@Kw#`W0lg8-z!e-Dm zAyQ={9VRSa!`sDB)z=^9%J749i$#6;ggutA(LMZH5&;S%22Mz%O;5szqcDeT$H&e~nd9;ImFF#;ytJqcoF;>N z8ta{PM$qHL&`>Ncij8(q!S#iitTo?I1`^S-G{@Ml_0@>o)4pXIJ zBO@vWYAd@9Erl6kr9gdUretzMM=1(}l2UzgZ0u>M1aq}C1#xjw8+`E@o(f7%RyyOw z4^6rBRVcM0AED~oiY;}eA^Q?45XBiekeNcQF$izmO^Pv@F63ub)w5`nq0Re@7oc1e zCd+~kxxU$YQHTTBIu=n*EJ-v z6R8;Q=u;k;KjpI_LcD$H#eeArGC(dCUFrD+^3I>Xk_8kYJ$kngU!Q143oJ#~Gm_&T z+k8iXHOk*4|LZ|8Q`goglRO=#7>)(L(>Z*}$=o8$X!6r)WSc3QQz*-9l+;aaq2XM7 zUO_^kYV;Ir^tVypo&N4&DqR37#3s?B#iOrO`FJ&jA4@@9VRQUbtfgFWn7&rLEOS@e zXNc~?SQ!t8QSrd+;j+0qlUJyKiXqOqh@Z!V_9Hs4Pm`Kl*+QlNBQUB{3JS}ZZ{MMC z-;r<)kg>AxbeXa;pCpcSTqF2#k}DhY08iBEmT)8wI4?MJNOwHBwzCs(G9y3dQwbJd3=1WO&0!Zq-E7{r{?!}_Y zu!Kn#6o(03ebij4+hAz1$5)T^jdFn!H2HL|N^+&ih)Y4#8tGfXC+{KRn`IT>1rpA0 zX*GbT6z`(!z6>JhG3Q!%J0A($@E)h{-UOn@uFWXZR@zaU8yA~tpl>nRiZ#DIFLuaJ zJ6Co#p<6#QNa4UB`h6`A{q#EzO@zCOJ6Zqa%5 z+v5xeCsz~dHgp1Zhb|872FFK!Tt?Rw=oi(#thnZ$a}zDTHoj+HKEXBL<6H}GU}_3C zze>9JXr_a14n{h)?S;cph#w21-m@W4m{yJb(kPanP4-Y=A_Kw^k_L9z@`=Z(O?sVQl~0yC%5lNkwnT-bmulR(voCdv{i9G--BUvN@0bP zr3t}wT%U&D_jKN?N(Ut!fd3HopZ){Mzj*SJHU`fX<3F7TtJr1fWdK0?w}A9&HewLd zob=%uX@NueS4yB;fn}lyiUM0}kckYJ1hpAZYa!6l;$^qFaGioVA3?B0w?)627eSHX%V?HN|GRKYJas&lNGN@-S(FakWMhWP~xGltJGjbcSsH1kEzLH$0SB+Nf z^9Zq`7B^K*S}?2%Bnjahfnp`*F;LSF+a)SG-iqtR9eKqHBGO>4petV1NE>k$c#57` zkR{@CqW0+JN*Xlm3*Rhk!G^=JWMxn!+|r7kC|1o_FHiV?6z{Di%Gs4lA~`40{5C_n6KK1Jl((( zOTw;Ie>Jq3p>b$ti4xI|}o+R58*!SGdlS!9qEeg3e6 zf%F_n_*VQlqAtlmrZ&l>DjHkxirH}l&d^4`EhTgoWct29cbB#QMp09mUdkez>H^8W z;k}1p+*0Gz`&3)ZGXm|7pxE;dj@oax?!Wg}LABuw4FXaNh5y-8!1ym)<9S-k!B)?} zNWsb0*2dnE_X;=TUR2aWB$7kj zZpC_bZqQj5)W`5MFD?1XPMF)y%R~G)_ zK9Jnz-j8mm5|-#ja=Y6^s3Vr>pSCf>vgq#!9Pq9f3O5k?QK&ZyeerAsyIzh`x&|*p zp{A4>Xm^bt*M?UiLwFYIran2&HOR_Mbh<#DZeszU&QvCLEMB$Co`b|eNm7&FL#|WZ zgSsGF>MH{iU++LO9W50qvobq0XgX1^YJMOfh^M0#9dr(-dBZlWU~D0%nwrNZc?q#s z1U*f5HcnF&mMS<0qvmHjzE|W2t8!^${t}1jfo&TlkysP<1%!8gX+JPLFumXKFgS=B zB^S)_mHOL4y^6#p*6`X2tAu&~N#sPW%vo0d)fw~LC39A+L?-r0dYqcw<`mF5krQEYaM6^WF-?lOn5AskEpe%edK(dplo5!|VgwIzglu}Sd3N&8sF1+K? z>JQ@AYy+ii*2_o_{N@pTUut`*sxQ1w*xq8rY0*7tfjH%3LpYgET<`8R43E{l1H}?# zIYRTs*4X7eGNjmMN>m9UOP(HL#C%`q9Ao+-CD1J9nAN=WZe~eXYK~fNT-eso>43ne zWVoSnwj;v6kgnMKsz_oc2x&T58+@k0q3Z zTP9hKuCX4+*w?qzh=FUyvD#GQ9(2Q_6+M|VG$v_`7V>Lf09g?>jgG|} zgh^7+a_1D%-i6_z>j!?!aGjoXrk9T<=Q>CB!AWoDp_^>I~-0F`{yC3sr z_ot+?Xg^>3$e5i>E%qHv71Y1h633eBds(rj;eSVC*OPxn=w5Pp<4P~ov%S}*W7S#A2a2Pbnvwx&+w(gSLjU|S} zvCt~tFve8sHj2}xv(InQHV zD;uPsz;Z(R)Hx(>8T2X2-iU-uBgDwS8pxa+i>R&q7^tOru^JOYX%%hjLiTmS;{8&U z<&@0``uMf5O}Yfgc%CTpz?BH|SdWO}rWjG`&LSL+bhd8o?>)_ z!?7SQUIan@mj_4re`xW3&6&O(sWC?3}&2rS>S@FDxSZ|PO zzJ?5GX)#mAxQ~(`nNKLr?={P0+OL5c@+n6SHRdnb?loq-NSR`m3~2^?*7lCCPCj(h zjb}Ps?yYz51c4(}e`!7&5agA_3+1tV%)YNa5*!M`!5ijL^n<@phJQ=T`5rt{}B`&c1-rKISGZNW_K6J6608J$=ks?NoZ8 zcn&eK)&541N6n;qNLgaZJ&FDrs?p~p$|RmXZjdhL?f%R6vfbR&;>{ygptR^&rLHo* zKI0^w-eri6xb?m=AlJeM60O53p_SMc)QvV3`-R@YVI^t>wdr%_ zD8}TK3>)kO`jrB-8`3M<~DN4!4kfP~AyEJ+EC)D+1 z9BaU<-C4Cd)_8aMV&3tS%*ND-DAR_DxdEtem#b16^=ZP3KD|*27EW?Bc(Ya&Z=|r8 z6jrWj6iBfb55-g#I(*q+uEd6!a9uQGFGi&{4-y>a?gN?3lX178zkPl}uEoqiBV5NC zZy%w5onJ>~k>)b>{>IY%=Cisn2U+JHI|M}2(wgqF-+?3t$nHrU0}{QPGWc1=u{ zwD+lUI8|dg$;DY$z5Ft^; z%j!^Lp+>4B8aEJI454A5v7q5zhr__R4UeD-jvsH%9{4ipdFxu&O&qEy_|`an-x0bM z-u7HhbYpfT+yt#W5xD_0F*4sp6lD=!~a0g)_wr_A^-b5qn!NIos%wG|IMSdA# zi1W0CG!TOeJ5Vz|bhekx83>01@_|Mw5a(7K*g2U~+l3&&nP23qpr#8vTS!Kd<1odW z#KzAeryk+bUwol~zk0i9OZF1!Eatbkqoxb~S*KPv)JG=pQ&G0|%8rQ$rwI4_| z{DuG^ZXZ&KVqRZ3kXc!9%iS)pNM%l&z!QdQ7+9|y&D=V~4 zm=&I9Ew|4ki2q2<;8@roq81T}s=1`P=IAzQyV4!1?ew1J6%Oa6rCUPMisvWT9@Wq6 zvllr0T$tW4GYFXs)IAvn`!Zt*C<}F8uaGep*9;>~$_` zAcf~stfB~N6HQaMR$ec?>*xG~e7zX_Faqsw0i`IaQ)5z;^ls)dJzeWFu21wBEx<)@ zp2)Bw6ZAF|fo8%q7;edy+W3n?=ud6$AmB*%l_eZW(uPQTK?_`8ZIOh$mf#V|!d6_$ z$}SGOCApkDW)rG?U$uYV7G>NVX@P5;3NN)YP^U9-fitO4V)a;_wNF7%YDBZJJmi(A$9QI-)E=zb^5 z3L!-K5f6+d_61kJ5na+bMEBNYBOcdMnf}yH&vg+);63ki23;m$F}@BE0UP{h1pI3( z>-P-$-wwx*b5OwnsfxYlbav7O)9UB1ETB(9Tw#b)?Hw)WZ)7OZZ(73!=Klg`LlF1m zRrOSD>rzTWm)+Jvq5+wmKH0~B^bs-jbXKVXR$v=b!n@eze3L06m#I(fD@0b)*TGk7 zymhTTjNYYHSv*hkt?S<+-zAPeT~23#vN3N58Q$lHTNr6l^duQ+67+Nos*?4r4>oJ{ zTQQzS*C_X68Lm(md#~E$z zSPEPtJ*}SAXqmTyM3PF~Jg#hTXPYM;7!Pc2kLgi?(9|bSZBH)*d3)`7_x(=JU-3Lv z<2iS|al2vQWlkx5!rbN_@3FaBgnru$RLM9@Li$L9%QNI1MgO>d(x_PnqY!=~jBCfuHD;Wr@5@_16&2OfGlt6|x0|H4&(v`5I@7-e zkAF>8$=cqOQQgV9I4_cX+&hlt-I*PMdGd0eMq60x(5)S>+j`emCUbsRg>v0<=Xy^8 z_ie0)chZ}&>Z?N6t9u{c)(u|d74Y?~O){v{zA>nFuqN{T9wn$Xh;^m&7hlqR*}BG& z+fe4IT$#SK`aaq<_@10cL9KN&TK8o8f~(2Gd1`bmPnK;EtQ6}af7R~NzK`(@+6;nn zW~@&Of`GGyw(o)HfO_QA(EoM^+gr=JuU0z%X1PCz6FHP zA{Op=ajcwPSJILQ3kst6kCCUT=rX5Mvmshu=F0Q65L5zi;Uux@nv<2@9~yheeA6QQxS_)aR=}AIu84H(+COITodck~L72GTRviF< z^WOM>bR5Q)kib41<}j=~u!L-Dgt2rNevu0;WzHU0ozw1+Q`593A_9_9#Ipo1T%0pB z6k@a|Ec5;dD-fe4I#3ufz8~l26%+@woi0-w*UMH`!yeo>j;(cIoYD~Qgh}<)`=J5~ zEfD3eRU(i+*9df=*z^ zSbAC&PvyBg0;6w+ZG3{HEX$A@UgON3cZHVk)@fMOWsVg_7Pavo;fjxF36gfi5 znZL@7q}@)3y$Mq?3$(7(DU}3p0?wNCFQ|67<{014eKrb(BbuF~b2o6h;-6F`HG#=@ zSWIqQr>vUakP?7Na3jPSiAYM>3X3RFV-Z2-6zHP~QS4^t)3VQ0p-F^L+JT;gk182T z7g3osL(Pr>K_RZa?3d+A!)FWB7gL%SoT;G!L5#(m-OuK<*QcLaU!L^3j1;xW@5saA zFYRcZmW<&;SeTz&pG3-meQ$P=NaZ5T2^Mwx25esnQL3Qck}Pa?F#2ZFP##MuE=Su* zbDGIK92Zv2ikM+iniC|Qu)bD8AwpBx06;a4<+eIywW88yET7-PmLwS{dNh$7!q-AG zyED(;bZ<4Eh*=g@xP|$^BLSBZ`{6M$D$z>%ZmjWoiUsD{$+0#{kW@@`EHacHDq_!( z$dDx)c~R^T+QFbuLYy>hAl258+`=uEwwucsF5cFHh60j1pR_I&Gb>+3mApuy`QdY| z+0<&XVHqVjsX~9UF|ocPKRBtAAQoAg)P38$LI2Kx`ymERBD$Du-ZjqAekAT8dN}SW ziEz3;T8R{eIhVF0?8AIb^N=}p;lby|)!u}2qEFC?xT+Zk><9tk#DqK^(;{dt=laR? zDRSbBa8~5@Z8iCYQ_e<~l3^JHx$WI$O#)+v^~j5|Mq18U&F1zY#-XS9o9)dA9d#QD zyg6vGS+R_)bcT>gox&AmW(JJM1RMezP*&Pd(O^r9>8XY!eYkd5DZrW6Ln~`)W&G?cIoTMvNkLY7!Y8)=UtkKNRYJDvecM zRX3kOCwe#00xx06bJ7B3uM%0}F2h--_7y+H$sjPs%w`j0sV}5g%&?@S3IA9Ns$6O! zp>W3Vs#s(<#CUTEB+Y)BWm4`u_O`x8?o>ULQHk7jEG2i|SrZ9}KwNR4A*6?BBsyIo zE~ME!&{|8)(WSISFYGu}D3m7W5!p4wQR2E9wvCe^RorA&LG0vSwVVDXIf-F%3mkoO z8RCT8xa168%v5kuQDBpEItjIO0lsu(ef}zP^tuqOVLOTVLuooM@~10!qY_(US8O7V zbcWa1VfHmzuse(?j)}Z6rTw!^sZtgcW<1Evo~WT$L+xKhRjxtM4xGZcu*pYLm(^W5{ZmE457c8R@tn)EH&PL*1eVR#8^^1_;xt6R-xN)$j zW}%E!u4A;)YHvzXt5$8sw^VDKC92n2chD94q(vFTf-)T{U?|$BV`ffmVb*hyKGr8W z?+QxkK~xllVxvJjTcPy1J92Z}+|sP~`1P#694aRer#ifa(&sNc+Xak;2(H792Ni(hdvUXL+DQMK@B)D|hjS>KpG zZqtTLFvdNaB*QuY@9b<~R=*u(KI{SBI^T?G2yi_IS0*@D`J$~bzvJP8W(!(PBEYJ= zhq3H{De7^>VC1^?=S~7NxPQF71%dP9!rs(luig|!KX}yvkym#<$eezb;-IK{v3OYYx`?dQ(G z3#HNbh07B03Z+H26V|W|e4m?oW<0udYLHl z)G_QkD0kXW3p04pL0%sXQG%&K!7EGwPJ0yP%Nf-s2Dl(@eAT6T=L?%%RIOI0l-6MU z*PyTt6Xx!tR&M2-%r7TNowcerT0T-;aWuw~HX-*IOp z#bIivI(73n03AxI>q&b1W+I2|=A=nNvbBgYeHaj8A5@5IZ5Wzf+Oa}GcZ^N<@o+C9 zSV#wVM`;6DUgi!*yWZKWzf`eGea z$LU2Dxwj6qj>`);v`(+{&|Sm~?CuNZC3IDmmjgw7#_OKB46+(483n8EOIqHk{hjJH zvY0QAKs*I6NE76xFILC8jDxP0tB_Y^`SsbtB)DPLo8lLZDHJsFwck_UaF2lRc}aJ1 zK=C$m&A`M)w*)}Ul*w{~djw*-aYMUkBV!3AS)jH+t$DPe1HND&Uul!W6g{`M#R_aH z>66)eInCQ`ay8zhVSp;gc8diMG*%)c)f7}ZjYEPlwG1ReI>w&U^lX7F<)3$}}e3w`|*ocVmXio!v zs1&o1t8C_mZqJc_6Sv<;OK&JwY37;o^xlYkBP~Esr8`3Ll2*;-7I`ao;s0apO2DD+ zy7;u&DLW}iWGj^=DwVy+zNbZl!B}SO(O$MlDQQ83ilnp}{Kc9?gZJz4i}M;gflWZ6OaxZ!|BwZMhWW+-o7E zmA`Y8NA8B5?TULwRO_#N{hVJl|9ixdf^wY$;+~a93ZCnftvo=g2oIZh;^>28Q7Q+V zv#I9VohMqGFPX{iJJ_2suA{ZlXXVlhCKI!A_nm)z=$pVb&+xEA8^bJI?29&vAqxx=kUcIWxoV>4H%?k9svX zJcub5zZ}}6ah%IkbHm-A>Yw(8PP)b2y=9O3O#e(PqoXUO`MTpoD;tWPH5OOgt`w$x zyZ2DZbXwi^kg=wR*I9YYULE#Gr`}(CLXwWOccs3*WlbxEzgwrH>9KdFxq(~h$seRo zclGw?pTAI?Y$QE%4u^cV`(CoiYOjsN)dq_SqZ(i&mzm?staJF|@(a5%rrvw3^e_L$jY5AHi<>{>L#+`#9n{pZV>8I4Mf_rGK( z|BznG{cWq-)K96N&E|J6b+4#bczmMRxK!@IlwG@oB$dLKE!`QuOJv;1W>dbcapbYP z#yj_TT@e44Ir846zFV(TJNE`x2oMOfr!dNeGhP-O!<|WLV0izsIBK9&lgr8XPqHN+ zS1ge5ogx)n7^S)HDgWfm3c1nBdv@+D>9Da?tCNd+TKh|-gebiD@LQgqiAFp zccQE{{O;+5w1bxxY%~(+DRD78vUU9q<(SIT*R5Y14SMpj1j=n3Di64;%dNukrNnC| zSyNI~Qqk?srq~eS(nhoBys7!m<6@;6X9q|voBE+et>WtQTrhEsAw(f}^ zE8(E%Kg}ZY#kP$0GVQs0^QWG(xpQt?Ub8gYW}3d7iL=Vg{l-d5)d)w_iK2 zSq2b65C6#j-2X0=tiWflcI{$R@HD zo!UyY*%c>qv;Gd6p%P@<;u7g zs~L3<9jrcFd8!of=EC=9YflQu8%uC$ZoW)yaeGa%>~w!s`KxSgsXEmo^xK^^-@7g~ z{f=DI@!}vMox3@gAkEu+ldzJjIg^ks&^$tN(ycD5YvO7bcYQt*U#Ye->2pE+UDCR# zZVuNbOS;_ba=7+DPq9RMt9;3CM?p)Bl zC;XiDyg68*QNDNh5$h9kN@|0aqTO}y>O}`kPmy@>e(N9r) zD8?P<;962EX(Pa`;o-eIH~EB!V(kG#$px!#K0EB4*G6(Q1t?Kqx%0rLY&pE`4Ov7uv?E@9A$jf?f+V8eUJ!iWgSAN2p$5qkF zvv2;ko6NiP>EysVqY^VNXQRlMdb8DEpSf^Txxx2_vVf}Z)1<8N7Hirar!CWbzwSs> z8ZlFKRMGP@QR3xUXTBtkJ(_Ld;$-e`h0o(&3AoLQV3y7h;S@Y0R*`Gq&)r|-zQ!RPakvsve1s{hPAqvbQkqX1y3^KUA=zAt_c?2oATCA`l&f?s@cZi zo1!IL+qK_0i0An4t5m+pY54tl)PWNp?-I`*R6lRVyS&)RBXt|^ypjp`8-8TG$$lU4 zHpKcuq;q@Bno=?EBa_}vJbcBtFfLdl(5pc9)<@Tq3EC~O3%7ij^5OH9kCWd|`OtZ# zW5+nbgXZgAZhay5VPTxd2gR1%?Vld%JW_ZqnBukj^{HK4H6aqIugA?#bm1;2o|xwT zap}9S0S`W&JET=z@xe7@|D95w<82=z9`VKZ>}s)fQ8QY;{K{n8gOfg-&`I7~KjHeM z9d{4;Wl;rG1YR^4$WM+I43_!Md&9ImR!q6zmFtC3S0fcSy@{QwoA+kU3d{ASrTHHF z-px7S@KIQL{*TeVXE%kYi9aEA&U_cY=C*0U0_nC)#o4N+x&j4A14cVO8pD( z-#l0TQKP5e+Vc&WP0u&*agOnVvk$wvW&sJ}ZUn7~OONC*#&&1ff8di!}WsoIc;?xetBTY5q0 ze%|gT?2(e|msVdsKgo!*YL&p%Nn=X+-*uFW$8$d?o804y>{>(AT4AEJ_T)g{dzv1nq8!DR^DYxx>C{+QqpH_Tk(@K_ z%+ggs33r52U&+3GMe5L=dP zXO!{zqriO8PW!A2mLGfP%axy!%|Ua|6f4K%G^EVs8RIZS74kvA=on(AkFG&Fcy}C$7$qE^MA$Mkg$94rG?eCO&6l8`fhHW^Yr{t3-Q<+hVdA^BQCV6(;wNVIkY(nJBs|~=jMy# zUSj94xzU-QTcY$F(N8HW+sNoNkN2_|_f54k)vL>_-g!9s?E8J_;9844+3B{I&bD?W zyluOnZr~xL@K(^`S>VT?Pk&wr|NZNGtIJlR(4|7R{E0b_GS9wPCh4O_sX9eEUZr@e zMBZ&hv}$D{v1*(e<wDbN&t5&}&%Ur*ciu|RbGvoS)I*KS7ipi!*t&G( z3VW-|*LlSJ&CB_FZ)lAF(7a`f=-#0Hr#Ii?S#Z^8%t5!M9Kk?@)HeQh&y;0*Pd0lVg|mRiBg=1h9Uz~4t@Yqm_@bw`XQZc<9?g}%lb$%! z?(yLVDmxZSWiOuLLq24qx}v@l}ade(bt)2C0O$F-F z_7t~VBfq*cXGPcB2FXo`R}*V{a^M5kgKMGED*7{8TW@DM-(SAQCGuF_ZHa1~=}%6t z`4CUuDpP4I*tL6~MfADYmK5(iqs)iZ!c`vpncL=xYhIs5?P{6AFI43Bh!|4Z{$ot# zv8`hYT*WWQaK3#w;o{8sFRijoT+|A*wyrsU*m+B;XPNY=>^;+YWC`6{R999nPgN2L z6FoR<$@r-GrAr&8Wu|gOJq=y16&$c7EAOt|`qH`)Z4L2tv+eaa)<*=tJg4)x$Ixo@ zd(}q`{?6tO`eP;2R?quz+ww{6eJ5H+lVc2J_jZFBY(7<~FQb)v2&<=HVI8{+FS?|Eisp6Sj)`EQ<`x?IuG zGRJnB-LzYUQ4T!enl&ACDn+&I$wJn|ArX zxjNTKKkuqi;?7_V!Ba{Sw`S*l6VNm*_m5nmv_|h+;&QhtNvS8Cb|ar@-7oE&ovU#5 z#FgVt=~>;Wo6qkhXO`;fb6S@@-hO`P{hYFI$BUmI+~}R0QrJ@)P}F{1^;zBYZOU!V zNj0z52rApu2_Boi#Wq)j&!E7w>evhaxgz^k%o}x@uh^_ge)fc80>`%Gh^&1h^>l|= za8|_1@y&M?x)LtdeK4D}YJ88(=a`h2`Sp}d9XO_FG=c-FMMZETyk!pgcm zE{8v#-$u#YDD%9k)w@n;;iz?Ky~cd($*@j&=u|aIK0M{P>nZt>_7&uX@p3=4`N)sgwmy9JamSYp5q4`z z^s-J@xqlNBT9TBUHg?to!lSJZ-x{d)>?AHsewuWf?_u%{`&lBPI)qxEo1ELN{mz}A zr}O*#^50XBNyHkJEE+pwVatXlha76_E5CU{3nHHL9$A-JTeI)+B+NQ;*G`AK&Qc6BoUJm-p#f$FI7GmQ(?pSFiT^K4S-`TAhr$u||`+sWE~E%C9|!o_AuW=ZBc zv-}@iUO!57lr6_K{wM06Zd@+hoC8m*?$`WOb2(_#jA>5V-b6yBSof|6D&sih((9JY^Rz!oy zoYNOf`aVikDs#=<%GX<3=RV=)+L5w@Co6SK^v^Oejh_~=dsQo|*JXZjE)$iv?CPw0 z5%r+X`URgui>+(p&1Cys?GIwr4X^9j&6qyB%x0R{5_Q=)lHujgy$3rADxRHS-1S55ky6cQV(azC_xjpp3B0T*#@5y)CYCCL+(r;!S9CzBZJVH{^y>XAdWYz6m!Pi!rB$OpQPL@=gDeBa7#tMR z-<*D$*RbwWTBJbyt9bhfYn*yFKewN7be-YHB@U85Hv9QV?7!QYzv^SLCSP^J@l{PW z0ivAy7B^IcCVrgK-rn&sd-rC;o~rZTJUiqbO}f$iNv&)3%e~6ZRQ{h|&wUVmr=;q( zk;2P=OIyFL^b+av{M5=7sg={l?A|7`x@VO_kl^FQ@VJVauPVMz$MJ0Ft6U;bb>CMQ zLZ5Ktun(=N(Uwdw!JeA5?R#0QKjH})xaP94HU6P4m)!G)k*{8AixfZEvc~$#7@H#w zMlH_*9CEE)r##MWJ`s0CuVoA88w2|^^RjAkfw+2U_pgnip_&_iU${7VdxG}OL+OhQ zVmM~Uh{VZG+j>e--z4Xhoc_`Yj#ntjMBY3;&amsNn&(#vgi7Aa@{d=Jh%)C8Zs$9A zIxo|s;nLH_OMbUHPb~RZB)-CEL~&`(cn5y@qb@#9yRvt@KRbP7{)4HD9*sMtWAj;| zc$toj-K=bW{R4BpFI!%DW)@lSl-i+!y5OHrlH1SKit~TD{+YcI!zIW~qFc|9{*R%{kaGw~sZUH|@? zf3@tH$U}QmCKaA2rCjHEU)r^2!wml}U9GaS{;9s(o?kK0x4-+mQ7iIulm?&D_^C2W zl0CMBD$U~jX*Q+)?!3>**)d;6wvn?GDK+HSz$WTNnV*Eyqw}wom==kUR;()c9A9Bo zFlULnR>SeTb+?z?;k3(k4mW&l8UOuM_T{Cq#n!gX2d?y(9@y7q6&n(pu$!uQ{eA20 zYr<-0LR5ZinU%h$*Y->Atn}Tzi|>3*O!dwmtNp7_Et;cF>)nQ^*Z~en4qn}(RSQX) z1Cj%`pZZn8Xon>{z%(JMX@lbRb2&Y>h{QphHbItw7w=;GwYrA^trk*afJ&z zW>0Ebrt|DYcxh#Y^b&Diaq03e5nE4vjVNgmuaqd$6KH@q-zW1s`3Q-TP_G*MmPf zRj===+3_>v$kg~o-7z{s0+$~7=gOpUlfT^GmUTGiY+d-TvK!w?2U2#KhMZdWJg`#L z-0Rsv!>p_y$I6N68(+>9OsNTc5e<)~UNDkz6;?Jm`a|}u8SVYyaAQN0 z*qK**-W4iF_`6d@x9!yx$opC8{EctfN(LoD-g2tmPLdWT&}B^ifTDh!+YO5*iF$ZjIcd+*3*0T+XJ?l zj7!pY@qrZCS2Mkj~i=+IUsfzh#`2HTL_sGbyfp3$9VsF3<*P}xda6$)QE zj4QuZdAavbI6wfzM%_(dAf~B#f*zP&8 z;ceaJ@b}eryV~IHSNldEncAAuN^&@oeR(_4%6-+yxg$pFYSc{BP2{~HJi1OM zz~RJuzS~meJi2vHtjLoy0;kH{$v$!+ZSxq}yO>IHaxD$sdE+=(eG5asKpTSg3t`}b zA7dFnX|EwNxCt`QhUf7>1`?8nn(NL8-4f~y68c)#8L=cz?Q7i$y%yg;q8aEv0|_a6 z*=+bBUw&lFm>)*+xk~;dzBoQJUGYtXtsHYlEe;$JzD0MuT=lWDX`92RIE`4GGD>;+ zXuImshaVOe7OS7qeJR-|0;5tX`8??UbA}>--B6^+7l@$GJJO7Qnw>ed9$qI3d8a)o zbwf*?e!Wfo-mv$poOeXY+68PC$y~f^oTJuRS;yEF@&Y`Uw(@fB+$yW>|MGHzep!h5 zo-Gl_x@Q*jc!c&&TiDZjlG?P(V4`J6LvYF5xAKZJa)bM36}2f$MsC$Y|Ocla!=>`vvA5? z-crgu>CwdRTPHgfjOR0c?{a5NrHtBJ^*xR+c5D>nwBEn}#P8I4(?gRlEYkW?J@4uH z&bD)RJQt8P-kg82;qJsWZpD%zW!mHAUiTKr@U^%_i)+o-{C=@axYPLOr_Q4r-;R}N z*!|{q&g2_w?BiE9cpGb1x;{v-%zu@XTQ@%K+ZKx#@tOLi9^<+TynBAm{MKW0qS~X# z<)UABMCQhO@||*%_7Z>2cpQJIA(eXu-^oN?aWZdX=0khJ(MXNmg*GpprkX{he4_#_Am-QsLw$40HlDSalp?P80DPx5|2 zpBCQ2gj`?Gsyz$UesZb3jIzvq=U&xoPYIWmGEW;;X1>pLW)MC{_c79#}$K~M7poiumF_FgZlde#fJYB$>VZ4n9*=0 zsX-P>_~TSegy+c;p@?3Cj!f!631SiR(!Rp=f>R=rI0PazD>uCsnQ~iCi;xw+eb?sL z&4OIXk`fYF9mGZnCkcs78seiAtRnj#Z%VKa%}#(;S2MH}oPPDEo%{Q>-u9vCs97TO z1KN(-`{edqgfjUHGAvuR=&$fHx>9_azjCp8wA}Q2mS4-qemZnTZcCbZ>#NH*Z(e9k zfAXVu&F{-Iclf_qRa<^OLX$I9VD^OLLdQ$*%@yDLU}IZY-N&^G2b8KBqV7JLsO&xZ zmQs1!)3#>+rV|T$<~Ox>P5YE$8aeH#y<5YbdUd~C=b}53wwY`EtZvSmzl^LoecYC9 zdWX)H87GY9oU^WIV`qAXgjI-2m|@f!d8dHi2N<| zy7Z|}(=(TuwYe@jv}?xU&=q^<2;Q_aRFkrPJKy$}=QY)v!OPD{c|J3{<~psa+(wj( zr+cA#Q^(eeV>xTI6J~AW-G8biGV3bIY|AQ#JYIp}+L%w}Ge1K+XF; z+ywX!kdL{Mo!)d43*#BTs<62R{i#{)c2h(6&#^C7E^P2KAO8INQ*%8F6JsM=J5_UI z41tHh)At`X50L-)6>NzN`BcK+WItm6OKF3&1>Sr!E-x^RNP^9iPr!*q^@E=`@aMpf zh?HO#U#ch7#g`Ze&!u^iJ%)0hrQwDJ<&aM$0DBWd`$|v`wwLxd{k{0}v(~@A!Hz); z<)VEL4y$TD_!%quhYS0if8R6nSdq2CE^EMXi+SGp796nhT@4MzPVEeS7UKT?Pt9EY z5V9}q74;h}E$A1uZe1Aw%>l`)4kE%|DX@m<7r@X)(SRZuD_ZP{3BQC^fyTvyYRy8h z#h|+EaO?pvC^O(e_6&iS49HYUU&&GYrcY4#WXlEcm*K08z~6)AKV5iZG6kf86*FLo zMP^>Ja4HBVbS!~@710>{7(fMbCM@_3mkmuil@B^M8IOm2}%kMhU)VRm(x|6Bcj`0080 zqP2kL#7UC0xk> z$~z2nq&h>;p{Xz0mUig-O~BrAo&dmTOFw~j;EA z92fZOgC;)cfUdAhK_3#mC)qtMmpn9LFkB`>>lma@Rtm`z1z^cRC z8m3GS7@&Zwpl#YvV@f>#anWrMo9wVjsskbfJY~X~2B3^I)G0b7U^lds3tSrL`H+w3 zVuql0e_RJCaF{C^+UlcQIl?jXmjV)W7UVXiPhdxaI;O;6QV>${nRe*8_QgCG1>8sQ z1%EQ+GieC}?7@~ZME}rLTfG%9Pr+Aa2sVL`XoinYPte#4w7b6?8i^$l9>5p1CNFbF zXu~`qJ#EF76oVhK1wJUe)j}eojv8y7V#1{pm7rU#Fb!dkgAIPN7z5e%;n7oD40@~W z7lUzN2Rz_PQ0U9n4BOZb%}A!4KVD>ChNjBG_)i&ZGW?}tj}QG6p_ zOaiO{jYxFhK@2<-8)63dkXMT~PL~JBM3C-0q>UO*Od(kfOt7}knD$aB6Nb+P0u$8G zDwZ-OqRG$4DY*fQ2}L3r>t z4f9v{7$qh;Oq<*T$>2LM#6QDHyF3HE81lIah}cVBLw|9fMghQ_hJ0EFe$n4a_-XV_ostkK=t({ zxnT=%6UZin4f@?bQ6&cZ;#}$%1#nJW;B+x{82nVm4eu7#u*G)fW_lDiFKVEXF9~y{ zgSTde4mbvW=uIq_CfNFX@TVyFq8$vt{r!DO!A!wtwjcgb58yEXj)p@IcQOEnsEsM~ zhLNSVRv_my0FOd*Ceeq+-nw84-QyMR7X{E-AagX|bY>4@Xk&N_j43=x!f9b8z*~bg zpe^6Kj{!W@J)9}@#ZmekCIC$Wp{NY13H()<%mCVkDKM8y`jyu(hzY|cafeg}!1OYP znBtkNwBmUH?c^S&cnMjIAcKP;o5xJ6GdzW4C;1{ zK1E_S;Sq5#Er`1(su^XROZ^@+7lgh6;nINaiFT__k%vNrK>l@ zfJ`NFh8P%)1(&~o0JWKfpA5iR3e%2?x$eZyZs-6uI-NcK%>dg!cu^oVgt?xy?ph*r z5*(H6FuA-MF`{p&KXm>5XQ67@w*k#mF5eZBgtVdUPB5Hk;Qg6{J~*U2h@OE&e=nx^ z8iwshvj9JBnA~IGbO4s8z-v5)@5dCoYDu#M8L+d4sbUNd1MEQNbAw{~ly8{-HV0%> zTTJ=rBU^`1gPCK0cynMO8Km(L<}_5zAMw-2wsi|6`!iSb%?~>qYC%_4!lZ_RX9zL? zCt>Llrt-Gm9=9hGq_S?D1L8Eane|UZ4&k zT8jZZIhY02Uw-{&3zirY9cEVAU=j41ZqL%xRBNYafaM`C12&pLkkrA)#@>~&pt_SV zcyxjPC;j|{CaWtr#8}}qn*|7NFqP`tznSpo=TB*VE{gp89^TL4q#&{Z*5%JPW97mI zUkdapAC|t@S;oN+*Fu~YU=VtgU;|%bP>>lFtIi;YZOer~KHrD}`(pj)*@kC|F{&}z zp_1REK(AnT5na4LhfKtf0qXDUa4LLQzdM3lv!DkrKxO3zn-71fy3m2`J1l4v3aMv& z$i-osd!s-_M}dn&TYAQoAte0+YnT8e$tNy0L%V!HOBIop?(k#;i|G*lAtVe{#@O=v zb3iiy)Ts#S6)%RUR8P;Lo2h@2`WWUWnKQ~wkkGFIr9@l$10n_7p&ED?&WsK!X8_-f z_UMa_Sgbo6z6wZ7RfFiDy7xafXHKM$JxD>ps(yWkTZc9^sdjVV5deD&U(}_Xqz7t9 z@(T&;Kg`sBvO#VZz8=i}xkN%9%>D@YbSAans8MWglfkjX?(3N=r~%D0x%v*?J2=?i7x< zqWUJXkvS@UOKm*JGf%*#*lI9f6-3Z=+v#EsB&}`Th!ortdYB>~wboFB)C>VT*nnzB zV>&(Ha0=0n>^69m0q+n4hP`g3XL%~%Vkf~+@s7=)gKZQ>4rXw`149jNU&ZYVs7Zi| zikAQj09@09+H<5~QlK|az^UOOpL|GC;9`1^ec>4mbpIM_-hyqq#~Z*kia-p4=DgdO zL1Eil{bllO`s(`Ns{&8{&J|_Q{~U1X+Cy4OAV}vjX)8w1x8z~YGWvv{7wp6l%HfL! zvAVDXWhfB?FCv+O1k9*n?Tw-XeBnG3Xt<_A!V>u~06~2Z^20ejFOY%U)B@KiIwwjse`P&bkt)d!AK$@TpMzx{P$9GgBt z+ZVzz3(fG4u3?7*AN|>(PYc38e{O+>>1*O6WT=iO*2iX!@cJ z7{ow_P=;wwSYYrsg@wjqEU=ukF$84g z1+qf(F)i&(7+~cdWJk5dp7^9As5@(#U^>y?nUfIC` zfWJO}V*(u#Ozyv3H8j}G%k`bP0h;Lz2k7P?c(cB3mP*Y!eEqeDKEQ(hQwf^ zUARAqA))Ho44y@>zKsHJx)|x1@LHcYV!Z&|1yL>iOD&sM9^v{!717w;ohI$CuWd(N0?68}c zjOk1yALmX6SzZBIqJ7I%WuGp{hvC3I5=xAE32x%8ByD)8HJeScK?gz4b|IrPh2;b~b)01kG>~rSo5vZ-VhiC%$ysP1H%x`7cW*Fe*i`1w zUu>SrW4n%?;CoQ$my4J~+mHf6u#^UF{C%t0>GlMexa$CV-VpIZip!KCv^iX>Bg5$; z11~C^Kkn-TL!vjLk7p>s0C<4!L}!#^W(iBKvF}bb~0q6%{U{Ulpu56%d;G-W3SWm&WCV7UT--I)&ERU-uKKhiax4Di5`oMw%c9Lfe)e@JEki#a%ji_gT($@y+Huv~{PIw5d@C|QFrivDX`Xb8`%gT7zGg_-_}|82%Vo&mVepV_pud094LqC= zk6DDmsO|?}fzB?U;F=R-o`LO=AXWdr`8?W8-brqS`Yq6nvEyjruVyiWhxTiD({DW{ zB`Jq}o(2%SslmzwRhR5z%;3#o^~`7le$J~uxdr@09Lz0K5OpzvBd@rU>ARzgTQLG_ zY?b1-SBii%+L%C?gaAqu(*cAw;*_7jz$lN;o)v&GYXUEZZW3;PLPy8zg*Q6xBjM@G?e>smvJZj-PzdVn7J8`tE4D#P z9-4@#soCG~7?idE1b}YX1i=0~?$8XZ0Kqi;sT8_fuM$>gnv}t$1G9p@v zDjn?p^&&pp37&mL_aPWh0ytDh{j}-A1^M8Ey?VAcZUgjtBdn;WB5m8L#{dj@UxC)4 zTzuqF5(iiX@I@8W6;8Y2%F>P)QDFV+mB`4*c%`%i;&LS6Q^70en7rzhaZ1ndZtC~kB#>TLb7 zmE14|H$(dskWstm!U8;go0s3UnKd1pbOrc7G^A4xWdRh@<{@suA#h0{>PK zTwIp0d!ly{%dCQXv_8ScT3tepsZey7OA393un~Ec} zJP%9-J&Y@w$_yIYbc79KI&ulkc6G#dYKS}(ak z!q35@pu!k&ojI}})qN0_p2I`k=&BlKux>Dif~nwa&u`vqtXczlHXUpcJ?`)@dmZ~c`fT5prN8$p#qDzw4SIPyCqB@?0{h~9HfK4S{hkr z9LOBf5DyO0PzyUgTSB-DG?r)BHvXjdtTQfh^TvlS+S(+Z2_oDK(=+Nd=YC}!9@}kk zn?=WzJ0C8c*$Jln7@QDFv7nn>3OY#|ew)MJAc!QigP_o*>0Y=dz}WN#HMy@BMq#kj zrVw$i>0#r4qDU^+4f=l@ z{Na}GouP3K+8+Ru0SbRhfOYsK-gMwK9xGXGfN|IjJwRvp7ha zpy9o6fJhlJzDttK&>{A7BM!-Qv*rg?ATP~K<`j1_c4!^R4q&adt=;MiyXXY$Xe%n} z05(wdC_|k0P`_~bsCd*-5JEG2(GAj*Dy%me#M0mV;p&3*A>DpQ1WdOC9#D7GuF9tU z0|^$W;1ju=-S>JkD9&9_9LV|%`P9y2i>U8l4nD{4E&+b*o+=TX1iH~vq|Q2rQ9uaM z7iSwE6IarSyem^dT=T%8qUVZk&t{zg3qga-iNS7O`2E-=IeVlC$O+pQh4u81kJDV% zSr!Ke>ZSjRUBG6p%(8ScwQO>w_~;yh5GZd3)%qp)gm zCP9!G#g|c4Qo*s$Kwt+1=vc=YutQ)M7(%BDJ)zB^T%b+Zbtu%lpBk~w0G09aJ8tl11y>NT8&35C)^@>rL4}r(*`&x}2qdgJ`g@1r@$7 z)bwC=bZx0_KJOaK*rrX4eezb+4dagB**`=t3Jq#)Kl3}HMP7#BM+ zhxZ?N#(QYi0z-{mGbdmn7lDACGDg=*ihiu1y5lWNG2op`KR5gUhmZ*|1G@0I44a*d zJ}R0OLiSL z*ShwO)vmvqN4}0dU;gi7oVCNtxo#}QG6(jDk`;7A!L?^?s<17*NuZ5r zn_t4D$wU@pNCn^}RNW!yjOcti`sYljVqe-`T)lW0kRS{n0($+CzJg8-#`@EdP96kl}7PQ3+uz?+AggQ@IkAX_mvt=^{P! zUCSz+Bbj1h$5Q8Fz6T$31|Mev;UF3j@^563ZMdt$9B4=8=GCI0>&L`tx7sf!vIvY> z*KlymcB5*N%0j?X_<)9^$K=)0Sp>JF{5jvCPYuS&E@LzvN1jBRgS$R8nbxTaWUx$w z-vbwumHgjfbhDrrXnMTpB#Y2Y7K2y^f*W^LU{@y9A;Lwo8p2THfF;#+#FFpsR64<& zlDnoNoG2m4g6X5vWLyz*0y3S1ujlwSA_o?pK&}K`vU#0nj*4BV9xilDClg27x88x) zwnJ-C+-ujF;X+D*Zu00_UgMH5Ty<=}#T+-xz{bp24x)3tAaalm$&VUJCpHwBCan_) zG;j@pCa|r#!zztIpc$R)(Q-jvV@RhHwu7#qSE5qxvWjj=feJgY5|`_*vVr}LKN4@R zO%Z%9d6F7s`vB^APkpUlge2_^i?3)neVR@m4_-C^Y zX26TEx-sy24?Nl=X9!2BVUZL<4)P+oWA%yf>DJu(`Zf&)-4*l}O@RLDVv7!2y!Vx3 zz~`xvk*@jzUHS!+0f=nKXH*XxJow;=vbiIdfy}T+?a&Qco6#Ih{Lms&upG8oI$HyF zE8xulx>nfYw)2rRc#RE^K~fmfet4S#>V`9Rc0hvPatF@Wy9%J?Rv;SGWkkWQ2$QUO{-V1x8R25zBtqo@P9V^n;MxrH^{B!hzUbw8aSOTXR-W-Q>{1}4*5R;y;aW`P>Z{Nhtc(e|eq7|v3M{~qj?*m$wZ0WY~g zwimxL6xNRbC8F9h=*Jrn5$eP~db7vDzztXNE;@T0Is$VPZDi}mDhYOM3$D~)?}Xr0 zxx)JL_F=_=G>}yctZC2y+Q^?(n!Y-(^pzE(DHq-Rq8vn~0U|?FaV84>S>r7ra-?+^jL3#mpQ2$$TTH;LOV~xI#%#f`LH;_T_MIoi#FuhkO_d zjOYHnYuNUb#4sI`UC%0u717NH@{9CC3iX@L@335N19S&9$nhIlCFy^Cj{ZJd_vkgN zvtb2$5He9d~5J7v2#w0sRz!T|gs zpXx%Uz=rw;_<1_aA|z~|=X8TyvH=}+-wR>E&qR&zk4j>&3tw&Wc?Oz!9#-6FMs(*5 zmSFo0fYE+`i{xSP>kwCn!;uYCCbiYfC?MXo4S`Y~_|k3)NZ!H;$o#{QzdT@uj8(m) zuZ4DD&MJ2x=JbL^Jer8MZDs{|;8s0uT`o-QC*R%_at2d{`JQHdz3B~ed=|EkYk%*5 zCIw~+Cq`-3N%P*ZK)@tLfOX-lv+ms}5dKVvk5Fe&@_`w{pMXy8@9kXt0gjRo^STBK zKOfff=xQ(XJIfpcHFNP9TqZpw>4N&yOr}-Nn{eTqv044;1wOKC=(35wzyV;d=%SY8 zCdw)@gBpX_5G+_2V@(A3r7+Ma#T7ADDf%|v%%Q?9elI>h?#b>3L&$_tMknH}66{b6 zN5^8)_unkT9zrB>QJNOLS%x_}c%Ln zgX&q>nb`~Xt4c5H>~$j)=LzCdCGteqWfQJE^M{` z4-MWGW~@J6=T1_f@^IfmNq4qg1f~Zem_l_C&CC54cmsnzbE2o`oU3kM(1wsB9MTwi2%8F&MqqV>{&r@7jjr-3 z%GgfEF5#Gi0vaH6b#ebhXHV(t9$mt5b4#MML7LyerJ|Yi`*2A6ANptS?+z-DZ^RQd zu4!w61`0ytj}G11eg8s+iPZqPn?g?yAwxIhBb~-Fn>z_Rq&7?mr6kObF9)&xfSC>z zn>X9oaIISpF0O^+R$#z6WH{!*Dh8XUho4c5Cbjur3x!K-IOM2XHM(Ru$&X%8hZS#VG26zOq- zT|V%*eYKYT;f;l1IKX$3dT!@Qs;W{4~={WqdM!5Uc6&zLRb3tE9?F}p#emI$-{ z>HpM4$cFdzml64>r8-}&KvSnnfg3}}jSK!S1^m-9l!tw82GFb|IK%U=0U{D#yJD009^>POx7`)B|yCV6zo-(UMr)O~MvLe&XI zIE|5e#dpH z3p?I(14OYmNVjn5Aw<=MhYHf_GJh;0(3(wNL*OJC=)v+q>BQ4Wr)A)XS3^ z3;Z77-BDZL_WVEbLmmuL42-Dbo=&|Eg=Ps@@lABZMd5%ydy_OWgV_grXfq=AS4@dH z1|!`AUvv?6wv}CC!@j_Z-acH5_gn#}#YR{Sqq`WuwCoouOtUX7MWj5?) z4BqAjJ#9ntc9%?9CL(zczoF{o`2H3LxcSMjYl1o=t|e>%>r(@L;jkaLJzr`#_O^o^ zgt7G8U)t}*lzdP+66`=2Bcl{)@!whT$I6udj!q3I`*h$%IkTa{GmEndCc=T9{y9Hp z;7f+y;&Wy=wC*1Zl6^faCG|FdElxv2x+PFC3;XN2!4fuTh@jf1rCZ)!W$OGxB!DDG-Bo zNh9-vFCS!Wj*8G4@~+)%Q!tWUO@4H@1uR`R!Q`)xXgxRI! z5aveI_g=|hkI&l`J3a<0WV+|Yq?Uc^g2!tKSbYcsq;J88{)NlX&X9i5Qf$LR zxq=LuioKg;iimgdyMN}yh?#6>hu7mEoypy#Uyu66)MlW#K>v9h{DJkDpJT5pN+3i- zsE#ffW5@n0F+P)CqJMZh#F|?me$ho#NL~J4ndtA_Rh~#Z4~5+bi(!F^y4Ls^Y_XZT zQiFn6F-soX*K@~1M6niDJSZcl278QD3Xvs7HlgL#-G#0#STgeC_dS&xpmYJW7BwKog0!f&WBmXK95U zp=4!bL#~SHW7j6)LDs1Ad$F2b?jV1-vPwc(=?QxJ<(?>EaJW#!mtZ|a%mhML`2U61 zP~QPI&+y(Qz@n2_yHQ6fAlnk9N9%jz*8M-|@dtWx=q(8k803dwO6VD~3b@P8j&_+r zoo{@OgmcptW7XY3jcxd?@@MqrLYnoUC{#FbAa#|b!*gX|AmcirCqFx zmOPEgx1eioFp_Bc;@a*1LW;fI?h6;3@Vlyin74BZbX5rU;n0!fto|>obZf;di?uM# zhM9O9EKgBoO|AbggxEGReivt_#foF+`G1b4P2m#@+7xk9k=xehBI zH2COz_s^_eFyHfbe#hEAr#`H@ZM#VEDk04s{Cj<|{N8yqEtUNTEDX zp9ezUaKLeQab9 zi{8@WTgWnz2_zi*UY(^E>|y3fdiptk8d_#vjx;SN>3E7|mT@y;6Af%s}iIX{2(AltzRMi z-y1Q6zwboz&@f}DUd!p6d0Ymgd|8I}uxxeaKeOX^v|;hlgwGIYbb_ryQf|nn^Ax*O zMq&QcKsvjmQy*?k4}uZBIV?J~DEc=ZTT);s+#kp9R*u$V_d@8*FZiM<+nMLsrGu&g z&@Fmif$!kuH)Wu%qR=r^Q!LK^BNG-W`Tji9 zZ2BmL^N=j2(Xa^+Tqwpe@WkJcGuuOrn&01t^BVLi1p0&?w->1T7dD0hEY-39P=%clZi)3~nh9?1ngh0^!IvwppM*@G3^1SN_|{fq$ppPlBUh z6L#<;8ZttBQ?+`$R7?;51R+*#q#J<(wU!SMsGFJ@L=B7ELQ{GMIl@Ob6bM+I&V2gIfb@k$}~x-@V^f<<1d;Bgb&K}9@4MbN}=fH-@+EE3iUR2gHX zZ}&pt7fsh0OR`63itUQB$jX0vl-_Nyd?64o>O$8}VUHCvaZ+Iab{)RewcnZd`8(M7 z64?$qjX@{rnT0B%LsMq5P7Eb$+}wt3F1g>`vGONu4z$S7hF(;* zv9YQ+1_t=TYi$zrsetG_2sZoB5U*hYyL~V_YdY^srkmHYB1uy=C?Jp61#7pxyUj!GuQO zKmFP4%AZSw^zZTQi#~g&8x-6RPJy8D+v*TD$-FV?4UW#xKzPRKgG3kTPCe)Yy3TzN z#U_g>#)59|&@(6%WUw;gS!W9J@6!T$!05@}HuiwsaG!<6(pQoNPMX+-0S{OuqfxHT zcDC9+NHI|8!8FJpI~9OEU%+q=dvQgQ-EoKrufP?2RMm@j|6>bGi9t|JpU$K)YTmwS zaiwez%U46>-l!zt(S+bSwH|KW;(Rmz|<%gQq9CV1Rr8h>t z)jb0#hgOyuM62`aNn#^)_Ls&QADOF-hDKJw)_fWC-;P4NhK3rnp;Xz0cKAXNc%Y25 zDgF>!M28jgM$N%8;nl?q>sExP3>sllL$_lQKP zR}^xP%q(5+IB{Zf_zo{Di@4nvzUv?%6;TeYTy8HQ1j>p*-W!~g2IMg3rW#co@^+z}P z$awhmHz>VPu$(Fui$}(*wI>#2$8ao)h=MN*8~#WfshDSR$8K3^trLgNasPZEReH4< zvo1z&W~Doc9C>s$|HYJz-wC7Phfj{BaggknX?ld?rcY#yGhK#PSXoWehtF$(X!;c5 zMDA@)r~6HMv2gRJI{B^)`uiOpx151EH>Pq2!X#Yvqw?vX?dk4;a2hnqGe1SMC5F_v za;+%t;OTpt-d2V(AApO;p@tlZ<_d_#BRPh61!YcpUocONLQYOe;q$nIEtEU4)Z$Lo z&z!vZEtpL@J6FE1W}=uRCyg=hjvb)`580qTcQyy7b4@H0PJq)35)uj=_;;Vf4WYnE zSU&MX4^J86{t?V9xTf@l%!*YWxJYX=7@jW5Ni_XIvg20KlI;Vyu`;qkSJ38;! z#L!ier#tn;V^=LmHWG^s7uLHz@rj|6XL~mwh^ZF-M>4 zk@HLU^vFl&wcVE)G0<@`^#(I*-I<)}kWdRnLd}zjw8uEdc}?-Fc_CtLHBw8tij4Ea z90xh$qIq>Sdg9mRuN|KAahfb=lp?IqHvRuj%PxxbFR6kP8t0Lk@s{QKH!1HsvC~;`nbjhOTEi=>+_lMRWPpq#01P| zhClvGER(6^ymJek9;bRGm%%eHRGpRu(_j$XC7*WpJpMgqv3p*fA-U#H_{yaDY!6wu zzDO*eiel^)>vp_66OoMp(=U&w?tD!Itrlgkf}#@^9O90yeOkTxQmB-U76-5)@ghkE zwL|{bknn-E5~XuPBynQHH3nQvQwWO>J>9&uC#*Lmf+`;U=S-gX28cVm@{f$yx1zI6 zF)y`Zo&BC6@mx%=&I!`?zzK4RJ9#&**G&Bhwsju&H2Lmx?acqDR*1X*dRe)#hcRP) zFJ$W|R^r_(mG0f5YvafjGu`Mj;rLnz_$NM|wYpJGHIpy=L3eE>*XSUfPHH)D^uUR4 zcVW6HGjFp({!l(~M7VM2qluDy7x=G?H@!c?T%8ac^YT?*l@mp15unse#do)s)KyI* zD)Uu4dQ-J~5LkYA8LpXEjsbfHHg$FllJ?k9d&>q6M8vrlp;;ry%krz^>QE1e2%oz1 zr(cu*wIB#Sdt6=HmnNz-a+KAg8SB~BQ18&YBoJV4_z-RYpMxD@@JV>5TTF9w(F8Bl zZ+1G3@ycm5p$^gD!WvF7iXK6xt*Nm+O5`60Q;5Ol823dT^$yVlYQte}#?%X4kud&~ zT$QRf@#B3%AjWhs5gt8<#wM27#7aBvVwrZ{Q|&#K@BIc&FN;0mFW0!=iTPEc_)D5HFWwA8Ki6R?&Bu8QoYhe2>&byw6e||$ogw~* zMqo~zj2`l}p63wNM7~-i@Z;j#oU!>6WXy_+$tHBz*q5GScnvaFrolSH94A9A1cgFm z=#r%HO|l-|Bp6)$C_sl14%1nBB<1M&k|cVuY6{F&*f0ySKP*`?d}=cttY9L-4Q>Vh zBnG_-9;vl-!`dr;{iEjkT!_sZVi&j$Q_Q4QiReZZ+N%;X^^HB|J`TQj4xFP4W6Hic zF-&e@*i6?-#TSFO4e^){Had^Y*|Kc^4Yo?+zLie$Za_J#a#A6{;IVMw-HB%tb9rVx zHJhFpr$jLyN;~!?iVM48*m#o?LJxBN)7YyVZ$uu+;5O297=MQI~F%~&i?18K~0%hPe%Re;_p+7EoQq{lC{a8 zMLLehwOIRV;y9%q@!lAgy6PNguqJxQwYcLw;b!8=B)nI^ zgC&PnLxyKC5_r#c-%dPPWwFA-KKiw!`cC#@ymBw`WL3mu3mR{Kngjy@D?FRWLhe0C zG?|#H$3u_fhhX$+&^Hfe{C>|8LuK00k{#-Qj^2Cw2=q44&RY(Do)}7htsV!6#oa3y z^yj!TuzWvAlY8c!uM)?Fqy7?iF1sz-;xi9otOq_9Cd$BfiQz(!AEA@HcUkIemH4iZ z;zM{4-m}gh63-@<;*s(>H;zEB@*pbV-l`@Z&ruoNTY|3{{)ihDvgY0YG ztQ)j$#$sfpPXM+WL%!oEGT<$(w;o@`b6;5J2Orf6Hiwjz)$eIl2U`!0gzKtes<#u4 zWW55tFG5CuQ!T2ln#x~G^=5xnWs~UD%Mb6~SH(_P=fbvU!5-IhfC|N|f^dN%6!-YW zT^h9KZhJ3%IXOLDa$Htr5U`S(MmOXwBX&!auY*-YB4G{BB#Ke z%wETUk!cHv(HH`?nh0b42KZI6pdRlG_*n>o3PLuqGV98;DAipFFxE}C5J<_YJR`^z zubLoQhpIbWO&hCH;QZ=})^YI8@u+iy1C;FEhpi)VV_n$s8!Va_Y>0J^jnUfsm$G#( zciV@tzXM~x1tZMY(_xwY>XsGZubnsP8pe4FS8F^SP9Yzh0?$o$?w$BH{3^w5F&1m5 zH#%lXlR@bCbab50?fOB#Pbzu(cg&IY9d<&_r9kb+o3u?)yoo9Q!bJjGCN^#83fV(N@dJMRA*n)nwM$f?s$Nj&whEh@Rg*`Hq?U)BR7ZV%RyoVwJs z{{yw0_6w)E8v6y>e*~fP!JcnU;;E_TrP1`oqSjO^8ZZ<6%?1zCh?(3d9P?ATf-uhv zzq}mI8Q>K+X}{Kb_MNeG1l}8QJZGJ?Eb*+qvEkuzeSLqS<`b%r7>CVaK85^Pk$6@* z^Dhx-8QL#dd=A}Q2d(nc8?!b$Oz4J3%?%pl!p(oMgAHQsHp-i31iA8s7)X45_;PFF z8{nzK+pW=&nyBb7y+lOw)%k*EAc!Y`n8#30wb2grPiizqLEj)MABhy&F2R2bQDn zV8Wa#&AG%-`DhKH5}9+qhU>!Pkin>pJtICwpWa9emA}?l7Yk22qFOsD8j3qu+I{F2 zGMxE#7JKEvZ?O`&+imug*~nEHPO6Ykup84Gd8GdU&!^cUCyu5_rx-awYdJMOZnXB8{L!PGHsM3 zlcSE#G$>W+@^RHkE+@db47tXpOqW-Z{wA*qjrJ?kXMZkXuZyPqO?Fwmw%J%{O9u3K zHO6QI*6R(aevenI-Ji2c_o@IX)1^{=B%neDhxr2ZL0zRv9#)werOgYX3ou%q*gTra zaU$abuF@5*Rt`MaEEGgf5ovPI(=3a_WPt`d?k81W>s%|ux$ zN1_?UR6R1@D?b3$c52`t7~fhLna5$ORz9dZ&Ff-Htie zDCG@mp8PyyFI>(Gm;gV|m^;u>662P)#RjCzw=5HwOKS&caIu?R@1WZ%8CKpKof#UZ z$k>%Zk8%{6^0st&9M|LGMKv{u&b`K>bl)Jb>Y(I{^|Zkb_Qc3#Jep~&I_!$lA%ayE zk*5Fne2)v9TDV=1(My+DQe{PzW6~@Zp`Hml1kqu3nmSpw)NOkEw-U15E)2Vy!`J~v z3Z%ZZqAhKb+5P8zbFRhEIR?An-nn|LqdhUP@uQ?t=FK-e0tTq(qJ<{54D94qz{B_R zR>&(4!XR#P^Amy2b|!R@qJv>1zPbUWXH|js`G9lcJnB0&(D5$Wk|y|Zoanchp?OhH z?DG%0+zNp52IjUsZqa}EZ?lUj(^boVh@_k!Qs&EE&&j_@iFrgy%%eumT6Yy2<9Ox=$d#LNw%-`o1OWM^?>Ck-ixd%+kjrjqWRf*@c znSHFS$?u47y3HW^1FGdwsQ-rFAVl2_DYbT5@+o{Sx;PhVZNa+ObK`F^Hjl(D$DlB6 zFxCCQ6Sb16ZPD)YrWqJRgE590ur|!z{(Ef@tM%u`Lmx`Oz2Ag6alXZe63@q-uC-P@ z)@SisfSI@oX5v8Bzq+R!=c9s`bh_D8VDXobu|h?uCMFxdjEBMbewY6&A`Lw&4u?>b5NBb zXZn9Qpeu3Zj<`ZT-tf!}6`nzV_`T`74;|tXi|foEOaGaS{f%aYY-=kvd#WDZplRi; z)99i_&-2)BP?u(Q*aU?gRW8lCNAsl_NvGny0{5sq^i(8bt1;lojsg1wvtGl~c6Rp42X?6_0p)z~}PhY1@>o|>DBM-MGUcO?g z?+0Q+lR;|#fr{I2?JS9;@@pO_<~n)e@24$czstbKPe3fslL)S+VwU5*8-Biw$>ac> zIbYX?7EA<-zlUp}hnVS==iF|G(3hmR{m-poX)(u{8hS{GtxKAz(SO0koWT;h88hsQ z!ulCD}-57_7w7R1+jI zg}00gT2UNht12|bGe>K6%BTiScsQ;ukZJ9SbW?j{x>CrHSGOX#f!_|_A zML#wyNAK4dG(RzQ|H+VlbW=t~Y%GQyki2QqZqVp#Ky!_H#;br0L%kb1)b5OMP$r~# zIyq@2x_8+h^5-o1`#8c9sKEwpjGy3u0SUiYy)V;-(eeo{jGyaE-_HRSdqI&=4$n|6 z#|oHE8yF=|3BMYp2yV~^Y3Y&o=oo`um_#Fn!Jnr;JdF7{!r9h#zK>VIfV1LK4=d+e zzHeR|w7oE_l3xuius{(xHX=&lYz4`F{E^XZ>59uyXqZ=2ytY`0!gQm&s~xAq~Hd%$TCB2ai!cN7eGkPXnZLK@3vDJo(@inoBen5(OKU^ z0k?t8hjQJ$%DBc;($2mZ2-;v+6;|qEmU{Es7fKI5`X{109&=6KrBs zC0Wz8g8w$HgRrhRJStzMq&uRL#?pRs?(;@W9p-(CGU?B|rUYz=(D4T|sHHuseVus- zs;me*^ksl|)Bz^cT=xg~uX~O7o0jsX%Fp65BE4_P>_nmi^_K+hnu(_!Id+#WNWSMr-$@TJg7mmQ3-5fD=1tzLuUsMqV#70UBs&-K4 z+$n*+0<$TzWvBE>{!pWcmfq6fEjla=qN{GzA*Y6{>H1Vk;DqW-b$yLxX^nTI%x?ut zKbb=EN*RC2U4xoqF1S&^W6Hs4)R2nRop+(j*!Jj3eaw1gSyyToR6-5FyCohG8qxdm z)ZoG!PrmyA*e4hde9!4^A!X=pvD(NOokmdpn6U4s{aN4(RJ$#&t=sc(R>anYM&cB$ zSRVg&T=rjI1R9TF{ya#XUQrP^T&tBxDZc&~^msbNycY7{vq3~PMc8KERR7T#*Wz`! z5vetZPoI%kmehUQrW*z4eiy#NmU)jhLinncV}1B62)a6eTIGEY-XyB?Nc8`WPPmE!h3tG z^9`>-ade@QPaW5XDZ-jxoe;P9fM&2uZ^!{@4I2Z@GC~m=C%Yq}oZVuhWAqVHCxmGf zElzjh!XgNK55_AG5#EkhNg}?EOW<+Yp6odfTk*yu#TPH{C#wS&OXhCoMXq$L`Hh`{ z7n-SvixT)k1E;ln+lhx_3!}kx5xMdPXPT`9+&mI5R7xbR3YPBLs5niiP^SwU=ED~# z2uZkI$6A z+vuX4T@68DsIrQ4QzC~z4Bf|_m`x#kGf0Ui)iS?S!{8np6|M`Cgg>)A`Kk!OH?@Pm z{Ynjd%P?)EM?{oVp4Pc_`$e^jp`x;ntzTIAMg_b@=u)XDtoN*bb#i5q@V=Pp_|7}c zaX$ZyD}nLoabEtwWI%duYO=K{hchtiCLh%4rq#*1kiji+m^&Ae0_ZXbq(~PXF zn!-n8=qhq$MDVV{xijA&o!!{p;L~VyHMIm56EWxAjN|g>0{0=1OmVD;xDPw(rWToQ zBRU7fQ&|t%iO`7>_{4QbS7NIU(^T=CwtC*~`)My`m@mIJjjJ7Mk{wygq5_CQYXJ1jKerY*3U)^ZK9P>;mT3xRCJ$(1l+dV z*RB`Q-WzBypW(~It3XDJolVn)SR50&9uB69)7PLwe!Q$xFNffxN$g^drnR$ubA}c> zVLIlEMXx^UIK;SJ)+|a%?Vbw3^8s{lq&i$TJx)2usVfjdhQeX9(BE zd7ijt*+lN%B;syQk5GHJ)LsX^*8C3z&<~EY^nk=wPMF?u}>=Uco)j({aMF`FP zWU8AAxS{mM4a(CcY>|lD{o;pj2Fj?Nhs=2ZJ@>8xezZOoW!=TFmC6;?O@~!nw=?a5 z4^_e1ZHAk@rtN79ZhLW$WYMEhD?13!-q|m9FJ3%e_dN7h5BlSAzz(&Lu93k33HV~6 zjDPiaHHx@w8dxQbWDQoAiibka>2!ApGj+P%8`!}l%x8F z*|544P!%6d?Q^MQF^wb&+~ukKp04{;3Blx$EVgpf=5~lmo@VOhx|esu|Fl9fqc$5) zKak`X@0%DicNXe~jPTm`LDI`TP)BK{ZK?d`Hr0 zkJUK~j#}slkAL#vB}!HL_d_DbG{uPr&8yGfYJ@`TG^}jStH7{d0576pb?5`l8P*5H#|_Q=(cWwj3JkbaBCfVpz8f*cpAzRk@Z1=qu-=GYCk zy=vgh+mxexj1X{#K)Vj5P{@a@B!J3qP2cT0QLB;2) z!yDC7d7_4`bcaai(dYJ5?gXzM53kPWs?|GGuvq#cO+y3VO^5Pl+z^Jpz{JZ_bFnzp zBpm$4QR?pJlQ8;?&mUSP6wNkeo4?@WAjeTT^bk!D%6PNVIOM60c4)12!=(BJBbEoi z&DFpm)dEzy>DWjcEO z*w$y{C~3ZsyW>LG)dJIcdgMdFEQD{|yN8@r!nW~n)`MW_s*#`QQg=g0iKpw5!jz=# z#uM+0D>a+!GI-dy1GK%H9Bz*%b-%ro!*3X_?~If#Wl2ptCzi>{y7}AIcbP`#U7lcc zafyF;D+litOxF)$;^nYYPd#Y}L@fIQL#hljpgr&9u<4+IM`U*yp{L)yyGU+0xi3KH zx{PqjCL{F5uC1ENz&3i6`Z_%*pBuv9%ds0NwsAt^^bmyibY=wu2ebdVUQ$=J`IUVK*%+AYp5--a17@tuNn(cvE z8{Lv=Uw3pxTNgpjd@E1}q z{0w>@W3eO&nT&3DWu&p-s{QnlOGTqCEO-qEy%2kr;txG8Oh#AMVvWhOLA&#*CowU| z_NGFeW3665yD{*Pd}+R;u%kqB9a?nd-yOTqp*k44JP`S#xEh||t`)1O=uV9jYo?9^ zO=`%En?Tjlj?qYUhGxSn2VE*SVOY$^$K6G#3MyFSpywT`QjYYo5Z1*HDGaHo8rp6* z$ULU0@ot$Ojwb(c82*DZT&${^LDHs(q15T2Nz+3K*U<-VybG#3${^Vl8t?=9ocipI zu4F}5xO>W3M>P>m3*tfeeEqv;8_W-(OEXX3uT zvhcrZKMT@O1RU0Qc#~zo;x}*!8__gw`(LC%8Xz%O32AcNABz;FV5z?&4!zp8Iv1XI z04iTjc=VENotqKaD^lSCV9pW)M=nD@U*qGd@|&!HZ5@|OS;DQAHJU8Nuw8>;%cu92 zQyhWE-G!j8WE2+tSzE;Q4Wqm5hg;~^*me|$Oml!n4F2v_@h*GeE(;)wR|sOV{D$t6 z2KRTfph=k;3PV`^CZ80b(M@+dODp@W;*`>m>I-~4t#U*X!+5{iE3#RvE(Wh{XpJZ7 zEG@Ja=GzPLlV@i@@*V5?5?1ZQ&eLhB7W$x>KDdvA;9d+GKj`Ivf8Y|P!yWR$;dVm~ zv?+?6$lhSRaV=Tr{;;kY$eHoM(f+m+a6m*%l)pAQ3d0U>PtucamPVU(WxEc+;S8%^ z&HDmu+!(Y|)zHg^<^C|9!}#yHuL_rfz?JL0~ z01y+3o$0)67PP%A+EX5Rc^*9!&Mg7q8m+@&41>l~rwtdp1VD=Euv@^{wYs0>Hauw*)fbA4fdTRrSos!q>;%x#$J;fCZloqeu9T>^bj&>7NrtrTK{PmerRlaNmN~^BJP(GYg!X-CgAdkr*TI~TxB8bDc|y38`yU?cq1Oaq|ivg zx@ipNg^aX0TspO}svZ+%2#!*7bJ!Xr1?;X5GTx|^MqSeL&kL6z1*&PzrO+o*8dXua z8IspucLlIitBd>O>+(jJj zD~TGR>>|#L?K$uuaOwRRzJ=C)fFv$0q!nB2QPV$rDj+9=0doQO9xR27noAl*;NzQD zeiCc$`cNrgU%fs`5qNfZ-5ci7!Iw|HhD!naMWX&^q_Q+78Jf+bImv#A)E+5`9TgL5 z(8nq_{953j*Y*M26GMd0(0NA7fFld0D3b|wTfChDX!{wu`dBIGri!TROP*fe52!uh zF!-Xq$aqOqeRNC+#qx^ipE6cz*AVFTL;L3hNpyp@yCU$`$5);;0`O{>H8+sClca!g z83(6Z%@?1f-Q3_6-#7FI?idVku0yveQrM=$k&4Z}xqRH(-e@)zY39&*rb|P|bjMX6 zCFh*|YIWBTKxYRucOS23NJ2-T5Vj)niu9iC=vZ-1yGE~@DT$2Q$dSrEFUQ~vb?H#= zObi#^=;+x}(1CO-PO;Gkh8H?(_8>ge*f>`bS=pe|mn~LuBO06+4d(N!e!e6uDw5#@ zh;p0TJt)41?xyJNRM`J-NpR$)m5rlUi^`?QQBx&5E{*1kB$1V2>(@y$S{#GFSu6$H zTv2tMJJ&x?s z0jNr7ZXpKQVTBMfq4Q$2X|6xsE&|G1d^QbSDMYhgDTyJE9?70+4B(F7D}>MT>$pk; zXob0ez1iUfdo)UGNoRfKAtl+Gkz?iP0Wb8d#F{vuMN=W@uj} z&}6OU%cu-tp@8X)kB{km8-$IsUGa!p+4jelW=jD10AE3Tmfuw&tZW;n6fIdwtl(1{ zMQ!vjuW-a|``JKKVKEx?9v@$ct=J@jvsu}QK{H*ryX-Ik1MJkYc(Vxf*NR3AS1?E5 zlU9H;;NwQPbBhShY9%8EjP7~ELp+4FTSb886^t0|#_VTfexhkV&|5x)UA76)eyv=@ zc>g77^SlnQ==zj1a4o-a+l6>mD;6gcZv|LRw`n^zs_b%BG!oi zE)k&B3PlXKa_XlKLlG#$R8BfP7^l#(dZ^dpr$0d(*zPThvHDz9JEWwn{tZ z#2$dULX><$xwc0F)Upy0LoRNax#n6xW&va&{IBKre6I-7yaExUwS6`vntJ^TA5Swq z{YQvqv+@w5Ru0XzR;=*<_6bofD-JQ>r)n(@v_%tR@o|Mu*e?R)D-AKG$F~9FDKY=u zPB$(GM3@0uy80*UZA-2^+~jXG@i{)O?u7@%kX9=TaVswl?J;Ho;OHOihN&5h$rnD*$2CkR)?r5gN`T+b%HG`2{B~R@GmJ&0gkHg@y!I@VE;>O*Y)9bo8_Pj4dv#ba# zc;=m)<2IWy*mSh|?LWm@7pKJ$GgD0o^M7xp{Pk+6T!-SUDBNcc>Bz@hIiy3=a=oGRw=c~8nP{r+}&fgtZCCfVGa875i z_1bA($szg%NMrt3bo545jN+sCc)}v%M=4AQoD_vSuEdZssVt#b z{?z!Lj|Xg=1lf~2;v>hUvNSTz8yQTMAf=HDUOIA%j$~|tftO=qDO*hqvfOxIvoB`x zLs-oq;Pd0>6Kg7AE024UOUT;}`EG(C9t?ckU#+dkAZPUCRL2JtDNNfDR7jBDm&jgE z37i=|%Kf!47FV*jOybGD`qJ*N5Ir5LyyE;N+-wD!0d{na|&0#|?uZK=*52d7R6Jr~BT#Km-@qY^_x z3bFqBGp28V9MQk?zC6s{7Mk1o#|y2)^0AIz%P7+<-fo zxBHdUfWKomnD2H`gg0JOly3US3=5V;U?l8^3*uL4JtNg&|ElLECLtT0R3=;h<*?1Y z_;_@btD6#u^pv=uuffX$O)rb4bIZ?VP)5aRHd%wYmowYZG(f)v!SjpcJ7Sd36H4CW zUZEF`iyLBP!W^>Aq#Lu3$_}bypyJa&`5sDCf!a8k38vCtE1Z@Ad4ipY=EO@PCmdPv zG-yJl!v|99^ym%W>2UK~e7r=^qTWjAWGv1ekwM}5Xo!i*8rwS{;`lgdXumMv2cZ{y z+*awUio;vtARvJkPr0nuxIb{z87Ba^U4HJT23*|aSMyu_h=9Ob!)J1J-khL>D(x$& zy~!i8G`fss%d}Fq7Qbk!B(k3mP85geLSqdw7EkCm>Q)*(8e*OYH^ZfIb%_kR>9{)7 zX)g^j?x=LfhE{_#1|Ue|zH#Sr8C0?l%M*BF*Fx}*hIU^v7LDGDMsxqwY>jGo)0HV{ zlCu51>u&)`9Qwc|epe_6P!A-anV0sb>>nD44l9Akc_{ZQzn5z9@hIOo(?Buk4y9~Im-heC^ zPWu|1Q8?#U6>}=49~UoXYICAUAbG2fjlUx=Je4n}@Or$4FotwGOH7Qt?;S0f!Xf|(cE@T2u7PVdey}h9TFK#o5 z;#%HZy9?8>gbU=N==4khR4QDdRi*ZBlQ)$h-5rRAiZc`W_njoHLYUI`$KY>tk+UUo zEPNX1@JSw1B0P~wTjggBj{GhKZai1TtE!Snzn1hGMTbvUqOIKbFH?f@pp#nC$_nc- zWAA1lFTkkgk$8KjoDw;Oghu+rnt~k#h65qz*HH!SK42-r#1NZIiosiAWkUX~WfK4J z7?{^bEX}zr>ZOpvqk03zEC>o~h-E<*mNe;>*(kW`bO5H{%vzd0qa-p`<6=b8TU2o8 zF*zYwx(LJD>Qh)25sp%W3PECI8oB$!!-wU8ROuoRA7s1nLWosv-zpbm&K$UDg2Dv1 zw5Y)^M!o&E1B&X0M)N7Dd`W3oxuBN>`}(gG5iQWrzCh-vE~TYVQS%#yOHCGK+6Xlu zdFL6Kk#O9K3mn`bJS(G&Dt6<`cO99R2dylCfyVPbO>0SFnqHz(8qt@rwD6+YP0Bx#>h_J9d5`V`7KQ4#t@Uw{!?jL6h=p>qQiEmvA(Uc3=0Z8x zKo(hjGOX>}>{FjWDAzDh%Ce!i)I*LUVXl*t%dinoO3Vf1Klpgg>baK`w7(`Y6!oDK zZb^zqA<4YmTCdf6aKGdjfQzwa|JPU+TMS9=tzDTi4F(_*ss_vEPUuSqDMiM$#_vpL?<#>?*?7lI3M3DcU}I?zjr|PSqtfJ} zblmeR?36DW2g>5O2KseHg!nQ5?CtOA2EI#U$;iY)%ysRsKAxStY?U~PAK0vUOixOj4X4z!qVoA4}8 zzIb_1V=Up00Z}!<9jNg>rIoXqEv!|>ar%2jE3*U$0w1kebk_e-%BDx%yzZ(j&DF6V`nCd`^q8XNh8a~n@6xN z#x+3P^l$l2^rwTj>!49Sf|B)@BQVc@Qn=OYZt1=b4gZ9XkNWuo)Zogsd4KHeNx9JG z@@O*`_v(SN*nU2)0S#iYwI^ColenK8=onEA$m{X(Ru>wqi2Q5j6H7W*OoQ&HAq^To z{F2N1A&S_x^&HI`oYd&H!8e-FuxS8b?nRRE@G%97ZT(&hAggPODiIBnAKFyqTG zIf4XVD5uKh&E9Nn2I!J@=C^W$95h9^wzyIgWMRn0@@qay61Ov+7D9$t!|#-nh+pd# z99)5B9z!!-ELiw!vKlzM0}=8&k+UCEf1L@zOi~0hoNd(@6^*xJLjfi1d>SNDJ55qQ zsB;iK>4^Su?UtG>$p#LV$h0?kT5c`)H1wr2U=QQtfnMV&a?r*sraj~`Kz@(R|4fh8 zPQ%B?{y$R{Asf-#no?um7NF`MqbzF(f20?LkS0HN1Oy^atQfd|ZbU{*nYWX3ir+ z^kT@Zdp2Eu47d)E1lM8kOi4)d$p$+enuq-fn=?~9xLz_#gsg-AV+AB=uy1I6?L3|B zZH2*J9nG}-u1kabDinfuTMe3c^COYi)v}iXkzBrzuN9ppDpSOE8NO|fWJ`aMSTLn} zpV!iA{Pkp&BxZ0-Fq6P4()sKUhCcYumg3_sq3CK^AooD`h6WAZur-L%4+I@vIoqlh z5N;y~7rA7s-&fVp#?v{-bBMDm@QRX+e$EPMp!-Eh8+q~`k0OrMh01jo@_ZZJNo@Z5Y{BL&kFL4RDeMeh&jv?*+p&82Ru zX{wt~16`z_V8ub;)1x=-rpH^(0-VQtSMI6<_tt7c>{YlF*q2V%%zX)#P6d-WcIt=f zu*JLWGz%shHCtN+vd)QY7@weSDPuC=t~}K%HB|1N zuJTC;64s8i5o76@k4{hsKQvSRn;H@yU7R*pnI=Pr&EIH8cok^4Ppj}#4NU+|c6dWX zE~i4>$&~&0%ZbpvCv?wk%QQhf|rao0I7l@dP7YKcv1N5ewt7Qk}Tf`U(AJ<}+`CkQ_vN*m-1 zDRtKg7owzueqQ(bxj;yrk=Wt`a9~;oSj1h>?JrSb2f*otTCRbD8I{1HU)h(ysqq{3 zA5FImdxH;i+0F*FvZ%l}l@}K`ebzr2V!CIC^f8)w0;*m<70?Q%dA#bR-7gDcv$UBl zdX`Em&=m}GW7mdrXaR5pA5XS+40Hq?)ntVy0!Z{F4I2(o+|UP3g4<2!=1Lq^sY|i& zkL^tnNoOQnVLNO|uSH?3dO`*uGZTKQVgETq&#lgE`(U zy{*L$ZmWnM0Gn4(?dR6(I#aw^8a|CnW|2k--{hBhE?O$8=ehojT50U=ET~@$(@6VY zv4KNj8qZ)F+%I~{;!vhM2B$`4(p$9n++5)C%+;{$bWk9NFC8Y=Of$Sd!ctN|$tSB{ z4V@gkXnCV=;#+(kBvBOF;w$kOMJ)1vEfT6|)5>3LZv#U2%xw)pgn@;h}Xab=eeroD!j1rBnPoQ5D4_}o`_Xh{>pi}3w zz{VrpdEFJ6`~qDAz5LWt9d7Wk%m+|Wi9Bv`DdUu=aDx%s@GARMyTs4cRHb7F+$mR* zHeQLy93iS0LG!~qJiCj&^nopKB}MgCMWfoflYE`-zaLB#@7A~SD^5;3`>JG8Z{nj~ zXtkX|rh^1s8QHV`s>swEAUS2-f&weMf@(K>KF_r68Yo9+?d9w}93hW;_t(#z=)hBa zJcb-NL>AfXJY}X6nys2upVe#~u%F@MLubxVIef3k?zAK{8#6pL>c*LmB-nR_sB~{@ zO%zjYALalRCa_q!Ns_{|kbcR^Y=S;|W9H%E*`?ufQ~@}86ruSwY%Kkdnj#BAY?j}D zqvXJ2Z6ElfmY&|`5p@$oJRGZMzFSpnv?3V26JD)~rIpq*R@d4&9;}53wqUq%;C2%g zfg5S#kj=3NCN(ZxR;Mgou&xVmo`cd(kpoT$JhZ`H!h|(JXHFA&AQPZ>;p4GQrfDjm zkpwob{Nk*#EmDfhZ_yh5>N8yqKF&T7_w&H|Q`^wWq>yd{2DMcQ%KRW9hK`mV6L4?g z{OeDIfc8QsGnsm8!RMJUk+(T)x9soyrO;4zV(DsDxC*8`l-k{^~U0GkF6%v@uLhYniF z4W`2rJ8Vb_3OYZ{4Kw>HhiJs&Db;RHSTtOfE|cw|tos@j@B)8j?FojwEH|Sf8ow2d z=aW;z%}VHceYjQ=DJA{PcjuOT17u3;@?)OowkjZ#$xFeeTh{yV5Wrr7wQvuUcc%(i z)1VSdI8o2>{TRV_<@>d`;<_%K{{L#AOpmq z8v0XAks`;u&vfsLO0IGxdLL0sAx3Vy;MIcr5XlaRgdb~odQ1sfABz%v#&dxq;ZF(ho`A7YUtx!9>awfi_I_%WkdH`T$5 zakbA6E;|O(8<5u4L%q4Jgp1c+6+G0AVTCVlMynUYz_|(LL2lFjxVR}5-n~2~W>ch+ z;KK0_;^ylPj{ZU>I1FOpb6ds#)DwuY@1K0xAPX9P2iW{H!00Cm*jPJBcoglftV8Lz z^a49QzI~<$O3Ne(+$qo6*P282fd+FoQuCz}E;cmq;-VCC{MOME=?%>(Xfa=?RD7*~ zY|JUNa5kqF#A5#3BzTblEvJhbe6CskRu#S&wyy3K$^0SrAKGeiS zybF7gJpF$-xjG*6(pft1IJ8%uLli6T#mA?#;EYNfrX-MrZo7^@eC9Rudde=Mx|m4; zSSswH!$r@%vfrgNoHxvoXZ`bMRf0uIT97lg4lw_^{Ma)$B(Vn{x0ut}70|JLtrv!u zwEKS2W8sh?z$_1I9aa_{lOc*;g_cYgQ9tzEvhfIz z!%onx;9W~XecQdr$WuV2cXoNau)n!Hs%89HL@bqz;oEIbTS+48^lZD0RMlx#lFC}B zYA#g8U2)OYayYp5;^k%gx|+3D^WI%A$s`DK3U=?g4cuub2i)8(Kn^x+K~eAPkmjL3 zY@OwCjVx@SXAN6ivpj9f*zrS&KXsD05z(Pcpfey)kIDh}_o3hA5bE>rqDB{4Ae>cB zxK1BkF3Ot*3vc|`_=#|CQ^ILIclmR{7a zGi>4;Y=Un*RyD|T_;@Q<1fX8LzErMN8w42j!fb`~IaVcuoRHS9Y)`4LVb40|g@5!-%>)=*MBq3UnibM<18h zOA`5OyPM9OVX{+w7P$zUd%kUuM7Llw`={1s)n%$@x^GJjcV{r>wn|9Ka1xx zI~F2{2+DmhFXWyXgN)}a%WYCaUGL@nYHf!8I5Xj|*eOZUBH_7TT-}Ri{(%q=HkcQ&7)>sVNr4A_QM)A(O&gvG zHGBe0FF=c<6{5(PKKccD_K9h1?J@qC0!5&^EIK)#vo6<){|n>{`E2)|x}26rPp}-R z2doJ^d+R5c4?)h^Aam}V=U$Nqr&HF^QHZOM@fIG3BgqW8=9lI&;Awxyld1E-RXKR` zEj4rbBr72~yX!!U2ct!HN}MSk8-2X0on8+rG`&y%Kr^5eYfZoJ( z=)wBB{D&GMYi+9R+q!3kU*`bb(O-Y;N3O2OdY3}U^OkY184Qgd&UxbH07D#(u|{gb<(OVQN|%WaqkGsfRrFTR zgyNuzOiyQ@9gqeF`~U;TjSZZ#zUrC$wLLJ6(S;$|HNsT6^`Q!90xyzlXjdOw5m{L&(A?y z^TArvV|nhy>}b|ZS?~bS9OG*)f}!LLXOF3|y)F7w90y2vcv^n0!?gAqA$OSJ)mUc~ z<#oD=ZIlwMXU|v2QAnzp;++#mdgOJ1nw#Q?0oO(UeR7})vAVl9#-{48RPKQvtjT{& z5EFAHqJZ8Ly5P#zKTykH+})BQIM+1b zS}>MKi!t$*X3BPXq>{kiYta0m-$w$uf36A`#qFZyPT0~|C=mRY@43t< zm{Za=s%r95J&6H@SFs8)r7Z1xLquiv4D}DjggXLBZLWu*PI;wPlBT)Eg!;()^ z-CL>xH=3Do4v{gq%!{g>%nFutm~#1oq;y+HSWrbg)}WOkO7{Na(+{xf44(Qa3Tk?!xq6*hFPAAx}Cuq<4nj~bdL6AIOF*Kj13ffqs2;QFBFP2KFiX}4UM$6~GN%Ad- zhci@BP`QmjZM4-T4f8}oJ$T%?@xmC)_m45(^UcBzvsJ-ME`teuLyCU~Q%RghkPjDq zh2`qdW3+-ACj^}?!;p2KGB`P1FKjzAonNU6+Gynhy;3UWaIU!%bQnnyS#3{ul-!{P z++LN0+Niwmy7w?_EsT+?^3i@ZsDhJt=C!z`OrD_d(PKrG{?m;#jk!xkb9+MrmSpv3)GKyOD9~X&F z$YG;kg)uG6vKeG#g||QQJc`C(=c!5*8`xvu-R)Bix!fv{=5`YC=%J+>=e zujwwXcSALYYBrpm;uBoRMmQ=S!g*g-MdFp9U_>9$sD!8!J#DeZ>{%VJa0p1>XJf2T;CHOI7TC5uuCFOG@y-`G%#51DBu6*5Q)90NDnJQ zN*zBAo2BBPe8g3JstO)aQny&Gp8@(1Gu)o-+kGh*{s04CMR$0nios|_0Vn_^VM^`# z9Uj^RPAN3IZQv35Tor*)`gVRv%9$2s&a}!$ISN57H9Fe(chbJ!M#E^bBa6X@R@f?V5ns`Z*@$T zPcktQT|Pk^tpZ%b!`*!B&4sYPJR7BGE6gxcOi-iIR3?G<6KaDpSr;3*m6J zX3VS-J>mG4RN1cf6$V6lA&i`g_?OR(cmGhuK(*8aY9*sQ`OlRP)zEUf)y8Erte`4v zkBF$4cx!a2@yYMS=Pe?Ku8)e*u|S7h;`y}`L*78pRDF*J>aCQ)DDaaG_}tPA-`5)w zsDsIy>u`~?VmtBdq9!&x#=M7UKYXb19xM0z_lKNsV(R1Gc2G&R3<=?-nBbrCfBn}L zUAPJF!W9`@S}lRN>LE41ZH~Hco^vsQS zuc#K?>ZFkD5e={N6HiecrlwFe?@4$yMXm%5NE=d{6ayyF_CP9lNxshry(J$`nACZoOeg0nH?wm%q=_0dz_F^mr!&G>Dx#s+ z5^2`U-mmzfk$|6rk5AbDgetbxlqnR~5GL@f^HD|;?H**;_N8Hp;D}-(BNNKf*{hJ? zFi`nYEp-<)@aFgGWuLqtqI-j1{I?$h8VE9e;VQPPBSZ}i`q(JT>%R8A zS^}~sLk(pwgRCvc_zbfs+z~QV`?e>b-khDaxi&rG902R*dG8w$DhS;4R0K7Ss_n^j zg?vT(F}(^JLW$?e2UzHdYG{*aG_KKjPeYj2A?&Sy-_RFJ{*0Cy(z1-d86hI8sq8hKJ z*Jd9>0le*xyQ^Tp)`nKFpGL^lGmZY38OX=+aksQ0PA#%=IM|DZbh~&!x`qoNX{u+* zhjyNx4#CSwh_t)B)oYi7AZh|4o^>nMOAQeMMxAj1Eum-X%#S>;mM;efJzKzitZ#1> z9L8`$_~H+Z=ICkb>QOng6i_iYqUL>6f*bD+c*STV>~%reo`Ty8eH@48lbHC{Y3_cG zGKl9264Ld$)wgT{13h-ZH?K1GSHogez*O=rEt1zzr$!H#fF~Jv_`F|wfC?U|H;f26 zva?IJ5rE!;kB^D6164zdB}DL<>y^#AF+oDyjIs|>0gsp{Mi&$=F)6&+GJNNL_@R;r z?f8HzK3D~~Lb zye{)*1c7gU)2lws`O%mw`96N$(dxk|Ef%ATq%}BAo8o@-TzmHPUkIvaWU@V;Qf{on zRIGDizSYHc=JPRbXMNkUBAVZ{ux<0tFIVOWh>z&3 z50{9-hQv>Eh3Xz#1&)x8oOVP1zSGdaS0Ot#}Z$p>C3%~G}c2*^avQA zs?Vy0lsVEu3=OXA>p|sfE7*m^3l6Gmw713(YJB2A;^Yj`^lEsuD;4kWkB^_m{rj*= z8fcl^h(-41(MI^Wk}oMr_*8Yo#+4sck1v^KBZ}4gKb{)~_0v&1TAg-ZrBNxH1JI3g{oVa77x-0gho{FmtLvA34V7sQYTHA!MeRt zP33MbDT&3!ul-A0Vl$bvy|#$>+2(R3+#$vxh(Mb&;%*-tCpL#Ezet_U|Hk+#l(-4s zw)HI03mMq~*`1skvL@8{{C{YIm~_Ov5r2BYgbe7r7b7j1G{4Mtgq4SA74S>omj0S5 zqzEgilDNHw9V&pA6rE$E^6+4Nypq=eGP402z51`7 ziYe1^kZic{26pa%wRh=PVrC$Hp{2UN2WM{~dO zc7}Q?^FtyEWH&}`pE(dq&9v|TFa`XLaI3f$wWm-N`@Uooi;WRavsF>iNveQURG% zKn&Mx^_#Ivj?At$I=Q-*6E8>6`CA`Iizm4+DTDb2P_l{=C43LY9756}AvUz#<8L4s z4U6U>>We*!tu-lJ@=Z_bz{Qd^a;yga1$Y_WfyVok@r{K7r8__bt0Ja_(5uo;Ao$Zt z*iKHZ4=56#ppsxENU*NO*LCm#EbW=_h3toes$iRQPC%-MV#T_UU}s(-6J%W@8(Zc^}Ip0)ZF`_};~dvhi5 z`hM5?-bEjFVZL*-g2wsMSE|5&o%V4yot2b3M@NJ?4{jMtW&B#fW4kcICGQ+3RAOt< zzipMjVFI7Q$kkN$ql0XuscfX+T8}kMV_2lg|!P`592aNE`g?%~-0T zA$3Zw>xt(*wnKqAFxzqk9{=*2v|@|#*6mtD3e-S>obbaB2MJAcypj$#)Q=wGkD$2# z&RV!Kiy4=sfXoW>*HE^YsD+9iLlE~bE-rPGHSm0guqJ50=$fWUG@Y9U^`XRk7pK%7 zG8XbI3wgRTK7D2f`K*taN|c5oOFhvqAk%P|OcaF5HK@<(C}V(^aVaNVCxZz4?Q$Bv z1)FBBlWd)FSWd?X?L|oQ$({ob{(OrL#bFHaQ&9by%Hmrcu8^Ls1~e?)lxn5c13LG= zX95+_%`1NCeS%?2TW_UmnfJ5UWwMf4Y>g>-n!e*biQ023Gof7xeuI1#IjoCG6dbqd_3?fbV;{%~Aq4o*EMEw~?8o=@7K)Dy;k=yePNw3UlOv6Y6{7qJD&i%Akm) z@-n8(C>?BNDB>jUV!F&%z^CIQ#xW`$L)7}u!Mg`u#2DI#FprC+;$ju(VqlWD(@NKp z3nA|jkT*B+j%(zB%_$7=$Rw}ZGN$Cco)8JW&})OeP9EEw%NApk)2gR^Hq#FV_!F5C zj$L)LJhpiq&#}!*_>(bpm`y|8R=?Z3MA%(4aZzj+Yb_eMJib)^{19qM*c(5nk$tx$ z2u=mi+3JLN1Y3T_xl{6hFY%;*5T2Xv($|46sczL&Jka=$G*3cGDB%J}!YvE2l@Lkh zxVd?+gCISm&5b+DLA4~(=*9DFoSG6gI20dptX4no6O!nSU0XFZ?!AalzEP_^v#hT3 z5<~tfRKQ*A@{^Ld0l=l|9|lFClpT2`vNoVAAnC}P{ppM{JQs(Q`SDAmqb`YXqm0ev z`=~UulYO|7ZdD1Sy*k@=f4?k_d2b8VtWA;-JG??wCyrxsh}XNH_O4Eppv);5d+*SQu*gnuxwW=t8;QHoYXObUt5pSI7S>N zxUNL~IpOq5`w0R|3zx``{pU;J7+pfjO@_;3>54CSTFPk@`o&GZe=3K##FESUpmyat zF#U7bNaT6x)rHi+TisreGBL_C<=^hIZWU&|Du^8Uk-BEZW(*>D;;UaLhJ>jh@ z`_7P?Nd0#H61r$J40`ckW)NInj)j(NI6ZITp-9X*AWRdi@1YHr&CwC%+Ut+{W`O0< z`))iHaI~U>l<|>4VFrDquBQsx^BMgfKLV{D6DPL{pDGT~iUs+%Z^-xzfX;-a3ZEq= zRhNT@qj3#Ln2NYtw2llb3|&@u2aKU10_H!Nnts$%K$o&HQpE+AsV}BuS{qW#Hc-yo zNENKO#RT2Os!BXYZPy-$)3RXSvMy%+$;9Eu~r`Y1QA(B_L9F?y=(i|a~FRw@r zaB{pFt#g$Ukko8+i%V+NKslaYGnCleon8#NOHYN41T;@lmmVq$s||`ZpyI6x9pA3( z{%0$+Iun$^kDK}pm!-gcfM6VktOo+u2@lp#4?pieeXXgr3XAKcX1wb6!6VA8s$dEyjL#TV7RzDS#9U= z(eo7G6DEa(SwlrvGS*BzcpbVD3j5;jquo+L_o(fV+ln`&v$MB&XL`wmc*>p!n=IyD@PUxhPc ze7t8rE=xgGt`jm4k_057JcG8M2!)bQ=e2zZjj^`g=)q#C{UHNpvx)=H6;c))EvPE>A^|`y>geoOGoTe=qIEu5_-H&VKPr0e^j# zgtom4;M^3azEBQPun9mM126W99Rqwyzw+iseN)Y0FKklft%%s-bUW}EK0Y0^N>WH_ z$e0c{BxI*>deUm4AaQ7ts0Kah8Co6|^A^)RPgb2zs*cLO3#8nAt?%{P4_j#p>F_0b zoAi>nrum&UJwO|SD>I=29gy?tkoIM65Cp;yc80D5J6n<4bFqZ%y>0XjY3%O#U9uLI~+#OPgHkEz}d=)LXG zZ|8FWy{Z`fTl@04=tSNRJM>)z96+xoM$e_ocZ6()s-SYooGau2dUY{+iU!+?M*%(1 z4t+rp2heMX(O>nx^&t`?sXe?5kG`Uu)uW5C2lgm&Gy*L@VAt|mC8e$+S%Gw_ z+#a1)Ds9|7Q&QovNkHcwK1C^MbmMI=I)Ni~_=cd51r)1P5JI8*q9v@{7Iwo+tAG}_ zxALHLE03bRbSjifx^#I3P@@#&8oXiF8l5X}yQ9H8=4x6|4YqxYX~Z9D-)h_}w75Qy zt1vM3HFFXW0yV_v zZhl*2AMZfug;+02)sW*5%VfhM-)}b%SB%DZDbCQ&drP7ragH}PqXA-bZhvzE)U()Qlcj7wQU1UqWHeC- z$>ur5cWvab#WEqStu2;hC0!?ch0)E|R%N@&AzCHzjY5$)Vn-B%1N~+h@2 zDu0GMKw&Qtav^u#YrkJY+iM_M!!3J>K@OZ2E3t+kt*Ou^y;UL3R8t48?L41_3ZCwS zJ@P2%POKbvXk`r&y1e&-GKZzkhufgA18}!dzn@$2ZYt8)o(;E5onw) z()e($-6sA1PJbCHqh*~Cz49%&eeys)RL}zTT>^se%CGH$!d{OgiE>v@zal%F18MLD zxTe2sqs=*1PfZM-Fr$T{nBYR~Co8{zpg)`}-;}F3P!)msGLQLWhnQw>rlcL|U^5lr z{@k{B$N zYq1uy*RgFHzuA*{i&WFFBNh>XBsudubbhJgt$dAop>3P+agXbx43;o8S(<6yC#4u* zM?3xBQ-OLCUp0J|Uy-ef&7_TaJT|J04l?Lalv4D13(ZM6A8!3XCB?{})v^%auYB9o za3pjT8kAEB8C1^iXI73uKaS($L0P7~$~5L{MPeCcJ^53!7+s(+ zgd6K8N$g)fi?&2qDNLy`l^-p){66iIYPD(8iH#^yrXNh;+{*-IXTRo<@v1*@l{ z#`;KX?}#O^z{fl402)^o1bk3!Ip6@eWGad}kU9C&LzEWLp#%Iz?yZArIII(aaY0&% z;Y;CO_TYXa`k^;R@Kv#h9Dl7jtjuKIC-p>?8&TLt3?0V2?|un*q391ExZ{tgXOMiz zg2Xku=GC4PLGcwI@5Irg4p10lWP7EP_eol0tN&1--@sQJpXImfmI=lQEyPY`Xx$H&O(6RL=$dOPO1WzRdLGwnV*>~-le(#hzbP2go7JJm%#?}7;Fg+N@ZRx~mWpKU=XKzcS z;=+3}KimlhcQEi>p_gY=Fj#F5iSbWw9g(jG9LF{UXBEL?`K3FjjBk2ESVlnWUo~uS z6Yv)R&jobnf-<}@-!GF~Apu3yZ}Ox97#f0s$Kr+mRmosrI|}x4`d?*d0#;?U^>GKB zQJgXb2SCIrXA6gGeFUf!f&!xA4Lui5KpZ#%2h^*k=9F3vIZtRl77C`~gelsmR!*p0 zHN+_`!?Dt9TAG^Qe;v-@u-ZH`NZU3MIeBlRnYFV(rJIs?6mI%KNv2)vVl2fu83zOF zU51^ULZ8ixY1ME|h8;q|h&ca`uWV{ehjVU5gvq7+=(-GtaG^}If(a{{WcJ&WnMFb0 z3`oi2g)JotY+2KqX0Wa`k*@rwAiUX;If2jdjjvE+xLKUIS%GgT+0R=I+P)X;XDB@0 ze*4@}v3Z-P{KS|^t*2U0kn1t_!Zq*zi~18vtb6YC^=DugK9Js**@x>r1y*{B0cm=F z!Ic@;!TJPD?p(XyS1|4UX~zhh*aow+7Af;_UtAQ7rlt(5V za$+TmGxD~E!Hu)(VxPXJHbC0ku%cw~7%nNM-LY=nD1gjH>d5rF(NjUU`Ejh@un1fv zf!))4$I~{NRQNIuZsn~4+ZN)8kDVd#o#~^y{RW$N!^k!_()czN01I3%QA5J2Bu{fi zR}HHJxdX^;ub>W$9262~5ga;7*O2FQpL=8l-0TH#xv%=*H787KaF~e2C27X=!EaZt zVsCs&)VR6@--pyg3xVOJPOQk%`Z>Wmv$c53tG#J=fu*+AikpQf(7`EmE!W^QT*oEq z+L6#RaxSd63t|0q^&@zQf*gVyMk8p!sQ6AXA{TcnYVi!@Xpp%doENSj4>DR3%z}a= z!h#JDXR6~YV_zRJN zdN)quZ@&^UBBmB*Pnu|}Uj1Pegp0um+oA{h!aNoM&MV20(F(BAFiw5*)}@!B32MrC zCGj^Zn9eNu{EarIIEcC%qVjI#)^{s}wJntrE8?9K19x?U51IuZ#0?}h>HkBQ`{iEW z^clVwuCpKcBxZsxX2ln1pxl{i23!tJodS)oLS_`5}c9!|c_8GFHmuCG^y^O*CJ zmVG)?#ij{rXY7@Etsl>UNv}tF@+S6`scN=}Y!5PaYqsv<1LdCj%eCZKb8<3Pa0!2r9zGE5zFEwZLkH?DfgJl zy%lFp)@2~?9m zBmJ?~PCQ#ctn+VYu62bhb>JBI#7WF*4GSw9aO0aXEf8~^V!<9y2>EO{1WG{SVPyUq z4GiUr#>|0{l}UY;zo;yZiA~p=$eO*AgO=c}tw=4{+tUSa2beR&%_%8oTgQV(AHn%7 zYpz}J5Vuw@NI*nHcWnE_DsKzL6gUVXokbNyEa~=>+a3s26Ds#%!sTWQiL`bi-DnBV z5G{}*qW{UM)jtMlHxh4{cWo3B`(w->Zr3PB=GLWFnA?fvPp=9gT=Ysa$xb< zuQ%QUke1JRRGR7quL95DR4o-5=HHpDCPJ1{@I;bhqV zMzjQc9Ymck#JIG?Ng{H{qh3vXf238UELh7k$n_Lb`^87jmVY za;!Ypi-&Ftybm6&E#_9}vrEp4NH7}9xfOdvPx(Guc-u1?z*Hn&_l&!Rz@aHgDdw>$ zauI7MoeFIR@p6&4BW{o{Br5EsX^j!h7DBTBMdIqq+#_enOF8bnt>#>?sNQ)YIi6u( z>Us9TE%-2T={El{ZXP+VR>*1x2MfQ3>=od`22s#uEZdVM<*xF0&qTJp28nlI4g2(5 zTZb65;1m;eTF5fR0zY}bd-Q5R4;s~yo|l}3pfMb z3^1EStANM?$Im%(hRTEj0PYhiAJDU+5{+Y}dK+`Z@27_-i_hS*c=rC(pzK8}R?}A_ z_6H1uIMifwv+Hq?i)82Yw~c>_c?&Li%>Ev%c94y$>!O4wzOjPTweHKrQ8&OzsH$Z> zJ*1Hh+pXl&s>E8Jdb93-AQugsa&OY<8y$<=t~jHAd3@G*JYYLrw6RXuw;X6QS~2GF zy}?UXLaswdO_3ar+ffb1dgr>B^6rkQg%o(jBY8Ox_;pW6!L`^pqcA15T-}icV2v1V z=`k*pF%waoJ_dU)@<3;*(dUsgU05-|Zd^gc6X$VXcKcu&eV~g*xMl4*E)+_^3LI&^ z{wrkbOgxssm_j+riHZ5o`z|OQF!JI&)9X&kq2$4hDWU-#GTW84y*nNQF93q_HY@&= zoEb?MU`W*1z3-%ddVxmU;CMy&;Ixo9$efXGROoU-UU+Ut0Gk2Gv;FWpF)*WapRR(r z<=p$L4GWe$p0H+BU_hvEK`XvQo#ONwp}cjl)J)Cu((FVO%Sc zQPYeDC9`*nsdaOptiOyqU{c>j$$dWHZj)cY zT@5am)pSwDHOGxtGB3y0db|Qm>&zAYI-bp!WXy0Sv1-zH9m%vyka*cIyDTGSSS&bl ztTdz&JIL83`NbO`Trm>w3A+3sp(0i>sYVCVrcTUU1RNC=kItUTkb#M5AmUzlrL4jK z4%@mM(6c&OZ(fzi8km@=MBaF(o$EZ{@{zbtKXXlnBogJ zyeVa-B`f7T;u6u8rfEIFP zSxX*Cupx$j8P#Pq`<+W23IU}-E#90~`BMfp#v4=A=Ksc%xz%=nS`}1or#_Em)L>=i zi)uYcq|p0iotJ9=L`F70R zOvz9(FWt%?OKm+FKWEN)CS_Wj#HD9DeY+XV=SV#3dCz4`v%1V@q;FWU1tM-jRpOSk z?QaRP^vDNg=Dq#Q3(1L+eR8AUiI$p9U!gfBny<0;KPc1>a~hcxWKW3R4`>5Gc}sGw zvJ5)LVm-=ODeTj$)rL{i`~r!q;87JhmyW|##il_^(mH2BS{k+Ifn>akgo?GC25iw8 zlb{5*owc;jVL;#3={BaC0<3QO+jsGJi{?~l%#T}EW_1}fP3@%T{V^N>=dn@_CYx)Q_zx=OIBmW*noZiJGWnezKZ z8i4DrE2z13WKkA(K;tOtLaCym{YpmkhCbO07Nm<`NOa=QJoy<{9WNfVH@OL&4 zGGkitr{X%?s;P{dXmMh~`+JR?x(C)k4LElUb(%?_LxqilY{bhAaL3csokLB0@HPis z)XdOk1;BQo|=w&NLTNDc;q0n@Pa6ed{;BjohvUjt?sjYAHgMExirJsbCsEtaPwh!XF%m`L4YK3OZ!MyVRtechTZxxkvttaky)<{nrSxl~=E?F-!!Ct; z&n8R*ky>qT5BuDB2$$VaS42a872 z&eFi@+T}{F9W*Rp^cF&lyuBZ%kloR+mphW<@$IB%kZ%)ndS&Dcnv0inkT~bIj#E0r zAm#+UaqGk(FzUlw?-wupQF_K|T1z+~W=dGELB8xJgKJiY z#)j#%HoS*WJ}XNwWhT>FQ>L{YJvlU;V!?D;+`&~xqQx%v-8Knte~!c>wc84cU4N1_ z1O)avTE~ydWH}PIl&@Zui-*Pda*{nfumnfm1 zTM8#pH>xs%0bZdy{X>Q(Uo30Jh`ImajQdmxXX}dD<8>7i+x8@D`-vLX?eHRez6EG znsJy*`JxW({ZV!D64Z2aVvRRN64{HH6J>d<3992MvJuB=_F8FM3RlM~`1P#ZTj_>z zZ0#_WlQ}x-LO%XoEtC}x%zXn&b3ostH_Ns_%4=ZnDU~1m1lZSrHD_XU2$aACYg$RH zkHWiM9RHA zKp5Hz&tr`O34zr`>fVaoQ=RBahhIewZ^9?=7QAt!ShO;*^}u^EwceKWp`#$~T!_o5 zYe$HwwjEW<5~*F#;@DA?@8@XR`1ok#KgCqr7G8PwgS&Vi|HK7*eQIgXU@*ssk!6S2 z*iQPTvTv)sV3XX+>|G_M(cY>H(+UfU? z!w{q~&8Mso$y3|@r}#_0kCs{v)x(Cw*4nr+Dyafr5<^?oTa@zvCAk14$%E14f2*L< zeOrF;ZD&unwp6Nt^^E8Uap=y8Vkma)mxeuJ10m>_@$pao14(Z|Qm*J))1}bT)68_b zPM0d0zSOeC=2z$ftsSU|+*AT*R_sf9T@$z7@gfu51~?w3!nwtBop6=vzBVJzzYv;< zf_ZcQ7%-o6l}Cw?h^^cf*I5rMK8D0M@I)`qYo8Ip0(hbwg;ew<)6SU&bX)u>tH+PW&0Ca(6z GfBhdn5`3Tl diff --git a/CopyOftrunk/build/build.properties b/CopyOftrunk/build/build.properties deleted file mode 100644 index ca1880e71..000000000 --- a/CopyOftrunk/build/build.properties +++ /dev/null @@ -1,15 +0,0 @@ -# -# $RCSfile$ -# $Revision$ -# $Date$ -# - -# Test properties. Uncomment these to override default values declared -# in the build.xml file. - -# test.host= -# test.port= -# test.admin.username= -# test.admin.password= -# test.admin.resource= -# test.smack.debug= \ No newline at end of file diff --git a/CopyOftrunk/build/build.xml b/CopyOftrunk/build/build.xml deleted file mode 100644 index e4141d4ad..000000000 --- a/CopyOftrunk/build/build.xml +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Smack ${version.name}]]> -

    Smack]]>
    - Copyright © 2003 Jive Software. ]]> - - - - - - - - - - - - - - **** no.test: ${no.test} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CopyOftrunk/build/junit.jar b/CopyOftrunk/build/junit.jar deleted file mode 100644 index 02ac8fb5b2841a1a85264dad1eb3a300e76c909e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121179 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 R=0)Hq3pmwn@Mk={{{!pFA6EbX diff --git a/CopyOftrunk/build/lib/jcert.jar b/CopyOftrunk/build/lib/jcert.jar deleted file mode 100644 index 6d1c90e23615e8e3efceec6bbcddcd9cfc5b427d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7637 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 Mb#WTqB18Q9Kk8IpNB{r; diff --git a/CopyOftrunk/build/lib/jnet.jar b/CopyOftrunk/build/lib/jnet.jar deleted file mode 100644 index 2f794650ab2b261fea4027ad24ff3598b909b1f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3098 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 diff --git a/CopyOftrunk/build/lib/jsse.jar b/CopyOftrunk/build/lib/jsse.jar deleted file mode 100644 index 6a3f64614e2ed87f3a7f19265db80945d8013127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463863 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

    k7W2?mWbm@;m!9Je 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�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ξfWl

    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

    2V#IkuVs}&0)5FIK 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%0DZx@M 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 C>l63@ diff --git a/CopyOftrunk/build/merge/xpp.jar b/CopyOftrunk/build/merge/xpp.jar deleted file mode 100644 index 80f659ca22cc5e3af038f32346310ee3c6fce0b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24676 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 Kk7DTmy8AEQV?!YT diff --git a/CopyOftrunk/build/projects/Smack.iml b/CopyOftrunk/build/projects/Smack.iml deleted file mode 100644 index 9fe263f33..000000000 --- a/CopyOftrunk/build/projects/Smack.iml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CopyOftrunk/build/projects/Smack.ipr b/CopyOftrunk/build/projects/Smack.ipr deleted file mode 100644 index 87af33d40..000000000 --- a/CopyOftrunk/build/projects/Smack.ipr +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CopyOftrunk/build/release.xml b/CopyOftrunk/build/release.xml deleted file mode 100644 index 53005e411..000000000 --- a/CopyOftrunk/build/release.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ------------------------------------------------ -Release made, testing Ant targets of release... ------------------------------------------------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ----------------------------- -...release tests pass, done. ----------------------------- - - - - diff --git a/CopyOftrunk/build/resources/META-INF/smack-config.xml b/CopyOftrunk/build/resources/META-INF/smack-config.xml deleted file mode 100644 index 6d373de68..000000000 --- a/CopyOftrunk/build/resources/META-INF/smack-config.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - org.jivesoftware.smackx.ServiceDiscoveryManager - org.jivesoftware.smackx.XHTMLManager - org.jivesoftware.smackx.muc.MultiUserChat - - - - 5000 - - - 30000 - - \ No newline at end of file diff --git a/CopyOftrunk/build/resources/META-INF/smack.providers b/CopyOftrunk/build/resources/META-INF/smack.providers deleted file mode 100644 index 040576ee8..000000000 --- a/CopyOftrunk/build/resources/META-INF/smack.providers +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - query - jabber:iq:private - org.jivesoftware.smackx.PrivateDataManager$PrivateDataIQProvider - - - - - query - jabber:iq:time - org.jivesoftware.smackx.packet.Time - - - - - x - jabber:x:roster - org.jivesoftware.smackx.provider.RosterExchangeProvider - - - - - x - jabber:x:event - org.jivesoftware.smackx.provider.MessageEventProvider - - - - - html - http://jabber.org/protocol/xhtml-im - org.jivesoftware.smackx.provider.XHTMLExtensionProvider - - - - - x - jabber:x:conference - org.jivesoftware.smackx.GroupChatInvitation$Provider - - - - - query - http://jabber.org/protocol/disco#items - org.jivesoftware.smackx.provider.DiscoverItemsProvider - - - - - query - http://jabber.org/protocol/disco#info - org.jivesoftware.smackx.provider.DiscoverInfoProvider - - - - - x - jabber:x:data - org.jivesoftware.smackx.provider.DataFormProvider - - - - - x - http://jabber.org/protocol/muc#user - org.jivesoftware.smackx.provider.MUCUserProvider - - - - - query - http://jabber.org/protocol/muc#admin - org.jivesoftware.smackx.provider.MUCAdminProvider - - - - - query - http://jabber.org/protocol/muc#owner - org.jivesoftware.smackx.provider.MUCOwnerProvider - - - - - x - jabber:x:delay - org.jivesoftware.smackx.provider.DelayInformationProvider - - - - - query - jabber:iq:version - org.jivesoftware.smackx.packet.Version - - - - - vCard - vcard-temp - org.jivesoftware.smackx.provider.VCardProvider - - - - - offline - http://jabber.org/protocol/offline - org.jivesoftware.smackx.packet.OfflineMessageRequest$Provider - - - - - offline - http://jabber.org/protocol/offline - org.jivesoftware.smackx.packet.OfflineMessageInfo$Provider - - - \ No newline at end of file diff --git a/CopyOftrunk/build/resources/images/message.png b/CopyOftrunk/build/resources/images/message.png deleted file mode 100644 index b964bbfbce55821df1180c8d38edb0c628fd16f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmVWdKcSATl-}MrC3kGB7YRATcmHGB!FiFd!>1F)%P#Z%6t7000McNliru z(*p(;9s(FqU>pDd010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00K`* zL_t(|+NG1rYZFlvhfiiE)0o7hNr<)*y68fwNSIE#NQzX`g%ok&q8lrv8&}2dTlY$d zkiWo?g|uB*+9HJ@v_c*hibM>SEQ$d!B^Z;=q?yTUl9}<|35kgXyXb|(xv$@M&V3w! zOEz8aU~jK#&1Qc*BT3z3i-l%Lk}%7%0@bP{7K^7}1);X>a+%*OEcnXj0P(o`KoD|o z8ODBXXvhGv3?NAW%_cy(-1fPg2&q&$PY_q1E-v2Q?*bx`GHWzSpQff9hE@xp(EzB| z0cy3j$8#8tZJ7@rw$^m;v-@6SR-_aGsm3VJ;O99I&%fPDUR zvs6-+@B-d^aFFaq?nK9t8Ria*j+)@`@F#kalTa66wHjY05~*3ge|#7VCMG=EZFe%D zC>6|RfPn!WBog1ze~HIzw(BqY{y{i=GFB`e@662jZ(@4sb5i*%9q|+Im zlpJB diff --git a/CopyOftrunk/build/resources/images/nav_left_blue.png b/CopyOftrunk/build/resources/images/nav_left_blue.png deleted file mode 100644 index ed2bae72c7b2a1ff76a7229e71400ffa6db5d6eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z(*g|)6)H8rnK}Rf010qNS#tmY3labT3lag+-G2N4000DMK}|sb0I`n?{9y$E00MDI zL_t(|+ND!(NE2}wezx0fwl=r9%@NTgBB3Y(=@0frf(jCc2vPK@G)S2EIf5YSLw)G0 zh#Aoe3X=$%Bfm&R6bRBE5QAu-!v48=-nQFz|L^+kMq9G{yC@tqX&NeJ;Wv{mL}3d|V&X`CdxHCHZ_p`5PIh|ylA>WL$sxPR zfueO#l89o8%c+9vDjpx2`1b%!pNykkN4wB8I>%DGY$st!uyTT!~&5_ksGZ_LM~YWtnfi)!gT_t$KG!<$@sNG z+HPU-ezcZ6I-SPYCk7D7gJgyUbS*{Is#W{z^7q_bDjk2G)=xZ)>kVl7|L|r>&@m9x zaqd;2AwiRo<9Il%{|=>j!d0}pZKNBiCW*jOJt`a@r(O1AACf#mkJd0d++hSC%(J*N zm%?tV4zd%l5l)8XNU}-{mE-je3b|rb7i3aYMQk~XE0KgjaO>sGH%BhkiMXbL^Ce{`7#-!MmEYjgs+3SW~VNH8-Sj9f)>hSEDu>6 zpT~iXwM^A%Qe9!8whiG+@67gA_q_JQ#D`&~LS%6c7_BR69D+Oxt9u*^mo|3#2XDb2 XJF_xcKxrs*00000NkvXXu0mjfhVN4L diff --git a/CopyOftrunk/build/resources/images/nav_right_red.png b/CopyOftrunk/build/resources/images/nav_right_red.png deleted file mode 100644 index c4fc5bda24bb0d1bb5bae52bcd20313fa7c72e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmV+h1Nr=kP)WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z(*hI$EeAqL^6~%x010qNS#tmY3labT3lag+-G2N4000DMK}|sb0I`n?{9y$E00Le~ zL_t(|+NG0ANK{cA#(#HoMDdZPhWWryG_2^gum@#}5_*ZX4a!G>U>n!1B3wk9TBuNw zDMYsFp-~GZg2W+;QpPNBkbG5MpELK)ojZ5#qoWfeCDOtJXK~K||9$8C&UX%Ma7h1d zICWdnQPUbI+fhYQatYxu$nq$|pSoGl?n%QetxMos*?F47CpxG+lTE~g{ys=fg0KO8 z6$akT;vKG$26?@Pz^N@e%cX{=lvlW!9D$($h}#Drdmt|b4AH6!qA_0t&*yW}S6(gS zTr1!UMOhp=*1@g=ZpJ=9;3uf!#QjI$<_nn7ASBkh4mr7QtsuWMvX#v-0(A2#6{j+p z5+?_QMZ;chgtuK$dCkv6XCi2VB&-uxn4k4MfyU)h{7OUd_G$zMPcKYNh+S8d`^UJj zA*9z_higyZP91#vf@Fb}l2R>XHb)8EiKWa;igl)t+_ipYO%I{H3A?usTXL1IS};UZ z3o>lV_a3AMMQ;5RMs_&$neV(6AH zroi?Nb~}m!slr0OP?l2!N#c^rPp*Oo+M%;mgyCQrCiC-JcZ|Sg(js~KmkWdKcYATl{1Q)O@fDK;l=Vw>0Q@AJ+MTBv##kRa1q$b5_p(;<@v}bn zr$6hC-!A|gsnLpmGp*eC#B6;ncevZUO z2G-sT6ceL+*)*_6=D4J=i`qJD+Y%B~t_usVEoOHL+5yC^HOf1-Q!XEZq~L#FW$NA~ z{8Wv6@LYsUh$gzX1~$KDET*6Z>r3rY#4Y;rB{9|HtcX>LULxAd%2>q}mHHsVs}(V3 z9l*+R#g%X=cUD*$$F>VVyA(Wp6LI0iBuA?+IX!NeTY=m2$5>FuIk2<8UBccP7}u7U zr@m1i8X;R8WpHea>X(2AcOO&QT;S@nPn@wVH!%343XMqffdMl4H19rs<^94MH*d_) zzqLRsj0pOQuDQ(L807L9-dsE4o`|whyab0YPRK9eSS$G?{d8}DP}=z6bhUkGv}=50 kem|(T-O@Kia`(TD9|TuFt_$o-RsaA107*qoM6N<$f|}(i8UO$Q diff --git a/CopyOftrunk/build/resources/images/question_and_answer.png b/CopyOftrunk/build/resources/images/question_and_answer.png deleted file mode 100644 index 0f9b23b2e85c090fb9ddba712edb2c859be76b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)WdKcSATl-}MrC3kGB7YRATcmHGB!FiFd!>1F)%P#Z%6t7000McNliru z(*+j~8UW@YnUMeh010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00L)8 zL_t(|+O3jbNK;`L#-E+DxjA!7Ej#!RO}r8$>c)#0G(~49L-Z;c6bRLYxSK!?9GG_# zhKSjX7iADe7p4$}whV+dtq?JULQIBiYiBa&+0MV6b2`UZB)Ph%=i=qP_@3YUz0dan z|0rFynVbw>h(^N?O(wFI=f!-z-oT~P>{pUJ)jK+RHSkBu`1pH=&-Y47r)8zHvrDP2 zKCkrj+)_3+6lHA8FAWdBxR%RHXhjtFr`_%rLKJmqY;<68aT`lZ3y>tBx%mn~5W5Cjp$#RPOZl3|$jNX`&Fo`rj6v*E7O*{V|%prfN6^Yfq76*vTgn+S!%af&M4 zWm)NfVNwBufxJIB*tB=-6$S=oKiKW|i)J%{m6bJ_;{?HKwV2x58&FwUgqD^j%*?#T z-X4oUU@Z}e#9F=H?o}cSuvpGGg27cb5{YAHXU9=cV4ZZi8c|VE1eylI;RqN8Fq`vX zvt2%|*JmF83{lh2P*aTOb!~yb#~4BAZ7iGYEGaP_nRy;aCJ!LXI0{w}G9XE^<`_Ve z`eEKyRfQ-u+ed2pv8^pZJ^UlsiHYY&y=FF91e4WOyN|BgI0b>j;~opa93`FBGh z8d|U;Be&J*GV<~y`2BBWQIuwng?N%Yp7jEr|NKl{sREFTN=wg{*VL3@dHLN-pU>6y zSHQ38>w8j9QP$1F!(=KJSsmlNW N002ovPDHLkV1jHSRek^f diff --git a/CopyOftrunk/build/resources/images/trafficlight_green.png b/CopyOftrunk/build/resources/images/trafficlight_green.png deleted file mode 100644 index 63bc3088a14358b0bcca00835de66443f14a6221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)WdKuQATlr@L}hv)GB7YRATTgGG&4FiHXti7F)%PV2SzLa000McNliru z(*hd+5dndCR9OH3010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00GfS zL_t(|+NF`PZ__{&#y_8(Cb1LK)Gd%oO{AtBK&sTOsGYjOgjg6@kPs5e27dqx6B|f~ zoe}mTl?jC|ELGKr0ursLDq5>eY3y_CJD(jNj#yAYIEc4A>F&Gle&2h*f0i*xe| z>fnM=LK-6&*8fJ3=A;TF+*}^-qYlF58bV^??8rx6RavG%6h&T&flk-KT6G#VtAdX^ z$6zi6^kQ~|0m086;r7+@xYhWC)!7~tMME6N!6*japqC5-7W;thokQgMDSo~5^QrG&RGY-OR@2P+=00000NkvXXu0mjfKcEzK diff --git a/CopyOftrunk/build/resources/images/trafficlight_off.png b/CopyOftrunk/build/resources/images/trafficlight_off.png deleted file mode 100644 index d2684fdeaa03d55cf19480bff51b59a2869e1f14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)WdKuQATlr@L}hv)GB7YRATTgGG&4FiHXti7F)%PV2SzLa000McNliru z(*hd+5Fw)tMbH2M010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00GKL zL_t(|+NF|BOB+!XhTj|0Mkh1Pq{Wo95lID0(4Evj(7Niv-(Vp{>AuU-eV6?ME~MKo zNf2r~?ilU8Lt@ifs{&Y7Wl}gR$ayi}egZT9LXWX=ZXIiaR&TgDO zGIf1gwfr04x-PBP>-y&2K6zC($&1Lxr>*Z;s#I_R>GwR?U64{zr2>P-9n73xVfD*b zTtZ?}aD<%q0D2UtIUPa>B#-dfvVkEDSDJ>StOnvZ$pB>@&15nVu7}0D1(Y9_;ihll z@c0Mr>6(`~LJ$PbH7MYinKJPHb%>Wwb}&{n5k@T80|lUQ9D~Ui&&FMBt?!~q1xAL` zV5|=hI)IJ`kPIKz1ttn3Xa;#~e{&GaJ^*TA93g}{kXYL|!@=`W1hxy$rWhDZC6Azf zfpX3vB7w<;afqibemy?I{Yn9XiDU(gF-IjjK3FFf8W#y18@0D13d;kCd M07*qoM6N<$f(d*D2mk;8 diff --git a/CopyOftrunk/build/resources/images/trafficlight_red.png b/CopyOftrunk/build/resources/images/trafficlight_red.png deleted file mode 100644 index 2325af01aafce7acafd818bd9cad6dd51aa9735d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)WdKuQATlr@L}hv)GB7YRATTgGG&4FiHXti7F)%PV2SzLa000McNliru z(*hd+4;!dklKcPw010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00F>B zL_t(|+NF|DOB+EL#-G_WS(9$EZW7|3)QhKj5b_NQrKcY1r)cv9`T=?_^xCU;+oLz3 z1S}Hq(nF926jGZuHN+TqH#4(4JG0K-N)%V>3o|b~JoDrIGr%K*%nPkn>tnfG-VUQ^ zl~Qi_bT;FRT`)?2M4auk+wHx7{R_8=zcDYwvGno_2A(gQXs#;2Dgrr)*L8)h zMV8F_Z&e_K@DgpCN`0M-fV@5lK`*vaI?DuvQRu-m(HTZ~zgWRbm*~=S==_}ER5+K} z0M5Nav4}HY!CJ1uC4E$x#J8yfWr$hk48kz<(%lyF7M%JFU;F^aFi~+!P?5+UB4f-; zbHoDdpO`pH8t91)^v{QS7K&y9(lsijkjNPAqXFD0!D#RYBIIdx*?_c#G%F$T>P-_- z`gfjj)T%XzJ6gDNjd2{qAOuI}zc3Ldp6WKPulh)k&`f}oa>zM{f`tEdiu#I+i@$?O z81v7R(jFcVq|s=6a2zKn*`;0kiM_40{6il8SKI)2W8?$Xv*3vU0000WdKcSAT=OOa(W;#FfcP9F)%tYIXX2nAS*C2Ffa&=w^#rG00(qQO+^RO z0|g2;3p-hZ=l}o!32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yP3#l`1M z%Sww{14*LE5;3if_)%mK#~Q|Hc%IUZGin_iwBFkcu(0r~xxW6^?sNty6a-U($KwD& zpadWc6X+n;Ru}#Elq5 z1UzQo5@*_3wFDLw=IXuP53H@tpwVd1nN3zexm-f0GsNCrn|w>m7$c<%Qr{%hqn3Sc zZWhPK1Ki%aI63)Av`HwdgyrQIs8*lm+N5cUoPpK}^%hZZBrK}cI(B!@MdOu~m(-T9 z6)iZCO|#nf0IYH>0@-#!=uJt(vXPtMwn9=5<^41z3?7Yn+v@fxeEugH6XTJ1ab_dm;&CLj}l!ek0uIjbJa zWv};_K3QNi(rCB4a?Zxpd7ms{;QLB@o?miZm&TY);ppfaPEWhino?dqI!^X|pL`SL z0K?&3%k#Wu5JWbAVEn@{NG6ua>1G>0(wN>qJoZnP^$)^rt!4!`{WdKcSAT=OOa(W;#FfcP9FflqYHaaslAS*C2Ffc7i@&*6^00(qQO+^RO z0|g8WIHj#XH2?qr32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yPLfU9ks=-=Jy9kJ-L3AUCxU(*VcAiH(NhVUx9tOIMZ^*Pg~tw;1S0$Fnv#O#ccHC?!sW6c9MPfkdW3hFNCxy0ThcxHLwI`wTZMJI zuQ~%E!t@LXWhg4|;PKUASEmfs$U(5=AlcO5h>uMVzrd@d8IYo8yIj9zk4aZ^Tq~iX z$>{D0;Mh?SN+l0!&T(i7;SPgmg@NHSu+;$1`fFHp4i653hhysBYG5#ol#OMUf zQUO$~z-;+`TW2?d=~Xy0`Wydkd - - - - Smack Readme - - - - -

    - -

    - - - - - - - - -
    version:1.5.1
    released:August 12, 2005
    - -

    -Thank you for downloading Smack! -

    - -Start off by viewing the documentation -that can be found in the "documentation" directory included with this distribution. -

    -Further information can be found on the -Smack website. If you need help using or would like to make contributions or -fixes to the code, please visit the -online forum. - -

    About the Distribution

    - -The smack.jar file in the main distribution folder is the only binary file -required for embedding XMPP functionality into client applications. The optional -smackx.jar contains the Smack extensions -while smackx-debug.jar contains an enhanced debugger.

    - -If you downloaded the developer release, the full source of the library is included in -the source directory and can be compiled using the build scripts found in the -build directory (please see the README file in the build directory for further details). - -

    Changelog and Upgrading

    - -View the changelog for a list of changes since the -last release. - -

    License Agreements

    -

      -
    • Use of thie Smack source code is governed by the Apache License: -
      - Copyright 2002-2005 Jive Software.
      -
      - All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
      - you may not use this file except in compliance with the License.
      - You may obtain a copy of the License at
      -
      -     http://www.apache.org/licenses/LICENSE-2.0
      -
      - Unless required by applicable law or agreed to in writing, software
      - distributed under the License is distributed on an "AS IS" BASIS,
      - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      - See the License for the specific language governing permissions and
      - limitations under the License.
      - 
    • - -
    • Smack contains icons and images licensed from INCORS GmbH. You are not licensed -to use these icons outside of Smack.
    • - -
    • Third-party source code is licensed as noted in their source files. - -
    - - diff --git a/CopyOftrunk/build/resources/releasedocs/changelog.html b/CopyOftrunk/build/resources/releasedocs/changelog.html deleted file mode 100644 index 6f1703d51..000000000 --- a/CopyOftrunk/build/resources/releasedocs/changelog.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - Smack Changelog - - - - -
    -Smack Changelog -
    - -

    -1.5.1 -- August 12, 2005 -

    -

      -
    • [SMACK-60] - Presence priorities out of range were crashing the connection.
    • -
    • [SMACK-63] - Sometimes XMPPConnection#getRoster() was taking too long.
    • -
    • [SMACK-66] - Wrong attribute name and date format when requesting history since a given date.
    • -
    • [SMACK-70] - IQ Time now uses a 0-23 hour format.
    • - -
    • [SMACK-25] - Added support for JEP-13: Flexible Offline Message Retrieval.
    • -
    • [SMACK-58] - Added support for JEP-54: vCards. Thanks to Kirill Maximov.
    • -
    • [SMACK-53] - Added support for JEP-92: Software Version.
    • -
    • [SMACK-61] - Added new debugger that prints on the stdout.
    • -
    • [SMACK-71] - Created new FromMatchesFilter that checks for exact matching.
    • - - -
    • [SMACK-52] - Added constructor to XMPPConnection for better connection control.
    • -
    • [SMACK-56] - Reported data can now hold more than one value.
    • -
    • [SMACK-57] - RoomInfo now includes the room JID.
    • -
    • [SMACK-59] - Date format for delayed dates is configurable.
    • -
    • [SMACK-62] - The username and password fields are now optional in Registration.
    • -
    • [SMACK-67] - Parsing of delayed dates was improved to be smarter.
    • -
    • [SMACK-68] - PacketParserUtils#parseProperties is now public.
    • -
    • [SMACK-69] - Adding or removing entries from a group can now throw an XMPPException.
    • -
    - -

    -1.5.0 -- March 30, 2005 -

    -

      -
    • [SMACK-7] - Fixed issue that caused Smack to fail when X11 was not installed on Unix.
    • -
    • [SMACK-32] - Getting the system classloader could raise a security exception.
    • -
    • [SMACK-33] - MUCOwner.Item now includes the "role" attribute.
    • -
    • [SMACK-37] - Fixing timing issue that could make logins slow.
    • -
    • [SMACK-42] - The pretty print of the EnhancedDebugger was not working well with Java 1.5.
    • -
    • [SMACK-43] - Occupant#getNick() answers null when the info is available.
    • -
    • [SMACK-46] - Support for cancelling notifications in message events was missing.
    • -
    • [SMACK-48] - PacketListeners were not being removed from the connection when the chat finishes.
    • -
    • [SMACK-50] - XML representation of Presence packets did not include error element.
    • - -
    • [SMACK-4] - Implemented room management in batch mode.
    • -
    • [SMACK-11] - Implemented discovery of extended information of MUC rooms.
    • -
    • [SMACK-13] - Implemented discovery of MUC rooms hosted by a service.
    • -
    • [SMACK-38] - Notify when an occupant joins or leaves a group chat room.
    • -
    • [SMACK-39] - Added support for discovering MUC services.
    • -
    • [SMACK-41] - Added support for JEP-91: Delayed Delivery.
    • - -
    • [SMACK-49] - Modified Smack to use latest minimal version of XPP.
    • - -
    • [SMACK-40] - Packet extensions can now be sent when inviting a user to a room.
    • -
    • [SMACK-44] - PacketReader can now parse errors that follow XMPP 1.0.
    • -
    • [SMACK-45] - Sorted the list of providers in the EnhancedDebugger window.
    • -
    • [SMACK-47] - Added a public API for parsing Messages and Presences.
    • -
    - -

    -1.4.1 - November 15, 2004 -

    -

      -
    • (SMACK-21) The reader and listener threads in PacketReader are now stopped if an error occurs while starting up PacketReader. Thanks to Steve Reichert. -
    • (SMACK-22) XMPP addresses are now treated as case insensitive. -
    • (SMACK-3) Fixed possible NullPointerException when parsing invalid XHTML text. -
    • (SMACK-8) Answer an item-not-found error when Smack receives a service discovery for information and node is not null. -
    • (SMACK-17) An incorrect namespace was being used for granting and revoking admin/owner privileges. -
    • (SMACK-19) The roster should be able to hold any valid JID format. Thanks to Adam Olsen. -
    • (SMACK-20 Parsing MUCOwner packets could freeze the client. -
    • (SMACK-18) Implemented JEP-128. A service discovery for information can now include a dataform or any possible packet extension. -
    • (SMACK-15) Allow registration entries with blank values. -
    • (SMACK-16) Added String getAccountAttribute(String) method to AccountManager class. -
    • (SMACK-23) Connection listeners can now be removed while notifying that the connection is being closed. Fixes ConcurrentModificationException triggered on close. -
    - -

    -1.4.0 - August 10, 2004 -

    -

      -
    • (SMACK-99) Added support for Multi User Chat (JEP 45) as a Smack Extension. -
    • (SMACK-125) Added support for Data Forms (JEP 04) as a Smack Extension. -
    • (SMACK-143) Fixed memory leak problem by closing ObjectOutputStream while writing out Object properties. -
    • (SMACK-145) Fixed memory leak problem by cancelling unused collectors. -
    • (SMACK-138) Fixed error parsing properties of Messages. -
    • (SMACK-135) Invalid characters in the TO and FROM fields of any packet were escaped in order to - prevent the connection from closing. Thanks to Ian Sollars. -
    • (SMACK-140) Added new constructor to XMPPConnection XMPPConnection(String host, int port, - SocketFactory socketFactory) that allows a user to pass in the SocketFactory to use. -
    • (SMACK-131) Remove cached presence info when user was deleted from roster. -
    • (SMACK-123) TimerTask was removed to make Smack JDK 1.2 compatible again. -
    • (SMACK-130) Use notifyAll() instead of notify() in PacketWriter. -
    • (SMACK-137) Fixed security exception with unsigned applets using try/catch around System.getProperty. -
    • (SMACK-127) IQ packets can now have extensions. -
    • (SMACK-128) Registration can now include a registration data form. -
    • (SMACK-136) Keep-alive process should flush stream. -
    • (SMACK-121) Delay of keep-alive is now configurable. -
    • (SMACK-149) A disco info request directed to a Smack client didn't answer the client's identity. -
    • (SMACK-150) Added canPublishItems(String entityID) method to ServiceDiscoveryManager in - order to discover whether a server supports publishing of items or not. -
    • (SMACK-133) Node attribute was missing in DiscoverInfo and DiscoverItems XML representations. -
    • (SMACK-134) Added setNodeInformationProvider(String node, NodeInformationProvider listener) - method to ServiceDiscoveryManager and created new NodeInformationProvider interface in order to provide information about - nodes defined in the client. -
    • (SMACK-139) Added new menu option to the enhanced debugger in order to close all the tabs of which - their connections are not active anymore. -
    • (SMACK-124) Don't set L&F in debuggers. -
    • (SMACK-122) Added documentation about the new enhanced debugger. -
    • (SMACK-142) Base class for existing test cases was created. -
    - -

    -1.3.0 - March 11, 2004 -

    -

      -
    • (SMACK-103, SMACK-105) Fixed bugs with error packets (sending and receiving). -
    • (SMACK-109) Renaming RosterGroups fails. -
    • (SMACK-91) Add support for Service Discovery (JEP 30) as a Smack Extension. -
    • (SMACK-94) Host name as reported by server should be used in the Connection object. -
    • (SMACK-97) SUBSCRIPTION_* constants are misspelled in the Roster class. -
    • (SMACK-107) Allow packet reply timeout to be set. -
    • (SMACK-41) Unrecognized IQs should generate a "not implemented" error. -
    • (SMACK-116) Roster entries are not being removed from the group immediately when deleted. -
    • (SMACK-100) Incoming packets should only have ID's if they are set. -
    • (SMACK-104) Fixed bug parsing server information. -
    • (SMACK-112) Add a mechanism to set the roster's subscription mode before login. -
    • (SMACK-117) PacketWriter never terminates daemon threads. -
    • (SMACK-113) Once a debugger gets closed it still collects packets - OutOfMemory problem. -
    • (SMACK-102) Add methods to get all packet providers. -
    • (SMACK-95) Add group chat invitation support as a Smack Extension. -
    • (SMACK-93) New debug window with many enhancements. -
    • (SMACK-110) Added keep-alives so the TCP-IP timeouts wouldn't break connections to a server. -
    • (SMACK-101) Add version number information to API. -
    • (SMACK-96) Make AndFilter and OrFilter chainable. -
    • (SMACK-108) Handle multiple presences when a user is connected from different resources. -
    • (SMACK-111) Add listener support for new connections. -
    • (SMACK-92) Add support for "Discovering Support for XHTML-IM". -
    • (SMACK-106) Chat objects no longer have to depend on a threadID (this is settable). -
    • (SMACK-120) Chat.getChatID() is now Chat.getThreadID(). -
    - -

    -1.2.1 - September 28, 2003 -

    -

      -
    • (SMACK-79) Added XHTML message support as a Smack extension, which allows sending - richly formatted messages. -
    • (SMACK-88) Fixed bug with parsing registation packets that contain extra data. -
    • (SMACK-90) Added support for getting registration instructions. -
    • (SMACK-85) Exceptions in the PacketWriter now correctly generates a connection - error event. -
    • (SMACK-84) Added isSecureConnection() method to XMPPConnection class. -
    • (SMACK-86) Added isJoined() method to GroupChat class. -
    • (SMACK-87, SMACK-82) Added the following methods related to rosters: - Roster.contains(String user), Roster.getEntry(String user), - RosterGroup.getEntry(String user), Roster.removeEntry(RosterEntry entry). -
    • (SMACK-73) Fixed bugs handling roster remove and update operations. -
    - -

    -1.2.0 - August 29, 2003 -

    -

      -
    • ! A package structure and documentation has been added for Smack extensions, - which cover extensions to the XMPP protocol. The initial extensions are - for message events (JEP 22), roster item exchange (JEP 93), entity - time (JEP 90), and private data storage (JEP 49). -
    • ! The smack.providers file is now loaded from META-INF/smack.providers - rather than WEB-INF/smack.providers. This location makes much more sense - for generic JAR files, but may break existing provider implementations - until the provider file is moved. -
    • Fixed IQ error sub-packets. -
    • The default packet extension handler didn't deal with empty - elements well and also had a bug with attribute handling. -
    • Added a ConnectionListener feature which allows clients - to be notified of normally closed connections, and connections - closed due to errors. -
    • Fixed bug where the roster list could become corrupted after - moving a user back and forther between groups. -
    • Fixed bug where in some cases presence packets were not getting - tracked by the Roster class correctly. -
    • RosterListener has a new notification method that is called every time - the presence of a user in the roster is updated. -
    • Added Roster.getEntries() method to return all entries in the roster. -
    • Added RosterGroup.contains(String) method to check to see if an XMPP - address is part of the group. -
    • Minor fixes to Javadocs. -
    • Content can be copied and cleared from the debug window using - a pop-up menu. -
    • The Chat constructor that took an existing chatID as an argument - did not propertly initialize support for message listeners. -
    • Added support for anonymous logins. -
    • IQ is now an abstract class. -
    • Fixed bug where XHTML messgaes could cause parsing errors. -
    - -

    -1.1.1 - June 25, 2003 -

    -

      -
    • Setting Object packet properties was broken. -
    • Added getRoom() method to GroupChat. -
    - -

    -1.1.0 - June 19, 2003 -

    -

      -
    • New system to handle custom IQ packets and custom packet extensions through - the new provider sub-package. -
    • Added packet filters for packet extensions. -
    • Added additional options for responding to subscription requests. -
    • Added method to retrieve the roster item count from roster packets. -
    • Added ability to set the ItemStatus on a roster packet. -
    • Added remove option to roster packet. -
    • Various documentation fixes/improvements. -
    • Fixed NullPointer exception on the setName method of the RosterEntry class. -
    • Groupchat class was listening for wrong message types -- fixed. -
    • Changed properties element name to "properties" instead of "x". Note: this will - break compatability between earlier versions if they are trying to send packet - properties back and forth. However, we thought it was best to make this change now. -
    • Turning on debugging via a system property wasn't working. -
    • Fixed spelling error in Roster class method name. -
    • Fixed stream not being closed properly. -
    • The "to contains" and "from contains" filters now ignore case. -
    - -

    -1.0.1 - April 30, 2003 -

    -

      -
    • Fixed bug that caused applets using Smack to crash with a security exception. -
    - -

    -1.0.0 - April 25, 2003 -

    -

      -
    • Initial official release. -
    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/debugging.html b/CopyOftrunk/documentation/debugging.html deleted file mode 100644 index b5e6e4bbe..000000000 --- a/CopyOftrunk/documentation/debugging.html +++ /dev/null @@ -1,116 +0,0 @@ - - - Smack: Debugging - Jive Software - - - - - -
    -Debugging with Smack -
    - - - -

    -Smack includes two built-in debugging consoles that will let you track all XML traffic between -the client and server. A lite debugger which is part of the smack.jar -and an enhanced debugger contained in smackx-debug.jar. -

    - -

    -Debugging mode can be enabled in two different ways: -

    - -
      -
    1. Add the following line of code before creating new connections:

      - XMPPConnection.DEBUG_ENABLED = true;

      - -

    2. Set the Java system property smack.debugEnabled to true. The - system property can be set on the command line such as:

      - java -Dsmack.debugEnabled=true SomeApp -

    - -

    -If you wish to explicitly disable debug mode in your application, including using the command-line parameter, -add the following line to your application before opening new connections: -

    - -

    -XMPPConnection.DEBUG_ENABLED = false; -

    - -

    -Smack uses the following logic to decide the debugger console to use: -

    - -
      -
    1. It will first try use the debugger class specified in the Java system property - smack.debuggerClass. If you need to develop your own debugger, - implement the SmackDebugger interface and then set the system property - on the command line such as:

      - java -Dsmack.debuggerClass=my.company.com.MyDebugger SomeApp

      - -

    2. If step 1 fails then Smack will try to use the enhanced debugger. The - file smackx-debug.jar contains the enhanced debugger. Therefore you will need - to place the jar file in the classpath. For situations where space is an issue you - may want to only deploy smack.jar in which case the enhanced debugger won't be - available.

      - -

    3. The last option if the previous two steps fail is to use the lite debugger. The lite - debugger is a very good option for situations where you need to have low memory footprint. -
    - -

    -Enhanced Debugger -

    - -Full Debug Window - -When debugging mode is enabled, a debug window will appear containing tabs for each new created connection. -The window will contain the following information: - -
      -
    • Connection tabs -- each tab shows debugging information related to the connection. -
    • Smack info tab -- shows information about Smack (e.g. Smack version, installed components, etc.). -
    - -The connection tab will contain the following information: -
      -
    • All Packets -- shows sent and received packets information parsed by Smack. -
    • Raw Sent Packets -- raw XML traffic generated by Smack and sent to the server. -
    • Raw Received Packets -- raw XML traffic sent by the server to the client. -
    • Ad-hoc message -- allows to send ad-hoc packets of any type. -
    • Information -- shows connection state and statistics. -
    - -
    - -

    -Lite Debugger -

    - -Lite Debug Window - -When debugging mode is enabled, a debug window will appear when each new connection is created. -The window will contain the following information: - -
      -
    • Client Traffic (red text) -- raw XML traffic generated by Smack and sent to the server. -
    • Server Traffic (blue text) -- raw XML traffic sent by the server to the client. -
    • Interpreted Packets (green text) -- shows XML packets from the server as parsed by Smack. -
    - -Right click on any of the panes to bring up a menu with the choices to copy of the contents -to the system clipboard or to clear the contents of the pane. - -


    - - - - - diff --git a/CopyOftrunk/documentation/extensions/dataforms.html b/CopyOftrunk/documentation/extensions/dataforms.html deleted file mode 100644 index 1c2aee457..000000000 --- a/CopyOftrunk/documentation/extensions/dataforms.html +++ /dev/null @@ -1,137 +0,0 @@ - - -Data Forms - - - - - -
    Data Forms

    - -Allows to exchange structured data between users and applications for common -tasks such as registration and searching using Forms. - -

    -JEP related: JEP-4 - -
    - -

    - -Description

    - -An XMPP entity may need to gather data from another XMPP entity. Therefore, the data-gathering -entity will need to create a new Form, specify the fields that will conform the Form and finally -send the Form to the data-providing entity.

    - -Usage

    - -In order to create a Form to fill out use the Form's constructor passing the constant -Form.TYPE_FORM as the parameter. The next step is to create the form fields and add them to -the form. In order to create and customize a FormField use the FormField's -constructor specifying the variable name of the field as the parameter. Then use setType(String type) -to set the field's type (e.g. FormField.TYPE_HIDDEN, FormField.TYPE_TEXT_SINGLE). Once we have the -Form instance and the FormFields the last step is to send addField(FormField field) -for each field that we want to add to the form.

    - -Once the form to fill out is finished we will want to send it in a message. Send getDataFormToSend() to -the form and add the answer as an extension to the message to send.

    - -Examples

    - -In this example we can see how to create and send a form to fill out:
    -

    -
          // Create a new form to gather data
    -        Form formToSend = new Form(Form.TYPE_FORM);
    -        formToSend.setInstructions(
    -            "Fill out this form to report your case.\nThe case will be created automatically.");
    -        formToSend.setTitle("Case configurations");
    -        // Add a hidden variable to the form
    -        FormField field = new FormField("hidden_var");
    -        field.setType(FormField.TYPE_HIDDEN);
    -        field.addValue("Some value for the hidden variable");
    -        formToSend.addField(field);
    -        // Add a fixed variable to the form
    -        field = new FormField();
    -        field.addValue("Section 1: Case description");
    -        formToSend.addField(field);
    -        // Add a text-single variable to the form
    -        field = new FormField("name");
    -        field.setLabel("Enter a name for the case");
    -        field.setType(FormField.TYPE_TEXT_SINGLE);
    -        formToSend.addField(field);
    -        // Add a text-multi variable to the form
    -        field = new FormField("description");
    -        field.setLabel("Enter a description");
    -        field.setType(FormField.TYPE_TEXT_MULTI);
    -        formToSend.addField(field);
    -
    -        // Create a chat with "user2@host.com"
    -        Chat chat = conn1.createChat("user2@host.com" );
    -
    -        Message msg = chat.createMessage();
    -        msg.setBody("To enter a case please fill out this form and send it back to me");
    -        // Add the form to fill out to the message to send
    -        msg.addExtension(formToSend.getDataFormToSend());
    -
    -        // Send the message with the form to fill out
    -        chat.sendMessage(msg);
    -
    -
    - -
    - -

    - -Description

    - -Under many situations an XMPP entity could receive a form to fill out. For example, some hosts -may require to fill out a form in order to register new users. Smack lets the data-providing entity -to complete the form in an easy way and send it back to the data-gathering entity.

    - -Usage

    - -The form to fill out contains useful information that could be used for rendering the form. But it -cannot be used to actually complete it. Instead it's necessary to create a new form based on the original -form whose purpose is to hold all the answers.

    - -In order to create a new Form to complete based on the original Form just send -createAnswerForm() to the original Form. Once you have a valid form that could be actually -completed all you have to do is send setAnswer(String variable, String value) to the form where variable -is the variable of the FormField that you want to answer and value is the String representation -of the answer. If the answer consist of several values you could then use setAnswer(String variable, List values) -where values is a List of Strings.

    - -Once the form has been completed we will want to send it back in a message. Send getDataFormToSend() to -the form and add the answer as an extension to the message to send back.

    - -Examples

    - -In this example we can see how to retrieve a form to fill out, complete the form and send it back:
    -

    -
          // Get the message with the form to fill out
    -        Message msg2 = chat2.nextMessage();
    -        // Retrieve the form to fill out from the message
    -        Form formToRespond = Form.getFormFrom(msg2);
    -        // Obtain the form to send with the replies
    -        Form completedForm = formToRespond.createAnswerForm();
    -        // Add the answers to the form
    -        completedForm.setAnswer("name", "Credit card number invalid");
    -        completedForm.setAnswer(
    -            "description",
    -            "The ATM says that my credit card number is invalid. What's going on?");
    -			
    -        msg2 = chat2.createMessage();
    -        msg2.setBody("To enter a case please fill out this form and send it back to me");
    -        // Add the completed form to the message to send back
    -        msg2.addExtension(completedForm.getDataFormToSend());
    -        // Send the message with the completed form
    -        chat2.sendMessage(msg2);
    -
    -
    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/disco.html b/CopyOftrunk/documentation/extensions/disco.html deleted file mode 100644 index 6f8058dd9..000000000 --- a/CopyOftrunk/documentation/extensions/disco.html +++ /dev/null @@ -1,236 +0,0 @@ - - -Service Discovery - - - - - -
    Service Discovery

    - -The service discovery extension allows to discover items and information about XMPP -entities. Follow these links to learn how to use this extension. - -

    -JEP related: JEP-30 - -
    - -

    - -Description

    - -Any XMPP entity may receive a discovery request and must answer with its associated items or -information. Therefore, your Smack client may receive a discovery request that must respond -to (i.e., if your client supports XHTML-IM). This extension automatically responds to a -discovery request with the information that you previously configured.

    - -Usage

    - -In order to configure the supported features by your client you should first obtain the -ServiceDiscoveryManager associated with your XMPPConnection. To get your ServiceDiscoveryManager -send getInstanceFor(connection) to the class ServiceDiscoveryManager where -connection is your XMPPConnection.

    - -

    Once you have your ServiceDiscoveryManager you will be able to manage the supported features. To -register a new feature send addFeature(feature) to your ServiceDiscoveryManager -where feature is a String that represents the supported feature. To remove a supported feature send -removeFeature(feature) to your ServiceDiscoveryManager where feature is a -String that represents the feature to remove.

    - -Examples

    - -In this example we can see how to add and remove supported features:
    -

    -
          // Obtain the ServiceDiscoveryManager associated with my XMPPConnection
    -      ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection);
    -      
    -      // Register that a new feature is supported by this XMPP entity
    -      discoManager.addFeature(namespace1);
    -
    -      // Remove the specified feature from the supported features by this XMPP entity
    -      discoManager.removeFeature(namespace2);
    -
    -
    - -
    - -

    - -Description

    - -Your XMPP entity may receive a discovery request for items non-addressable as a JID such as -the MUC rooms where you are joined. In order to answer the correct information it is necessary -to configure the information providers associated to the items/nodes within the Smack client.

    - -Usage

    - -In order to configure the associated nodes within the Smack client you will need to create a -NodeInformationProvider and register it with the ServiceDiscoveryManager. To get -your ServiceDiscoveryManager send getInstanceFor(connection) to the class ServiceDiscoveryManager -where connection is your XMPPConnection.

    - -

    Once you have your ServiceDiscoveryManager you will be able to register information providers -for the XMPP entity's nodes. To register a new node information provider send setNodeInformationProvider(String node, NodeInformationProvider listener) -to your ServiceDiscoveryManager where node is the item non-addressable as a JID and -listener is the NodeInformationProvider to register. To unregister a NodeInformationProvider -send removeNodeInformationProvider(String node) to your ServiceDiscoveryManager where -node is the item non-addressable as a JID whose information provider we want to unregister.

    - -Examples

    - -In this example we can see how to register a NodeInformationProvider with a ServiceDiscoveryManager that will provide -information concerning a node named "http://jabber.org/protocol/muc#rooms":
    -

    -
          // Set the NodeInformationProvider that will provide information about the
    -      // joined rooms whenever a disco request is received 
    -      ServiceDiscoveryManager.getInstanceFor(connection).setNodeInformationProvider(
    -          "http://jabber.org/protocol/muc#rooms",
    -          new NodeInformationProvider() {
    -              public Iterator getNodeItems() {
    -                  ArrayList answer = new ArrayList();
    -                  Iterator rooms = MultiUserChat.getJoinedRooms(connection);
    -                  while (rooms.hasNext()) {
    -                      answer.add(new DiscoverItems.Item((String)rooms.next()));
    -                  }
    -                  return answer.iterator(); 
    -              }
    -          });
    -
    -
    - -
    - -

    - -Description

    - -In order to obtain information about a specific item you have to first discover the items available -in an XMPP entity.

    - -Usage

    - -

    Once you have your ServiceDiscoveryManager you will be able to discover items associated with -an XMPP entity. To discover the items of a given XMPP entity send discoverItems(entityID) -to your ServiceDiscoveryManager where entityID is the ID of the entity. The message -discoverItems(entityID) will answer an instance of DiscoverItems that contains -the discovered items.

    - -Examples

    - -In this example we can see how to discover the items associated with an online catalog service:
    -

    -
          // Obtain the ServiceDiscoveryManager associated with my XMPPConnection
    -      ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection);
    -      
    -      // Get the items of a given XMPP entity
    -      // This example gets the items associated with online catalog service
    -      DiscoverItems discoItems = discoManager.discoverItems("plays.shakespeare.lit");
    -
    -      // Get the discovered items of the queried XMPP entity
    -      Iterator it = discoItems.getItems();
    -      // Display the items of the remote XMPP entity
    -      while (it.hasNext()) {
    -          DiscoverItems.Item item = (DiscoverItems.Item) it.next();
    -          System.out.println(item.getEntityID());
    -          System.out.println(item.getNode());
    -          System.out.println(item.getName());
    -      }
    -
    -
    - -
    - -

    - -Description

    - -Once you have discovered the entity ID and name of an item, you may want to find out more -about the item. The information desired generally is of two kinds: 1) The item's identity -and 2) The features offered by the item.

    - -

    This information helps you determine what actions are possible with regard to this -item (registration, search, join, etc.) as well as specific feature types of interest, if -any (e.g., for the purpose of feature negotiation).

    - -Usage

    - -

    Once you have your ServiceDiscoveryManager you will be able to discover information associated with -an XMPP entity. To discover the information of a given XMPP entity send discoverInfo(entityID) -to your ServiceDiscoveryManager where entityID is the ID of the entity. The message -discoverInfo(entityID) will answer an instance of DiscoverInfo that contains -the discovered information.

    - -Examples

    - -In this example we can see how to discover the information of a conference room:
    -

    -
          // Obtain the ServiceDiscoveryManager associated with my XMPPConnection
    -      ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection);
    -      
    -      // Get the information of a given XMPP entity
    -      // This example gets the information of a conference room
    -      DiscoverInfo discoInfo = discoManager.discoverInfo("balconyscene@plays.shakespeare.lit");
    -
    -      // Get the discovered identities of the remote XMPP entity
    -      Iterator it = discoInfo.getIdentities();
    -      // Display the identities of the remote XMPP entity
    -      while (it.hasNext()) {
    -          DiscoverInfo.Identity identity = (DiscoverInfo.Identity) it.next();
    -          System.out.println(identity.getName());
    -          System.out.println(identity.getType());
    -          System.out.println(identity.getCategory());
    -      }
    -
    -      // Check if room is password protected
    -      discoInfo.containsFeature("muc_passwordprotected");
    -
    -
    - -
    - -

    - -Description

    - -Publish your entity items to some kind of persistent storage. This enables other entities to query -that entity using the disco#items namespace and receive a result even when the entity being queried -is not online (or available).

    - -Usage

    - -

    Once you have your ServiceDiscoveryManager you will be able to publish items to some kind of -persistent storage. To publish the items of a given XMPP entity you have to first create an instance -of DiscoverItems and configure it with the items to publish. Then you will have to -send publishItems(String entityID, DiscoverItems discoverItems) to your ServiceDiscoveryManager -where entityID is the address of the XMPP entity that will persist the items and discoverItems contains the items -to publish.

    - -Examples

    - -In this example we can see how to publish new items:
    -

    -
          // Obtain the ServiceDiscoveryManager associated with my XMPPConnection
    -      ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection);
    -      
    -      // Create a DiscoverItems with the items to publish
    -      DiscoverItems itemsToPublish = new DiscoverItems();
    -      DiscoverItems.Item itemToPublish = new DiscoverItems.Item("pubsub.shakespeare.lit");
    -      itemToPublish.setName("Avatar");
    -      itemToPublish.setNode("romeo/avatar");
    -      itemToPublish.setAction(DiscoverItems.Item.UPDATE_ACTION);
    -      itemsToPublish.addItem(itemToPublish);
    -
    -      // Publish the new items by sending them to the server
    -      discoManager.publishItems("host", itemsToPublish);
    -
    -
    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/index.html b/CopyOftrunk/documentation/extensions/index.html deleted file mode 100644 index e22836b9c..000000000 --- a/CopyOftrunk/documentation/extensions/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -Smack Extensions User Manual - - - - - - - - -<H2>Smack Extensions User Manual</H2> - -<a href="toc.html">Smack Extensions User Manual</a> \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/intro.html b/CopyOftrunk/documentation/extensions/intro.html deleted file mode 100644 index 2005966e1..000000000 --- a/CopyOftrunk/documentation/extensions/intro.html +++ /dev/null @@ -1,70 +0,0 @@ - - -Smack Extensions User Manual - - - - -
    Smack Extensions Manual
    -

    The XMPP protocol includes a base protocol and many optional extensions - typically documented as "JEP's". Smack provides the org.jivesoftware.smack - package for the core XMPP protocol, and the org.jivesoftware.smackx package for - many of the protocol extensions.

    - -

    This manual provides details about each of the "smackx" extensions, including what - it is, how to use it, and some simple example code.

    - -

    Current Extensions

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameJEP #Description
    Private DataJEP-49Manages private data.
    XHTML MessagesJEP-71Allows send and receiving formatted messages using XHTML.
    Message EventsJEP-22Requests and responds to message events.
    Data FormsJEP-4Allows to gather data using Forms.
    Multi User ChatJEP-45Allows configuration of, participation in, and administration of individual text-based conference rooms.
    Roster Item ExchangeJEP-93Allows roster data to be shared between users.
    Time ExchangeJEP-90Allows local time information to be shared between users.
    Group Chat InvitationsN/ASend invitations to other users to join a group chat room.
    Service DiscoveryJEP-30Allows to discover services in XMPP entities.
    - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/invitation.html b/CopyOftrunk/documentation/extensions/invitation.html deleted file mode 100644 index c15b15824..000000000 --- a/CopyOftrunk/documentation/extensions/invitation.html +++ /dev/null @@ -1,60 +0,0 @@ - - -Group Chat Invitations - - - - - -

    Group Chat Invitations

    - -The group chat invitation packet extension is used to invite other -users to a group chat room. - -

    - -

    -JEP related: N/A -- this protocol is outdated now that the Multi-User Chat (MUC) JEP is available -(JEP-45). However, most -existing clients still use this older protocol. Once MUC support becomes more -widespread, this API may be deprecated. - -


    - -

    - -To use the GroupChatInvitation packet extension -to invite another user to a group chat room, address a new message to the -user and set the room name appropriately, as in the following code example: - -

    -Message message = new Message("user@chat.example.com");
    -message.setBody("Join me for a group chat!");
    -message.addExtension(new GroupChatInvitation("room@chat.example.com"));
    -con.sendPacket(message);
    -
    - -The XML generated for the invitation portion of the code above would be: - -
    -<x xmlns="jabber:x:conference" jid="room@chat.example.com"/>
    -

    - -


    -

    - -To listen for group chat invitations, use a PacketExtensionFilter for the -x element name and jabber:x:conference namespace, as in the -following code example: - -

    -PacketFilter filter = new PacketExtensionFilter("x", "jabber:x:conference");
    -// Create a packet collector or packet listeners using the filter...
    -
    - - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/messageevents.html b/CopyOftrunk/documentation/extensions/messageevents.html deleted file mode 100644 index d91492b3f..000000000 --- a/CopyOftrunk/documentation/extensions/messageevents.html +++ /dev/null @@ -1,244 +0,0 @@ - - - Message Events - - - - - -
    Message Events

    - -This extension is used to request and respond to events relating to the delivery, -display, and composition of messages. There are three stages in this extension:

      -
    1. Request for event notifications, -
    2. Receive the event notification requests and send event notifications, and -
    3. Receive the event notifications.
    -

    For more information on each stage please follow these links:

    - -JEP related: JEP-22 -
    -

    -Description

    - -In order to receive event notifications for a given message you first have to specify -which events are you interested in. Each message that you send has to request its own event -notifications. Therefore, every message that you send as part of a chat should request its own event -notifications.

    - -Usage

    - -The class MessageEventManager provides an easy way for requesting event notifications. All you have to do is specify -the message that requires the event notifications and the events that you are interested in. -

    Use the static method MessageEventManager.addNotificationsRequests(Message message, boolean offline, boolean -delivered, boolean displayed, boolean composing) for requesting event notifications. -

    - -Example

    -Below you can find an example that logs in a user to the server, creates a message, adds the requests -for notifications and sends the message. -

    -
          // Connect to the server and log in
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -    
    -      // Create a chat with user2
    -      Chat chat1 = conn1.createChat(user2);
    -    
    -      // Create a message to send
    -      Message msg = chat1.createMessage();
    -      msg.setSubject("Any subject you want");
    -      msg.setBody("An interesting body comes here...");
    -      // Add to the message all the notifications requests (offline, delivered, displayed,
    -      // composing)
    -      MessageEventManager.addNotificationsRequests(msg, true, true, true, true);
    -    
    -      // Send the message that contains the notifications request
    -      chat1.sendMessage(msg);
    -
    -
    - -
    - -

    - -Description

    - -You can receive notification requests for the following events: delivered, displayed, composing and offline. You -must listen for these requests and react accordingly.

    - -Usage

    - -The general idea is to create a new DefaultMessageEventRequestListener that will listen to the event notifications -requests and react with custom logic. Then you will have to add the listener to the -MessageEventManager that works on -the desired XMPPConnection. -

    Note that DefaultMessageEventRequestListener is a default implementation of the -MessageEventRequestListener interface. -The class DefaultMessageEventRequestListener automatically sends a delivered notification to the sender of the message -if the sender has requested to be notified when the message is delivered. If you decide to create a new class that -implements the MessageEventRequestListener interface, please remember to send the delivered notification.

    -
      -
    • To create a new MessageEventManager use the MessageEventManager(XMPPConnection) constructor. -
    • -
    • To create an event notification requests listener create a subclass of DefaultMessageEventRequestListener or - create a class that implements the MessageEventRequestListener interface. -
    • -
    • To add a listener to the messageEventManager use the MessageEventManager's message -addMessageEventRequestListener(MessageEventRequestListener).
    • -

    - -Example

    - -Below you can find an example that connects two users to the server. One user will create a message, add the requests -for notifications and will send the message to the other user. The other user will add a -DefaultMessageEventRequestListener -to a MessageEventManager that will listen and react to the event notification requested by the other user. -

    -
          // Connect to the server and log in the users
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -      conn2 = new XMPPConnection(host);
    -      conn2.login(server_user2, pass2);
    -  
    -      // User2 creates a MessageEventManager
    -      MessageEventManager messageEventManager = new MessageEventManager(conn2);
    -      // User2 adds the listener that will react to the event notifications requests
    -      messageEventManager.addMessageEventRequestListener(new DefaultMessageEventRequestListener() {
    -          public void deliveredNotificationRequested(
    -              String from,
    -              String packetID,
    -              MessageEventManager messageEventManager) {
    -              super.deliveredNotificationRequested(from, packetID, messageEventManager);
    -              // DefaultMessageEventRequestListener automatically responds that the message was delivered when receives this request
    -              System.out.println("Delivered Notification Requested (" + from + ", " + packetID + ")");
    -          }
    -
    -          public void displayedNotificationRequested(
    -              String from,
    -              String packetID,
    -              MessageEventManager messageEventManager) {
    -              super.displayedNotificationRequested(from, packetID, messageEventManager);
    -              // Send to the message's sender that the message was displayed
    -              messageEventManager.sendDisplayedNotification(from, packetID);
    -          }
    -
    -          public void composingNotificationRequested(
    -              String from,
    -              String packetID,
    -              MessageEventManager messageEventManager) {
    -              super.composingNotificationRequested(from, packetID, messageEventManager);
    -              // Send to the message's sender that the message's receiver is composing a reply
    -              messageEventManager.sendComposingNotification(from, packetID);
    -          }
    -
    -          public void offlineNotificationRequested(
    -              String from,
    -              String packetID,
    -              MessageEventManager messageEventManager) {
    -              super.offlineNotificationRequested(from, packetID, messageEventManager);
    -              // The XMPP server should take care of this request. Do nothing.
    -              System.out.println("Offline Notification Requested (" + from + ", " + packetID + ")");
    -          }
    -      });
    -
    -      // User1 creates a chat with user2
    -      Chat chat1 = conn1.createChat(user2);
    -    
    -      // User1 creates a message to send to user2
    -      Message msg = chat1.createMessage();
    -      msg.setSubject("Any subject you want");
    -      msg.setBody("An interesting body comes here...");
    -      // User1 adds to the message all the notifications requests (offline, delivered, displayed,
    -      // composing)
    -      MessageEventManager.addNotificationsRequests(msg, true, true, true, true);
    -    
    -      // User1 sends the message that contains the notifications request
    -      chat1.sendMessage(msg);
    -      Thread.sleep(500);
    -      // User2 sends to the message's sender that the message's receiver cancelled composing a reply
    -      messageEventManager.sendCancelledNotification(user1, msg.getPacketID());
    -
    -
    - -
    - -

    - -Description

    - -Once you have requested for event notifications you will start to receive notifications of events. You can -receive notifications of the following events: delivered, displayed, composing, offline and cancelled. You -will probably want to react to some or all of these events.

    - -Usage

    - -The general idea is to create a new MessageEventNotificationListener that will listen to the event notifications -and react with custom logic. Then you will have to add the listener to the MessageEventManager that works on -the desired XMPPConnection. -

      -
    • To create a new MessageEventManager use the MessageEventManager(XMPPConnection) constructor. -
    • -
    • To create an event notifications listener create a class that implements the MessageEventNotificationListener - interface. -
    • -
    • To add a listener to the messageEventManager use the MessageEventManager's message -addMessageEventNotificationListener(MessageEventNotificationListener).
    • -

    - -Example

    -Below you can find an example that logs in a user to the server, adds a MessageEventNotificationListener -to a MessageEventManager that will listen and react to the event notifications, creates a message, adds -the requests for notifications and sends the message. -

    -
          // Connect to the server and log in
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -  
    -      // Create a MessageEventManager
    -      MessageEventManager messageEventManager = new MessageEventManager(conn1);
    -      // Add the listener that will react to the event notifications
    -      messageEventManager.addMessageEventNotificationListener(new MessageEventNotificationListener() {
    -          public void deliveredNotification(String from, String packetID) {
    -              System.out.println("The message has been delivered (" + from + ", " + packetID + ")");
    -          }
    -    
    -          public void displayedNotification(String from, String packetID) {
    -              System.out.println("The message has been displayed (" + from + ", " + packetID + ")");
    -          }
    -    
    -          public void composingNotification(String from, String packetID) {
    -              System.out.println("The message's receiver is composing a reply (" + from + ", " + packetID + ")");
    -          }
    -    
    -          public void offlineNotification(String from, String packetID) {
    -              System.out.println("The message's receiver is offline (" + from + ", " + packetID + ")");
    -          }
    -    
    -          public void cancelledNotification(String from, String packetID) {
    -              System.out.println("The message's receiver cancelled composing a reply (" + from + ", " + packetID + ")");
    -          }
    -      });
    -
    -      // Create a chat with user2
    -      Chat chat1 = conn1.createChat(user2);
    -    
    -      // Create a message to send
    -      Message msg = chat1.createMessage();
    -      msg.setSubject("Any subject you want");
    -      msg.setBody("An interesting body comes here...");
    -      // Add to the message all the notifications requests (offline, delivered, displayed,
    -      // composing)
    -      MessageEventManager.addNotificationsRequests(msg, true, true, true, true);
    -    
    -      // Send the message that contains the notifications request
    -      chat1.sendMessage(msg);
    -
    -
    - - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/muc.html b/CopyOftrunk/documentation/extensions/muc.html deleted file mode 100644 index ead69564a..000000000 --- a/CopyOftrunk/documentation/extensions/muc.html +++ /dev/null @@ -1,619 +0,0 @@ - - -Multi User Chat - - - - - -
    Multi User Chat

    - -Allows configuration of, participation in, and administration of individual text-based conference rooms.

    - -

    -JEP related: JEP-45 - -
    - -

    - -Description

    - -Allowed users may create new rooms. There are two types of rooms that you can create. Instant rooms -which are available for immediate access and are automatically created based on some default -configuration and Reserved rooms which are manually configured by the room creator before -anyone is allowed to enter.

    - -Usage

    - -In order to create a room you will need to first create an instance of MultiUserChat. The -room name passed to the constructor will be the name of the room to create. The next step is to send -create(String nickname) to the MultiUserChat instance where nickname is the nickname -to use when joining the room.

    - -Depending on the type of room that you want to create you will have to use different configuration forms. In -order to create an Instant room just send sendConfigurationForm(Form form) where form is an empty form. -But if you want to create a Reserved room then you should first get the room's configuration form, complete -the form and finally send it back to the server.

    - -Examples

    - -In this example we can see how to create an instant room:
    -

    -
          // Create a MultiUserChat using an XMPPConnection for a room
    -      MultiUserChat muc = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -
    -      // Create the room
    -      muc.create("testbot");
    -
    -      // Send an empty room configuration form which indicates that we want
    -      // an instant room
    -      muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
    -
    -
    - -In this example we can see how to create a reserved room. The form is completed with default values:
    -
    -
          // Create a MultiUserChat using an XMPPConnection for a room
    -      MultiUserChat muc = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -
    -      // Create the room
    -      muc.create("testbot");
    -
    -      // Get the the room's configuration form
    -      Form form = muc.getConfigurationForm();
    -      // Create a new form to submit based on the original form
    -      Form submitForm = form.createAnswerForm();
    -      // Add default answers to the form to submit
    -      for (Iterator fields = form.getFields(); fields.hasNext();) {
    -          FormField field = (FormField) fields.next();
    -          if (!FormField.TYPE_HIDDEN.equals(field.getType()) && field.getVariable() != null) {
    -              // Sets the default value as the answer
    -              submitForm.setDefaultAnswer(field.getVariable());
    -          }
    -      }
    -      // Sets the new owner of the room
    -      List owners = new ArrayList();
    -      owners.add("johndoe@jabber.org");
    -      submitForm.setAnswer("muc#roomconfig_roomowners", owners);
    -      // Send the completed form (with default values) to the server to configure the room
    -      muc.sendConfigurationForm(submitForm);
    -
    -
    - -
    - -

    - -Description

    - -Your usual first step in order to send messages to a room is to join the room. Multi User Chat allows -to specify several parameter while joining a room. Basically you can control the amount of history to -receive after joining the room as well as provide your nickname within the room and a password if the -room is password protected.

    - -Usage

    - -In order to join a room you will need to first create an instance of MultiUserChat. The -room name passed to the constructor will be the name of the room to join. The next step is to send -join(...) to the MultiUserChat instance. But first you will have to decide which -join message to send. If you want to just join the room without a password and without specifying the amount -of history to receive then you could use join(String nickname) where nickname if your nickname in -the room. In case the room requires a password in order to join you could then use -join(String nickname, String password). And finally, the most complete way to join a room is to send -join(String nickname, String password, DiscussionHistory history, long timeout) -where nickname is your nickname in the room, , password is your password to join the room, history is -an object that specifies the amount of history to receive and timeout is the milliseconds to wait -for a response from the server.

    - -Examples

    - -In this example we can see how to join a room with a given nickname:
    -

    -
          // Create a MultiUserChat using an XMPPConnection for a room
    -      MultiUserChat muc2 = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -
    -      // User2 joins the new room
    -      // The room service will decide the amount of history to send
    -      muc2.join("testbot2");
    -
    -
    - -In this example we can see how to join a room with a given nickname and password:
    -
    -
          // Create a MultiUserChat using an XMPPConnection for a room
    -      MultiUserChat muc2 = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -
    -      // User2 joins the new room using a password
    -      // The room service will decide the amount of history to send
    -      muc2.join("testbot2", "password");
    -
    -
    - -In this example we can see how to join a room with a given nickname specifying the amount of history -to receive:
    -
    -
          // Create a MultiUserChat using an XMPPConnection for a room
    -      MultiUserChat muc2 = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -
    -      // User2 joins the new room using a password and specifying
    -      // the amount of history to receive. In this example we are requesting the last 5 messages.
    -      DiscussionHistory history = new DiscussionHistory();
    -      history.setMaxStanzas(5);
    -      muc2.join("testbot2", "password", history, SmackConfiguration.getPacketReplyTimeout());
    -
    -
    - -
    - -

    - -Description

    - -It can be useful to invite another user to a room in which one is an occupant. Depending on the -room's type the invitee could receive a password to use to join the room and/or be added to the -member list if the room is of type members-only. Smack allows to send room invitations and let -potential invitees to listening for room invitations and inviters to listen for invitees' -rejections.

    - -Usage

    - -In order to invite another user to a room you must be already joined to the room. Once you are -joined just send invite(String participant, String reason) to the MultiUserChat -where participant is the user to invite to the room (e.g. hecate@shakespeare.lit) and reason is -the reason why the user is being invited.

    - -If potential invitees want to listen for room invitations then the invitee must add an InvitationListener -to the MultiUserChat class. Since the InvitationListener is an interface, -it is necessary to create a class that implements this interface. If an inviter wants to -listen for room invitation rejections, just add an InvitationRejectionListener -to the MultiUserChat. InvitationRejectionListener is also an -interface so you will need to create a class that implements this interface.

    - -Examples

    - -In this example we can see how to invite another user to the room and lister for possible rejections:
    -

    -
          // User2 joins the room
    -      MultiUserChat muc2 = new MultiUserChat(conn2, room);
    -      muc2.join("testbot2");
    -
    -      // User2 listens for invitation rejections
    -      muc2.addInvitationRejectionListener(new InvitationRejectionListener() {
    -          public void invitationDeclined(String invitee, String reason) {
    -              // Do whatever you need here...
    -          }
    -      });
    -
    -      // User2 invites user3 to join to the room
    -      muc2.invite("user3@host.org/Smack", "Meet me in this excellent room");
    -
    -
    - -In this example we can see how to listen for room invitations and decline invitations:
    -
    -
          // User3 listens for MUC invitations
    -      MultiUserChat.addInvitationListener(conn3, new InvitationListener() {
    -          public void invitationReceived(XMPPConnection conn, String room, String inviter, String reason, String password) {
    -              // Reject the invitation
    -              MultiUserChat.decline(conn, room, inviter, "I'm busy right now");
    -          }
    -      });
    -
    -
    - -
    - -

    - -Description

    - -A user may want to discover if one of the user's contacts supports the Multi-User Chat protocol.

    - -Usage

    - -In order to discover if one of the user's contacts supports MUC just send -isServiceEnabled(XMPPConnection connection, String user) to the MultiUserChat -class where user is a fully qualified XMPP ID, e.g. jdoe@example.com. You will receive -a boolean indicating whether the user supports MUC or not.

    - -Examples

    - -In this example we can see how to discover support of MUC:
    -

    -
          // Discover whether user3@host.org supports MUC or not
    -      boolean supports = MultiUserChat.isServiceEnabled(conn, "user3@host.org/Smack");
    -
    -
    - -
    - -

    - -Description

    - -A user may also want to query a contact regarding which rooms the contact is in.

    - -Usage

    - -In order to get the rooms where a user is in just send -getJoinedRooms(XMPPConnection connection, String user) to the MultiUserChat -class where user is a fully qualified XMPP ID, e.g. jdoe@example.com. You will get an Iterator -of Strings as an answer where each String represents a room name.

    - -Examples

    - -In this example we can see how to get the rooms where a user is in:
    -

    -
          // Get the rooms where user3@host.org has joined
    -      Iterator joinedRooms = MultiUserChat.getJoinedRooms(conn, "user3@host.org/Smack");
    -
    -
    - -
    - -

    - -Description

    - -A user may need to discover information about a room without having to actually join the room. The server -will provide information only for public rooms.

    - -Usage

    - -In order to discover information about a room just send getRoomInfo(XMPPConnection connection, String room) -to the MultiUserChat class where room is the XMPP ID of the room, e.g. -roomName@conference.myserver. You will get a RoomInfo object that contains the discovered room -information.

    - -Examples

    - -In this example we can see how to discover information about a room:
    -

    -
          // Discover information about the room roomName@conference.myserver
    -      RoomInfo info = MultiUserChat.getRoomInfo(conn, "roomName@conference.myserver");
    -      System.out.println("Number of occupants:" + info.getOccupantsCount());
    -      System.out.println("Room Subject:" + info.getSubject());
    -
    -
    - -
    - -

    - -Description

    - -A room occupant may want to start a private chat with another room occupant even though they -don't know the fully qualified XMPP ID (e.g. jdoe@example.com) of each other.

    - -Usage

    - -To create a private chat with another room occupant just send createPrivateChat(String participant) -to the MultiUserChat that you used to join the room. The parameter participant is the -occupant unique room JID (e.g. 'darkcave@macbeth.shakespeare.lit/Paul'). You will receive -a regular Chat object that you can use to chat with the other room occupant.

    - -Examples

    - -In this example we can see how to start a private chat with another room occupant:
    -

    -
          // Start a private chat with another participant
    -      Chat chat = muc2.createPrivateChat("myroom@conference.jabber.org/johndoe");
    -      chat.sendMessage("Hello there");
    -
    -
    - -
    - -

    - -Description

    - -A common feature of multi-user chat rooms is the ability to change the subject within the room. As a -default, only users with a role of "moderator" are allowed to change the subject in a room. Although -some rooms may be configured to allow a mere participant or even a visitor to change the subject.

    - -Every time the room's subject is changed you may want to be notified of the modification. The new subject -could be used to display an in-room message.

    - -Usage

    - -In order to modify the room's subject just send changeSubject(String subject) to the -MultiUserChat that you used to join the room where subject is the new room's subject. On -the other hand, if you want to be notified whenever the room's subject is modified you should add a -SubjectUpdatedListener to the MultiUserChat by sending -addSubjectUpdatedListener(SubjectUpdatedListener listener) to the MultiUserChat. -Since the SubjectUpdatedListener is an interface, it is necessary to create a class -that implements this interface.

    - -Examples

    - -In this example we can see how to change the room's subject and react whenever the room's subject is -modified:
    -

    -
          // An occupant wants to be notified every time the room's subject is changed
    -      muc3.addSubjectUpdatedListener(new SubjectUpdatedListener() {
    -          public void subjectUpdated(String subject, String from) {
    -              ....
    -          }
    -      });
    -
    -      // A room's owner changes the room's subject
    -      muc2.changeSubject("New Subject");
    -
    -
    - -
    - -

    - -Description

    - -There are four defined roles that an occupant can have:

    -
      -
    1. Moderator
    2. -
    3. Participant
    4. -
    5. Visitor
    6. -
    7. None (the absence of a role)
    8. -

    - -These roles are temporary in that they do not persist across a user's visits to the room -and can change during the course of an occupant's visit to the room.

    - -A moderator is the most powerful occupant within the context of the room, and can to some -extent manage other occupants' roles in the room. A participant has fewer privileges than a -moderator, although he or she always has the right to speak. A visitor is a more restricted -role within the context of a moderated room, since visitors are not allowed to send messages -to all occupants.

    - -Roles are granted, revoked, and maintained based on the occupant's room nickname or full -JID. Whenever an occupant's role is changed Smack will trigger specific events.

    - -Usage

    - -In order to grant voice (i.e. make someone a participant) just send the message -grantVoice(String nickname) to MultiUserChat. Use revokeVoice(String nickname) -to revoke the occupant's voice (i.e. make the occupant a visitor).

    - -In order to grant moderator privileges to a participant or visitor just send the message -grantModerator(String nickname) to MultiUserChat. Use revokeModerator(String nickname) -to revoke the moderator privilege from the occupant thus making the occupant a participant.

    - -Smack allows you to listen for role modification events. If you are interested in listening role modification -events of any occupant then use the listener ParticipantStatusListener. But if you are interested -in listening for your own role modification events, use the listener UserStatusListener. Both listeners -should be added to the MultiUserChat by using -addParticipantStatusListener(ParticipantStatusListener listener) or -addUserStatusListener(UserStatusListener listener) respectively. These listeners include several notification -events but you may be interested in just a few of them. Smack provides default implementations for these listeners -avoiding you to implement all the interfaces' methods. The default implementations are DefaultUserStatusListener -and DefaultParticipantStatusListener. Below you will find the sent messages to the listeners whenever -an occupant's role has changed.

    - -These are the triggered events when the role has been upgraded: -

    - - - - - - - - - - -
    OldNewEvents
    NoneVisitor--
    VisitorParticipantvoiceGranted
    ParticipantModeratormoderatorGranted
    NoneParticipantvoiceGranted
    NoneModeratorvoiceGranted + moderatorGranted
    VisitorModeratorvoiceGranted + moderatorGranted

    - -These are the triggered events when the role has been downgraded: -

    - - - - - - - - - - -
    OldNewEvents
    ModeratorParticipantmoderatorRevoked
    ParticipantVisitorvoiceRevoked
    VisitorNonekicked
    ModeratorVisitorvoiceRevoked + moderatorRevoked
    ModeratorNonekicked
    ParticipantNonekicked

    - -Examples

    - -In this example we can see how to grant voice to a visitor and listen for the notification events:
    -

    -
          // User1 creates a room
    -      muc = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -      muc.create("testbot");
    -
    -      // User1 (which is the room owner) configures the room as a moderated room
    -      Form form = muc.getConfigurationForm();
    -      Form answerForm = form.createAnswerForm();
    -      answerForm.setAnswer("muc#roomconfig_moderatedroom", "1");
    -      muc.sendConfigurationForm(answerForm);
    -
    -      // User2 joins the new room (as a visitor)
    -      MultiUserChat muc2 = new MultiUserChat(conn2, "myroom@conference.jabber.org");
    -      muc2.join("testbot2");
    -      // User2 will listen for his own "voice" notification events
    -      muc2.addUserStatusListener(new DefaultUserStatusListener() {
    -          public void voiceGranted() {
    -              super.voiceGranted();
    -              ...
    -          }
    -          public void voiceRevoked() {
    -              super.voiceRevoked();
    -              ...
    -          }
    -      });
    -
    -      // User3 joins the new room (as a visitor)
    -      MultiUserChat muc3 = new MultiUserChat(conn3, "myroom@conference.jabber.org");
    -      muc3.join("testbot3");
    -      // User3 will lister for other occupants "voice" notification events
    -      muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() {
    -          public void voiceGranted(String participant) {
    -              super.voiceGranted(participant);
    -              ...
    -          }
    -
    -          public void voiceRevoked(String participant) {
    -              super.voiceRevoked(participant);
    -              ...
    -          }
    -      });
    -
    -      // The room's owner grants voice to user2
    -      muc.grantVoice("testbot2");
    -
    -
    - -
    - -

    - -Description

    - -There are five defined affiliations that a user can have in relation to a room:

    -
      -
    1. Owner
    2. -
    3. Admin
    4. -
    5. Member
    6. -
    7. Outcast
    8. -
    9. None (the absence of an affiliation)
    10. -

    - -These affiliations are semi-permanent in that they persist across a user's visits to the room and -are not affected by happenings in the room. Affiliations are granted, revoked, and maintained -based on the user's bare JID.

    - -If a user without a defined affiliation enters a room, the user's affiliation is defined as "none"; -however, this affiliation does not persist across visits.

    - -Owners and admins are by definition immune from certain actions. Specifically, an owner or admin cannot -be kicked from a room and cannot be banned from a room. An admin must first lose his or her affiliation -(i.e., have an affiliation of "none" or "member") before such actions could be performed -on them.

    - -The member affiliation provides a way for a room owner or admin to specify a "whitelist" of users -who are allowed to enter a members-only room. When a member enters a members-only room, his or her affiliation -does not change, no matter what his or her role is. The member affiliation also provides a way for users to -effectively register with an open room and thus be permanently associated with that room in some way (one -result may be that the user's nickname is reserved in the room).

    - -An outcast is a user who has been banned from a room and who is not allowed to enter the room. Whenever a -user's affiliation is changed Smack will trigger specific events.

    - -Usage

    - -In order to grant membership to a room, administrator privileges or owner priveliges just send -grantMembership(String jid), grantAdmin(String jid) or grantOwnership(String jid) -to MultiUserChat respectively. Use revokeMembership(String jid), revokeAdmin(String jid) -or revokeOwnership(String jid) to revoke the membership to a room, administrator privileges or -owner priveliges respectively.

    - -In order to ban a user from the room just send the message banUser(String jid, String reason) to -MultiUserChat.

    - -Smack allows you to listen for affiliation modification events. If you are interested in listening affiliation modification -events of any user then use the listener ParticipantStatusListener. But if you are interested -in listening for your own affiliation modification events, use the listener UserStatusListener. Both listeners -should be added to the MultiUserChat by using -addParticipantStatusListener(ParticipantStatusListener listener) or -addUserStatusListener(UserStatusListener listener) respectively. These listeners include several notification -events but you may be interested in just a few of them. Smack provides default implementations for these listeners -avoiding you to implement all the interfaces' methods. The default implementations are DefaultUserStatusListener -and DefaultParticipantStatusListener. Below you will find the sent messages to the listeners whenever -a user's affiliation has changed.

    - -These are the triggered events when the affiliation has been upgraded: -

    - - - - - - - - - - -
    OldNewEvents
    NoneMembermembershipGranted
    MemberAdminmembershipRevoked + adminGranted
    AdminOwneradminRevoked + ownershipGranted
    NoneAdminadminGranted
    NoneOwnerownershipGranted
    MemberOwnermembershipRevoked + ownershipGranted

    - -These are the triggered events when the affiliation has been downgraded: -

    - - - - - - - - - - - -
    OldNewEvents
    OwnerAdminownershipRevoked + adminGranted
    AdminMemberadminRevoked + membershipGranted
    MemberNonemembershipRevoked
    OwnerMemberownershipRevoked + membershipGranted
    OwnerNoneownershipRevoked
    AdminNoneadminRevoked
    AnyoneOutcastbanned

    - -Examples

    - -In this example we can see how to grant admin privileges to a user and listen for the notification events:
    -

    -
          // User1 creates a room
    -      muc = new MultiUserChat(conn1, "myroom@conference.jabber.org");
    -      muc.create("testbot");
    -
    -      // User1 (which is the room owner) configures the room as a moderated room
    -      Form form = muc.getConfigurationForm();
    -      Form answerForm = form.createAnswerForm();
    -      answerForm.setAnswer("muc#roomconfig_moderatedroom", "1");
    -      muc.sendConfigurationForm(answerForm);
    -
    -      // User2 joins the new room (as a visitor)
    -      MultiUserChat muc2 = new MultiUserChat(conn2, "myroom@conference.jabber.org");
    -      muc2.join("testbot2");
    -      // User2 will listen for his own admin privileges
    -      muc2.addUserStatusListener(new DefaultUserStatusListener() {
    -          public void membershipRevoked() {
    -              super.membershipRevoked();
    -              ...
    -          }
    -          public void adminGranted() {
    -              super.adminGranted();
    -              ...
    -          }
    -      });
    -
    -      // User3 joins the new room (as a visitor)
    -      MultiUserChat muc3 = new MultiUserChat(conn3, "myroom@conference.jabber.org");
    -      muc3.join("testbot3");
    -      // User3 will lister for other users admin privileges
    -      muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() {
    -          public void membershipRevoked(String participant) {
    -              super.membershipRevoked(participant);
    -              ...
    -          }
    -          public void adminGranted(String participant) {
    -              super.adminGranted(participant);
    -              ...
    -          }
    -      });
    -
    -      // The room's owner grants admin privileges to user2
    -      muc.grantAdmin("user2@jabber.org");
    -
    -
    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/privatedata.html b/CopyOftrunk/documentation/extensions/privatedata.html deleted file mode 100644 index 4d0f65887..000000000 --- a/CopyOftrunk/documentation/extensions/privatedata.html +++ /dev/null @@ -1,30 +0,0 @@ - - -Private Data - - - - - -
    Private Data

    - -Manages private data, which is a mechanism to allow users to store arbitrary XML -data on an XMPP server. Each private data chunk is defined by a element name and -XML namespace. Example private data: - -

    -<color xmlns="http://example.com/xmpp/color">
    -    <favorite>blue</blue>
    -    <leastFavorite>puce</leastFavorite>
    -</color>
    -

    - -JEP related: JEP-49 - -


    - -More coming soon. - - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/rosterexchange.html b/CopyOftrunk/documentation/extensions/rosterexchange.html deleted file mode 100644 index e014da111..000000000 --- a/CopyOftrunk/documentation/extensions/rosterexchange.html +++ /dev/null @@ -1,179 +0,0 @@ - - -Roster Item Exchange - - - - - -
    Roster Item Exchange

    -This extension is used to send rosters, roster groups and roster entries from one XMPP -Entity to another. It also provides an easy way to hook up custom logic when entries -are received from other XMPP clients. -

    Follow these links to learn how to send and receive roster items:

    - -JEP related: JEP-93 - -
    - -

    - -Description

    - -Sometimes it is useful to send a whole roster to another user. Smack provides a -very easy way to send a complete roster to another XMPP client.

    - -Usage

    - -Create an instance of RosterExchangeManager and use the #send(Roster, String) -message to send a roster to a given user. The first parameter is the roster to send and -the second parameter is the id of the user that will receive the roster entries.

    - -Example

    - -In this example we can see how user1 sends his roster to user2. -

    -
          // Connect to the server and log in
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -    
    -      // Create a new roster exchange manager on conn1
    -      RosterExchangeManager rosterExchangeManager = new RosterExchangeManager(conn1);
    -      // Send user1's roster to user2
    -      rosterExchangeManager.send(conn1.getRoster(), user2);
    -
    -
    - -
    - -

    - -Description

    - -It is also possible to send a roster group to another XMPP client. A roster group groups -a set of roster entries under a name.

    - -Usage

    - -Create an instance of RosterExchangeManager and use the #send(RosterGroup, String) -message to send a roster group to a given user. The first parameter is the roster group to send and -the second parameter is the id of the user that will receive the roster entries.

    - -Example

    - -In this example we can see how user1 sends his roster groups to user2. -

    -
          // Connect to the server and log in
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -    
    -      // Create a new roster exchange manager on conn1
    -      RosterExchangeManager rosterExchangeManager = new RosterExchangeManager(conn1);
    -      // Send user1's RosterGroups to user2
    -      for (Iterator it = conn1.getRoster().getGroups(); it.hasNext(); )
    -          rosterExchangeManager.send((RosterGroup)it.next(), user2);
    -
    -
    - -
    - -

    - -Description

    - -Sometimes you may need to send a single roster entry to another XMPP client. Smack also lets you send -items at this granularity level.

    - -Usage

    - -Create an instance of RosterExchangeManager and use the #send(RosterEntry, String) -message to send a roster entry to a given user. The first parameter is the roster entry to send and -the second parameter is the id of the user that will receive the roster entries.

    - -Example

    - -In this example we can see how user1 sends a roster entry to user2. -

    -
          // Connect to the server and log in
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -    
    -      // Create a new roster exchange manager on conn1
    -      RosterExchangeManager rosterExchangeManager = new RosterExchangeManager(conn1);
    -      // Send a roster entry (any) to user2
    -      rosterExchangeManager1.send((RosterEntry)conn1.getRoster().getEntries().next(), user2);
    - 
    -
    - -
    - -

    - -Description

    - -Since roster items are sent between XMPP clients, it is necessary to listen to possible roster entries -receptions. Smack provides a mechanism that you can use to execute custom logic when roster entries are -received.

    - -Usage

    - -

      -
    1. Create a class that implements the RosterExchangeListener interface.
    2. -
    3. Implement the method entriesReceived(String, Iterator) that will be called when new entries - are received with custom logic.
    4. -
    5. Add the listener to the RosterExchangeManager that works on the desired XMPPConnection.
    6. -

    - -Example

    - -In this example we can see how user1 sends a roster entry to user2 and user2 adds the received -entries to his roster. -

    -
          // Connect to the server and log in the users
    -      conn1 = new XMPPConnection(host);
    -      conn1.login(server_user1, pass1);
    -      conn2 = new XMPPConnection(host);
    -      conn2.login(server_user2, pass2);
    -      final Roster user2_roster = conn2.getRoster();
    -    
    -      // Create a RosterExchangeManager that will help user2 to listen and accept
    -      the entries received
    -      RosterExchangeManager rosterExchangeManager2 = new RosterExchangeManager(conn2);
    -      // Create a RosterExchangeListener that will iterate over the received roster entries
    -      RosterExchangeListener rosterExchangeListener = new RosterExchangeListener() {
    -          public void entriesReceived(String from, Iterator remoteRosterEntries) {
    -              while (remoteRosterEntries.hasNext()) {
    -                  try {
    -                      // Get the received entry
    -                      RemoteRosterEntry remoteRosterEntry = (RemoteRosterEntry) remoteRosterEntries.next();
    -                      // Display the remote entry on the console
    -                      System.out.println(remoteRosterEntry);
    -                      // Add the entry to the user2's roster
    -                      user2_roster.createEntry(
    -                          remoteRosterEntry.getUser(),
    -                          remoteRosterEntry.getName(),
    -                          remoteRosterEntry.getGroupArrayNames());
    -                  }
    -                  catch (XMPPException e) {
    -                      e.printStackTrace();
    -                  }
    -              }
    -          }
    -      };
    -      // Add the RosterExchangeListener to the RosterExchangeManager that user2 is using
    -      rosterExchangeManager2.addRosterListener(rosterExchangeListener);
    -    
    -      // Create a RosterExchangeManager that will help user1 to send his roster
    -      RosterExchangeManager rosterExchangeManager1 = new RosterExchangeManager(conn1);
    -      // Send user1's roster to user2
    -      rosterExchangeManager1.send(conn1.getRoster(), user2);
    -
    -
    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/style.css b/CopyOftrunk/documentation/extensions/style.css deleted file mode 100644 index 5fbf1a70f..000000000 --- a/CopyOftrunk/documentation/extensions/style.css +++ /dev/null @@ -1,57 +0,0 @@ -BODY { - font-size : 100%; - background-color : #fff; -} -BODY, TD, TH { - font-family : tahoma, arial, helvetica; - font-size : 0.8em; -} -PRE, TT, CODE { - font-family : courier new, monospaced; - font-size : 1.0em; -} -A:hover { - text-decoration : none; -} -LI { - padding-bottom : 4px; -} -.header { - font-size : 1.4em; - font-weight : bold; - width : 100%; - border-bottom : 1px #ccc solid; - padding-bottom : 2px; -} -.subheader { - font-size: 1.1em; - font-weight : bold; -} -.footer { - font-size : 0.8em; - color : #999; - text-align : center; - width : 100%; - border-top : 1px #ccc solid; - padding-top : 2px; -} -.code { - border : 1px #ccc solid; - padding : 0em 1.0em 0em 1.0em; - margin : 4px 0px 4px 0px; -} -.nav, .nav A { - font-family : verdana; - font-size : 0.85em; - color : #600; - text-decoration : none; - font-weight : bold; -} -.nav { - width : 100%; - border-bottom : 1px #ccc solid; - padding : 3px 3px 5px 1px; -} -.nav A:hover { - text-decoration : underline; -} \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/time.html b/CopyOftrunk/documentation/extensions/time.html deleted file mode 100644 index 7c00efa77..000000000 --- a/CopyOftrunk/documentation/extensions/time.html +++ /dev/null @@ -1,22 +0,0 @@ - - - Time - - - - - -
    Entity Time Exchange

    - -Supports a protocol that XMPP clients use to exchange their respective local -times and time zones.

    - -JEP related: JEP-90 - -


    - -More coming soon. - - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/toc.html b/CopyOftrunk/documentation/extensions/toc.html deleted file mode 100644 index b05e0d8f4..000000000 --- a/CopyOftrunk/documentation/extensions/toc.html +++ /dev/null @@ -1,26 +0,0 @@ - - -Smack Extensions User Manual - - - - - - -Introduction

    - -

    Smack Extensions

    - -Private Data
    -XHTML Messages
    -Message Events
    -Data Forms
    -Multi User Chat
    -Roster Item Exchange
    -Time Exchange
    -Group Chat Invitations
    -Service Discovery
    -

    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/extensions/xhtml.html b/CopyOftrunk/documentation/extensions/xhtml.html deleted file mode 100644 index f283f57ba..000000000 --- a/CopyOftrunk/documentation/extensions/xhtml.html +++ /dev/null @@ -1,200 +0,0 @@ - - -XHTML Support - - - - - -
    XHTML Messages

    - -Provides the ability to send and receive formatted messages using XHTML. - -

    Follow these links to learn how to compose, send, receive and discover support for -XHTML messages:

    - -JEP related: JEP-71 - -
    - -

    - -Description

    - -The first step in order to send an XHTML message is to compose it. Smack provides a special -class that helps to build valid XHTML messages hiding any low level complexity. -For special situations, advanced users may decide not to use the helper class and generate -the XHTML by themselves. Even for these situations Smack provides a well defined entry point -in order to add the generated XHTML content to a given message.

    - -

    -Note: not all clients are able to view XHTML formatted messages. Therefore, -it's recommended that you include a normal body in that message that is either an -unformatted version of the text or a note that XHTML support is required -to view the message contents.

    - -Usage

    - -Create an instance of XHTMLText specifying the style and language of the body. -You can add several XHTML bodies to the message but each body should be for a different language. -Once you have an XHTMLText you can start to append tags and text to it. In order to append tags there -are several messages that you can use. For each XHTML defined tag there is a message that you can send. -In order to add text you can send the message #append(String textToAppend).

    - -

    After you have configured the XHTML text, the last step you have to do is to add the XHTML text -to the message you want to send. If you decided to create the XHTML text by yourself, you will have to -follow this last step too. In order to add the XHTML text to the message send the message -#addBody(Message message, String body) to the XHTMLManager class where message -is the message that will receive the XHTML body and body is the string to add as an XHTML body to -the message.

    - -Example

    - -In this example we can see how to compose the following XHTML message:
    -<body><p style='font-size:large'>Hey John, this is my new <span - style='color:green'>green</span><em>!!!!</em></p></body> -

    -
          // Create a message to send
    -      Message msg = chat.createMessage();
    -      msg.setSubject("Any subject you want");
    -      msg.setBody("Hey John, this is my new green!!!!");
    -
    -      // Create an XHTMLText to send with the message
    -      XHTMLText xhtmlText = new XHTMLText(null, null);
    -      xhtmlText.appendOpenParagraphTag("font-size:large");
    -      xhtmlText.append("Hey John, this is my new ");
    -      xhtmlText.appendOpenSpanTag("color:green");
    -      xhtmlText.append("green");
    -      xhtmlText.appendCloseSpanTag();
    -      xhtmlText.appendOpenEmTag();
    -      xhtmlText.append("!!!!");
    -      xhtmlText.appendCloseEmTag();
    -      xhtmlText.appendCloseParagraphTag();
    -      
    -      // Add the XHTML text to the message
    -      XHTMLManager.addBody(msg, xhtmlText.toString());
    -
    -
    -
    - -
    - -

    - -Description

    - -After you have composed an XHTML message you will want to send it. Once you have added -the XHTML content to the message you want to send you are almost done. The last step is to send -the message as you do with any other message.

    - -Usage

    - -An XHTML message is like any regular message, therefore to send the message you can follow -the usual steps you do in order to send a message. For example, to send a message as part -of a chat just use the message #send(Message) of Chat or you can use -the message #send(Packet) of XMPPConnection.

    - -Example

    - -In this example we can see how to send a message with XHTML content as part of a chat. -

    -
          // Create a message to send
    -      Message msg = chat.createMessage();
    -      // Obtain the XHTML text to send from somewhere
    -      String xhtmlBody = getXHTMLTextToSend();
    -
    -      // Add the XHTML text to the message
    -      XHTMLManager.addBody(msg, xhtmlBody);
    -
    -      // Send the message that contains the XHTML
    -      chat.sendMessage(msg);
    -
    -
    - -
    - -

    - -Description

    - -It is also possible to obtain the XHTML content from a received message. Remember -that the specification defines that a message may contain several XHTML bodies -where each body should be for a different language.

    - -Usage

    - -To get the XHTML bodies of a given message just send the message #getBodies(Message) - to the class XHTMLManager. The answer of this message will be an - Iterator with the different XHTML bodies of the message or null if none.

    - -Example

    - -In this example we can see how to create a PacketListener that obtains the XHTML bodies of any received message. -

    -
          // Create a listener for the chat and display any XHTML content
    -      PacketListener packetListener = new PacketListener() {
    -          public void processPacket(Packet packet) {
    -              Message message = (Message) packet;
    -              // Obtain the XHTML bodies of the message
    -              Iterator it = XHTMLManager.getBodies(message);
    -              if (it != null) {
    -                 // Display the bodies on the console
    -                 while (it.hasNext()) {
    -	             String body = (String) it.next();
    -	             System.out.println(body);
    -	         }
    -	      }
    -            };
    -      chat.addMessageListener(packetListener);
    -
    -
    -
    - -
    - -

    - -Description

    - -Before you start to send XHTML messages to a user you should discover if the user supports XHTML messages. -There are two ways to achieve the discovery, explicitly and implicitly. Explicit is when you first try -to discover if the user supports XHTML before sending any XHTML message. Implicit is when you send -XHTML messages without first discovering if the conversation partner's client supports XHTML and depenging on -the answer (normal message or XHTML message) you find out if the user supports XHTML messages or not. This -section explains how to explicitly discover for XHTML support.

    - -Usage

    - -In order to discover if a remote user supports XHTML messages send #isServiceEnabled(XMPPConnection -connection, String userID) to the class XHTMLManager where connection is the connection -to use to perform the service discovery and userID is the user to check (A fully qualified xmpp ID, -e.g. jdoe@example.com). This message will return true if the specified user handles XHTML messages.

    - -Example

    - -In this example we can see how to discover if a remote user supports XHTML Messages. -

    -
          Message msg = chat.createMessage();
    -      // Include a normal body in the message
    -      msg.setBody(getTextToSend());
    -      // Check if the other user supports XHTML messages
    -      if (XHTMLManager.isServiceEnabled(connection, chat.getParticipant())) {
    -          // Obtain the XHTML text to send from somewhere
    -          String xhtmlBody = getXHTMLTextToSend();
    -
    -          // Include an XHTML body in the message
    -          XHTMLManager.addBody(msg, xhtmlBody);
    -      }
    -
    -      // Send the message
    -      chat.sendMessage(msg);
    -
    -
    - - - diff --git a/CopyOftrunk/documentation/gettingstarted.html b/CopyOftrunk/documentation/gettingstarted.html deleted file mode 100644 index 127867885..000000000 --- a/CopyOftrunk/documentation/gettingstarted.html +++ /dev/null @@ -1,109 +0,0 @@ - - - Smack: Getting Started - Jive Software - - - - -
    -Getting Started With Smack -
    - - - -

    -This document will introduce you to the Smack API and provide an overview of -important classes and concepts. -

    - -

    -Requirements -

    - -The only requirement for Smack is JDK 1.2 or later -1. -An XML parser is embedded in the smack.jar file and no other third party -libraries are required.

    - -1 JDK 1.2 and 1.3 users that wish to use SSL connections must have the -JSSE library in their classpath. - -

    -Establishing a Connection -

    - -The XMPPConnection class is used to create a connection to an -XMPP server. To create an SSL connection, use the SSLXMPPConnection class. -Below are code examples for making a connection:

    - -

    -
    -// Create a connection to the jabber.org server.
    -XMPPConnection conn1 = new XMPPConnection("jabber.org");
    -
    -// Create a connection to the jabber.org server on a specific port.
    -XMPPConnection conn2 = new XMPPConnection("jabber.org", 5222);
    -
    -// Create an SSL connection to jabber.org.
    -XMPPConnection connection = new SSLXMPPConnection("jabber.org"); 
    -
    - -

    Once you've created a connection, you should login using a username and password -with the XMPPConnection.login(String username, String password) method. -Once you've logged in, you can being chatting with other users by creating -new Chat or GroupChat objects. - -

    -Working with the Roster -

    -The roster lets you keep track of the availability (presence) of other users. Users -can be organized into groups such as "Friends" and "Co-workers", and then you -discover whether each user is online or offline.

    - -Retrieve the roster using the XMPPConnection.getRoster() method. The roster -class allows you to find all the roster entries, the groups they belong to, and the -current presence status of each entry. - -

    -Reading and Writing Packets -

    - -Each message to the XMPP server from a client is called a packet and is -sent as XML. The org.jivesoftware.smack.packet package contains -classes that encapsulate the three different basic packet types allowed by -XMPP (message, presence, and IQ). Classes such as Chat and GroupChat -provide higher-level constructs that manage creating and sending packets -automatically, but you can also create and send packets directly. Below -is a code example for changing your presence to let people know you're unavailable -and "out fishing":

    - -

    -
    -// Create a new presence. Pass in false to indicate we're unavailable.
    -Presence presence = new Presence(Presence.Type.UNAVAILABLE);
    -presence.setStatus("Gone fishing");
    -// Send the packet (assume we have a XMPPConnection instance called "con").
    -con.sendPacket(presence);
    -
    -

    - -Smack provides two ways to read incoming packets: PacketListener, and -PacketCollector. Both use PacketFilter instances to determine -which packets should be processed. A packet listener is used for event style programming, -while a packet collector has a result queue of packets that you can do -polling and blocking operations on. So, a packet listener is useful when -you want to take some action whenever a packet happens to come in, while a -packet collector is useful when you want to wait for a specific packet -to arrive. Packet collectors and listeners can be created using an -XMPPConnection instance. - - -

    - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/images/debugwindow.gif b/CopyOftrunk/documentation/images/debugwindow.gif deleted file mode 100644 index e53c5dc3398a0088b27e6d75b53433c00837800d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15064 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%0D&_vN1&Csc6&-m=o4<*mv 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 diff --git a/CopyOftrunk/documentation/images/enhanceddebugger.png b/CopyOftrunk/documentation/images/enhanceddebugger.png deleted file mode 100644 index 741a3e250c788e1e8db5cefcad4cce3a5d4f4e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33334 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 diff --git a/CopyOftrunk/documentation/images/roster.png b/CopyOftrunk/documentation/images/roster.png deleted file mode 100644 index 5b5056fb703197820544cf94419c71eb13b06fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18413 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 N002ovPDHLkV1m9ubp8MU diff --git a/CopyOftrunk/documentation/images/smacklogo.png b/CopyOftrunk/documentation/images/smacklogo.png deleted file mode 100644 index 7ee139fbbf3894022c43a00c8aacefb1deb9eec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4538 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 diff --git a/CopyOftrunk/documentation/index.html b/CopyOftrunk/documentation/index.html deleted file mode 100644 index 282a3f745..000000000 --- a/CopyOftrunk/documentation/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - Smack Documentation - Jive Software - - - - - -
    -Smack - -Smack Documentation -
    - -

    -Contents: -

    - - - - - - - diff --git a/CopyOftrunk/documentation/messaging.html b/CopyOftrunk/documentation/messaging.html deleted file mode 100644 index 46dd5a8a1..000000000 --- a/CopyOftrunk/documentation/messaging.html +++ /dev/null @@ -1,108 +0,0 @@ - - - Smack: Chat - Jive Software - - - - - -
    -Messaging using Chat and GroupChat -
    - - - -

    -Sending messages back and forth is at the core of instant messaging. Two classes -aid in sending and receiving messages: -

      -
    • org.jivesoftware.smack.Chat -- used to send messages between two people. -
    • org.jivesoftware.smack.GroupChat -- used to join a chat room to send messages between many people. -
    - -Both the Chat and GroupChat classes use the org.jivesoftware.smack.packet.Message packet -class to send messages. In certain circumstances, you may wish to bypass the higher-level -Chat and GroupChat classes to send and listen for messages directly. -

    - -

    -Chat -

    - -A chat creates a new thread of messages (using a thread ID) between two users. The -following code snippet demonstrates how to create a new Chat with a user and then send -them a text message:

    - -

    -// Assume we've created an XMPPConnection name "connection".
    -Chat newChat = connection.createChat("jsmith@jivesoftware.com");
    -newChat.sendMessage("Howdy!");
    -

    - -The Chat.sendMessage(String) method is a convenience method that creates a Message -object, sets the body using the String parameter, then sends the message. In the case -that you wish to set additional values on a Message before sending it, use the -Chat.createMessage() and Chat.sendMessage(Message) methods, as in the -following code snippet:

    - -

    -// Assume we've created an XMPPConnection name "connection".
    -Chat newChat = connection.createChat("jsmith@jivesoftware.com");
    -Message newMessage = newChat.createMessage();
    -newMessage.setBody("Howdy!");
    -message.setProperty("favoriteColor", "red");
    -newChat.sendMessage(newMessage);
    -

    - -The Chat object allows you to easily listen for replies from the other chat participant. -The following code snippet is a parrot-bot -- it echoes back everything the other user types.

    - -

    -// Assume we've created an XMPPConnection name "connection".
    -Chat newChat = connection.createChat("jsmith@jivesoftware.com");
    -newMessage.setBody("Hi, I'm an annoying parrot-bot! Type something back to me.");
    -while (true) {
    -    // Wait for the next message the user types to us.
    -    Message message = newChat.nextMessage();
    -    // Send back the same text the other user sent us.
    -    newChat.sendMessage(message.getBody());
    -}
    -

    - -The code above uses the Chat.nextMessage() method to get the next message, which -will wait indefinitely until another message comes in. There are other methods to wait -a specific amount of time for a new message, or you can add a listener that will be notified -every time a new message arrives. - -

    -GroupChat -

    - -A group chat connects to a chat room on a server and allows you to send and receive messages -from a group of people. Before you can send or receive messages, you must join the room using -a nickname. The following code snippet connects to a chat room and sends a -message.

    - -

    -// Assume we've created an XMPPConnection name "connection".
    -GroupChat newGroupChat = connection.createGroupChat("test@jivesoftware.com");
    -// Join the group chat using the nickname "jsmith".
    -newGroupChat.join("jsmith");
    -// Send a message to all the other people in the chat room.
    -newGroupChat.sendMessage("Howdy!");
    -

    - -In general, sending and receiving messages in a group chat works very similarly to -the Chat class. Method are also provided to get the list of the other -users in the room.

    - -


    - -

    - - - diff --git a/CopyOftrunk/documentation/overview.html b/CopyOftrunk/documentation/overview.html deleted file mode 100644 index 4affaee85..000000000 --- a/CopyOftrunk/documentation/overview.html +++ /dev/null @@ -1,72 +0,0 @@ - - - Smack: Overview - Jive Software - - - - - -
    -Smack Overview -
    - - - -

    - -Smack is a library for communicating with XMPP servers to perform -instant messaging and chat.

    - -

    -Smack Key Advantages -

    - -
      -
    • Extremely simple to use, yet powerful API. Sending a text message to a user - can be accomplished in three lines of code: - -
      -XMPPConnection connection = new XMPPConnection("jabber.org");
      -connection.login("mtucker", "password");
      -connection.createChat("jsmith@jivesoftware.com").sendMessage("Howdy!");
      -
      - - -
    • Doesn't force you to code at the packet level, as other libraries do. Smack provides - intelligent higher level constructs such as the Chat and GroupChat - classes, which let you program more efficiently. - -
    • Does not require that you're familiar with the XMPP XML format, or even that you're familiar with XML. - -
    • Provides easy machine to machine communication. Smack lets you set any number of properties on - each message, including properties that are Java objects. - -
    • Open Source under the Apache License, which means you can incorporate Smack into your commercial or - non-commercial applications. -
    - -

    -About XMPP -

    - -XMPP (eXtensible Messaging and Presence Protocol) is an open, XML based protocol -making it's way through the IETF approval process under the guidance of the -Jabber Software Foundation (http://www.jabber.org). - -

    -How To Use This Documentation -

    - -This documentation assumes that you're already familiar with the main features of XMPP -instant messaging. It's also highly recommended that you open the Javadoc API guide and -use that as a reference while reading through this documentation. - -


    - - - - diff --git a/CopyOftrunk/documentation/processing.html b/CopyOftrunk/documentation/processing.html deleted file mode 100644 index d8879aeb4..000000000 --- a/CopyOftrunk/documentation/processing.html +++ /dev/null @@ -1,87 +0,0 @@ - - - Smack: Processing Incoming Packets - Jive Software - - - - - -
    -Processing Incoming Packets -
    - - - -

    - -Smack provides a flexible framework for processing incoming packets using two constructs: -

      -
    • org.jivesoftware.smack.PacketCollector -- a class that lets you - synchronously wait for new packets. -
    • org.jivesoftware.smack.PacketListener -- an interface for asynchronously - notifying you of incoming packets. -
    -A packet listener is used for event style programming, while a packet collector has a -result queue of packets that you can do polling and blocking operations on. So, a packet -listener is useful when you want to take some action whenever a packet happens to come in, -while a packet collector is useful when you want to wait for a specific packet to come -arrive. Packet collectors and listeners can be created using an XMPPConnection instance.

    - -The org.jivesoftware.smack.filter.PacketFilter interface determines which -specific packets will be delivered to a PacketCollector or PacketListener. -Many pre-defined filters can be found in the org.jivesoftware.smack.filter package. - -

    -The following code snippet demonstrates registering both a packet collector and a packet -listener:

    - -

    -// Create a packet filter to listen for new messages from a particular
    -// user. We use an AndFilter to combine two other filters.
    -PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class), 
    -        new FromContainsFilter("mary@jivesoftware.com"));
    -// Assume we've created an XMPPConnection name "connection".
    -
    -// First, register a packet collector using the filter we created.
    -PacketCollector myCollector = connection.createPacketCollector(filter);
    -// Normally, you'd do something with the collector, like wait for new packets.
    -
    -// Next, create a packet listener. We use an anonymous inner class for brevity.
    -PacketListener myListener = new PacketListener() {
    -        public void processPacket(Packet packet) {
    -            // Do something with the incoming packet here.
    -        }
    -    };
    -// Register the listener.
    -connection.addPacketListener(myListener, filter);
    -

    - -

    -Standard Packet Filters -

    - -A rich set of packet filters are included with Smack, or you can create your own filters by coding -to the PacketFilter interface. The default set of filters includes: -
      -
    • PacketTypeFilter -- filters for packets that are a particular Class type. -
    • PacketIDFilter -- filters for packets with a particular packet ID. -
    • ThreadFilter -- filters for message packets with a particular thread ID. -
    • ToContainsFilter -- filters for packets that are sent to a particular address. -
    • FromContainsFilter -- filters for packets that are sent to a particular address. -
    • PacketExtensionFilter -- filters for packets that have a particular packet extension. -
    • AndFilter -- implements the logical AND operation over two filters. -
    • OrFilter -- implements the logical OR operation over two filters. -
    • NotFilter -- implements the logical NOT operation on a filter. -
    - - - -


    - - - - \ No newline at end of file diff --git a/CopyOftrunk/documentation/properties.html b/CopyOftrunk/documentation/properties.html deleted file mode 100644 index 8da6038bb..000000000 --- a/CopyOftrunk/documentation/properties.html +++ /dev/null @@ -1,119 +0,0 @@ - - - Smack: Packet Properties - Jive Software - - - - -
    -Packet Properties -
    - - - -

    -Smack provides an easy mechanism for attaching arbitrary properties to packets. Each property -has a String name, and a value that is a Java primitive (int, long, float, double, boolean) or -any Serializable object (a Java object is Serializable when it implements the Serializable -interface). -

    - -

    -Using the API -

    - -

    -All major objects have property support, such as Message objects. The following code -demonstrates how to set properties: -

    - -

    (7jkuX;>%_lq7x;8nphzY6CU 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

    -Message message = chat.createMessage();
    -// Add a Color object as a property.
    -message.setProperty("favoriteColor", new Color(0, 0, 255));
    -// Add an int as a property.
    -message.setProperty("favoriteNumber", 4);
    -chat.sendMessage(message);
    -
    - -

    -Getting those same properties would use the following code: -

    - -
    -Message message = chat.nextMessage();
    -// Get a Color object property.
    -Color favoriteColor = (Color)message.getProperty("favoriteColor");
    -// Get an int property. Note that properties are always returned as
    -// Objects, so we must cast the value to an Integer, then convert
    -// it to an int.
    -int favoriteNumber = ((Integer)message.getProperty("favoriteNumber")).intValue();
    -
    - -

    -Objects as Properties -

    - -

    -Using objects as property values is a very powerful and easy way to exchange data. However, -you should keep the following in mind: -

    - -
      -
    • Packet extensions are the more standard way to add extra data to XMPP stanzas. Using - properties may be more convenient in some cases, however, since Smack will do the - work of handling the XML. - -
    • When you send a Java object as a property, only clients running Java will be able to - interpret the data. So, consider using a series of primitive values to transfer data - instead. - -
    • Objects sent as property values must implement Serialiable. Additionally, both the sender - and receiver must have identical versions of the class, or a serialization exception - will occur when de-serializing the object. - -
    • Serialized objects can potentially be quite large, which will use more bandwidth and - server resources. -
    - -

    -XML Format -

    - -

    -The current XML format used to send property data is not a standard, so will likely not be -recognized by clients not using Smack. The XML looks like the following (comments added for -clarity): -

    - -
    -<!-- All properties are in a x block. --> 
    -<properties xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties">
    -    <!-- First, a property named "prop1" that's an integer. --> 
    -    <property>
    -        <name>prop1</name>
    -        <value type="integer">123</value>
    -    <property>
    -    <!-- Next, a Java object that's been serialized and then converted
    -         from binary data to base-64 encoded text. -->  
    -    <property>
    -        <name>blah2</name>
    -        <value type="java-object">adf612fna9nab</value>
    -    <property>
    -</properties> 
    -
    - -

    -The currently supported types are: integer, long, float, -double, boolean, string, and java-object. -

    - - - - - diff --git a/CopyOftrunk/documentation/providers.html b/CopyOftrunk/documentation/providers.html deleted file mode 100644 index fb7e5e586..000000000 --- a/CopyOftrunk/documentation/providers.html +++ /dev/null @@ -1,121 +0,0 @@ - - - Smack: Provider Architecture - Jive Software - - - - - -
    -Provider Architecture: Packet Extensions and Custom IQ's -
    - - - -

    - -The Smack provider architecture is a system for plugging in -custom XML parsing of packet extensions and IQ packets. The -standard Smack Extensions -are built using the provider architecture. Two types of -providers exist:

      -
    • IQProvider -- parses IQ requests into Java objects. -
    • PacketExtension -- parses XML sub-documents attached to - packets into PacketExtension instances.
    - -

    IQProvider

    - -By default, Smack only knows how to process IQ packets with sub-packets that -are in a few namespaces such as:
      -
    • jabber:iq:auth -
    • jabber:iq:roster -
    • jabber:iq:register
    - -Because many more IQ types are part of XMPP and its extensions, a pluggable IQ parsing -mechanism is provided. IQ providers are registered programatically or by creating a -smack.providers file in the META-INF directory of your JAR file. The file is an XML -document that contains one or more iqProvider entries, as in the following example: - -
    - <?xml version="1.0"?>
    - <smackProviders>
    -     <iqProvider>
    -         <elementName>query</elementName>
    -         <namespace>jabber:iq:time</namespace>
    -         <className>org.jivesoftware.smack.packet.Time</className>
    -     </iqProvider>
    - </smackProviders>
    - -Each IQ provider is associated with an element name and a namespace. In the -example above, the element name is query and the namespace is -abber:iq:time. If multiple provider entries attempt to register to -handle the same namespace, the first entry loaded from the classpath will -take precedence.

    - -The IQ provider class can either implement the IQProvider -interface, or extend the IQ class. In the former case, each IQProvider is -responsible for parsing the raw XML stream to create an IQ instance. In -the latter case, bean introspection is used to try to automatically set -properties of the IQ instance using the values found in the IQ packet XML. -For example, an XMPP time packet resembles the following: - -

    -<iq type='result' to='joe@example.com' from='mary@example.com' id='time_1'>
    -    <query xmlns='jabber:iq:time'>
    -        <utc>20020910T17:58:35</utc>
    -        <tz>MDT</tz>
    -        <display>Tue Sep 10 12:58:35 2002</display>
    -    </query>
    -</iq>
    - -In order for this packet to be automatically mapped to the Time object listed in the -providers file above, it must have the methods setUtc(String), setTz(String), and -setDisplay(String). The introspection service will automatically try to convert the String -value from the XML into a boolean, int, long, float, double, or Class depending on the -type the IQ instance expects.

    - -

    PacketExtensionProvider

    - -Packet extension providers provide a pluggable system for -packet extensions, which are child elements in a custom namespace -of IQ, message and presence packets. -Each extension provider is registered with an element name and namespace -in the smack.providers file as in the following example: - -
    -<?xml version="1.0"?>
    -<smackProviders>
    -    <extensionProvider>
    -        <elementName>x</elementName>
    -        <namespace>jabber:iq:event</namespace>
    -        <className>org.jivesoftware.smack.packet.MessageEvent</className>
    -    </extensionProvider>
    -</smackProviders>
    - -If multiple provider entries attempt to register to handle the same element -name and namespace, the first entry loaded from the classpath will take -precedence.

    - -Whenever a packet extension is found in a packet, parsing will -be passed to the correct provider. Each provider can either implement the -PacketExtensionProvider interface or be a standard Java Bean. In the -former case, each extension provider is responsible for parsing the raw -XML stream to contruct an object. In the latter case, bean introspection -is used to try to automatically set the properties of the class using -the values in the packet extension sub-element.

    - -When an extension provider is not registered for an element name and -namespace combination, Smack will store all top-level elements of the -sub-packet in DefaultPacketExtension object and then attach it to the packet. - - -


    - -

    - - - diff --git a/CopyOftrunk/documentation/roster.html b/CopyOftrunk/documentation/roster.html deleted file mode 100644 index 025c84b54..000000000 --- a/CopyOftrunk/documentation/roster.html +++ /dev/null @@ -1,125 +0,0 @@ - - - Smack: Roster and Presence - Jive Software - - - - - -
    -Roster and Presence -
    - - - -

    - -The roster lets you keep track of the availability ("presence") of other users. -A roster also allows you to organize users into groups such as "Friends" and -"Co-workers". Other IM systems refer to the roster as the buddy list, contact list, -etc.

    - -A Roster instance is obtained using the XMPPConnection.getRoster() -method, but only after successfully logging into a server. - -

    Roster Entries

    - -

    -Every user in a roster is represented by a RosterEntry, which consists of:

      -
    • An XMPP address (e.g. jsmith@example.com). -
    • A name you've assigned to the user (e.g. "Joe"). -
    • The list of groups in the roster that the entry belongs to. If the roster - entry belongs to no groups, it's called an "unfiled entry". -
    - -The following code snippet prints all entries in the roster: - -
    -Roster roster = con.getRoster();
    -for (Iterator i=roster.getEntries(); i.hasNext(); ) {
    -    System.out.println(i.next());
    -}
    -
    - -Methods also exist to get individual entries, the list of unfiled entries, or to get one or -all roster groups. - -

    Presence

    - -Roster - -

    Every entry in the roster has presence associated with it. The -Roster.getPresence(String user) method will return a Presence object with -the user's presence or null if the user is not online or you are not -subscribed to the user's presence. Note: typically, presence -subscription is always tied to the user being on the roster, but this is not -true in all cases.

    - -

    A user either has a presence of online or offline. When a user is online, their -presence may contain extended information such as what they are currently doing, whether -they wish to be disturbed, etc. See the Presence class for further details.

    - -

    Listening for Roster and Presence Changes

    - -

    The typical use of the roster class is to display a tree view of groups and entries -along with the current presence value of each entry. As an example, see the image showing -a Roster in the Exodus XMPP client to the right.

    - -

    The presence information will likely -change often, and it's also possible for the roster entries to change or be deleted. -To listen for changing roster and presence data, a RosterListener should be used. -The following code snippet registers a RosterListener with the Roster that prints -any presence changes in the roster to standard out. A normal client would use -similar code to update the roster UI with the changing information. - -
    - -

    -final Roster roster = con.getRoster();
    -roster.addRosterListener(new RosterListener() {
    -    public void rosterModified() {
    -        // Ignore event for this example.
    -    }
    -
    -    public void presenceChanged(String user) {
    -        // If the presence is unavailable then "null" will be printed,
    -        // which is fine for this example.
    -        System.out.println("Presence changed: " + roster.getPresence(user));
    -    }
    -});
    -
    - -

    Adding Entries to the Roster

    - -

    Rosters and presence use a permissions-based model where users must give permission before -they are added to someone else's roster. This protects a user's privacy by -making sure that only approved users are able to view their presence information. -Therefore, when you add a new roster entry it will be in a pending state until -the other user accepts your request.

    - -If another user requests a presence subscription so they can add you to their roster, -you must accept or reject that request. Smack handles presence subscription requests -in one of three ways:
      - -
    • Automatically accept all presence subscription requests. -
    • Automatically reject all presence subscription requests. -
    • Process presence subscription requests manually. -
    - -The mode can be set using the Roster.setSubscriptionMode(int subscriptionMode) -method. Simple clients normally use one of the automated subscription modes, while -full-featured clients should manually process subscription requests and let the -end-user accept or reject each request. If using the manual mode, a PacketListener -should be registered that listens for Presence packets that have a type of -Presence.Type.SUBSCRIBE. - -


    - - - - - diff --git a/CopyOftrunk/documentation/style.css b/CopyOftrunk/documentation/style.css deleted file mode 100644 index 082da56a1..000000000 --- a/CopyOftrunk/documentation/style.css +++ /dev/null @@ -1,56 +0,0 @@ -BODY { - font-size : 100%; - background-color : #fff; -} -BODY, TD, TH { - font-family : tahoma, arial, helvetica; - font-size : 0.8em; -} -PRE, TT, CODE { - font-family : courier new, monospaced; - font-size : 1.0em; -} -A:hover { - text-decoration : none; -} -LI { - padding-bottom : 4px; -} -.header { - font-size : 1.4em; - font-weight : bold; - width : 100%; - border-bottom : 1px #ccc solid; - padding-bottom : 2px; -} -.subheader { - font-weight : bold; -} -.footer { - font-size : 0.8em; - color : #999; - text-align : center; - width : 100%; - border-top : 1px #ccc solid; - padding-top : 2px; -} -.code { - border : 1px #ccc solid; - padding : 0em 1.0em 0em 1.0em; - margin : 4px 0px 4px 0px; -} -.nav, .nav A { - font-family : verdana; - font-size : 0.85em; - color : #600; - text-decoration : none; - font-weight : bold; -} -.nav { - width : 100%; - border-bottom : 1px #ccc solid; - padding : 3px 3px 5px 1px; -} -.nav A:hover { - text-decoration : underline; -} \ No newline at end of file diff --git a/CopyOftrunk/sample/conf/WEB-INF/web.xml b/CopyOftrunk/sample/conf/WEB-INF/web.xml deleted file mode 100644 index 1e3ac64bb..000000000 --- a/CopyOftrunk/sample/conf/WEB-INF/web.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - Smack Client UI - Smack sample UI - - - - login.jsp - - - diff --git a/CopyOftrunk/sample/web/addContact.jsp b/CopyOftrunk/sample/web/addContact.jsp deleted file mode 100644 index 0874eec1b..000000000 --- a/CopyOftrunk/sample/web/addContact.jsp +++ /dev/null @@ -1,138 +0,0 @@ -<%-- - - $RCSfile$ - - $Revision$ - - $Date$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> -<%@ page import="java.util.*, - org.jivesoftware.smack.*, - org.jivesoftware.smack.packet.*, - org.jivesoftware.smack.util.*"%> -<%@ include file="global.jsp" %> -<% - // If we don't have a valid connection then proceed to login - XMPPConnection conn = (XMPPConnection) session.getAttribute("connection"); - if (conn == null || !conn.isConnected()) { - response.sendRedirect("login.jsp"); - return; - } - Roster roster = conn.getRoster(); - - // Get parameters - String user = getParameter(request, "user"); - String nickname = getParameter(request, "nickname"); - String group1 = getParameter(request, "group1"); - String group2 = getParameter(request, "group2"); - - // Create a new entry in the roster that belongs to a certain groups - if (user != null) { - roster.createEntry(user, nickname, new String[] {group1, group2}); - response.sendRedirect("viewRoster.jsp"); - return; - } -%> - - -Add Contact - - - - - - - - - - - - - - - -
    Add contact to rosterView roster
     
    - - - - - -
      - - - - - - -
    Contact - Information
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    Username:  (e.g. - johndoe@jabber.org)
    Nickname:
    Group 1:">
    Group 2:
      
     
    - - diff --git a/CopyOftrunk/sample/web/chat.jsp b/CopyOftrunk/sample/web/chat.jsp deleted file mode 100644 index db7ada888..000000000 --- a/CopyOftrunk/sample/web/chat.jsp +++ /dev/null @@ -1,60 +0,0 @@ -<%-- - - $$RCSfile$$ - - $$Revision$$ - - $$Date$$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> - - -Chat with contact - - - - - -Not implemented yet! View roster - - diff --git a/CopyOftrunk/sample/web/css/general.css b/CopyOftrunk/sample/web/css/general.css deleted file mode 100644 index f25a4b5f0..000000000 --- a/CopyOftrunk/sample/web/css/general.css +++ /dev/null @@ -1,36 +0,0 @@ -BODY -{ - FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; - FONT-SIZE: 10px; - margin-left: 0px; - margin-right: 0px; - margin-bottom: 0px; - margin-top: 0px; - background-color: #FFFFFF; -} -.text { - FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; - FONT-SIZE: 10px; -} -input,textarea,select -{ - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; - font-size: 10px; -} -#black { - color: #000000; - font-weight: BOLD; -} -#white { - color: FFFFFF; - font-weight: BOLD; -} -#bigWhite { - color: FFFFFF; - font-weight: BOLD; - font-size: 14px; -} -#bigBlack { - font-weight: BOLD; - font-size: 18px; -} \ No newline at end of file diff --git a/CopyOftrunk/sample/web/global.jsp b/CopyOftrunk/sample/web/global.jsp deleted file mode 100644 index 202cc659c..000000000 --- a/CopyOftrunk/sample/web/global.jsp +++ /dev/null @@ -1,66 +0,0 @@ -<%-- - - $$RCSfile$$ - - $$Revision$$ - - $$Date$$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> -<%! - public static String getParameter(HttpServletRequest request, String name) - { - String temp = request.getParameter(name); - if (temp != null) { - if (temp.equals("")) { - return null; - } - else { - return temp; - } - } - else { - return null; - } - } -%> \ No newline at end of file diff --git a/CopyOftrunk/sample/web/images/address_book.png b/CopyOftrunk/sample/web/images/address_book.png deleted file mode 100644 index 8519aeef1a4d047b28f41209fc308d3d33cc5f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1214 zcmV;v1VQ_WP)WdKBJAT%INa(W;#FfcP9F)=zcIXW~lAS*C2FfeBUOilm*00(qQO+^RO z0|gZ{7@Dg@`2YX_32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yP~+5ED&I*hwNwGnfoM;y7+#c%;;6q0@rJ43@s1x1RHx+fb(CIO@hfIr;DHz4!ah z_nmY80{{0V{nf+8#YI(ZZSCvXY}PDEl8fTDMx)sp8X5}!Cj`sO%a;!i4?nM|sewwR zLL!ksCXk<;`3!cZ;u2PEK62v$LtcO|ZJUYH+*VuFA^Fa}5m*AP|re zu`9uZ9H~@_pQTBioAynk(Rg)gYHE#fH1{L$`~7cF)&iVYJRXP3yTa8&oP#ug5T-)wAbgjTCn2r)A=gTcW;FsZ>{0A&oaNRWx3 z_hQ+coVmNVreKv+5DW(2qbyC;)z$1dB9RFC`}+}##bC8sMQ}|x0)YTlR#wD!Ida?* zI#RuM{ZsGzc6=wf;J8P@($Z2l$sM!VY@i|v0tPafOu}zvvF}_5kH;hKSwSK#-7SFEntH6^>uO2*03_Rsima_dwYB0d5)5arL*X1P9h&6 zyOOwZ55fHW{0o$^qpq&5&^1bkf)Nna21iFn*x1+*?6@WY**oe$`6)3&v>p}DzP^!UKQfXJ9@!qdz{<@I_6X($vD=TL>Q0;#(> z)b*)gH$93UEL%59o~F~&(Pl5CYaJ3Dc{`#f&0-9*59aCPF`tBV-J zdP$2OW-Tl%JVG^bkTNHA+jCU(8m**#X<};PtF!O^BZAXwWMo9$)6?@5odlbsqob*R ci}%p$4?JOuc?Y-aXaE2J07*qoM6N<$f{JTEuK)l5 diff --git a/CopyOftrunk/sample/web/images/businessman_add.png b/CopyOftrunk/sample/web/images/businessman_add.png deleted file mode 100644 index 066cf368c4d30321e07a9fc032b0e703f04aea1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)WdKBPATcx`PH%P~GB7YQATc&NG&4FdHXti7F)%RO1yJn(000McNliru z(+Ca?6&Eyb2vYz6010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00KHm zL_t(|+NF|TNK;W9$G`WwyX&9ry1BLdI|P+7@}X2(uow(O4e~)+A;@hI^bksrJtcxg z10yp=VAM-dP$53Fmk26?9(xERf(ZHtV@x-<-MNjsd+&BS-ce(fD0Scm=N$Nce&_f7 z9^gM0^ZUipBt}^if*@#;^Z396bH1B+yd%JyS%{1U_l!oc*({){fSd!VGvMUFESCQU zFjSm)_&E-2JO(6_K#}Mz7=^=ey4xP0X|R0x2=w>)aCF3tbRq&d6+ugN7`Xl#+X7-S z#M>NQ*w=fQzQzn2-v(F&K$0w5c~Ajx+7NPiyaU)sFvz9p3ql|aiS6_KMG|z2o04vp3q3yYb!O_#k-B!i5DGZ(!bpRn`suFOC*xfDC z;>2)km6Xgt>;oRInqiRR7WdKBPATcx`PH%P~GB7YQATc&NG&4FdHXti7F)%RO1yJn(000McNliru z(+La;7B{vEjOG9U010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00L1- zL_t(|+O3jZNRwe0hOh5)f4QmCfj`ViBo#>^R6>f9ga#H$h$b0No9in`tPF*Ej-HqI=6de?d0+U)68?74 z-9oKs;2a5Zq_2!=;dK33ZmbC~)W#vf$Tf`yF%*Jm6r?Z-y^4m4Hf}H1s#YAYrCF^; zbi2Uog~h~=QG%?dTIp5?#9|nyCZK3%J(V@31UwETp98aQ2HFQ%72tB=wq$OkU`Mgy zCIyq$0>)JE`;EVAR|Mpl=-E|XQ9;ln5Dq9A;>sc<2nQW&euc#J-7&nj0^F0zX%QA| z34{;3g__USb8k-oNf29=KoCw#hzaRw5{_9q&0Z(GV5-#+zu7vsZL5 zn2{VPZ!Ao)8umJ!j~-^#6$j~moM3y;1N0Y9QMUCG^Nu;fGBfUAb{QQy+b<42dBQe~ z8qCkHWYul+W9^;Ae6yF%VGsH*BSe)LMx8+ZdTnlUTIl>A5zMu<9Z$O6vSD*Np}8QD z{fBuI%Vu${k5+_L|Cn5OrmjKQr@p#Dri)!qZlc90t-v%R8mImC%Bl!GCtTXzTmS|OrcU;M0RbK1K5#iub$zEMrqK?aI`ONi5yWJ#>PKRRY r2DL8`mOlo4@-xKDE-qN?{Ezwu@#5s=YKsO200000NkvXXu0mjfPc=wt diff --git a/CopyOftrunk/sample/web/images/businessmen.png b/CopyOftrunk/sample/web/images/businessmen.png deleted file mode 100644 index c661339598ed32d2cf4b24c8cf6850f7a6e58cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 790 zcmV+x1L^#UP)WdKBPATcx`PH%P~GB7YQATc&NG&4FdHXti7F)%RO1yJn(000McNliru z(*hY61Ow}%t{(sZ010qNS#tmY3labT3lag+-G2N4000DMK}|sb0I`n?{9y$E00M4F zL_t(|+SQU>NK;`P#-FpZ?Wo7KowLm?KVlKs6t&bgFA6h)ETJs=vdb>IQH0D3yAVsF zuNx^S)>TqLQV2y|bdi?E%nBn^*mQ(B5$C>+p0&BNdA4=>a4o94Zu-Oj;^pP}z0dpb z0RR0EnTO|RVT}U~i4+7aiN5WZ;Lf-vrA8Vkk=Q||H_*b1gjhCZ29D!^pBtztL644k~Qvp>0#7b&*?l~wU zK&7LwG>KexI z0^)1BG+fshj^w`2L(`;Jk-_W{me3UfT*k;0ksC5p?n1DVMJt&8fRMAfT%$)ow} zLtd!H9bf_vvK&I??sto?6L|zvyD1zX5s2amw;|HGV0h~o8+H725T9?od_-HyPzl^- z+VF8Cgj^;EJM!$-`pV*qcE+NJw&&xD{uBmMtg6(g?rUyosZ0ZkjC36rTgBcg9bQb# zOjXWWWC(|MNQ8;mDB(~L@C$jsiS>hSa z!H89WdKHUATc>0L}hv)GB7YRATcyLH90yoH6SZ6F)%QmsFr{L000McNliru z(*hb31r%i09jgEU010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00QAj zL_t(|+NG0CXjE4e$A9nLnQ<~RnaqfJPBN1=wnnXSBs6goXlcPx>7t;xDY`4PySnmY z=@+;NLJPW)Qo&7;QYb~bu!TZfDQ!)#R*juRn@KVs8Dlcv@AJOr8=<4%(m&jD;a<*< z^FN#eFDa!Ht{1%Vg_ZWPw&jhgC<6gS#)a$omutF?Y?*C)t<}&ANt{1b)BYo-Mt?eV zc(~RDO#Rkup13j_eLvgB#BiKpEzDptM4~rHA{rnPgx(Dx9FN*+n}-Ya_HtgHJ@nDg zIkf}W7!j4LN5^>Y&CO_u5csc_3%09ZOK>{JfoM=6GZ5wNJzB&uR!?+t1Dy~L$mxlM zw7gtG2` zgf|fN>(2H?(CZZ%rtSL};(n=(k*lKC^?O|ay1Zjqf;A(@H^ncxTASk0Jp6DV&%@an zQZhr+)9KChVCo7X%fL7KV<+`#4;0J&$Iv~#t6av*{>m!cc!k+`3!XtqUYSS+OQd-~XnVGo{4Nqocag)*h*Kw65rE-y;fQu>} zV#%$PXRGE!aOLh_&o9$6dCJi<-+!`R5A4@t$q_5QNfSau*Xm8L;f893s&R{$c5?A_ f`j?m8;;x`j diff --git a/CopyOftrunk/sample/web/images/messages.png b/CopyOftrunk/sample/web/images/messages.png deleted file mode 100644 index 6dab998e8dc3ec153cb49e2de4d5dab84757d442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmVWdKcSATl-}MrC3kGB7YRATcmHGB!FiFd!>1F)%P#Z%6t7000McNliru z(+L6z1~KYU}B=rxqJ8FUZ65loCfglut-tq^-QC60g1v!7uo-GW2|3VBfH+N$Y5MX3@`0&Y9ykRh7#`#n^InkL) zO45vsKoJoB|DS>3(=dKP*YQWBP%QW>BEPwZ{EH8c;NSMt_e9gD$h}3p{wg~ zhq<|7`S0H!8P1)%`s&lC?@YqNoFdWDHVk}xoD82oL%jIr%`c$*#n-Q2f3U5qbGyj| zGvMDphKUz1Ui$d*xw)BiLE-T39VB2u;R6ZSe?ag32L>#gI*I`x zP+jeG0!SI9rEL&+@#3S)lP5CLpa9*qYYWJQ;Mg%Ub7f#>{|gNGS2s|?039q`_)zoD zpLct;wN)kg`MJR^`0?W}FwOj8IB?+bw|n>AT1}f4brGilAkg1`QRwH-_nAPZ}Y>WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z(*g|)5f$gkaRUGV010qNS#tmY3labT3lag+-G2N4000DMK}|sb0I`n?{9y$E00MVO zL_t(|+ND!nNK;`Le$LL$(o@^iZ7P8aD+fU#2r6|Wb+T7?9J-=h)BW7`9anVQ_z9bAlT}(C<`7ngSI*C2QdQ zN*qEq2gX!kQ&psXh*3jvpThlpul_=81@N^*=z!lodbFX+Hy<%EF(=|~Glxc2M>3{C zNM~X2oDW?51v=gZ*Aw(CdTU(L$RR(^J^rZSi=Y9fj>g?iOkSwPk?ImaHULrsj^&_5 zA0jkaQ6ylLp5{Qg=k?b#q_jfdEKq90z1cr@r_R?RR7d$4BGKv00WXYLcY(lJ&bK)j z9ZO3B@GSy_V?bQO)rlCczl`Qd#=CZ*y=f;vR$%0;s%=)>ZvA%HZGjKJWc1cExOsf< zKZa%I`~9S&2Ch;&hMzBz9Wzk0kkhf2%D}VT@!x3&d_17(gvp_xAS24lE;nD_H?@ks zDYC#YU|CX1d6!zM(ck9HC*OV};_}ceRks?dFBcRfqp2}dp=_4?u`~gj3PTcc?x42- z9-d3%;@}K5(V7qusM=W3f?9Pa{ymX^Mg$rqDD=_3_i$zY_|bxlv$x(-Rf@|pAZY@0 zcA!Y`v>}p7y3asTjXa4(AnQ=*c>I%wll{{avw#^=kfR&r>BRi$=*FvjV&NFf)dwhH z%c14qbny@q1d`I!G$PJq1sD~bm=2C^{+L>x`M}8CVAxh_;~tP*7};e~G!94E0A||P dw)%qCt=~Wu5sI%(V`=~Z002ovPDHLkV1itvVRirj diff --git a/CopyOftrunk/sample/web/images/plug_delete.png b/CopyOftrunk/sample/web/images/plug_delete.png deleted file mode 100644 index a3b9533fa6fc2d99068566435f179f718474fa4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1437 zcmV;O1!DS%P)WdKueAUPmPb#5RsFfcM8GBY|fGCDLiAS*C2Ffc;26chje00(qQO+^RO z2?YxhH?FK~UjP6A32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yPfOxw~%Oya|uTGfTd|$Fl66 z?c28t4@Jt<`TF|$3&gyCCZLs#fbJ)f$Vya7bP9>j=flLrgbHRhn?VXbFO@>9ETvu!hXbvx zt=7!U%-;6)_9yO3K-2Ux@*^D#2GtsPy zPG?mff!q2=0u&|b|N9DrL z!6Z+EC%}p{X)Xo}e+-E919_FG-JnNx_D+JPFSzd{yGBMvraRtn8p{@AQRgmr{UMl` zDNMe+14Yk1iPBfsL!RD?{*hIP(v74xGN{1@tX>7=JIaCLHi8Yz^dAW1aPE!zjToEH zK(VP!4NL1B5opdIhkW4_ifjeAxaCdMl_lWc{VBkaXo@zWwqgL8@gqb&3Zv5N=(HOEGJ6 zF3+YIs|IE6t8`UkW7fUD_TO0#HkH7j)9A=#p}#jMhK(hA$F5!5F$=sSvi#dK2@yOi rfBjIThuKLZbJp8b`qsY&`mgPG+53j{=k!nW00000NkvXXu0mjfEJU1X diff --git a/CopyOftrunk/sample/web/images/refresh.png b/CopyOftrunk/sample/web/images/refresh.png deleted file mode 100644 index aaf94aefe0ab4dc1c4a79cf6409776a49d41bcd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1349 zcmV-L1-kl)P)WdKBPATcx`PH%P~GB7YQATl#LGch_eG$1Q5F)%QMP#j1A000McNliru z(*hU(B0Hg~M>PNd010qNS#tmY3labT3lag+-G2N4000DMK}|sb0I`n?{9y$E00f;$ zL_t(|+O?E>Y*S?z#-CnKPcK_{=~^h;$i^-P2pcG1MndL-i<`oRSrCoHMM6S|F_NeO zV}dA(F`5uD7?UL!gn(w*knu+yZUY>qZY;={P6p1+-MX$@@9pV1J;%2#xXcxui+;)1 zp38Th-}^rA`+dOwJY@g4;$Ytj_}ni+$yBB=>KuU+g2CzO9z?~@A@XN&raHQKz`Ksu z^ql{2;gTH2lBR@`9%V&L6>nOn z|9rQ%F9X8RiFGSW>k4x%5XpTVWg?>t8&0-dMp(7anyvle<$dMaBkx?8@-%KWDdz#k zc3YqmPvNbsL-XM)U4XRX`mPp#n)cE9d}{`DWLv6HiR#BnHeYP&yt==>N*jsLDqfgg zSQjN5H8&V&C+x4+SFX`($SSglp->%D0hmoXNOZq{U&961cW;$13ea4_A*$Hh@%=3^ zl>iK>s43K3vo3z^a|Hoj?2j#79H9P+8orR)-f?SG62!PoY-~~%1_C-J$sL&@4w$XM z2ay%v9IsG*UUF~)xl%m^29^d)%j*y6Isv zl+>ykMPkMvGKu~vlaW!k1bO-|vqe7GZ`quu8#}#Ynd~PAFcktg0SHqYax{H(-PY?w zd(W+H2!z_ev1ctN-G(epG<``1E4OCqk)5T(QnP`&o57v~Eq1qHBBQCJRr+4h!+q8Lk;W`g(2#ybiYw5owg# zVL6+XSs`)}mYa#xz*hNnazL`Nr?*54_cs;gWhRNXXqda#x|DO6njsjX8=V}Jy>}&7 z@9p={TJ=UUnZG|xpS_k(CY>oNE?jTPTOO}VEF;o~#~HwQw>=bgaR+dz>ez!M7I0i2 zlB0G_9ktl=Y)VQgWO7Z|;~kN_J{vTtpWssM&?1`azZ-u561VY)mVa-p00000NkvXX Hu0mjfesf_2 diff --git a/CopyOftrunk/sample/web/index.jsp b/CopyOftrunk/sample/web/index.jsp deleted file mode 100644 index 9aa774326..000000000 --- a/CopyOftrunk/sample/web/index.jsp +++ /dev/null @@ -1,53 +0,0 @@ -<%-- - - $$RCSfile$$ - - $$Revision$$ - - $$Date$$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> - -<% response.sendRedirect("login.jsp"); - return; -%> \ No newline at end of file diff --git a/CopyOftrunk/sample/web/login.jsp b/CopyOftrunk/sample/web/login.jsp deleted file mode 100644 index fdaa79aa3..000000000 --- a/CopyOftrunk/sample/web/login.jsp +++ /dev/null @@ -1,190 +0,0 @@ -<%-- - - $RCSfile$ - - $Revision$ - - $Date$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> -<%@ page import="org.jivesoftware.smack.*"%> -<%@ include file="global.jsp" %> -<% - // If we already got a connection then proceed to view the roster - XMPPConnection conn = (XMPPConnection) session.getAttribute("connection"); - if (conn != null && conn.isConnected()) { - response.sendRedirect("viewRoster.jsp"); - return; - } - - // Get parameters - String host = getParameter(request, "host"); - String port = getParameter(request, "port"); - String ssl = getParameter(request, "ssl"); - String debug = getParameter(request, "debug"); - String username = getParameter(request, "username"); - String password = getParameter(request, "password"); - String resource = getParameter(request, "resource"); - String error = getParameter(request, "error"); - - // Try to connect to the server - if (error == null && host != null && port != null) { - XMPPConnection.DEBUG_ENABLED = "Yes".equals(debug); - try { - if ("No".equals(ssl)) { - conn = new XMPPConnection(host, Integer.parseInt(port)); - } - else { - conn = new SSLXMPPConnection(host, Integer.parseInt(port)); - } - // Add listener for messages (offline messages will be listen here) - - // Set the roster subscription mode to use - - // Login to the server - conn.login(username, password, resource); - session.setAttribute("connection", conn); - } - catch (Exception e) { - error = e.getMessage(); - // Replace any char : because otherwise the URL will get corrupted - error = error.replace(':', '-'); - response.sendRedirect("login.jsp?host="+host+"&port="+port+"&ssl="+ssl+"&error="+error); - return; - } - // Redirect to the next page - response.sendRedirect("viewRoster.jsp"); - return; - } -%> - - -Login - - - - - - - - - - - - - -
    Smack Demo Application
    - <% if (error != null) { %> -

    <%= error %>

    - <%} else {%> -   - <%}%> -
    - - - - - -
      - - - - - - -
    Login - Information
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Host:">
    Port:">
    Use SSL:
      
    Debug Connection:
      
    Username:">
    Password:">
    Resource:">
      
     
    - - diff --git a/CopyOftrunk/sample/web/moveContact.jsp b/CopyOftrunk/sample/web/moveContact.jsp deleted file mode 100644 index 1b8924e88..000000000 --- a/CopyOftrunk/sample/web/moveContact.jsp +++ /dev/null @@ -1,208 +0,0 @@ -<%-- - - $RCSfile$ - - $Revision$ - - $Date$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> -<%@ page import="java.util.*, - org.jivesoftware.smack.*, - org.jivesoftware.smack.packet.*, - org.jivesoftware.smack.util.*"%> -<%@ include file="global.jsp" %> -<% - // If we don't have a valid connection then proceed to login - XMPPConnection conn = (XMPPConnection) session.getAttribute("connection"); - if (conn == null || !conn.isConnected()) { - response.sendRedirect("login.jsp"); - return; - } - Roster roster = conn.getRoster(); - - // Get parameters - String action = getParameter(request, "action"); - String user = getParameter(request, "user"); - String fromGroup = getParameter(request, "fromGroup"); - String toGroup = getParameter(request, "toGroup"); - - // Move the entry from the existing group to a new group - if ("move".equals(action)) { - RosterEntry entry = roster.getEntry(user); - // Remove the entry from the existing group - RosterGroup rosterGroup = roster.getGroup(fromGroup); - rosterGroup.removeEntry(entry); - // Get the new group or create it if it doesn't exist - rosterGroup = roster.getGroup(toGroup); - if (rosterGroup == null) { - rosterGroup = roster.createGroup(toGroup); - } - // Add the new entry to the group - rosterGroup.addEntry(entry); - response.sendRedirect("viewRoster.jsp"); - return; - } - - // Add the entry to a new group - if ("add".equals(action)) { - RosterEntry entry = roster.getEntry(user); - // Get the new group or create it if it doesn't exist - RosterGroup rosterGroup = roster.getGroup(toGroup); - if (rosterGroup == null) { - rosterGroup = roster.createGroup(toGroup); - } - // Add the new entry to the group - rosterGroup.addEntry(entry); - response.sendRedirect("viewRoster.jsp"); - return; - } - - // Delete the entry from a group - if ("delete".equals(action)) { - RosterEntry entry = roster.getEntry(user); - RosterGroup rosterGroup = roster.getGroup(fromGroup); - rosterGroup.removeEntry(entry); - response.sendRedirect("viewRoster.jsp"); - return; - } -%> - - -Groups Management - - - - - - - - - - - - -
    Groups for entry: <%= user%>View roster
     
    - - - - - - - - - -
    - - - - - - -
    Add to new group -
    - - - - - - - - - - - - -
    Group: 
      - - - - - - - - - - <% if (fromGroup != null) { %> - - - - - - - - - <% } else { %> - - - - <% } %> -
    Move - to new group
    From To
    - - - - - - -
    <%=fromGroup%>Move contact to group -
    -
    Entry does - not belong to a group (unfiled entry)
     
    - - - - <% - RosterEntry entry = roster.getEntry(user); - RosterGroup group; - for (Iterator it=entry.getGroups(); it.hasNext();) { - group = (RosterGroup) it.next();%> - - - - - <% } %> -
    Remove - from groups
    <%=group.getName()%>Remove contact from the group
    - - diff --git a/CopyOftrunk/sample/web/viewRoster.jsp b/CopyOftrunk/sample/web/viewRoster.jsp deleted file mode 100644 index 7816211a6..000000000 --- a/CopyOftrunk/sample/web/viewRoster.jsp +++ /dev/null @@ -1,230 +0,0 @@ -<%-- - - $$RCSfile$$ - - $$Revision$$ - - $$Date$$ - - - - Copyright (C) 2002-2003 Jive Software. All rights reserved. - - - - The Jive Software License (based on Apache Software License, Version 1.1) - - Redistribution and use in source and binary forms, with or without - - modification, are permitted provided that the following conditions - - are met: - - - - 1. Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright - - notice, this list of conditions and the following disclaimer in - - the documentation and/or other materials provided with the - - distribution. - - - - 3. The end-user documentation included with the redistribution, - - if any, must include the following acknowledgment: - - "This product includes software developed by - - Jive Software (http://www.jivesoftware.com)." - - Alternately, this acknowledgment may appear in the software itself, - - if and wherever such third-party acknowledgments normally appear. - - - - 4. The names "Smack" and "Jive Software" must not be used to - - endorse or promote products derived from this software without - - prior written permission. For written permission, please - - contact webmaster@jivesoftware.com. - - - - 5. Products derived from this software may not be called "Smack", - - nor may "Smack" appear in their name, without prior written - - permission of Jive Software. - - - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - - DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - - SUCH DAMAGE. - --%> -<%@ page import="java.util.*, - org.jivesoftware.smack.*, - org.jivesoftware.smack.packet.*, - org.jivesoftware.smack.util.*"%> -<%@ include file="global.jsp" %> -<% - // If we don't have a valid connection then proceed to login - XMPPConnection conn = (XMPPConnection) session.getAttribute("connection"); - if (conn == null || !conn.isConnected()) { - response.sendRedirect("login.jsp"); - return; - } - Roster roster = conn.getRoster(); - - // Get parameters - String action = getParameter(request, "action"); - String user = getParameter(request, "user"); - String groupName = getParameter(request, "group"); - - // Remove the selected user from the roster (and all the groups) - if ("rosterDelete".equals(action)) { - RosterEntry entry = roster.getEntry(user); - roster.removeEntry(entry); - response.sendRedirect("viewRoster.jsp"); - return; - } - - // Remove the selected user from the selected group - if ("groupDelete".equals(action)) { - RosterEntry entry = roster.getEntry(user); - RosterGroup rosterGroup = roster.getGroup(groupName); - rosterGroup.removeEntry(entry); - response.sendRedirect("viewRoster.jsp"); - return; - } - - // Close the connection to the XMPP server - if ("close".equals(action)) { - conn.close(); - session.invalidate(); - response.sendRedirect("login.jsp"); - return; - } -%> - - -Viewing roster - - - - - - - - - - - - -
    <%= StringUtils.parseName(conn.getUser())%>'s roster - - - - - -
     Refresh rosterClose connection
    - - - - -
    - - - - - - -
    Roster entries
    - <% for (Iterator groups = roster.getGroups(); groups.hasNext();) { - RosterGroup group = (RosterGroup)groups.next();%> - - - - - - - - - - <% for (Iterator it = group.getEntries(); it.hasNext();) { - RosterEntry entry = (RosterEntry)it.next();%> - - - - - - - - - <% }%> - <% }%> - - - - - - - - - - <% for (Iterator it = roster.getUnfiledEntries(); it.hasNext();) { - RosterEntry entry = (RosterEntry)it.next();%> - - - - - - - - - <% }%> -
    Group: - <%= group.getName()%>
    UserNameSubscriptionAdd contact to group
    <%= entry.getUser()%><%= entry.getName()%><%= entry.getType()%>Groups managementRemove contact from the groupRemove contact from the roster
    Unfiled - entries
    UserNameSubscriptionAdd contact
    <%= entry.getUser()%><%= entry.getName()%><%= entry.getType()%>Groups management Remove contact from roster
      - - - - - - -
    Presences -
    - - - - - - - - - - <% for (Iterator entries = roster.getEntries(); entries.hasNext();) { - RosterEntry entry = (RosterEntry)entries.next(); - Iterator presences = roster.getPresences(entry.getUser()); - if (presences != null) { - while (presences.hasNext()) { - Presence presence = (Presence)presences.next(); %> - - - - - - - <% }%> - <% }%> - <% }%> - - - - - - - - - - <% // Show other presences of the current user - Iterator presences = roster.getPresences(conn.getUser()); - if (presences != null) { - while (presences.hasNext()) { - Presence presence = (Presence)presences.next(); %> - - - - - - - <% }%> - <% }%> -
    Roster´s presences
    UserModeType 
    <%= presence.getFrom()%><%= presence.getMode()%><%= presence.getType()%>Chat
    My other resources
    UserModeType 
    <%= presence.getFrom()%><%= presence.getMode()%><%= presence.getType()%>Chat
    - - diff --git a/CopyOftrunk/source/org/jivesoftware/smack/AccountManager.java b/CopyOftrunk/source/org/jivesoftware/smack/AccountManager.java deleted file mode 100644 index dbc0d6eaf..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/AccountManager.java +++ /dev/null @@ -1,298 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.Registration; -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.util.StringUtils; - -import java.util.*; - -/** - * Allows creation and management of accounts on an XMPP server. - * - * @see XMPPConnection#getAccountManager() - * @author Matt Tucker - */ -public class AccountManager { - - private XMPPConnection connection; - private Registration info = null; - - /** - * Creates a new AccountManager instance. - * - * @param connection a connection to a XMPP server. - */ - public AccountManager(XMPPConnection connection) { - this.connection = connection; - } - - /** - * Returns true if the server supports creating new accounts. Many servers require - * that you not be currently authenticated when creating new accounts, so the safest - * behavior is to only create new accounts before having logged in to a server. - * - * @return true if the server support creating new accounts. - */ - public boolean supportsAccountCreation() { - try { - if (info == null) { - getRegistrationInfo(); - } - return info.getType() != IQ.Type.ERROR; - } - catch (XMPPException xe) { - return false; - } - } - - /** - * Returns an Iterator for the (String) names of the required account attributes. - * All attributes must be set when creating new accounts. The standard - * attributes are as follows:
      - *
    • name -- the user's name. - *
    • first -- the user's first name. - *
    • last -- the user's last name. - *
    • email -- the user's email address. - *
    • city -- the user's city. - *
    • state -- the user's state. - *
    • zip -- the user's ZIP code. - *
    • phone -- the user's phone number. - *
    • url -- the user's website. - *
    • date -- the date the registration took place. - *
    • misc -- other miscellaneous information to associate with the account. - *
    • text -- textual information to associate with the account. - *
    • remove -- empty flag to remove account. - *

    - * - * Typically, servers require no attributes when creating new accounts, or just - * the user's email address. - * - * @return the required account attributes. - */ - public Iterator getAccountAttributes() { - try { - if (info == null) { - getRegistrationInfo(); - } - Map attributes = info.getAttributes(); - if (attributes != null) { - return attributes.keySet().iterator(); - } - } - catch (XMPPException xe) { } - return Collections.EMPTY_LIST.iterator(); - } - - /** - * Returns the value of a given account attribute or null if the account - * attribute wasn't found. - * - * @param name the name of the account attribute to return its value. - * @return the value of the account attribute or null if an account - * attribute wasn't found for the requested name. - */ - public String getAccountAttribute(String name) { - try { - if (info == null) { - getRegistrationInfo(); - } - return (String) info.getAttributes().get(name); - } - catch (XMPPException xe) { } - return null; - } - - /** - * Returns the instructions for creating a new account, or null if there - * are no instructions. If present, instructions should be displayed to the end-user - * that will complete the registration process. - * - * @return the account creation instructions, or null if there are none. - */ - public String getAccountInstructions() { - try { - if (info == null) { - getRegistrationInfo(); - } - return info.getInstructions(); - } - catch (XMPPException xe) { - return null; - } - } - - /** - * Creates a new account using the specified username and password. The server may - * require a number of extra account attributes such as an email address and phone - * number. In that case, Smack will attempt to automatically set all required - * attributes with blank values, which may or may not be accepted by the server. - * Therefore, it's recommended to check the required account attributes and to let - * the end-user populate them with real values instead. - * - * @param username the username. - * @param password the password. - * @throws XMPPException if an error occurs creating the account. - */ - public void createAccount(String username, String password) throws XMPPException { - if (!supportsAccountCreation()) { - throw new XMPPException("Server does not support account creation."); - } - // Create a map for all the required attributes, but give them blank values. - Map attributes = new HashMap(); - for (Iterator i=getAccountAttributes(); i.hasNext(); ) { - String attributeName = (String)i.next(); - attributes.put(attributeName, ""); - } - createAccount(username, password, attributes); - } - - /** - * Creates a new account using the specified username, password and account attributes. - * The attributes Map must contain only String name/value pairs and must also have values - * for all required attributes. - * - * @param username the username. - * @param password the password. - * @param attributes the account attributes. - * @throws XMPPException if an error occurs creating the account. - * @see #getAccountAttributes() - */ - public void createAccount(String username, String password, Map attributes) - throws XMPPException - { - if (!supportsAccountCreation()) { - throw new XMPPException("Server does not support account creation."); - } - Registration reg = new Registration(); - reg.setType(IQ.Type.SET); - reg.setTo(connection.getHost()); - attributes.put("username",username); - attributes.put("password",password); - reg.setAttributes(attributes); - PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), - new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - } - - /** - * Changes the password of the currently logged-in account. This operation can only - * be performed after a successful login operation has been completed. Not all servers - * support changing passwords; an XMPPException will be thrown when that is the case. - * - * @throws IllegalStateException if not currently logged-in to the server. - * @throws XMPPException if an error occurs when changing the password. - */ - public void changePassword(String newPassword) throws XMPPException { - Registration reg = new Registration(); - reg.setType(IQ.Type.SET); - reg.setTo(connection.getHost()); - HashMap map = new HashMap(); - map.put("username",StringUtils.parseName(connection.getUser())); - map.put("password",newPassword); - reg.setAttributes(map); - PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), - new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - } - - /** - * Deletes the currently logged-in account from the server. This operation can only - * be performed after a successful login operation has been completed. Not all servers - * support deleting accounts; an XMPPException will be thrown when that is the case. - * - * @throws IllegalStateException if not currently logged-in to the server. - * @throws XMPPException if an error occurs when deleting the account. - */ - public void deleteAccount() throws XMPPException { - if (!connection.isAuthenticated()) { - throw new IllegalStateException("Must be logged in to delete a account."); - } - Registration reg = new Registration(); - reg.setType(IQ.Type.SET); - reg.setTo(connection.getHost()); - Map attributes = new HashMap(); - // To delete an account, we add a single attribute, "remove", that is blank. - attributes.put("remove", ""); - reg.setAttributes(attributes); - PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), - new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - } - - /** - * Gets the account registration info from the server. - * - * @throws XMPPException if an error occurs. - */ - private synchronized void getRegistrationInfo() throws XMPPException { - Registration reg = new Registration(); - reg.setTo(connection.getHost()); - PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), - new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - else { - info = (Registration)result; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/Chat.java b/CopyOftrunk/source/org/jivesoftware/smack/Chat.java deleted file mode 100644 index c29832dd9..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/Chat.java +++ /dev/null @@ -1,266 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.util.StringUtils; -import org.jivesoftware.smack.filter.*; - -/** - * A chat is a series of messages sent between two users. Each chat can have - * a unique thread ID, which is used to track which messages are part of a particular - * conversation.

    - * - * In some situations, it is better to have all messages from the other user delivered - * to a Chat rather than just the messages that have a particular thread ID. To - * enable this behavior, call {@link #setFilteredOnThreadID(boolean)} with - * false as the parameter. - * - * @see XMPPConnection#createChat(String) - * @author Matt Tucker - */ -public class Chat { - - /** - * A prefix helps to make sure that ID's are unique across mutliple instances. - */ - private static String prefix = StringUtils.randomString(5); - - /** - * True if only messages that have a matching threadID will be delivered to a Chat. When - * false, any message from the other participant will be delivered to a Chat. - */ - private static boolean filteredOnThreadID = true; - - /** - * Keeps track of the current increment, which is appended to the prefix to - * forum a unique ID. - */ - private static long id = 0; - - /** - * Returns the next unique id. Each id made up of a short alphanumeric - * prefix along with a unique numeric value. - * - * @return the next id. - */ - private static synchronized String nextID() { - return prefix + Long.toString(id++); - } - - private XMPPConnection connection; - private String threadID; - private String participant; - private PacketFilter messageFilter; - private PacketCollector messageCollector; - - /** - * Creates a new chat with the specified user. - * - * @param connection the connection the chat will use. - * @param participant the user to chat with. - */ - public Chat(XMPPConnection connection, String participant) { - // Automatically assign the next chat ID. - this(connection, participant, nextID()); - // If not filtering on thread ID, force the thread ID for this Chat to be null. - if (!filteredOnThreadID) { - this.threadID = null; - } - } - - /** - * Creates a new chat with the specified user and thread ID. - * - * @param connection the connection the chat will use. - * @param participant the user to chat with. - * @param threadID the thread ID to use. - */ - public Chat(XMPPConnection connection, String participant, String threadID) { - this.connection = connection; - this.participant = participant; - this.threadID = threadID; - - if (filteredOnThreadID) { - // Filter the messages whose thread equals Chat's id - messageFilter = new ThreadFilter(threadID); - } - else { - // Filter the messages of type "chat" and sender equals Chat's participant - messageFilter = - new OrFilter( - new AndFilter( - new MessageTypeFilter(Message.Type.CHAT), - new FromContainsFilter(participant)), - new ThreadFilter(threadID)); - } - messageCollector = connection.createPacketCollector(messageFilter); - } - - /** - * Returns true if only messages that have a matching threadID will be delivered to Chat - * instances. When false, any message from the other participant will be delivered to Chat instances. - * - * @return true if messages delivered to Chat instances are filtered on thread ID. - */ - public static boolean isFilteredOnThreadID() { - return filteredOnThreadID; - } - - /** - * Sets whether only messages that have a matching threadID will be delivered to Chat instances. - * When false, any message from the other participant will be delivered to a Chat instances. - * - * @param value true if messages delivered to Chat instances are filtered on thread ID. - */ - public static void setFilteredOnThreadID(boolean value) { - filteredOnThreadID = value; - } - - /** - * Returns the thread id associated with this chat, which corresponds to the - * thread field of XMPP messages. This method may return null - * if there is no thread ID is associated with this Chat. - * - * @return the thread ID of this chat. - */ - public String getThreadID() { - return threadID; - } - - /** - * Returns the name of the user the chat is with. - * - * @return the name of the user the chat is occuring with. - */ - public String getParticipant() { - return participant; - } - - /** - * Sends the specified text as a message to the other chat participant. - * This is a convenience method for: - * - *

    -     *     Message message = chat.createMessage();
    -     *     message.setBody(messageText);
    -     *     chat.sendMessage(message);
    -     * 
    - * - * @param text the text to send. - * @throws XMPPException if sending the message fails. - */ - public void sendMessage(String text) throws XMPPException { - Message message = createMessage(); - message.setBody(text); - connection.sendPacket(message); - } - - /** - * Creates a new Message to the chat participant. The message returned - * will have its thread property set with this chat ID. - * - * @return a new message addressed to the chat participant and - * using the correct thread value. - * @see #sendMessage(Message) - */ - public Message createMessage() { - Message message = new Message(participant, Message.Type.CHAT); - message.setThread(threadID); - return message; - } - - /** - * Sends a message to the other chat participant. The thread ID, recipient, - * and message type of the message will automatically set to those of this chat - * in case the Message was not created using the {@link #createMessage() createMessage} - * method. - * - * @param message the message to send. - * @throws XMPPException if an error occurs sending the message. - */ - public void sendMessage(Message message) throws XMPPException { - // Force the recipient, message type, and thread ID since the user elected - // to send the message through this chat object. - message.setTo(participant); - message.setType(Message.Type.CHAT); - message.setThread(threadID); - connection.sendPacket(message); - } - - /** - * Polls for and returns the next message, or null if there isn't - * a message immediately available. This method provides significantly different - * functionalty than the {@link #nextMessage()} method since it's non-blocking. - * In other words, the method call will always return immediately, whereas the - * nextMessage method will return only when a message is available (or after - * a specific timeout). - * - * @return the next message if one is immediately available and - * null otherwise. - */ - public Message pollMessage() { - return (Message)messageCollector.pollResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a message is available. - * - * @return the next message. - */ - public Message nextMessage() { - return (Message)messageCollector.nextResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a packet is available or the timeout has elapased. - * If the timeout elapses without a result, null will be returned. - * - * @param timeout the maximum amount of time to wait for the next message. - * @return the next message, or null if the timeout elapses without a - * message becoming available. - */ - public Message nextMessage(long timeout) { - return (Message)messageCollector.nextResult(timeout); - } - - /** - * Adds a packet listener that will be notified of any new messages in the - * chat. - * - * @param listener a packet listener. - */ - public void addMessageListener(PacketListener listener) { - connection.addPacketListener(listener, messageFilter); - } - - public void finalize() throws Throwable { - super.finalize(); - try { - if (messageCollector != null) { - messageCollector.cancel(); - } - } - catch (Exception e) {} - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/ConnectionEstablishedListener.java b/CopyOftrunk/source/org/jivesoftware/smack/ConnectionEstablishedListener.java deleted file mode 100644 index 316615bfc..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/ConnectionEstablishedListener.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -/** - * Interface that allows for implementing classes to listen for connection established - * events. Listeners are registered with the XMPPConnection class. - * - * @see XMPPConnection#addConnectionListener - * @see XMPPConnection#removeConnectionListener - * - * @author Gaston Dombiak - */ -public interface ConnectionEstablishedListener { - - /** - * Notification that a new connection has been established. - * - * @param connection the new established connection - */ - public void connectionEstablished(XMPPConnection connection); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/ConnectionListener.java b/CopyOftrunk/source/org/jivesoftware/smack/ConnectionListener.java deleted file mode 100644 index 845cba884..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/ConnectionListener.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -/** - * Interface that allows for implementing classes to listen for connection closing - * events. Listeners are reigstered with XMPPConnection objects. - * - * @see XMPPConnection#addConnectionListener - * @see XMPPConnection#removeConnectionListener - * - * @author Matt Tucker - */ -public interface ConnectionListener { - - /** - * Notification that the connection was closed normally. - */ - public void connectionClosed(); - - /** - * Notification that the connection was closed due to an exception. - * - * @param e the exception. - */ - public void connectionClosedOnError(Exception e); -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/GroupChat.java b/CopyOftrunk/source/org/jivesoftware/smack/GroupChat.java deleted file mode 100644 index 668ed8934..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/GroupChat.java +++ /dev/null @@ -1,353 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.Presence; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.packet.Packet; -import org.jivesoftware.smack.filter.*; - -import java.util.*; - -/** - * A GroupChat is a conversation that takes place among many users in a virtual - * room. When joining a group chat, you specify a nickname, which is the identity - * that other chat room users see. - * - * @see XMPPConnection#createGroupChat(String) - * @author Matt Tucker - */ -public class GroupChat { - - private XMPPConnection connection; - private String room; - private String nickname = null; - private boolean joined = false; - private List participants = new ArrayList(); - private List connectionListeners = new ArrayList(); - - private PacketFilter presenceFilter; - private PacketFilter messageFilter; - private PacketCollector messageCollector; - - /** - * Creates a new group chat with the specified connection and room name. Note: no - * information is sent to or received from the server until you attempt to - * {@link #join(String) join} the chat room. On some server implementations, - * the room will not be created until the first person joins it.

    - * - * Most XMPP servers use a sub-domain for the chat service (eg chat.example.com - * for the XMPP server example.com). You must ensure that the room address you're - * trying to connect to includes the proper chat sub-domain. - * - * @param connection the XMPP connection. - * @param room the name of the room in the form "roomName@service", where - * "service" is the hostname at which the multi-user chat - * service is running. - */ - public GroupChat(XMPPConnection connection, String room) { - this.connection = connection; - this.room = room; - // Create a collector for all incoming messages. - messageFilter = new AndFilter(new FromContainsFilter(room), - new PacketTypeFilter(Message.class)); - messageFilter = new AndFilter(messageFilter, new PacketFilter() { - public boolean accept(Packet packet) { - Message msg = (Message)packet; - return msg.getType() == Message.Type.GROUP_CHAT; - } - }); - messageCollector = connection.createPacketCollector(messageFilter); - // Create a listener for all presence updates. - presenceFilter = new AndFilter(new FromContainsFilter(room), - new PacketTypeFilter(Presence.class)); - connection.addPacketListener(new PacketListener() { - public void processPacket(Packet packet) { - Presence presence = (Presence)packet; - String from = presence.getFrom(); - if (presence.getType() == Presence.Type.AVAILABLE) { - synchronized (participants) { - if (!participants.contains(from)) { - participants.add(from); - } - } - } - else if (presence.getType() == Presence.Type.UNAVAILABLE) { - synchronized (participants) { - participants.remove(from); - } - } - } - }, presenceFilter); - } - - /** - * Returns the name of the room this GroupChat object represents. - * - * @return the groupchat room name. - */ - public String getRoom() { - return room; - } - - /** - * Joins the chat room using the specified nickname. If already joined - * using another nickname, this method will first leave the room and then - * re-join using the new nickname. The default timeout of 5 seconds for a reply - * from the group chat server that the join succeeded will be used. - * - * @param nickname the nickname to use. - * @throws XMPPException if an error occurs joining the room. In particular, a - * 409 error can occur if someone is already in the group chat with the same - * nickname. - */ - public synchronized void join(String nickname) throws XMPPException { - join(nickname, SmackConfiguration.getPacketReplyTimeout()); - } - - /** - * Joins the chat room using the specified nickname. If already joined as - * another nickname, will leave as that name first before joining under the new - * name. - * - * @param nickname the nickname to use. - * @param timeout the number of milleseconds to wait for a reply from the - * group chat that joining the room succeeded. - * @throws XMPPException if an error occurs joining the room. In particular, a - * 409 error can occur if someone is already in the group chat with the same - * nickname. - */ - public synchronized void join(String nickname, long timeout) throws XMPPException { - if (nickname == null || nickname.equals("")) { - throw new IllegalArgumentException("Nickname must not be null or blank."); - } - // If we've already joined the room, leave it before joining under a new - // nickname. - if (joined) { - leave(); - } - // We join a room by sending a presence packet where the "to" - // field is in the form "roomName@service/nickname" - Presence joinPresence = new Presence(Presence.Type.AVAILABLE); - joinPresence.setTo(room + "/" + nickname); - // Wait for a presence packet back from the server. - PacketFilter responseFilter = new AndFilter( - new FromContainsFilter(room + "/" + nickname), - new PacketTypeFilter(Presence.class)); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send join packet. - connection.sendPacket(joinPresence); - // Wait up to a certain number of seconds for a reply. - Presence presence = (Presence)response.nextResult(timeout); - response.cancel(); - if (presence == null) { - throw new XMPPException("No response from server."); - } - else if (presence.getError() != null) { - throw new XMPPException(presence.getError()); - } - this.nickname = nickname; - joined = true; - } - - /** - * Returns true if currently in the group chat (after calling the {@link - * #join(String)} method. - * - * @return true if currently in the group chat room. - */ - public boolean isJoined() { - return joined; - } - - /** - * Leave the chat room. - */ - public synchronized void leave() { - // If not joined already, do nothing. - if (!joined) { - return; - } - // We leave a room by sending a presence packet where the "to" - // field is in the form "roomName@service/nickname" - Presence leavePresence = new Presence(Presence.Type.UNAVAILABLE); - leavePresence.setTo(room + "/" + nickname); - connection.sendPacket(leavePresence); - // Reset participant information. - participants = new ArrayList(); - nickname = null; - joined = false; - } - - /** - * Returns the nickname that was used to join the room, or null if not - * currently joined. - * - * @return the nickname currently being used. - */ - public String getNickname() { - return nickname; - } - - /** - * Returns the number of participants in the group chat.

    - * - * Note: this value will only be accurate after joining the group chat, and - * may fluctuate over time. If you query this value directly after joining the - * group chat it may not be accurate, as it takes a certain amount of time for - * the server to send all presence packets to this client. - * - * @return the number of participants in the group chat. - */ - public int getParticipantCount() { - synchronized (participants) { - return participants.size(); - } - } - - /** - * Returns an Iterator (of Strings) for the list of fully qualified participants - * in the group chat. For example, "conference@chat.jivesoftware.com/SomeUser". - * Typically, a client would only display the nickname of the participant. To - * get the nickname from the fully qualified name, use the - * {@link org.jivesoftware.smack.util.StringUtils#parseResource(String)} method. - * Note: this value will only be accurate after joining the group chat, and may - * fluctuate over time. - * - * @return an Iterator for the participants in the group chat. - */ - public Iterator getParticipants() { - synchronized (participants) { - return Collections.unmodifiableList(new ArrayList(participants)).iterator(); - } - } - - /** - * Adds a packet listener that will be notified of any new Presence packets - * sent to the group chat. Using a listener is a suitable way to know when the list - * of participants should be re-loaded due to any changes. - * - * @param listener a packet listener that will be notified of any presence packets - * sent to the group chat. - */ - public void addParticipantListener(PacketListener listener) { - connection.addPacketListener(listener, presenceFilter); - connectionListeners.add(listener); - } - - /** - * Sends a message to the chat room. - * - * @param text the text of the message to send. - * @throws XMPPException if sending the message fails. - */ - public void sendMessage(String text) throws XMPPException { - Message message = new Message(room, Message.Type.GROUP_CHAT); - message.setBody(text); - connection.sendPacket(message); - } - - /** - * Creates a new Message to send to the chat room. - * - * @return a new Message addressed to the chat room. - */ - public Message createMessage() { - return new Message(room, Message.Type.GROUP_CHAT); - } - - /** - * Sends a Message to the chat room. - * - * @param message the message. - * @throws XMPPException if sending the message fails. - */ - public void sendMessage(Message message) throws XMPPException { - connection.sendPacket(message); - } - - /** - * Polls for and returns the next message, or null if there isn't - * a message immediately available. This method provides significantly different - * functionalty than the {@link #nextMessage()} method since it's non-blocking. - * In other words, the method call will always return immediately, whereas the - * nextMessage method will return only when a message is available (or after - * a specific timeout). - * - * @return the next message if one is immediately available and - * null otherwise. - */ - public Message pollMessage() { - return (Message)messageCollector.pollResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a message is available. - * - * @return the next message. - */ - public Message nextMessage() { - return (Message)messageCollector.nextResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a packet is available or the timeout has elapased. - * If the timeout elapses without a result, null will be returned. - * - * @param timeout the maximum amount of time to wait for the next message. - * @return the next message, or null if the timeout elapses without a - * message becoming available. - */ - public Message nextMessage(long timeout) { - return (Message)messageCollector.nextResult(timeout); - } - - /** - * Adds a packet listener that will be notified of any new messages in the - * group chat. Only "group chat" messages addressed to this group chat will - * be delivered to the listener. If you wish to listen for other packets - * that may be associated with this group chat, you should register a - * PacketListener directly with the XMPPConnection with the appropriate - * PacketListener. - * - * @param listener a packet listener. - */ - public void addMessageListener(PacketListener listener) { - connection.addPacketListener(listener, messageFilter); - connectionListeners.add(listener); - } - - public void finalize() throws Throwable { - super.finalize(); - try { - if (messageCollector != null) { - messageCollector.cancel(); - } - // Remove all the PacketListeners added to the connection by this GroupChat - for (Iterator it=connectionListeners.iterator(); it.hasNext();) { - connection.removePacketListener((PacketListener) it.next()); - } - } - catch (Exception e) {} - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/PacketCollector.java b/CopyOftrunk/source/org/jivesoftware/smack/PacketCollector.java deleted file mode 100644 index 75fba96cf..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/PacketCollector.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.Packet; -import org.jivesoftware.smack.filter.PacketFilter; - -import java.util.LinkedList; - -/** - * Provides a mechanism to collect packets into a result queue that pass a - * specified filter. The collector lets you perform blocking and polling - * operations on the result queue. So, a PacketCollector is more suitable to - * use than a {@link PacketListener} when you need to wait for a specific - * result.

    - * - * Each packet collector will queue up to 2^16 packets for processing before - * older packets are automatically dropped. - * - * @see XMPPConnection#createPacketCollector(PacketFilter) - * @author Matt Tucker - */ -public class PacketCollector { - - /** - * Max number of packets that any one collector can hold. After the max is - * reached, older packets will be automatically dropped from the queue as - * new packets are added. - */ - private static final int MAX_PACKETS = 65536; - - private PacketFilter packetFilter; - private LinkedList resultQueue; - private PacketReader packetReader; - private boolean cancelled = false; - - /** - * Creates a new packet collector. If the packet filter is null, then - * all packets will match this collector. - * - * @param packetReader the packetReader the collector is tied to. - * @param packetFilter determines which packets will be returned by this collector. - */ - protected PacketCollector(PacketReader packetReader, PacketFilter packetFilter) { - this.packetReader = packetReader; - this.packetFilter = packetFilter; - this.resultQueue = new LinkedList(); - // Add the collector to the packet reader's list of active collector. - synchronized (packetReader.collectors) { - packetReader.collectors.add(this); - } - } - - /** - * Explicitly cancels the packet collector so that no more results are - * queued up. Once a packet collector has been cancelled, it cannot be - * re-enabled. Instead, a new packet collector must be created. - */ - public void cancel() { - // If the packet collector has already been cancelled, do nothing. - if (cancelled) { - return; - } - else { - cancelled = true; - // Remove object from collectors list by setting the value in the - // list at the correct index to null. The collector thread will - // automatically remove the actual list entry when it can. - synchronized (packetReader.collectors) { - int index = packetReader.collectors.indexOf(this); - packetReader.collectors.set(index, null); - } - } - } - - /** - * Returns the packet filter associated with this packet collector. The packet - * filter is used to determine what packets are queued as results. - * - * @return the packet filter. - */ - public PacketFilter getPacketFilter() { - return packetFilter; - } - - /** - * Polls to see if a packet is currently available and returns it, or - * immediately returns null if no packets are currently in the - * result queue. - * - * @return the next packet result, or null if there are no more - * results. - */ - public synchronized Packet pollResult() { - if (resultQueue.isEmpty()) { - return null; - } - else { - return (Packet)resultQueue.removeLast(); - } - } - - /** - * Returns the next available packet. The method call will block (not return) - * until a packet is available. - * - * @return the next available packet. - */ - public synchronized Packet nextResult() { - // Wait indefinitely until there is a result to return. - while (resultQueue.isEmpty()) { - try { - wait(); - } - catch (InterruptedException ie) { } - } - return (Packet)resultQueue.removeLast(); - } - - /** - * Returns the next available packet. The method call will block (not return) - * until a packet is available or the timeout has elapased. If the - * timeout elapses without a result, null will be returned. - * - * @param timeout the amount of time to wait for the next packet (in milleseconds). - * @return the next available packet. - */ - public synchronized Packet nextResult(long timeout) { - // Wait up to the specified amount of time for a result. - if (resultQueue.isEmpty()) { - try { - wait(timeout); - } - catch (InterruptedException ie) { } - } - // If still no result, return null. - if (resultQueue.isEmpty()) { - return null; - } - else { - return (Packet)resultQueue.removeLast(); - } - } - - /** - * Processes a packet to see if it meets the criteria for this packet collector. - * If so, the packet is added to the result queue. - * - * @param packet the packet to process. - */ - protected synchronized void processPacket(Packet packet) { - if (packet == null) { - return; - } - if (packetFilter == null || packetFilter.accept(packet)) { - // If the max number of packets has been reached, remove the oldest one. - if (resultQueue.size() == MAX_PACKETS) { - resultQueue.removeLast(); - } - // Add the new packet. - resultQueue.addFirst(packet); - // Notify waiting threads a result is available. - notifyAll(); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/PacketListener.java b/CopyOftrunk/source/org/jivesoftware/smack/PacketListener.java deleted file mode 100644 index 77c6deabe..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/PacketListener.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.Packet; - -/** - * Provides a mechanism to listen for packets that pass a specified filter. - * This allows event-style programming -- every time a new packet is found, - * the {@link #processPacket(Packet)} method will be called. This is the - * opposite approach to the functionality provided by a {@link PacketCollector} - * which lets you block while waiting for results. - * - * @see XMPPConnection#addPacketListener(PacketListener, org.jivesoftware.smack.filter.PacketFilter) - * @author Matt Tucker - */ -public interface PacketListener { - - /** - * Process the next packet sent to this packet listener.

    - * - * A single thread is responsible for invoking all listeners, so - * it's very important that implementations of this method not block - * for any extended period of time. - * - * @param packet the packet to process. - */ - public void processPacket(Packet packet); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/PacketReader.java b/CopyOftrunk/source/org/jivesoftware/smack/PacketReader.java deleted file mode 100644 index dfd2cf598..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/PacketReader.java +++ /dev/null @@ -1,593 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.xmlpull.v1.*; -import org.xmlpull.mxp1.MXParser; - -import java.util.*; -import java.util.List; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.packet.XMPPError; -import org.jivesoftware.smack.filter.PacketFilter; -import org.jivesoftware.smack.util.*; -import org.jivesoftware.smack.provider.*; - -/** - * Listens for XML traffic from the XMPP server and parses it into packet objects. - * The packet reader also manages all packet listeners and collectors.

    - * - * @see PacketCollector - * @see PacketListener - * @author Matt Tucker - */ -class PacketReader { - - private Thread readerThread; - private Thread listenerThread; - - private XMPPConnection connection; - private XmlPullParser parser; - private boolean done = false; - protected List collectors = new ArrayList(); - private List listeners = new ArrayList(); - protected List connectionListeners = new ArrayList(); - - private String connectionID = null; - private Object connectionIDLock = new Object(); - - protected PacketReader(XMPPConnection connection) { - this.connection = connection; - - readerThread = new Thread() { - public void run() { - parsePackets(); - } - }; - readerThread.setName("Smack Packet Reader"); - readerThread.setDaemon(true); - - listenerThread = new Thread() { - public void run() { - try { - processListeners(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - }; - listenerThread.setName("Smack Listener Processor"); - listenerThread.setDaemon(true); - - try { - parser = new MXParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(connection.reader); - } - catch (XmlPullParserException xppe) { - xppe.printStackTrace(); - } - } - - /** - * Creates a new packet collector for this reader. A packet filter determines - * which packets will be accumulated by the collector. - * - * @param packetFilter the packet filter to use. - * @return a new packet collector. - */ - public PacketCollector createPacketCollector(PacketFilter packetFilter) { - PacketCollector packetCollector = new PacketCollector(this, packetFilter); - return packetCollector; - } - - /** - * Registers a packet listener with this reader. A packet filter determines - * which packets will be delivered to the listener. - * - * @param packetListener the packet listener to notify of new packets. - * @param packetFilter the packet filter to use. - */ - public void addPacketListener(PacketListener packetListener, PacketFilter packetFilter) { - ListenerWrapper wrapper = new ListenerWrapper(this, packetListener, - packetFilter); - synchronized (listeners) { - listeners.add(wrapper); - } - } - - /** - * Removes a packet listener. - * - * @param packetListener the packet listener to remove. - */ - public void removePacketListener(PacketListener packetListener) { - synchronized (listeners) { - for (int i=0; i 0) { - for (int i=listeners.size()-1; i>=0; i--) { - if (listeners.get(i) == null) { - listeners.remove(i); - } - } - } - } - processedPacket = false; - int size = listeners.size(); - for (int i=0; i=0; i--) { - if (collectors.get(i) == null) { - collectors.remove(i); - } - } - } - - // Loop through all collectors and notify the appropriate ones. - int size = collectors.size(); - for (int i=0; ivalue. - if (parser.getNamespace().equals("jabber:iq:register")) { - String name = parser.getName(); - String value = ""; - if (fields == null) { - fields = new HashMap(); - } - - if (parser.next() == XmlPullParser.TEXT) { - value = parser.getText(); - } - // Ignore instructions, but anything else should be added to the map. - if (!name.equals("instructions")) { - fields.put(name, value); - } - else { - registration.setInstructions(value); - } -} - // Otherwise, it must be a packet extension. - else { - registration.addExtension( - PacketParserUtils.parsePacketExtension( - parser.getName(), - parser.getNamespace(), - parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("query")) { - done = true; - } - } - } - registration.setAttributes(fields); - return registration; - } - - /** - * A wrapper class to associate a packet collector with a listener. - */ - private static class ListenerWrapper { - - private PacketListener packetListener; - private PacketCollector packetCollector; - - public ListenerWrapper(PacketReader packetReader, PacketListener packetListener, - PacketFilter packetFilter) - { - this.packetListener = packetListener; - this.packetCollector = new PacketCollector(packetReader, packetFilter); - } - - public boolean equals(Object object) { - if (object == null) { - return false; - } - if (object instanceof ListenerWrapper) { - return ((ListenerWrapper)object).packetListener.equals(this.packetListener); - } - else if (object instanceof PacketListener) { - return object.equals(this.packetListener); - } - return false; - } - - public boolean notifyListener() { - Packet packet = packetCollector.pollResult(); - if (packet != null) { - packetListener.processPacket(packet); - return true; - } - else { - return false; - } - } - - public void cancel() { - packetCollector.cancel(); - packetCollector = null; - packetListener = null; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/PacketWriter.java b/CopyOftrunk/source/org/jivesoftware/smack/PacketWriter.java deleted file mode 100644 index 679cbc448..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/PacketWriter.java +++ /dev/null @@ -1,340 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import java.util.*; -import java.io.*; - -import org.jivesoftware.smack.filter.PacketFilter; -import org.jivesoftware.smack.packet.Packet; - -/** - * Writes packets to a XMPP server. - * - * @author Matt Tucker - */ -class PacketWriter { - - private Thread writerThread; - private Writer writer; - private XMPPConnection connection; - private LinkedList queue; - private boolean done = false; - - private List listeners = new ArrayList(); - private boolean listenersDeleted = false; - private Thread listenerThread; - private LinkedList sentPackets = new LinkedList(); - - /** - * Creates a new packet writer with the specified connection. - * - * @param connection the connection. - */ - protected PacketWriter(XMPPConnection connection) { - this.connection = connection; - this.writer = connection.writer; - this.queue = new LinkedList(); - - writerThread = new Thread() { - public void run() { - writePackets(); - } - }; - writerThread.setName("Smack Packet Writer"); - writerThread.setDaemon(true); - - listenerThread = new Thread() { - public void run() { - processListeners(); - } - }; - listenerThread.setName("Smack Writer Listener Processor"); - listenerThread.setDaemon(true); - - // Schedule a keep-alive task to run if the feature is enabled. will write - // out a space character each time it runs to keep the TCP/IP connection open. - int keepAliveInterval = SmackConfiguration.getKeepAliveInterval(); - if (keepAliveInterval > 0) { - Thread keepAliveThread = new Thread(new KeepAliveTask(keepAliveInterval)); - keepAliveThread.setDaemon(true); - keepAliveThread.start(); - } - } - - /** - * Sends the specified packet to the server. - * - * @param packet the packet to send. - */ - public void sendPacket(Packet packet) { - if (!done) { - synchronized(queue) { - queue.addFirst(packet); - queue.notifyAll(); - } - // Add the sent packet to the list of sent packets. The - // PacketWriterListeners will be notified of the new packet. - synchronized(sentPackets) { - sentPackets.addFirst(packet); - sentPackets.notifyAll(); - } - } - } - - /** - * Registers a packet listener with this writer. The listener will be - * notified of every packet that this writer sends. A packet filter determines - * which packets will be delivered to the listener. - * - * @param packetListener the packet listener to notify of sent packets. - * @param packetFilter the packet filter to use. - */ - public void addPacketListener(PacketListener packetListener, PacketFilter packetFilter) { - synchronized (listeners) { - listeners.add(new ListenerWrapper(packetListener, packetFilter)); - } - } - - /** - * Removes a packet listener. - * - * @param packetListener the packet listener to remove. - */ - public void removePacketListener(PacketListener packetListener) { - synchronized (listeners) { - for (int i=0; i 0) { - return (Packet)queue.removeLast(); - } - else { - return null; - } - } - } - - private void writePackets() { - try { - // Open the stream. - StringBuffer stream = new StringBuffer(); - stream.append(""); - writer.write(stream.toString()); - writer.flush(); - stream = null; - // Write out packets from the queue. - while (!done) { - Packet packet = nextPacket(); - if (packet != null) { - synchronized (writer) { - writer.write(packet.toXML()); - writer.flush(); - } - } - } - // Close the stream. - try { - writer.write(""); - writer.flush(); - } - catch (Exception e) { } - finally { - try { - writer.close(); - } - catch (Exception e) { } - } - } - catch (IOException ioe){ - if (!done) { - done = true; - connection.packetReader.notifyConnectionError(ioe); - } - } - } - - /** - * Process listeners. - */ - private void processListeners() { - while (!done) { - Packet sentPacket; - // Wait until a new packet has been sent - synchronized (sentPackets) { - while (!done && sentPackets.size() == 0) { - try { - sentPackets.wait(2000); - } - catch (InterruptedException ie) { } - } - if (sentPackets.size() > 0) { - sentPacket = (Packet)sentPackets.removeLast(); - } - else { - sentPacket = null; - } - } - if (sentPacket != null) { - // Clean up null entries in the listeners list if the flag is set. List - // removes are done seperately so that the main notification process doesn't - // need to synchronize on the list. - synchronized (listeners) { - if (listenersDeleted) { - for (int i=listeners.size()-1; i>=0; i--) { - if (listeners.get(i) == null) { - listeners.remove(i); - } - } - listenersDeleted = false; - } - } - // Notify the listeners of the new sent packet - int size = listeners.size(); - for (int i=0; i - * - * Others users may attempt to subscribe to this user using a subscription request. Three - * modes are supported for handling these requests:

      - *
    • SUBSCRIPTION_ACCEPT_ALL -- accept all subscription requests. - *
    • SUBSCRIPTION_REJECT_ALL -- reject all subscription requests. - *
    • SUBSCRIPTION_MANUAL -- manually process all subscription requests.
    - * - * @see XMPPConnection#getRoster() - * @author Matt Tucker - */ -public class Roster { - - /** - * Automatically accept all subscription requests. This is the default mode - * and is suitable for simple client. More complex client will likely wish to - * handle subscription requests manually. - */ - public static final int SUBSCRIPTION_ACCEPT_ALL = 0; - - /** - * Automatically reject all subscription requests. - */ - public static final int SUBSCRIPTION_REJECT_ALL = 1; - - /** - * Subscription requests are ignored, which means they must be manually - * processed by registering a listener for presence packets and then looking - * for any presence requests that have the type Presence.Type.SUBSCRIBE. - */ - public static final int SUBSCRIPTION_MANUAL = 2; - - /** - * The default subscription processing mode to use when a Roster is created. By default - * all subscription requests are automatically accepted. - */ - private static int defaultSubscriptionMode = SUBSCRIPTION_ACCEPT_ALL; - - private XMPPConnection connection; - private Map groups; - private List entries; - private List unfiledEntries; - private List rosterListeners; - private Map presenceMap; - // The roster is marked as initialized when at least a single roster packet - // has been recieved and processed. - boolean rosterInitialized = false; - - private int subscriptionMode = getDefaultSubscriptionMode(); - - /** - * Returns the default subscription processing mode to use when a new Roster is created. The - * subscription processing mode dictates what action Smack will take when subscription - * requests from other users are made. The default subscription mode - * is {@link #SUBSCRIPTION_ACCEPT_ALL}. - * - * @return the default subscription mode to use for new Rosters - */ - public static int getDefaultSubscriptionMode() { - return defaultSubscriptionMode; - } - - /** - * Sets the default subscription processing mode to use when a new Roster is created. The - * subscription processing mode dictates what action Smack will take when subscription - * requests from other users are made. The default subscription mode - * is {@link #SUBSCRIPTION_ACCEPT_ALL}. - * - * @param subscriptionMode the default subscription mode to use for new Rosters. - */ - public static void setDefaultSubscriptionMode(int subscriptionMode) { - defaultSubscriptionMode = subscriptionMode; - } - - /** - * Creates a new roster. - * - * @param connection an XMPP connection. - */ - Roster(final XMPPConnection connection) { - this.connection = connection; - groups = new Hashtable(); - unfiledEntries = new ArrayList(); - entries = new ArrayList(); - rosterListeners = new ArrayList(); - presenceMap = new HashMap(); - // Listen for any roster packets. - PacketFilter rosterFilter = new PacketTypeFilter(RosterPacket.class); - connection.addPacketListener(new RosterPacketListener(), rosterFilter); - // Listen for any presence packets. - PacketFilter presenceFilter = new PacketTypeFilter(Presence.class); - connection.addPacketListener(new PresencePacketListener(), presenceFilter); - } - - /** - * Returns the subscription processing mode, which dictates what action - * Smack will take when subscription requests from other users are made. - * The default subscription mode is {@link #SUBSCRIPTION_ACCEPT_ALL}.

    - * - * If using the manual mode, a PacketListener should be registered that - * listens for Presence packets that have a type of - * {@link org.jivesoftware.smack.packet.Presence.Type#SUBSCRIBE}. - * - * @return the subscription mode. - */ - public int getSubscriptionMode() { - return subscriptionMode; - } - - /** - * Sets the subscription processing mode, which dictates what action - * Smack will take when subscription requests from other users are made. - * The default subscription mode is {@link #SUBSCRIPTION_ACCEPT_ALL}.

    - * - * If using the manual mode, a PacketListener should be registered that - * listens for Presence packets that have a type of - * {@link org.jivesoftware.smack.packet.Presence.Type#SUBSCRIBE}. - * - * @param subscriptionMode the subscription mode. - */ - public void setSubscriptionMode(int subscriptionMode) { - if (subscriptionMode != SUBSCRIPTION_ACCEPT_ALL && - subscriptionMode != SUBSCRIPTION_REJECT_ALL && - subscriptionMode != SUBSCRIPTION_MANUAL) - { - throw new IllegalArgumentException("Invalid mode."); - } - this.subscriptionMode = subscriptionMode; - } - - /** - * Reloads the entire roster from the server. This is an asynchronous operation, - * which means the method will return immediately, and the roster will be - * reloaded at a later point when the server responds to the reload request. - */ - public void reload() { - connection.sendPacket(new RosterPacket()); - } - - /** - * Adds a listener to this roster. The listener will be fired anytime one or more - * changes to the roster are pushed from the server. - * - * @param rosterListener a roster listener. - */ - public void addRosterListener(RosterListener rosterListener) { - synchronized (rosterListeners) { - if (!rosterListeners.contains(rosterListener)) { - rosterListeners.add(rosterListener); - } - } - } - - /** - * Removes a listener from this roster. The listener will be fired anytime one or more - * changes to the roster are pushed from the server. - * - * @param rosterListener a roster listener. - */ - public void removeRosterListener(RosterListener rosterListener) { - synchronized (rosterListeners) { - rosterListeners.remove(rosterListener); - } - } - - /** - * Creates a new group.

    - * - * Note: you must add at least one entry to the group for the group to be kept - * after a logout/login. This is due to the way that XMPP stores group information. - * - * @param name the name of the group. - * @return a new group. - */ - public RosterGroup createGroup(String name) { - synchronized (groups) { - if (groups.containsKey(name)) { - throw new IllegalArgumentException("Group with name " + name + " alread exists."); - } - RosterGroup group = new RosterGroup(name, connection); - groups.put(name, group); - return group; - } - } - - /** - * Creates a new roster entry and presence subscription. The server will asynchronously - * update the roster with the subscription status. - * - * @param user the user. (e.g. johndoe@jabber.org) - * @param name the nickname of the user. - * @param groups the list of group names the entry will belong to, or null if the - * the roster entry won't belong to a group. - */ - public void createEntry(String user, String name, String [] groups) throws XMPPException { - // Create and send roster entry creation packet. - RosterPacket rosterPacket = new RosterPacket(); - rosterPacket.setType(IQ.Type.SET); - RosterPacket.Item item = new RosterPacket.Item(user, name); - if (groups != null) { - for (int i=0; i>Packet(Packet) - synchronized (entries) { - if (!entries.contains(entry)) { - return; - } - } - RosterPacket packet = new RosterPacket(); - packet.setType(IQ.Type.SET); - RosterPacket.Item item = RosterEntry.toRosterItem(entry); - // Set the item type as REMOVE so that the server will delete the entry - item.setItemType(RosterPacket.ItemType.REMOVE); - packet.addRosterItem(item); - PacketCollector collector = connection.createPacketCollector( - new PacketIDFilter(packet.getPacketID())); - connection.sendPacket(packet); - IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - collector.cancel(); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - else { - - } - } - - /** - * Returns a count of the entries in the roster. - * - * @return the number of entries in the roster. - */ - public int getEntryCount() { - HashMap entryMap = new HashMap(); - // Loop through all roster groups. - for (Iterator groups = getGroups(); groups.hasNext(); ) { - RosterGroup rosterGroup = (RosterGroup) groups.next(); - for (Iterator entries = rosterGroup.getEntries(); entries.hasNext(); ) { - entryMap.put(entries.next(), ""); - } - } - synchronized (unfiledEntries) { - return entryMap.size() + unfiledEntries.size(); - } - } - - /** - * Returns all entries in the roster, including entries that don't belong to - * any groups. - * - * @return all entries in the roster. - */ - public Iterator getEntries() { - ArrayList allEntries = new ArrayList(); - // Loop through all roster groups and add their entries to the answer - for (Iterator groups = getGroups(); groups.hasNext(); ) { - RosterGroup rosterGroup = (RosterGroup) groups.next(); - for (Iterator entries = rosterGroup.getEntries(); entries.hasNext(); ) { - RosterEntry entry = (RosterEntry)entries.next(); - if (!allEntries.contains(entry)) { - allEntries.add(entry); - } - } - } - // Add the roster unfiled entries to the answer - synchronized (unfiledEntries) { - allEntries.addAll(unfiledEntries); - } - return allEntries.iterator(); - } - - /** - * Returns a count of the unfiled entries in the roster. An unfiled entry is - * an entry that doesn't belong to any groups. - * - * @return the number of unfiled entries in the roster. - */ - public int getUnfiledEntryCount() { - synchronized (unfiledEntries) { - return unfiledEntries.size(); - } - } - - /** - * Returns an Iterator for the unfiled roster entries. An unfiled entry is - * an entry that doesn't belong to any groups. - * - * @return an iterator the unfiled roster entries. - */ - public Iterator getUnfiledEntries() { - synchronized (unfiledEntries) { - return Collections.unmodifiableList(new ArrayList(unfiledEntries)).iterator(); - } - } - - /** - * Returns the roster entry associated with the given XMPP address or - * null if the user is not an entry in the roster. - * - * @param user the XMPP address of the user (eg "jsmith@example.com"). The address could be - * in any valid format (e.g. "domain/resource", "user@domain" or "user@domain/resource"). - * @return the roster entry or null if it does not exist. - */ - public RosterEntry getEntry(String user) { - if (user == null) { - return null; - } - synchronized (entries) { - for (Iterator i=entries.iterator(); i.hasNext(); ) { - RosterEntry entry = (RosterEntry)i.next(); - if (entry.getUser().toLowerCase().equals(user.toLowerCase())) { - return entry; - } - } - } - return null; - } - - /** - * Returns true if the specified XMPP address is an entry in the roster. - * - * @param user the XMPP address of the user (eg "jsmith@example.com"). The address could be - * in any valid format (e.g. "domain/resource", "user@domain" or "user@domain/resource"). - * @return true if the XMPP address is an entry in the roster. - */ - public boolean contains(String user) { - if (user == null) { - return false; - } - synchronized (entries) { - for (Iterator i=entries.iterator(); i.hasNext(); ) { - RosterEntry entry = (RosterEntry)i.next(); - if (entry.getUser().toLowerCase().equals(user.toLowerCase())) { - return true; - } - } - } - return false; - } - - /** - * Returns the roster group with the specified name, or null if the - * group doesn't exist. - * - * @param name the name of the group. - * @return the roster group with the specified name. - */ - public RosterGroup getGroup(String name) { - synchronized (groups) { - return (RosterGroup)groups.get(name); - } - } - - /** - * Returns the number of the groups in the roster. - * - * @return the number of groups in the roster. - */ - public int getGroupCount() { - synchronized (groups) { - return groups.size(); - } - } - - /** - * Returns an iterator the for all the roster groups. - * - * @return an iterator for all roster groups. - */ - public Iterator getGroups() { - synchronized (groups) { - List groupsList = Collections.unmodifiableList(new ArrayList(groups.values())); - return groupsList.iterator(); - } - } - - /** - * Returns the presence info for a particular user, or null if the user - * is unavailable (offline) or if no presence information is available, such as - * when you are not subscribed to the user's presence updates.

    - * - * If the user has several presences (one for each resource) then answer the presence - * with the highest priority. - * - * @param user a fully qualified xmpp ID. The address could be in any valid format (e.g. - * "domain/resource", "user@domain" or "user@domain/resource"). - * @return the user's current presence, or null if the user is unavailable - * or if no presence information is available.. - */ - public Presence getPresence(String user) { - String key = getPresenceMapKey(user); - Map userPresences = (Map) presenceMap.get(key); - if (userPresences == null) { - return null; - } - else { - // Find the resource with the highest priority - // Might be changed to use the resource with the highest availability instead. - Iterator it = userPresences.keySet().iterator(); - Presence p; - Presence presence = null; - - while (it.hasNext()) { - p = (Presence) userPresences.get(it.next()); - if (presence == null) { - presence = p; - } - else { - if (p.getPriority() > presence.getPriority()) { - presence = p; - } - } - } - return presence; - } - } - - /** - * Returns the presence info for a particular user's resource, or null if the user - * is unavailable (offline) or if no presence information is available, such as - * when you are not subscribed to the user's presence updates. - * - * @param userResource a fully qualified xmpp ID including a resource. - * @return the user's current presence, or null if the user is unavailable - * or if no presence information is available. - */ - public Presence getPresenceResource(String userResource) { - String key = getPresenceMapKey(userResource); - String resource = StringUtils.parseResource(userResource); - Map userPresences = (Map)presenceMap.get(key); - if (userPresences == null) { - return null; - } - else { - return (Presence) userPresences.get(resource); - } - } - - /** - * Returns an iterator (of Presence objects) for all the user's current presences - * or null if the user is unavailable (offline) or if no presence information - * is available, such as when you are not subscribed to the user's presence updates. - * - * @param user a fully qualified xmpp ID, e.g. jdoe@example.com - * @return an iterator (of Presence objects) for all the user's current presences, - * or null if the user is unavailable or if no presence information - * is available. - */ - public Iterator getPresences(String user) { - String key = getPresenceMapKey(user); - Map userPresences = (Map)presenceMap.get(key); - if (userPresences == null) { - return null; - } - else { - synchronized (userPresences) { - return new HashMap(userPresences).values().iterator(); - } - } - } - - /** - * Returns the key to use in the presenceMap for a fully qualified xmpp ID. The roster - * can contain any valid address format such us "domain/resource", "user@domain" or - * "user@domain/resource". If the roster contains an entry associated with the fully qualified - * xmpp ID then use the fully qualified xmpp ID as the key in presenceMap, otherwise use the - * bare address. Note: When the key in presenceMap is a fully qualified xmpp ID, the - * userPresences is useless since it will always contain one entry for the user. - * - * @param user the fully qualified xmpp ID, e.g. jdoe@example.com/Work. - * @return the key to use in the presenceMap for the fully qualified xmpp ID. - */ - private String getPresenceMapKey(String user) { - String key = user; - if (!contains(user)) { - key = StringUtils.parseBareAddress(user); - } - return key; - } - - /** - * Fires roster changed event to roster listeners. - */ - private void fireRosterChangedEvent() { - RosterListener [] listeners = null; - synchronized (rosterListeners) { - listeners = new RosterListener[rosterListeners.size()]; - rosterListeners.toArray(listeners); - } - for (int i=0; inull if the user is not an entry in the group. - * - * @param user the XMPP address of the user (eg "jsmith@example.com"). - * @return the roster entry or null if it does not exist in the group. - */ - public RosterEntry getEntry(String user) { - if (user == null) { - return null; - } - // Roster entries never include a resource so remove the resource - // if it's a part of the XMPP address. - user = StringUtils.parseBareAddress(user); - synchronized (entries) { - for (Iterator i=entries.iterator(); i.hasNext(); ) { - RosterEntry entry = (RosterEntry)i.next(); - if (entry.getUser().toLowerCase().equals(user.toLowerCase())) { - return entry; - } - } - } - return null; - } - - /** - * Returns true if the specified entry is part of this group. - * - * @param entry a roster entry. - * @return true if the entry is part of this group. - */ - public boolean contains(RosterEntry entry) { - synchronized (entries) { - return entries.contains(entry); - } - } - - /** - * Returns true if the specified XMPP address is an entry in this group. - * - * @param user the XMPP address of the user. - * @return true if the XMPP address is an entry in this group. - */ - public boolean contains(String user) { - if (user == null) { - return false; - } - // Roster entries never include a resource so remove the resource - // if it's a part of the XMPP address. - user = StringUtils.parseBareAddress(user); - synchronized (entries) { - for (Iterator i=entries.iterator(); i.hasNext(); ) { - RosterEntry entry = (RosterEntry)i.next(); - if (entry.getUser().toLowerCase().equals(user.toLowerCase())) { - return true; - } - } - } - return false; - } - - /** - * Adds a roster entry to this group. If the entry was unfiled then it will be removed from - * the unfiled list and will be added to this group. - * - * @param entry a roster entry. - * @throws XMPPException if an error occured while trying to add the entry to the group. - */ - public void addEntry(RosterEntry entry) throws XMPPException { - PacketCollector collector = null; - // Only add the entry if it isn't already in the list. - synchronized (entries) { - if (!entries.contains(entry)) { - RosterPacket packet = new RosterPacket(); - packet.setType(IQ.Type.SET); - packet.addRosterItem(RosterEntry.toRosterItem(entry)); - // Wait up to a certain number of seconds for a reply from the server. - collector = connection - .createPacketCollector(new PacketIDFilter(packet.getPacketID())); - connection.sendPacket(packet); - } - } - if (collector != null) { - IQ response = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - collector.cancel(); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - // Add the new entry to the group since the server processed the request successfully - entries.add(entry); - } - } - - /** - * Removes a roster entry from this group. If the entry does not belong to any other group - * then it will be considered as unfiled, therefore it will be added to the list of unfiled - * entries. - * - * @param entry a roster entry. - * @throws XMPPException if an error occured while trying to remove the entry from the group. - */ - public void removeEntry(RosterEntry entry) throws XMPPException { - PacketCollector collector = null; - // Only remove the entry if it's in the entry list. - // Remove the entry locally, if we wait for RosterPacketListenerprocess>>Packet(Packet) - // to take place the entry will exist in the group until a packet is received from the - // server. - synchronized (entries) { - if (entries.contains(entry)) { - RosterPacket packet = new RosterPacket(); - packet.setType(IQ.Type.SET); - RosterPacket.Item item = RosterEntry.toRosterItem(entry); - item.removeGroupName(this.getName()); - packet.addRosterItem(item); - // Wait up to a certain number of seconds for a reply from the server. - collector = connection - .createPacketCollector(new PacketIDFilter(packet.getPacketID())); - connection.sendPacket(packet); - } - } - if (collector != null) { - IQ response = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - collector.cancel(); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - // Remove the entry locally since the server processed the request successfully - entries.remove(entry); - } - } - - void addEntryLocal(RosterEntry entry) { - // Only add the entry if it isn't already in the list. - synchronized (entries) { - entries.remove(entry); - entries.add(entry); - } - } - - void removeEntryLocal(RosterEntry entry) { - // Only remove the entry if it's in the entry list. - synchronized (entries) { - if (entries.contains(entry)) { - entries.remove(entry); - } - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/RosterListener.java b/CopyOftrunk/source/org/jivesoftware/smack/RosterListener.java deleted file mode 100644 index 4d3f17e75..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/RosterListener.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -/** - * A listener that is fired any time a roster is changed or the presence of - * a user in the roster is changed. - * - * @author Matt Tucker - */ -public interface RosterListener { - - /** - * Called when a roster entry is added or removed. - */ - public void rosterModified(); - - /** - * Called when the presence of a roster entry is changed. - * - * @param XMPPAddress the XMPP address of the user who's presence has changed, - * including the resource. - */ - public void presenceChanged(String XMPPAddress); -} - diff --git a/CopyOftrunk/source/org/jivesoftware/smack/SSLXMPPConnection.java b/CopyOftrunk/source/org/jivesoftware/smack/SSLXMPPConnection.java deleted file mode 100644 index 520f1d7d3..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/SSLXMPPConnection.java +++ /dev/null @@ -1,168 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import javax.net.ssl.SSLSocketFactory; -import com.sun.net.ssl.*; - -import java.io.IOException; -import java.net.*; -import java.security.NoSuchAlgorithmException; -import java.security.KeyManagementException; -import javax.net.SocketFactory; -import com.sun.net.ssl.X509TrustManager; -import java.security.cert.X509Certificate; -import java.security.cert.CertificateExpiredException; -import java.security.cert.CertificateNotYetValidException; - -/** - * Creates an SSL connection to a XMPP server. - * - * @author Matt Tucker - */ -public class SSLXMPPConnection extends XMPPConnection { - - private static SocketFactory socketFactory = new DummySSLSocketFactory(); - - /** - * Creates a new SSL connection to the specified host on the default - * SSL port (5223). - * - * @param host the XMPP host. - * @throws XMPPException if an error occurs while trying to establish the connection. - * Two possible errors can occur which will be wrapped by an XMPPException -- - * UnknownHostException (XMPP error code 504), and IOException (XMPP error code - * 502). The error codes and wrapped exceptions can be used to present more - * appropiate error messages to end-users. - */ - public SSLXMPPConnection(String host) throws XMPPException { - this(host, 5223); - } - - /** - * Creates a new SSL connection to the specified host on the specified port. - * - * @param host the XMPP host. - * @param port the port to use for the connection (default XMPP SSL port is 5223). - * @throws XMPPException if an error occurs while trying to establish the connection. - * Two possible errors can occur which will be wrapped by an XMPPException -- - * UnknownHostException (XMPP error code 504), and IOException (XMPP error code - * 502). The error codes and wrapped exceptions can be used to present more - * appropiate error messages to end-users. - */ - public SSLXMPPConnection(String host, int port) throws XMPPException { - super(host, port, socketFactory); - } - - public boolean isSecureConnection() { - return true; - } - - /** - * An SSL socket factory that will let any certifacte past, even if it's expired or - * not singed by a root CA. - */ - private static class DummySSLSocketFactory extends SSLSocketFactory { - - private SSLSocketFactory factory; - - public DummySSLSocketFactory() { - - try { - SSLContext sslcontent = SSLContext.getInstance("TLS"); - sslcontent.init(null, // KeyManager not required - new TrustManager[] { new DummyTrustManager() }, - new java.security.SecureRandom()); - factory = sslcontent.getSocketFactory(); - } - catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - catch (KeyManagementException e) { - e.printStackTrace(); - } - } - - public static SocketFactory getDefault() { - return new DummySSLSocketFactory(); - } - - public Socket createSocket(Socket socket, String s, int i, boolean flag) - throws IOException - { - return factory.createSocket(socket, s, i, flag); - } - - public Socket createSocket(InetAddress inaddr, int i, InetAddress inaddr2, int j) - throws IOException - { - return factory.createSocket(inaddr, i, inaddr2, j); - } - - public Socket createSocket(InetAddress inaddr, int i) throws IOException { - return factory.createSocket(inaddr, i); - } - - public Socket createSocket(String s, int i, InetAddress inaddr, int j) throws IOException { - return factory.createSocket(s, i, inaddr, j); - } - - public Socket createSocket(String s, int i) throws IOException { - return factory.createSocket(s, i); - } - - public String[] getDefaultCipherSuites() { - return factory.getSupportedCipherSuites(); - } - - public String[] getSupportedCipherSuites() { - return factory.getSupportedCipherSuites(); - } - } - - /** - * Trust manager which accepts certificates without any validation - * except date validation. - */ - private static class DummyTrustManager implements X509TrustManager { - - public boolean isClientTrusted(X509Certificate[] cert) { - return true; - } - - public boolean isServerTrusted(X509Certificate[] cert) { - try { - cert[0].checkValidity(); - return true; - } - catch (CertificateExpiredException e) { - return false; - } - catch (CertificateNotYetValidException e) { - return false; - } - } - - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/SmackConfiguration.java b/CopyOftrunk/source/org/jivesoftware/smack/SmackConfiguration.java deleted file mode 100644 index 6ac2802cf..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/SmackConfiguration.java +++ /dev/null @@ -1,207 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import java.io.*; -import java.net.*; -import java.util.*; - -import org.xmlpull.v1.*; -import org.xmlpull.mxp1.MXParser; - -/** - * Represents the configuration of Smack. The configuration is used for: - *

      - *
    • Initializing classes by loading them at start-up. - *
    • Getting the current Smack version. - *
    • Getting and setting global library behavior, such as the period of time - * to wait for replies to packets from the server. Note: setting these values - * via the API will override settings in the configuration file. - *
    - * - * Configuration settings are stored in META-INF/smack-config.xml (typically inside the - * smack.jar file). - * - * @author Gaston Dombiak - */ -public final class SmackConfiguration { - - private static final String SMACK_VERSION = "1.5.1"; - - private static int packetReplyTimeout = 5000; - private static int keepAliveInterval = 30000; - - private SmackConfiguration() { - } - - /** - * Loads the configuration from the smack-config.xml file.

    - * - * So far this means that: - * 1) a set of classes will be loaded in order to execute their static init block - * 2) retrieve and set the current Smack release - */ - static { - try { - // Get an array of class loaders to try loading the providers files from. - ClassLoader[] classLoaders = getClassLoaders(); - for (int i = 0; i < classLoaders.length; i++) { - Enumeration configEnum = classLoaders[i].getResources("META-INF/smack-config.xml"); - while (configEnum.hasMoreElements()) { - URL url = (URL) configEnum.nextElement(); - InputStream systemStream = null; - try { - systemStream = url.openStream(); - XmlPullParser parser = new MXParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(systemStream, "UTF-8"); - int eventType = parser.getEventType(); - do { - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("className")) { - // Attempt to load the class so that the class can get initialized - parseClassToLoad(parser); - } - else if (parser.getName().equals("packetReplyTimeout")) { - packetReplyTimeout = parseIntProperty(parser, packetReplyTimeout); - } - else if (parser.getName().equals("keepAliveInterval")) { - keepAliveInterval = parseIntProperty(parser, keepAliveInterval); - } - } - eventType = parser.next(); - } - while (eventType != XmlPullParser.END_DOCUMENT); - } - catch (Exception e) { - e.printStackTrace(); - } - finally { - try { - systemStream.close(); - } - catch (Exception e) { - } - } - } - } - } - catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * Returns the Smack version information, eg "1.3.0". - * - * @return the Smack version information. - */ - public static String getVersion() { - return SMACK_VERSION; - } - - /** - * Returns the number of milliseconds to wait for a response from - * the server. The default value is 5000 ms. - * - * @return the milliseconds to wait for a response from the server - */ - public static int getPacketReplyTimeout() { - // The timeout value must be greater than 0 otherwise we will answer the default value - if (packetReplyTimeout <= 0) { - packetReplyTimeout = 5000; - } - return packetReplyTimeout; - } - - /** - * Sets the number of milliseconds to wait for a response from - * the server. - * - * @param timeout the milliseconds to wait for a response from the server - */ - public static void setPacketReplyTimeout(int timeout) { - if (timeout <= 0) { - throw new IllegalArgumentException(); - } - packetReplyTimeout = timeout; - } - - /** - * Returns the number of milleseconds delay between sending keep-alive - * requests to the server. The default value is 30000 ms. A value of -1 - * mean no keep-alive requests will be sent to the server. - * - * @return the milliseconds to wait between keep-alive requests, or -1 if - * no keep-alive should be sent. - */ - public static int getKeepAliveInterval() { - return keepAliveInterval; - } - - /** - * Sets the number of milleseconds delay between sending keep-alive - * requests to the server. The default value is 30000 ms. A value of -1 - * mean no keep-alive requests will be sent to the server. - * - * @param interval the milliseconds to wait between keep-alive requests, - * or -1 if no keep-alive should be sent. - */ - public static void setKeepAliveInterval(int interval) { - keepAliveInterval = interval; - } - - private static void parseClassToLoad(XmlPullParser parser) throws Exception { - String className = parser.nextText(); - // Attempt to load the class so that the class can get initialized - try { - Class.forName(className); - } - catch (ClassNotFoundException cnfe) { - System.err.println("Error! A startup class specified in smack-config.xml could " + - "not be loaded: " + className); - } - } - - private static int parseIntProperty(XmlPullParser parser, int defaultValue) - throws Exception - { - try { - return Integer.parseInt(parser.nextText()); - } - catch (NumberFormatException nfe) { - nfe.printStackTrace(); - return defaultValue; - } - } - - /** - * Returns an array of class loaders to load resources from. - * - * @return an array of ClassLoader instances. - */ - private static ClassLoader[] getClassLoaders() { - ClassLoader[] classLoaders = new ClassLoader[2]; - classLoaders[0] = new SmackConfiguration().getClass().getClassLoader(); - classLoaders[1] = Thread.currentThread().getContextClassLoader(); - return classLoaders; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/XMPPConnection.java b/CopyOftrunk/source/org/jivesoftware/smack/XMPPConnection.java deleted file mode 100644 index 83a92e253..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/XMPPConnection.java +++ /dev/null @@ -1,867 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.debugger.*; -import org.jivesoftware.smack.filter.*; - -import javax.net.SocketFactory; -import java.lang.reflect.Constructor; -import java.net.*; -import java.util.*; -import java.io.*; - -/** - * Creates a connection to a XMPP server. A simple use of this API might - * look like the following: - *

    - * // Create a connection to the jivesoftware.com XMPP server.
    - * XMPPConnection con = new XMPPConnection("jivesoftware.com");
    - * // Most servers require you to login before performing other tasks.
    - * con.login("jsmith", "mypass");
    - * // Start a new conversation with John Doe and send him a message.
    - * Chat chat = con.createChat("jdoe@jabber.org");
    - * chat.sendMessage("Hey, how's it going?");
    - * 
    - * - * @author Matt Tucker - */ -public class XMPPConnection { - - /** - * Value that indicates whether debugging is enabled. When enabled, a debug - * window will apear for each new connection that will contain the following - * information:
      - *
    • Client Traffic -- raw XML traffic generated by Smack and sent to the server. - *
    • Server Traffic -- raw XML traffic sent by the server to the client. - *
    • Interpreted Packets -- shows XML packets from the server as parsed by Smack. - *
    - * - * Debugging can be enabled by setting this field to true, or by setting the Java system - * property smack.debugEnabled to true. The system property can be set on the - * command line such as "java SomeApp -Dsmack.debugEnabled=true". - */ - public static boolean DEBUG_ENABLED = false; - - private static List connectionEstablishedListeners = new ArrayList(); - - static { - // Use try block since we may not have permission to get a system - // property (for example, when an applet). - try { - DEBUG_ENABLED = Boolean.getBoolean("smack.debugEnabled"); - } - catch (Exception e) { - } - // Ensure the SmackConfiguration class is loaded by calling a method in it. - SmackConfiguration.getVersion(); - } - private SmackDebugger debugger = null; - - String host; - int port; - Socket socket; - - String connectionID; - private String user = null; - private boolean connected = false; - private boolean authenticated = false; - private boolean anonymous = false; - - PacketWriter packetWriter; - PacketReader packetReader; - - Roster roster = null; - private AccountManager accountManager = null; - - Writer writer; - Reader reader; - - /** - * Creates a new connection to the specified XMPP server. The default port of 5222 will - * be used. - * - * @param host the name of the XMPP server to connect to; e.g. jivesoftware.com. - * @throws XMPPException if an error occurs while trying to establish the connection. - * Two possible errors can occur which will be wrapped by an XMPPException -- - * UnknownHostException (XMPP error code 504), and IOException (XMPP error code - * 502). The error codes and wrapped exceptions can be used to present more - * appropiate error messages to end-users. - */ - public XMPPConnection(String host) throws XMPPException { - this(host, 5222); - } - - /** - * Creates a new connection to the specified XMPP server on the given port. - * - * @param host the name of the XMPP server to connect to; e.g. jivesoftware.com. - * @param port the port on the server that should be used; e.g. 5222. - * @throws XMPPException if an error occurs while trying to establish the connection. - * Two possible errors can occur which will be wrapped by an XMPPException -- - * UnknownHostException (XMPP error code 504), and IOException (XMPP error code - * 502). The error codes and wrapped exceptions can be used to present more - * appropiate error messages to end-users. - */ - public XMPPConnection(String host, int port) throws XMPPException { - this.host = host; - this.port = port; - try { - this.socket = new Socket(host, port); - } - catch (UnknownHostException uhe) { - throw new XMPPException( - "Could not connect to " + host + ":" + port + ".", - new XMPPError(504), - uhe); - } - catch (IOException ioe) { - throw new XMPPException( - "XMPPError connecting to " + host + ":" + port + ".", - new XMPPError(502), - ioe); - } - init(); - } - - /** - * Creates a new connection to the specified XMPP server on the given port using the - * specified SocketFactory.

    - * - * A custom SocketFactory allows fine-grained control of the actual connection to the - * XMPP server. A typical use for a custom SocketFactory is when connecting through a - * SOCKS proxy. - * - * @param host the name of the XMPP server to connect to; e.g. jivesoftware.com. - * @param port the port on the server that should be used; e.g. 5222. - * @param socketFactory a SocketFactory that will be used to create the socket to the XMPP server. - * @throws XMPPException if an error occurs while trying to establish the connection. - * Two possible errors can occur which will be wrapped by an XMPPException -- - * UnknownHostException (XMPP error code 504), and IOException (XMPP error code - * 502). The error codes and wrapped exceptions can be used to present more - * appropiate error messages to end-users. - */ - public XMPPConnection(String host, int port, SocketFactory socketFactory) throws XMPPException { - this.host = host; - this.port = port; - try { - this.socket = socketFactory.createSocket(host, port); - } - catch (UnknownHostException uhe) { - throw new XMPPException( - "Could not connect to " + host + ":" + port + ".", - new XMPPError(504), - uhe); - } - catch (IOException ioe) { - throw new XMPPException( - "XMPPError connecting to " + host + ":" + port + ".", - new XMPPError(502), - ioe); - } - init(); - } - - /** - * Package-private default constructor. This constructor is only intended - * for unit testing. Normal classes extending XMPPConnection should override - * one of the other constructors. - */ - XMPPConnection() { - - } - - /** - * Returns the connection ID for this connection, which is the value set by the server - * when opening a XMPP stream. If the server does not set a connection ID, this value - * will be null. - * - * @return the ID of this connection returned from the XMPP server. - */ - public String getConnectionID() { - return connectionID; - } - - /** - * Returns the host name of the XMPP server for this connection. - * - * @return the host name of the XMPP server. - */ - public String getHost() { - return host; - } - - /** - * Returns the port number of the XMPP server for this connection. The default port - * for normal connections is 5222. The default port for SSL connections is 5223. - * - * @return the port number of the XMPP server. - */ - public int getPort() { - return port; - } - - /** - * Returns the full XMPP address of the user that is logged in to the connection or - * null if not logged in yet. An XMPP address is in the form - * username@server/resource. - * - * @return the full XMPP address of the user logged in. - */ - public String getUser() { - if (!isAuthenticated()) { - return null; - } - return user; - } - - /** - * Logs in to the server using the strongest authentication mode supported by - * the server, then set our presence to available. If more than five seconds - * (default timeout) elapses in each step of the authentication process without - * a response from the server, or if an error occurs, a XMPPException will be thrown. - * - * @param username the username. - * @param password the password. - * @throws XMPPException if an error occurs. - */ - public void login(String username, String password) throws XMPPException { - login(username, password, "Smack"); - } - - /** - * Logs in to the server using the strongest authentication mode supported by - * the server, then sets presence to available. If more than five seconds - * (default timeout) elapses in each step of the authentication process without - * a response from the server, or if an error occurs, a XMPPException will be thrown. - * - * @param username the username. - * @param password the password. - * @param resource the resource. - * @throws XMPPException if an error occurs. - * @throws IllegalStateException if not connected to the server, or already logged in - * to the serrver. - */ - public synchronized void login(String username, String password, String resource) - throws XMPPException - { - login(username, password, resource, true); - } - - /** - * Logs in to the server using the strongest authentication mode supported by - * the server, and optionally sends an available presence. if sendPresence - * is false, a presence packet must be sent manually later. If more than five seconds - * (default timeout) elapses in each step of the authentication process without a - * response from the server, or if an error occurs, a XMPPException will be thrown. - * - * @param username the username. - * @param password the password. - * @param resource the resource. - * @param sendPresence if true an available presence will be sent automatically - * after login is completed. - * @throws XMPPException if an error occurs. - * @throws IllegalStateException if not connected to the server, or already logged in - * to the serrver. - */ - public synchronized void login(String username, String password, String resource, - boolean sendPresence) throws XMPPException - { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - if (authenticated) { - throw new IllegalStateException("Already logged in to server."); - } - // Do partial version of nameprep on the username. - username = username.toLowerCase().trim(); - // If we send an authentication packet in "get" mode with just the username, - // the server will return the list of authentication protocols it supports. - Authentication discoveryAuth = new Authentication(); - discoveryAuth.setType(IQ.Type.GET); - discoveryAuth.setUsername(username); - - PacketCollector collector = - packetReader.createPacketCollector(new PacketIDFilter(discoveryAuth.getPacketID())); - // Send the packet - packetWriter.sendPacket(discoveryAuth); - // Wait up to a certain number of seconds for a response from the server. - IQ response = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - // Otherwise, no error so continue processing. - Authentication authTypes = (Authentication) response; - collector.cancel(); - - // Now, create the authentication packet we'll send to the server. - Authentication auth = new Authentication(); - auth.setUsername(username); - - // Figure out if we should use digest or plain text authentication. - if (authTypes.getDigest() != null) { - auth.setDigest(connectionID, password); - } - else if (authTypes.getPassword() != null) { - auth.setPassword(password); - } - else { - throw new XMPPException("Server does not support compatible authentication mechanism."); - } - - auth.setResource(resource); - - collector = packetReader.createPacketCollector(new PacketIDFilter(auth.getPacketID())); - // Send the packet. - packetWriter.sendPacket(auth); - // Wait up to a certain number of seconds for a response from the server. - response = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - if (response == null) { - throw new XMPPException("Authentication failed."); - } - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - // Set the user. - if (response.getTo() != null) { - this.user = response.getTo(); - } - else { - this.user = username + "@" + this.host; - if (resource != null) { - this.user += "/" + resource; - } - } - // We're done with the collector, so explicitly cancel it. - collector.cancel(); - - // Create the roster. - this.roster = new Roster(this); - roster.reload(); - - // Set presence to online. - if (sendPresence) { - packetWriter.sendPacket(new Presence(Presence.Type.AVAILABLE)); - } - - // Indicate that we're now authenticated. - authenticated = true; - anonymous = false; - - // If debugging is enabled, change the the debug window title to include the - // name we are now logged-in as. - // If DEBUG_ENABLED was set to true AFTER the connection was created the debugger - // will be null - if (DEBUG_ENABLED && debugger != null) { - debugger.userHasLogged(user); - } - } - - /** - * Logs in to the server anonymously. Very few servers are configured to support anonymous - * authentication, so it's fairly likely logging in anonymously will fail. If anonymous login - * does succeed, your XMPP address will likely be in the form "server/123ABC" (where "123ABC" is a - * random value generated by the server). - * - * @throws XMPPException if an error occurs or anonymous logins are not supported by the server. - * @throws IllegalStateException if not connected to the server, or already logged in - * to the serrver. - */ - public synchronized void loginAnonymously() throws XMPPException { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - if (authenticated) { - throw new IllegalStateException("Already logged in to server."); - } - - // Create the authentication packet we'll send to the server. - Authentication auth = new Authentication(); - - PacketCollector collector = - packetReader.createPacketCollector(new PacketIDFilter(auth.getPacketID())); - // Send the packet. - packetWriter.sendPacket(auth); - // Wait up to a certain number of seconds for a response from the server. - IQ response = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - if (response == null) { - throw new XMPPException("Anonymous login failed."); - } - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - // Set the user value. - if (response.getTo() != null) { - this.user = response.getTo(); - } - else { - this.user = this.host + "/" + ((Authentication) response).getResource(); - } - // We're done with the collector, so explicitly cancel it. - collector.cancel(); - - // Anonymous users can't have a roster. - roster = null; - - // Set presence to online. - packetWriter.sendPacket(new Presence(Presence.Type.AVAILABLE)); - - // Indicate that we're now authenticated. - authenticated = true; - anonymous = true; - - // If debugging is enabled, change the the debug window title to include the - // name we are now logged-in as. - // If DEBUG_ENABLED was set to true AFTER the connection was created the debugger - // will be null - if (DEBUG_ENABLED && debugger != null) { - debugger.userHasLogged(user); - } - } - - /** - * Returns the roster for the user logged into the server. If the user has not yet - * logged into the server (or if the user is logged in anonymously), this method will return - * null. - * - * @return the user's roster, or null if the user has not logged in yet. - */ - public Roster getRoster() { - if (roster == null) { - return null; - } - // If this is the first time the user has asked for the roster after calling - // login, we want to wait for the server to send back the user's roster. This - // behavior shields API users from having to worry about the fact that roster - // operations are asynchronous, although they'll still have to listen for - // changes to the roster. Note: because of this waiting logic, internal - // Smack code should be wary about calling the getRoster method, and may need to - // access the roster object directly. - if (!roster.rosterInitialized) { - try { - synchronized (roster) { - long waitTime = SmackConfiguration.getPacketReplyTimeout(); - long start = System.currentTimeMillis(); - while (!roster.rosterInitialized) { - if (waitTime <= 0) { - break; - } - roster.wait(waitTime); - long now = System.currentTimeMillis(); - waitTime -= now - start; - start = now; - } - } - } - catch (InterruptedException ie) { } - } - return roster; - } - - /** - * Returns an account manager instance for this connection. - * - * @return an account manager for this connection. - */ - public synchronized AccountManager getAccountManager() { - if (accountManager == null) { - accountManager = new AccountManager(this); - } - return accountManager; - } - - /** - * Creates a new chat with the specified participant. The participant should - * be a valid XMPP user such as jdoe@jivesoftware.com or - * jdoe@jivesoftware.com/work. - * - * @param participant the person to start the conversation with. - * @return a new Chat object. - */ - public Chat createChat(String participant) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - return new Chat(this, participant); - } - - /** - * Creates a new group chat connected to the specified room. The room name - * should be full address, such as room@chat.example.com. - *

    - * Most XMPP servers use a sub-domain for the chat service (eg chat.example.com - * for the XMPP server example.com). You must ensure that the room address you're - * trying to connect to includes the proper chat sub-domain. - * - * @param room the fully qualifed name of the room. - * @return a new GroupChat object. - */ - public GroupChat createGroupChat(String room) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - return new GroupChat(this, room); - } - - /** - * Returns true if currently connected to the XMPP server. - * - * @return true if connected. - */ - public boolean isConnected() { - return connected; - } - - /** - * Returns true if the connection is a secured one, such as an SSL connection. - * - * @return true if a secure connection to the server. - */ - public boolean isSecureConnection() { - return false; - } - - /** - * Returns true if currently authenticated by successfully calling the login method. - * - * @return true if authenticated. - */ - public boolean isAuthenticated() { - return authenticated; - } - - /** - * Returns true if currently authenticated anonymously. - * - * @return true if authenticated anonymously. - */ - public boolean isAnonymous() { - return anonymous; - } - - /** - * Closes the connection by setting presence to unavailable then closing the stream to - * the XMPP server. Once a connection has been closed, it cannot be re-opened. - */ - public void close() { - // Set presence to offline. - packetWriter.sendPacket(new Presence(Presence.Type.UNAVAILABLE)); - packetReader.shutdown(); - packetWriter.shutdown(); - // Wait 150 ms for processes to clean-up, then shutdown. - try { - Thread.sleep(150); - } - catch (Exception e) { - } - - // Close down the readers and writers. - if (reader != null) - { - try { reader.close(); } catch (Throwable ignore) { } - reader = null; - } - if (writer != null) - { - try { writer.close(); } catch (Throwable ignore) { } - writer = null; - } - - try { - socket.close(); - } - catch (Exception e) { - } - authenticated = false; - connected = false; - } - - /** - * Sends the specified packet to the server. - * - * @param packet the packet to send. - */ - public void sendPacket(Packet packet) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - if (packet == null) { - throw new NullPointerException("Packet is null."); - } - packetWriter.sendPacket(packet); - } - - /** - * Registers a packet listener with this connection. A packet filter determines - * which packets will be delivered to the listener. - * - * @param packetListener the packet listener to notify of new packets. - * @param packetFilter the packet filter to use. - */ - public void addPacketListener(PacketListener packetListener, PacketFilter packetFilter) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - packetReader.addPacketListener(packetListener, packetFilter); - } - - /** - * Removes a packet listener from this connection. - * - * @param packetListener the packet listener to remove. - */ - public void removePacketListener(PacketListener packetListener) { - packetReader.removePacketListener(packetListener); - } - - /** - * Registers a packet listener with this connection. The listener will be - * notified of every packet that this connection sends. A packet filter determines - * which packets will be delivered to the listener. - * - * @param packetListener the packet listener to notify of sent packets. - * @param packetFilter the packet filter to use. - */ - public void addPacketWriterListener(PacketListener packetListener, PacketFilter packetFilter) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - packetWriter.addPacketListener(packetListener, packetFilter); - } - - /** - * Removes a packet listener from this connection. - * - * @param packetListener the packet listener to remove. - */ - public void removePacketWriterListener(PacketListener packetListener) { - packetWriter.removePacketListener(packetListener); - } - - /** - * Creates a new packet collector for this connection. A packet filter determines - * which packets will be accumulated by the collector. - * - * @param packetFilter the packet filter to use. - * @return a new packet collector. - */ - public PacketCollector createPacketCollector(PacketFilter packetFilter) { - return packetReader.createPacketCollector(packetFilter); - } - - /** - * Adds a connection listener to this connection that will be notified when - * the connection closes or fails. - * - * @param connectionListener a connection listener. - */ - public void addConnectionListener(ConnectionListener connectionListener) { - if (connectionListener == null) { - return; - } - synchronized (packetReader.connectionListeners) { - if (!packetReader.connectionListeners.contains(connectionListener)) { - packetReader.connectionListeners.add(connectionListener); - } - } - } - - /** - * Removes a connection listener from this connection. - * - * @param connectionListener a connection listener. - */ - public void removeConnectionListener(ConnectionListener connectionListener) { - synchronized (packetReader.connectionListeners) { - packetReader.connectionListeners.remove(connectionListener); - } - } - - /** - * Adds a connection established listener that will be notified when a new connection - * is established. - * - * @param connectionEstablishedListener a listener interested on connection established events. - */ - public static void addConnectionListener(ConnectionEstablishedListener connectionEstablishedListener) { - synchronized (connectionEstablishedListeners) { - if (!connectionEstablishedListeners.contains(connectionEstablishedListener)) { - connectionEstablishedListeners.add(connectionEstablishedListener); - } - } - } - - /** - * Removes a listener on new established connections. - * - * @param connectionEstablishedListener a listener interested on connection established events. - */ - public static void removeConnectionListener(ConnectionEstablishedListener connectionEstablishedListener) { - synchronized (connectionEstablishedListeners) { - connectionEstablishedListeners.remove(connectionEstablishedListener); - } - } - - /** - * Initializes the connection by creating a packet reader and writer and opening a - * XMPP stream to the server. - * - * @throws XMPPException if establishing a connection to the server fails. - */ - private void init() throws XMPPException { - try { - reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); - writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")); - } - catch (IOException ioe) { - throw new XMPPException( - "XMPPError establishing connection with server.", - new XMPPError(502), - ioe); - } - - // If debugging is enabled, we open a window and write out all network traffic. - if (DEBUG_ENABLED) { - // Detect the debugger class to use. - String className = null; - // Use try block since we may not have permission to get a system - // property (for example, when an applet). - try { - className = System.getProperty("smack.debuggerClass"); - } - catch (Throwable t) { - } - Class debuggerClass = null; - if (className != null) { - try { - debuggerClass = Class.forName(className); - } - catch (Exception e) { - e.printStackTrace(); - } - } - if (debuggerClass == null) { - try { - debuggerClass = - Class.forName("org.jivesoftware.smackx.debugger.EnhancedDebugger"); - } - catch (Exception ex) { - try { - debuggerClass = Class.forName("org.jivesoftware.smack.debugger.LiteDebugger"); - } - catch (Exception ex2) { - ex2.printStackTrace(); - } - } - } - // Create a new debugger instance. If an exception occurs then disable the debugging - // option - try { - Constructor constructor = - debuggerClass.getConstructor( - new Class[] { XMPPConnection.class, Writer.class, Reader.class }); - debugger = - (SmackDebugger) constructor.newInstance(new Object[] { this, writer, reader }); - reader = debugger.getReader(); - writer = debugger.getWriter(); - } - catch (Exception e) { - e.printStackTrace(); - DEBUG_ENABLED = false; - } - } - - try - { - packetWriter = new PacketWriter(this); - packetReader = new PacketReader(this); - - // If debugging is enabled, we should start the thread that will listen for - // all packets and then log them. - if (DEBUG_ENABLED) { - packetReader.addPacketListener(debugger.getReaderListener(), null); - if (debugger.getWriterListener() != null) { - packetWriter.addPacketListener(debugger.getWriterListener(), null); - } - } - // Start the packet writer. This will open a XMPP stream to the server - packetWriter.startup(); - // Start the packet reader. The startup() method will block until we - // get an opening stream packet back from server. - packetReader.startup(); - - // Make note of the fact that we're now connected. - connected = true; - - // Notify that a new connection has been established - connectionEstablished(this); - } - catch (XMPPException ex) - { - // An exception occurred in setting up the connection. Make sure we shut down the - // readers and writers and close the socket. - - if (packetWriter != null) { - try { packetWriter.shutdown(); } catch (Throwable ignore) { } - packetWriter = null; - } - if (packetReader != null) { - try { packetReader.shutdown(); } catch (Throwable ignore) { } - packetReader = null; - } - if (reader != null) { - try { reader.close(); } catch (Throwable ignore) { } - reader = null; - } - if (writer != null) { - try { writer.close(); } catch (Throwable ignore) { } - writer = null; - } - if (socket != null) { - try { socket.close(); } catch (Exception e) { } - socket = null; - } - authenticated = false; - connected = false; - - throw ex; // Everything stoppped. Now throw the exception. - } - } - - /** - * Fires listeners on connection established events. - */ - private static void connectionEstablished(XMPPConnection connection) { - ConnectionEstablishedListener[] listeners = null; - synchronized (connectionEstablishedListeners) { - listeners = new ConnectionEstablishedListener[connectionEstablishedListeners.size()]; - connectionEstablishedListeners.toArray(listeners); - } - for (int i = 0; i < listeners.length; i++) { - listeners[i].connectionEstablished(connection); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/XMPPException.java b/CopyOftrunk/source/org/jivesoftware/smack/XMPPException.java deleted file mode 100644 index 913ccf888..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/XMPPException.java +++ /dev/null @@ -1,183 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.packet.XMPPError; - -import java.io.PrintStream; -import java.io.PrintWriter; - -/** - * A generic exception that is thrown when an error occurs performing an - * XMPP operation. XMPP servers can respond to error conditions with an error code - * and textual description of the problem, which are encapsulated in the XMPPError - * class. When appropriate, an XMPPError instance is attached instances of this exception. - * - * @see XMPPError - * @author Matt Tucker - */ -public class XMPPException extends Exception { - - private XMPPError error = null; - private Throwable wrappedThrowable = null; - - /** - * Creates a new XMPPException. - */ - public XMPPException() { - super(); - } - - /** - * Creates a new XMPPException with a description of the exception. - * - * @param message description of the exception. - */ - public XMPPException(String message) { - super(message); - } - - /** - * Creates a new XMPPException with the Throwable that was the root cause of the - * exception. - * - * @param wrappedThrowable the root cause of the exception. - */ - public XMPPException(Throwable wrappedThrowable) { - super(); - this.wrappedThrowable = wrappedThrowable; - } - - /** - * Cretaes a new XMPPException with the XMPPError that was the root case of the - * exception. - * - * @param error the root cause of the exception. - */ - public XMPPException(XMPPError error) { - super(); - this.error = error; - } - - /** - * Creates a new XMPPException with a description of the exception and the - * Throwable that was the root cause of the exception. - * - * @param message a description of the exception. - * @param wrappedThrowable the root cause of the exception. - */ - public XMPPException(String message, Throwable wrappedThrowable) { - super(message); - this.wrappedThrowable = wrappedThrowable; - } - - /** - * Creates a new XMPPException with a description of the exception, an XMPPError, - * and the Throwable that was the root cause of the exception. - * - * @param message a description of the exception. - * @param error the root cause of the exception. - * @param wrappedThrowable the root cause of the exception. - */ - public XMPPException(String message, XMPPError error, Throwable wrappedThrowable) { - super(message); - this.error = error; - this.wrappedThrowable = wrappedThrowable; - } - - /** - * Creates a new XMPPException with a description of the exception and the - * XMPPException that was the root cause of the exception. - * - * @param message a description of the exception. - * @param error the root cause of the exception. - */ - public XMPPException(String message, XMPPError error) { - super(message); - this.error = error; - } - - /** - * Returns the XMPPError asscociated with this exception, or null if there - * isn't one. - * - * @return the XMPPError asscociated with this exception. - */ - public XMPPError getXMPPError() { - return error; - } - - /** - * Returns the Throwable asscociated with this exception, or null if there - * isn't one. - * - * @return the Throwable asscociated with this exception. - */ - public Throwable getWrappedThrowable() { - return wrappedThrowable; - } - - public void printStackTrace() { - printStackTrace(System.err); - } - - public void printStackTrace(PrintStream out) { - super.printStackTrace(out); - if (wrappedThrowable != null) { - out.println("Nested Exception: "); - wrappedThrowable.printStackTrace(out); - } - } - - public void printStackTrace(PrintWriter out) { - super.printStackTrace(out); - if (wrappedThrowable != null) { - out.println("Nested Exception: "); - wrappedThrowable.printStackTrace(out); - } - } - - public String getMessage() { - String msg = super.getMessage(); - // If the message was not set, but there is an XMPPError, return the - // XMPPError as the message. - if (msg == null && error != null) { - return error.toString(); - } - return msg; - } - - public String toString() { - StringBuffer buf = new StringBuffer(); - String message = super.getMessage(); - if (message != null) { - buf.append(message).append(": "); - } - if (error != null) { - buf.append(error); - } - if (wrappedThrowable != null) { - buf.append("\n -- caused by: ").append(wrappedThrowable); - } - - return buf.toString(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java b/CopyOftrunk/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java deleted file mode 100644 index d068d9460..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.jivesoftware.smack.debugger; - -import org.jivesoftware.smack.ConnectionListener; -import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.packet.Packet; -import org.jivesoftware.smack.util.*; - -import java.io.Reader; -import java.io.Writer; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * Very simple debugger that prints to the console (stdout) the sent and received stanzas. Use - * this debugger with caution since printing to the console is an expensive operation that may - * even block the thread since only one thread may print at a time.

    - *

    - * It is possible to not only print the raw sent and received stanzas but also the interpreted - * packets by Smack. By default interpreted packets won't be printed. To enable this feature - * just change the printInterpreted static variable to true. - * - * @author Gaston Dombiak - */ -public class ConsoleDebugger implements SmackDebugger { - - public static boolean printInterpreted = false; - private SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm:ss aaa"); - - private XMPPConnection connection = null; - - private PacketListener listener = null; - private ConnectionListener connListener = null; - - private Writer writer; - private Reader reader; - private ReaderListener readerListener; - private WriterListener writerListener; - - public ConsoleDebugger(XMPPConnection connection, Writer writer, Reader reader) { - this.connection = connection; - this.writer = writer; - this.reader = reader; - createDebug(); - } - - /** - * Creates the listeners that will print in the console when new activity is detected. - */ - private void createDebug() { - // Create a special Reader that wraps the main Reader and logs data to the GUI. - ObservableReader debugReader = new ObservableReader(reader); - readerListener = new ReaderListener() { - public void read(String str) { - System.out.println( - dateFormatter.format(new Date()) + " RCV (" + connection.hashCode() + - "): " + - str); - } - }; - debugReader.addReaderListener(readerListener); - - // Create a special Writer that wraps the main Writer and logs data to the GUI. - ObservableWriter debugWriter = new ObservableWriter(writer); - writerListener = new WriterListener() { - public void write(String str) { - System.out.println( - dateFormatter.format(new Date()) + " SENT (" + connection.hashCode() + - "): " + - str); - } - }; - debugWriter.addWriterListener(writerListener); - - // Assign the reader/writer objects to use the debug versions. The packet reader - // and writer will use the debug versions when they are created. - reader = debugReader; - writer = debugWriter; - - // Create a thread that will listen for all incoming packets and write them to - // the GUI. This is what we call "interpreted" packet data, since it's the packet - // data as Smack sees it and not as it's coming in as raw XML. - listener = new PacketListener() { - public void processPacket(Packet packet) { - if (printInterpreted) { - System.out.println( - dateFormatter.format(new Date()) + " RCV PKT (" + - connection.hashCode() + - "): " + - packet.toXML()); - } - } - }; - - connListener = new ConnectionListener() { - public void connectionClosed() { - System.out.println( - dateFormatter.format(new Date()) + " Connection closed (" + - connection.hashCode() + - ")"); - } - - public void connectionClosedOnError(Exception e) { - System.out.println( - dateFormatter.format(new Date()) + - " Connection closed due to an exception (" + - connection.hashCode() + - ")"); - e.printStackTrace(); - } - }; - } - - public void userHasLogged(String user) { - boolean isAnonymous = "".equals(StringUtils.parseName(user)); - String title = - "User logged (" + connection.hashCode() + "): " - + (isAnonymous ? "" : StringUtils.parseBareAddress(user)) - + "@" - + connection.getHost() - + ":" - + connection.getPort(); - title += "/" + StringUtils.parseResource(user); - System.out.println(title); - // Add the connection listener to the connection so that the debugger can be notified - // whenever the connection is closed. - connection.addConnectionListener(connListener); - } - - public Reader getReader() { - return reader; - } - - public Writer getWriter() { - return writer; - } - - public PacketListener getReaderListener() { - return listener; - } - - public PacketListener getWriterListener() { - return null; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/debugger/LiteDebugger.java b/CopyOftrunk/source/org/jivesoftware/smack/debugger/LiteDebugger.java deleted file mode 100644 index c07c81557..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/debugger/LiteDebugger.java +++ /dev/null @@ -1,320 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.debugger; - -import java.awt.*; -import java.awt.datatransfer.*; -import java.awt.event.*; -import java.io.*; - -import javax.swing.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.util.*; - -/** - * The LiteDebugger is a very simple debugger that allows to debug sent, received and - * interpreted messages. - * - * @author Gaston Dombiak - */ -public class LiteDebugger implements SmackDebugger { - - private static final String NEWLINE = "\n"; - - private JFrame frame = null; - private XMPPConnection connection = null; - - private PacketListener listener = null; - - private Writer writer; - private Reader reader; - private ReaderListener readerListener; - private WriterListener writerListener; - - public LiteDebugger(XMPPConnection connection, Writer writer, Reader reader) { - this.connection = connection; - this.writer = writer; - this.reader = reader; - createDebug(); - } - - /** - * Creates the debug process, which is a GUI window that displays XML traffic. - */ - private void createDebug() { - frame = new JFrame("Smack Debug Window -- " + connection.getHost() + ":" + - connection.getPort()); - - // Add listener for window closing event - frame.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent evt) { - rootWindowClosing(evt); - } - }); - - // We'll arrange the UI into four tabs. The first tab contains all data, the second - // client generated XML, the third server generated XML, and the fourth is packet - // data from the server as seen by Smack. - JTabbedPane tabbedPane = new JTabbedPane(); - - JPanel allPane = new JPanel(); - allPane.setLayout(new GridLayout(3, 1)); - tabbedPane.add("All", allPane); - - // Create UI elements for client generated XML traffic. - final JTextArea sentText1 = new JTextArea(); - final JTextArea sentText2 = new JTextArea(); - sentText1.setEditable(false); - sentText2.setEditable(false); - sentText1.setForeground(new Color(112, 3, 3)); - sentText2.setForeground(new Color(112, 3, 3)); - allPane.add(new JScrollPane(sentText1)); - tabbedPane.add("Sent", new JScrollPane(sentText2)); - - // Add pop-up menu. - JPopupMenu menu = new JPopupMenu(); - JMenuItem menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(sentText1.getText()), null); - } - }); - - JMenuItem menuItem2 = new JMenuItem("Clear"); - menuItem2.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - sentText1.setText(""); - sentText2.setText(""); - } - }); - - // Add listener to the text area so the popup menu can come up. - MouseListener popupListener = new PopupListener(menu); - sentText1.addMouseListener(popupListener); - sentText2.addMouseListener(popupListener); - menu.add(menuItem1); - menu.add(menuItem2); - - // Create UI elements for server generated XML traffic. - final JTextArea receivedText1 = new JTextArea(); - final JTextArea receivedText2 = new JTextArea(); - receivedText1.setEditable(false); - receivedText2.setEditable(false); - receivedText1.setForeground(new Color(6, 76, 133)); - receivedText2.setForeground(new Color(6, 76, 133)); - allPane.add(new JScrollPane(receivedText1)); - tabbedPane.add("Received", new JScrollPane(receivedText2)); - - // Add pop-up menu. - menu = new JPopupMenu(); - menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(receivedText1.getText()), null); - } - }); - - menuItem2 = new JMenuItem("Clear"); - menuItem2.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - receivedText1.setText(""); - receivedText2.setText(""); - } - }); - - // Add listener to the text area so the popup menu can come up. - popupListener = new PopupListener(menu); - receivedText1.addMouseListener(popupListener); - receivedText2.addMouseListener(popupListener); - menu.add(menuItem1); - menu.add(menuItem2); - - // Create UI elements for interpreted XML traffic. - final JTextArea interpretedText1 = new JTextArea(); - final JTextArea interpretedText2 = new JTextArea(); - interpretedText1.setEditable(false); - interpretedText2.setEditable(false); - interpretedText1.setForeground(new Color(1, 94, 35)); - interpretedText2.setForeground(new Color(1, 94, 35)); - allPane.add(new JScrollPane(interpretedText1)); - tabbedPane.add("Interpreted", new JScrollPane(interpretedText2)); - - // Add pop-up menu. - menu = new JPopupMenu(); - menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(interpretedText1.getText()), null); - } - }); - - menuItem2 = new JMenuItem("Clear"); - menuItem2.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - interpretedText1.setText(""); - interpretedText2.setText(""); - } - }); - - // Add listener to the text area so the popup menu can come up. - popupListener = new PopupListener(menu); - interpretedText1.addMouseListener(popupListener); - interpretedText2.addMouseListener(popupListener); - menu.add(menuItem1); - menu.add(menuItem2); - - frame.getContentPane().add(tabbedPane); - - frame.setSize(550, 400); - frame.setVisible(true); - - // Create a special Reader that wraps the main Reader and logs data to the GUI. - ObservableReader debugReader = new ObservableReader(reader); - readerListener = new ReaderListener() { - public void read(String str) { - int index = str.lastIndexOf(">"); - if (index != -1) { - receivedText1.append(str.substring(0, index + 1)); - receivedText2.append(str.substring(0, index + 1)); - receivedText1.append(NEWLINE); - receivedText2.append(NEWLINE); - if (str.length() > index) { - receivedText1.append(str.substring(index + 1)); - receivedText2.append(str.substring(index + 1)); - } - } - else { - receivedText1.append(str); - receivedText2.append(str); - } - } - }; - debugReader.addReaderListener(readerListener); - - // Create a special Writer that wraps the main Writer and logs data to the GUI. - ObservableWriter debugWriter = new ObservableWriter(writer); - writerListener = new WriterListener() { - public void write(String str) { - sentText1.append(str); - sentText2.append(str); - if (str.endsWith(">")) { - sentText1.append(NEWLINE); - sentText2.append(NEWLINE); - } - } - }; - debugWriter.addWriterListener(writerListener); - - // Assign the reader/writer objects to use the debug versions. The packet reader - // and writer will use the debug versions when they are created. - reader = debugReader; - writer = debugWriter; - - // Create a thread that will listen for all incoming packets and write them to - // the GUI. This is what we call "interpreted" packet data, since it's the packet - // data as Smack sees it and not as it's coming in as raw XML. - listener = new PacketListener() { - public void processPacket(Packet packet) { - interpretedText1.append(packet.toXML()); - interpretedText2.append(packet.toXML()); - interpretedText1.append(NEWLINE); - interpretedText2.append(NEWLINE); - } - }; - } - - /** - * Notification that the root window is closing. Stop listening for received and - * transmitted packets. - * - * @param evt the event that indicates that the root window is closing - */ - public void rootWindowClosing(WindowEvent evt) { - connection.removePacketListener(listener); - ((ObservableReader)reader).removeReaderListener(readerListener); - ((ObservableWriter)writer).removeWriterListener(writerListener); - } - - /** - * Listens for debug window popup dialog events. - */ - private class PopupListener extends MouseAdapter { - JPopupMenu popup; - - PopupListener(JPopupMenu popupMenu) { - popup = popupMenu; - } - - public void mousePressed(MouseEvent e) { - maybeShowPopup(e); - } - - public void mouseReleased(MouseEvent e) { - maybeShowPopup(e); - } - - private void maybeShowPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - popup.show(e.getComponent(), e.getX(), e.getY()); - } - } - } - - public void userHasLogged(String user) { - boolean isAnonymous = "".equals(StringUtils.parseName(user)); - String title = - "Smack Debug Window -- " - + (isAnonymous ? "" : StringUtils.parseBareAddress(user)) - + "@" - + connection.getHost() - + ":" - + connection.getPort(); - title += "/" + StringUtils.parseResource(user); - frame.setTitle(title); - } - - public Reader getReader() { - return reader; - } - - public Writer getWriter() { - return writer; - } - - public PacketListener getReaderListener() { - return listener; - } - - public PacketListener getWriterListener() { - return null; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/debugger/SmackDebugger.java b/CopyOftrunk/source/org/jivesoftware/smack/debugger/SmackDebugger.java deleted file mode 100644 index 8f3246c53..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/debugger/SmackDebugger.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.debugger; - -import java.io.*; - -import org.jivesoftware.smack.*; - -/** - * Interface that allows for implementing classes to debug XML traffic. That is a GUI window that - * displays XML traffic.

    - * - * Every implementation of this interface must have a public constructor with the following - * arguments: XMPPConnection, Writer, Reader. - * - * @author Gaston Dombiak - */ -public interface SmackDebugger { - - /** - * Called when a user has logged in to the server. The user could be an anonymous user, this - * means that the user would be of the form host/resource instead of the form - * user@host/resource. - * - * @param user the user@host/resource that has just logged in - */ - public abstract void userHasLogged(String user); - - /** - * Returns the special Reader that wraps the main Reader and logs data to the GUI. - * - * @return the special Reader that wraps the main Reader and logs data to the GUI. - */ - public abstract Reader getReader(); - - /** - * Returns the special Writer that wraps the main Writer and logs data to the GUI. - * - * @return the special Writer that wraps the main Writer and logs data to the GUI. - */ - public abstract Writer getWriter(); - - /** - * Returns the thread that will listen for all incoming packets and write them to the GUI. - * This is what we call "interpreted" packet data, since it's the packet data as Smack sees - * it and not as it's coming in as raw XML. - * - * @return the PacketListener that will listen for all incoming packets and write them to - * the GUI - */ - public abstract PacketListener getReaderListener(); - - /** - * Returns the thread that will listen for all outgoing packets and write them to the GUI. - * - * @return the PacketListener that will listen for all sent packets and write them to - * the GUI - */ - public abstract PacketListener getWriterListener(); -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/debugger/package.html b/CopyOftrunk/source/org/jivesoftware/smack/debugger/package.html deleted file mode 100644 index afb861f5e..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/debugger/package.html +++ /dev/null @@ -1 +0,0 @@ -Core debugger functionality. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/AndFilter.java b/CopyOftrunk/source/org/jivesoftware/smack/filter/AndFilter.java deleted file mode 100644 index 2ca4a1c2b..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/AndFilter.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.filter; - -import org.jivesoftware.smack.packet.Packet; - -/** - * Implements the logical AND operation over two or more packet filters. - * In other words, packets pass this filter if they pass all of the filters. - * - * @author Matt Tucker - */ -public class AndFilter implements PacketFilter { - - /** - * The current number of elements in the filter. - */ - private int size; - - /** - * The list of filters. - */ - private PacketFilter [] filters; - - /** - * Creates an empty AND filter. Filters should be added using the - * {@link #addFilter(PacketFilter)} method. - */ - public AndFilter() { - size = 0; - filters = new PacketFilter[3]; - } - - /** - * Creates an AND filter using the two specified filters. - * - * @param filter1 the first packet filter. - * @param filter2 the second packet filter. - */ - public AndFilter(PacketFilter filter1, PacketFilter filter2) { - if (filter1 == null || filter2 == null) { - throw new IllegalArgumentException("Parameters cannot be null."); - } - size = 2; - filters = new PacketFilter[2]; - filters[0] = filter1; - filters[1] = filter2; - } - - /** - * Adds a filter to the filter list for the AND operation. A packet - * will pass the filter if all of the filters in the list accept it. - * - * @param filter a filter to add to the filter list. - */ - public void addFilter(PacketFilter filter) { - if (filter == null) { - throw new IllegalArgumentException("Parameter cannot be null."); - } - // If there is no more room left in the filters array, expand it. - if (size == filters.length) { - PacketFilter [] newFilters = new PacketFilter[filters.length+2]; - for (int i=0; iany of the filters. - * - * @author Matt Tucker - */ -public class OrFilter implements PacketFilter { - - /** - * The current number of elements in the filter. - */ - private int size; - - /** - * The list of filters. - */ - private PacketFilter [] filters; - - /** - * Creates an empty OR filter. Filters should be added using the - * {@link #addFilter(PacketFilter)} method. - */ - public OrFilter() { - size = 0; - filters = new PacketFilter[3]; - } - - /** - * Creates an OR filter using the two specified filters. - * - * @param filter1 the first packet filter. - * @param filter2 the second packet filter. - */ - public OrFilter(PacketFilter filter1, PacketFilter filter2) { - if (filter1 == null || filter2 == null) { - throw new IllegalArgumentException("Parameters cannot be null."); - } - size = 2; - filters = new PacketFilter[2]; - filters[0] = filter1; - filters[1] = filter2; - } - - /** - * Adds a filter to the filter list for the OR operation. A packet - * will pass the filter if any filter in the list accepts it. - * - * @param filter a filter to add to the filter list. - */ - public void addFilter(PacketFilter filter) { - if (filter == null) { - throw new IllegalArgumentException("Parameter cannot be null."); - } - // If there is no more room left in the filters array, expand it. - if (size == filters.length) { - PacketFilter [] newFilters = new PacketFilter[filters.length+2]; - for (int i=0; i - * - * Several pre-defined filters are defined. These filters can be logically combined - * for more complex packet filtering by using the - * {@link org.jivesoftware.smack.filter.AndFilter AndFilter} and - * {@link org.jivesoftware.smack.filter.OrFilter OrFilter} filters. It's also possible - * to define your own filters by implementing this interface. The code example below - * creates a trivial filter for packets with a specific ID. - * - *

    - * // Use an anonymous inner class to define a packet filter that returns
    - * // all packets that have a packet ID of "RS145".
    - * PacketFilter myFilter = new PacketFilter() {
    - *     public boolean accept(Packet packet) {
    - *         return "RS145".equals(packet.getPacketID());
    - *     }
    - * };
    - * // Create a new packet collector using the filter we created.
    - * PacketCollector myCollector = packetReader.createPacketCollector(myFilter);
    - * 
    - * - * @see org.jivesoftware.smack.PacketCollector - * @see org.jivesoftware.smack.PacketListener - * @author Matt Tucker - */ -public interface PacketFilter { - - /** - * Tests whether or not the specified packet should pass the filter. - * - * @param packet the packet to test. - * @return true if and only if packet passes the filter. - */ - public boolean accept(Packet packet); -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketIDFilter.java b/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketIDFilter.java deleted file mode 100644 index 03a007f37..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketIDFilter.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.filter; - -import org.jivesoftware.smack.packet.Packet; - -/** - * Filters for packets with a particular packet ID. - * - * @author Matt Tucker - */ -public class PacketIDFilter implements PacketFilter { - - private String packetID; - - /** - * Creates a new packet ID filter using the specified packet ID. - * - * @param packetID the packet ID to filter for. - */ - public PacketIDFilter(String packetID) { - if (packetID == null) { - throw new IllegalArgumentException("Packet ID cannot be null."); - } - this.packetID = packetID; - } - - public boolean accept(Packet packet) { - return packetID.equals(packet.getPacketID()); - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketTypeFilter.java b/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketTypeFilter.java deleted file mode 100644 index 1a736e114..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/PacketTypeFilter.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.filter; - -import org.jivesoftware.smack.packet.Packet; - -/** - * Filters for packets of a particular type. The type is given as a Class object, so - * example types would: - *
      - *
    • Message.class - *
    • IQ.class - *
    • Presence.class - *
    - * - * @author Matt Tucker - */ -public class PacketTypeFilter implements PacketFilter { - - Class packetType; - - /** - * Creates a new packet type filter that will filter for packets that are the - * same type as packetType. - * - * @param packetType the Class type. - */ - public PacketTypeFilter(Class packetType) { - // Ensure the packet type is a sub-class of Packet. - if (!Packet.class.isAssignableFrom(packetType)) { - throw new IllegalArgumentException("Packet type must be a sub-class of Packet."); - } - this.packetType = packetType; - } - - public boolean accept(Packet packet) { - return packetType.isInstance(packet); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/ThreadFilter.java b/CopyOftrunk/source/org/jivesoftware/smack/filter/ThreadFilter.java deleted file mode 100644 index b9c296d11..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/ThreadFilter.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.filter; - -import org.jivesoftware.smack.packet.Packet; -import org.jivesoftware.smack.packet.Message; - -/** - * Filters for message packets with a particular thread value. - * - * @author Matt Tucker - */ -public class ThreadFilter implements PacketFilter { - - private String thread; - - /** - * Creates a new thread filter using the specified thread value. - * - * @param thread the thread value to filter for. - */ - public ThreadFilter(String thread) { - if (thread == null) { - throw new IllegalArgumentException("Thread cannot be null."); - } - this.thread = thread; - } - - public boolean accept(Packet packet) { - if (packet instanceof Message) { - return thread.equals(((Message)packet).getThread()); - } - else { - return false; - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/ToContainsFilter.java b/CopyOftrunk/source/org/jivesoftware/smack/filter/ToContainsFilter.java deleted file mode 100644 index 1ec8a8a05..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/ToContainsFilter.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.filter; - -import org.jivesoftware.smack.packet.Packet; - -/** - * Filters for packets where the "to" field contains a specified value. For example, - * the filter could be used to listen for all packets sent to a group chat nickname. - * - * @author Matt Tucker - */ -public class ToContainsFilter implements PacketFilter { - - private String to; - - /** - * Creates a "to" contains filter using the "to" field part. - * - * @param to the to field value the packet must contain. - */ - public ToContainsFilter(String to) { - if (to == null) { - throw new IllegalArgumentException("Parameter cannot be null."); - } - this.to = to.toLowerCase(); - } - - public boolean accept(Packet packet) { - if (packet.getTo() == null) { - return false; - } - else { - return packet.getTo().toLowerCase().indexOf(to) != -1; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/filter/package.html b/CopyOftrunk/source/org/jivesoftware/smack/filter/package.html deleted file mode 100644 index 8b3fe8034..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/filter/package.html +++ /dev/null @@ -1 +0,0 @@ -Allows {@link org.jivesoftware.smack.PacketCollector} and {@link org.jivesoftware.smack.PacketListener} instances to filter for packets with particular attributes. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/package.html b/CopyOftrunk/source/org/jivesoftware/smack/package.html deleted file mode 100644 index 2758d781a..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/package.html +++ /dev/null @@ -1 +0,0 @@ -Core classes of the Smack API. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/Authentication.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/Authentication.java deleted file mode 100644 index 3ff5b8a87..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/Authentication.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * Authentication packet, which can be used to login to a XMPP server as well - * as discover login information from the server. - */ -public class Authentication extends IQ { - - private String username = null; - private String password = null; - private String digest = null; - private String resource = null; - - /** - * Create a new authentication packet. By default, the packet will be in - * "set" mode in order to perform an actual authentication with the server. - * In order to send a "get" request to get the available authentication - * modes back from the server, change the type of the IQ packet to "get": - * - *

    setType(IQ.Type.GET); - */ - public Authentication() { - setType(IQ.Type.SET); - } - - /** - * Returns the username, or null if the username hasn't been sent. - * - * @return the username. - */ - public String getUsername() { - return username; - } - - /** - * Sets the username. - * - * @param username the username. - */ - public void setUsername(String username) { - this.username = username; - } - - /** - * Returns the plain text password or null if the password hasn't - * been set. - * - * @return the password. - */ - public String getPassword() { - return password; - } - - /** - * Sets the plain text password. - * - * @param password the password. - */ - public void setPassword(String password) { - this.password = password; - } - - /** - * Returns the password digest or null if the digest hasn't - * been set. Password digests offer a more secure alternative for - * authentication compared to plain text. The digest is the hex-encoded - * SHA-1 hash of the connection ID plus the user's password. If the - * digest and password are set, digest authentication will be used. If - * only one value is set, the respective authentication mode will be used. - * - * @return the digest of the user's password. - */ - public String getDigest() { - return digest; - } - - /** - * Sets the digest value using a connection ID and password. Password - * digests offer a more secure alternative for authentication compared to - * plain text. The digest is the hex-encoded SHA-1 hash of the connection ID - * plus the user's password. If the digest and password are set, digest - * authentication will be used. If only one value is set, the respective - * authentication mode will be used. - * - * @param connectionID the connection ID. - * @param password the password. - * @see org.jivesoftware.smack.XMPPConnection#getConnectionID() - */ - public void setDigest(String connectionID, String password) { - this.digest = StringUtils.hash(connectionID + password); - } - - /** - * Sets the digest value directly. Password digests offer a more secure - * alternative for authentication compared to plain text. The digest is - * the hex-encoded SHA-1 hash of the connection ID plus the user's password. - * If the digest and password are set, digest authentication will be used. - * If only one value is set, the respective authentication mode will be used. - * - * @param digest the digest, which is the SHA-1 hash of the connection ID - * the user's password, encoded as hex. - * @see org.jivesoftware.smack.XMPPConnection#getConnectionID() - */ - public void setDigest(String digest) { - this.digest = digest; - } - - /** - * Returns the resource or null if the resource hasn't been set. - * - * @return the resource. - */ - public String getResource() { - return resource; - } - - /** - * Sets the resource. - * - * @param resource the resource. - */ - public void setResource(String resource) { - this.resource = resource; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (username != null) { - if (username.equals("")) { - buf.append(""); - } - else { - buf.append("").append( username).append(""); - } - } - if (digest != null) { - if (digest.equals("")) { - buf.append(""); - } - else { - buf.append("").append(digest).append(""); - } - } - if (password != null && digest == null) { - if (password.equals("")) { - buf.append(""); - } - else { - buf.append("").append(password).append(""); - } - } - if (resource != null) { - if (resource.equals("")) { - buf.append(""); - } - else { - buf.append("").append(resource).append(""); - } - } - buf.append(""); - return buf.toString(); - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/DefaultPacketExtension.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/DefaultPacketExtension.java deleted file mode 100644 index cbf1b5efe..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/DefaultPacketExtension.java +++ /dev/null @@ -1,134 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import java.util.*; - -/** - * Default implementation of the PacketExtension interface. Unless a PacketExtensionProvider - * is registered with {@link org.jivesoftware.smack.provider.ProviderManager ProviderManager}, - * instances of this class will be returned when getting packet extensions.

    - * - * This class provides a very simple representation of an XML sub-document. Each element - * is a key in a Map with its CDATA being the value. For example, given the following - * XML sub-document: - * - *

    - * <foo xmlns="http://bar.com">
    - *     <color>blue</color>
    - *     <food>pizza</food>
    - * </foo>
    - * - * In this case, getValue("color") would return "blue", and getValue("food") would - * return "pizza". This parsing mechanism mechanism is very simplistic and will not work - * as desired in all cases (for example, if some of the elements have attributes. In those - * cases, a custom PacketExtensionProvider should be used. - * - * @author Matt Tucker - */ -public class DefaultPacketExtension implements PacketExtension { - - private String elementName; - private String namespace; - private Map map; - - /** - * Creates a new generic packet extension. - * - * @param elementName the name of the element of the XML sub-document. - * @param namespace the namespace of the element. - */ - public DefaultPacketExtension(String elementName, String namespace) { - this.elementName = elementName; - this.namespace = namespace; - } - - /** - * Returns the XML element name of the extension sub-packet root element. - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return elementName; - } - - /** - * Returns the XML namespace of the extension sub-packet root element. - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return namespace; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(elementName).append(" xmlns=\"").append(namespace).append("\">"); - for (Iterator i=getNames(); i.hasNext(); ) { - String name = (String)i.next(); - String value = getValue(name); - buf.append("<").append(name).append(">"); - buf.append(value); - buf.append(""); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns an Iterator for the names that can be used to get - * values of the packet extension. - * - * @return an Iterator for the names. - */ - public synchronized Iterator getNames() { - if (map == null) { - return Collections.EMPTY_LIST.iterator(); - } - return Collections.unmodifiableMap(new HashMap(map)).keySet().iterator(); - } - - /** - * Returns a packet extension value given a name. - * - * @param name the name. - * @return the value. - */ - public synchronized String getValue(String name) { - if (map == null) { - return null; - } - return (String)map.get(name); - } - - /** - * Sets a packet extension value using the given name. - * - * @param name the name. - * @param value the value. - */ - public synchronized void setValue(String name, String value) { - if (map == null) { - map = new HashMap(); - } - map.put(name, value); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/IQ.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/IQ.java deleted file mode 100644 index 926e4e422..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/IQ.java +++ /dev/null @@ -1,167 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * The base IQ (Info/Query) packet. IQ packets are used to get and set information - * on the server, including authentication, roster operations, and creating - * accounts. Each IQ packet has a specific type that indicates what type of action - * is being taken: "get", "set", "result", or "error".

    - * - * IQ packets can contain a single child element that exists in a specific XML - * namespace. The combination of the element name and namespace determines what - * type of IQ packet it is. Some example IQ subpacket snippets:

      - * - *
    • <query xmlns="jabber:iq:auth"> -- an authentication IQ. - *
    • <query xmlns="jabber:iq:private"> -- a private storage IQ. - *
    • <pubsub xmlns="http://jabber.org/protocol/pubsub"> -- a pubsub IQ. - *
    - * - * @author Matt Tucker - */ -public abstract class IQ extends Packet { - - private Type type = Type.GET; - - /** - * Returns the type of the IQ packet. - * - * @return the type of the IQ packet. - */ - public Type getType() { - return type; - } - - /** - * Sets the type of the IQ packet. - * - * @param type the type of the IQ packet. - */ - public void setType(Type type) { - if (type == null) { - this.type = Type.GET; - } - else { - this.type = type; - } - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append("type=\"").append(getType()).append("\">"); - } - // Add the query section if there is one. - String queryXML = getChildElementXML(); - if (queryXML != null) { - buf.append(queryXML); - } - // Add the error sub-packet, if there is one. - XMPPError error = getError(); - if (error != null) { - buf.append(error.toXML()); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns the sub-element XML section of the IQ packet, or null if there - * isn't one. Packet extensions must be included, if any are defined.

    - * - * Extensions of this class must override this method. - * - * @return the child element section of the IQ XML. - */ - public abstract String getChildElementXML(); - - /** - * A class to represent the type of the IQ packet. The types are: - * - *

      - *
    • IQ.Type.GET - *
    • IQ.Type.SET - *
    • IQ.Type.RESULT - *
    • IQ.Type.ERROR - *
    - */ - public static class Type { - - public static final Type GET = new Type("get"); - public static final Type SET = new Type("set"); - public static final Type RESULT = new Type("result"); - public static final Type ERROR = new Type("error"); - - /** - * Converts a String into the corresponding types. Valid String values - * that can be converted to types are: "get", "set", "result", and "error". - * - * @param type the String value to covert. - * @return the corresponding Type. - */ - public static Type fromString(String type) { - if (type == null) { - return null; - } - type = type.toLowerCase(); - if (GET.toString().equals(type)) { - return GET; - } - else if (SET.toString().equals(type)) { - return SET; - } - else if (ERROR.toString().equals(type)) { - return ERROR; - } - else if (RESULT.toString().equals(type)) { - return RESULT; - } - else { - return null; - } - } - - private String value; - - private Type(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/Message.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/Message.java deleted file mode 100644 index 193b24d1f..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/Message.java +++ /dev/null @@ -1,273 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * Represents XMPP message packets. A message can be one of several types: - * - *
      - *
    • Message.Type.NORMAL -- (Default) a normal text message used in email like interface. - *
    • Message.Type.CHAT -- a typically short text message used in line-by-line chat interfaces. - *
    • Message.Type.GROUP_CHAT -- a chat message sent to a groupchat server for group chats. - *
    • Message.Type.HEADLINE -- a text message to be displayed in scrolling marquee displays. - *
    • Message.Type.ERROR -- indicates a messaging error. - *
    - * - * For each message type, different message fields are typically used as follows: - *

    - * - * - * - * - * - * - * - *
     Message type
    FieldNormalChatGroup ChatHeadlineXMPPError
    subject SHOULDSHOULD NOTSHOULD NOTSHOULD NOTSHOULD NOT
    thread OPTIONALSHOULDOPTIONALOPTIONALSHOULD NOT
    body SHOULDSHOULDSHOULDSHOULDSHOULD NOT
    error MUST NOTMUST NOTMUST NOTMUST NOTMUST
    - * - * @author Matt Tucker - */ -public class Message extends Packet { - - private Type type = Type.NORMAL; - private String subject = null; - private String body = null; - private String thread = null; - - /** - * Creates a new, "normal" message. - */ - public Message() { - } - - /** - * Creates a new "normal" message to the specified recipient. - * - * @param to the recipient of the message. - */ - public Message(String to) { - if (to == null) { - throw new IllegalArgumentException("Parameter cannot be null"); - } - setTo(to); - } - - /** - * Creates a new message of the specified type to a recipient. - * - * @param to the user to send the message to. - * @param type the message type. - */ - public Message(String to, Type type) { - if (to == null || type == null) { - throw new IllegalArgumentException("Parameters cannot be null."); - } - setTo(to); - this.type = type; - } - - /** - * Returns the type of the message. - * - * @return the type of the message. - */ - public Type getType() { - return type; - } - - /** - * Sets the type of the message. - * - * @param type the type of the message. - */ - public void setType(Type type) { - if (type == null) { - throw new IllegalArgumentException("Type cannot be null."); - } - this.type = type; - } - - /** - * Returns the subject of the message, or null if the subject has not been set. - * The subject is a short description of message contents. - * - * @return the subject of the message. - */ - public String getSubject() { - return subject; - } - - /** - * Sets the subject of the message. The subject is a short description of - * message contents. - * - * @param subject the subject of the message. - */ - public void setSubject(String subject) { - this.subject = subject; - } - - /** - * Returns the body of the message, or null if the body has not been set. The body - * is the main message contents. - * - * @return the body of the message. - */ - public String getBody() { - return body; - } - - /** - * Sets the body of the message. The body is the main message contents. - * @param body - */ - public void setBody(String body) { - this.body = body; - } - - /** - * Returns the thread id of the message, which is a unique identifier for a sequence - * of "chat" messages. If no thread id is set, null will be returned. - * - * @return the thread id of the message, or null if it doesn't exist. - */ - public String getThread() { - return thread; - } - - /** - * Sets the thread id of the message, which is a unique identifier for a sequence - * of "chat" messages. - * - * @param thread the thread id of the message. - */ - public void setThread(String thread) { - this.thread = thread; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (subject != null) { - buf.append("").append(StringUtils.escapeForXML(subject)).append(""); - } - if (body != null) { - buf.append("").append(StringUtils.escapeForXML(body)).append(""); - } - if (thread != null) { - buf.append("").append(thread).append(""); - } - // Append the error subpacket if the message type is an error. - if (type == Type.ERROR) { - XMPPError error = getError(); - if (error != null) { - buf.append(error.toXML()); - } - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } - - /** - * Represents the type of a message. - */ - public static class Type { - - /** - * (Default) a normal text message used in email like interface. - */ - public static final Type NORMAL = new Type("normal"); - - /** - * Typically short text message used in line-by-line chat interfaces. - */ - public static final Type CHAT = new Type("chat"); - - /** - * Chat message sent to a groupchat server for group chats. - */ - public static final Type GROUP_CHAT = new Type("groupchat"); - - /** - * Text message to be displayed in scrolling marquee displays. - */ - public static final Type HEADLINE = new Type("headline"); - - /** - * indicates a messaging error. - */ - public static final Type ERROR = new Type("error"); - - /** - * Converts a String value into its Type representation. - * - * @param type the String value. - * @return the Type corresponding to the String. - */ - public static Type fromString(String type) { - if (type == null) { - return NORMAL; - } - type = type.toLowerCase(); - if (CHAT.toString().equals(type)) { - return CHAT; - } - else if (GROUP_CHAT.toString().equals(type)) { - return GROUP_CHAT; - } - else if (HEADLINE.toString().equals(type)) { - return HEADLINE; - } - else if (ERROR.toString().equals(type)) { - return ERROR; - } - else { - return NORMAL; - } - } - - private String value; - - private Type(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/Packet.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/Packet.java deleted file mode 100644 index a0de7a602..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/Packet.java +++ /dev/null @@ -1,423 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -import java.util.*; -import java.io.*; - -/** - * Base class for XMPP packets. Every packet has a unique ID (which is automatically - * generated, but can be overriden). Optionally, the "to" and "from" fields can be set, - * as well as an arbitrary number of properties. - * - * Properties provide an easy mechanism for clients to share data. Each property has a - * String name, and a value that is a Java primitive (int, long, float, double, boolean) - * or any Serializable object (a Java object is Serializable when it implements the - * Serializable interface). - * - * @author Matt Tucker - */ -public abstract class Packet { - - /** - * Constant used as packetID to indicate that a packet has no id. To indicate that a packet - * has no id set this constant as the packet's id. When the packet is asked for its id the - * answer will be null. - */ - public static final String ID_NOT_AVAILABLE = "ID_NOT_AVAILABLE"; - - /** - * A prefix helps to make sure that ID's are unique across mutliple instances. - */ - private static String prefix = StringUtils.randomString(5) + "-"; - - /** - * Keeps track of the current increment, which is appended to the prefix to - * forum a unique ID. - */ - private static long id = 0; - - /** - * Returns the next unique id. Each id made up of a short alphanumeric - * prefix along with a unique numeric value. - * - * @return the next id. - */ - private static synchronized String nextID() { - return prefix + Long.toString(id++); - } - - private String packetID = null; - private String to = null; - private String from = null; - private List packetExtensions = null; - private Map properties = null; - private XMPPError error = null; - - /** - * Returns the unique ID of the packet. The returned value could be null when - * ID_NOT_AVAILABLE was set as the packet's id. - * - * @return the packet's unique ID or null if the packet's id is not available. - */ - public String getPacketID() { - if (ID_NOT_AVAILABLE.equals(packetID)) { - return null; - } - - if (packetID == null) { - packetID = nextID(); - } - return packetID; - } - - /** - * Sets the unique ID of the packet. To indicate that a packet has no id - * pass the constant ID_NOT_AVAILABLE as the packet's id value. - * - * @param packetID the unique ID for the packet. - */ - public void setPacketID(String packetID) { - this.packetID = packetID; - } - - /** - * Returns who the packet is being sent "to", or null if - * the value is not set. The XMPP protocol often makes the "to" - * attribute optional, so it does not always need to be set. - * - * @return who the packet is being sent to, or null if the - * value has not been set. - */ - public String getTo() { - return to; - } - - /** - * Sets who the packet is being sent "to". The XMPP protocol often makes - * the "to" attribute optional, so it does not always need to be set. - * - * @param to who the packet is being sent to. - */ - public void setTo(String to) { - this.to = to; - } - - /** - * Returns who the packet is being sent "from" or null if - * the value is not set. The XMPP protocol often makes the "from" - * attribute optional, so it does not always need to be set. - * - * @return who the packet is being sent from, or null if the - * valud has not been set. - */ - public String getFrom() { - return from; - } - - /** - * Sets who the packet is being sent "from". The XMPP protocol often - * makes the "from" attribute optional, so it does not always need to - * be set. - * - * @param from who the packet is being sent to. - */ - public void setFrom(String from) { - this.from = from; - } - - /** - * Returns the error associated with this packet, or null if there are - * no errors. - * - * @return the error sub-packet or null if there isn't an error. - */ - public XMPPError getError() { - return error; - } - - /** - * Sets the error for this packet. - * - * @param error the error to associate with this packet. - */ - public void setError(XMPPError error) { - this.error = error; - } - - /** - * Returns an Iterator for the packet extensions attached to the packet. - * - * @return an Iterator for the packet extensions. - */ - public synchronized Iterator getExtensions() { - if (packetExtensions == null) { - return Collections.EMPTY_LIST.iterator(); - } - return Collections.unmodifiableList(new ArrayList(packetExtensions)).iterator(); - } - - /** - * Returns the first packet extension that matches the specified element name and - * namespace, or null if it doesn't exist. Packet extensions are - * are arbitrary XML sub-documents in standard XMPP packets. By default, a - * DefaultPacketExtension instance will be returned for each extension. However, - * PacketExtensionProvider instances can be registered with the - * {@link org.jivesoftware.smack.provider.ProviderManager ProviderManager} - * class to handle custom parsing. In that case, the type of the Object - * will be determined by the provider. - * - * @param elementName the XML element name of the packet extension. - * @param namespace the XML element namespace of the packet extension. - * @return the extension, or null if it doesn't exist. - */ - public synchronized PacketExtension getExtension(String elementName, String namespace) { - if (packetExtensions == null || elementName == null || namespace == null) { - return null; - } - for (Iterator i=packetExtensions.iterator(); i.hasNext(); ) { - PacketExtension ext = (PacketExtension)i.next(); - if (elementName.equals(ext.getElementName()) && namespace.equals(ext.getNamespace())) { - return ext; - } - } - return null; - } - - /** - * Adds a packet extension to the packet. - * - * @param extension a packet extension. - */ - public synchronized void addExtension(PacketExtension extension) { - if (packetExtensions == null) { - packetExtensions = new ArrayList(); - } - packetExtensions.add(extension); - } - - /** - * Removes a packet extension from the packet. - * - * @param extension the packet extension to remove. - */ - public synchronized void removeExtension(PacketExtension extension) { - if (packetExtensions != null) { - packetExtensions.remove(extension); - } - } - - /** - * Returns the packet property with the specified name or null if the - * property doesn't exist. Property values that were orginally primitives will - * be returned as their object equivalent. For example, an int property will be - * returned as an Integer, a double as a Double, etc. - * - * @param name the name of the property. - * @return the property, or null if the property doesn't exist. - */ - public synchronized Object getProperty(String name) { - if (properties == null) { - return null; - } - return properties.get(name); - } - - /** - * Sets a packet property with an int value. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public void setProperty(String name, int value) { - setProperty(name, new Integer(value)); - } - - /** - * Sets a packet property with a long value. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public void setProperty(String name, long value) { - setProperty(name, new Long(value)); - } - - /** - * Sets a packet property with a float value. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public void setProperty(String name, float value) { - setProperty(name, new Float(value)); - } - - /** - * Sets a packet property with a double value. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public void setProperty(String name, double value) { - setProperty(name, new Double(value)); - } - - /** - * Sets a packet property with a bboolean value. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public void setProperty(String name, boolean value) { - setProperty(name, new Boolean(value)); - } - - /** - * Sets a property with an Object as the value. The value must be Serializable - * or an IllegalArgumentException will be thrown. - * - * @param name the name of the property. - * @param value the value of the property. - */ - public synchronized void setProperty(String name, Object value) { - if (!(value instanceof Serializable)) { - throw new IllegalArgumentException("Value must be serialiazble"); - } - if (properties == null) { - properties = new HashMap(); - } - properties.put(name, value); - } - - /** - * Deletes a property. - * - * @param name the name of the property to delete. - */ - public synchronized void deleteProperty(String name) { - if (properties == null) { - return; - } - properties.remove(name); - } - - /** - * Returns an Iterator for all the property names that are set. - * - * @return an Iterator for all property names. - */ - public synchronized Iterator getPropertyNames() { - if (properties == null) { - return Collections.EMPTY_LIST.iterator(); - } - return properties.keySet().iterator(); - } - - /** - * Returns the packet as XML. Every concrete extension of Packet must implement - * this method. In addition to writing out packet-specific data, every sub-class - * should also write out the error and the extensions data if they are defined. - * - * @return the XML format of the packet as a String. - */ - public abstract String toXML(); - - /** - * Returns the extension sub-packets (including properties data) as an XML - * String, or the Empty String if there are no packet extensions. - * - * @return the extension sub-packets as XML or the Empty String if there - * are no packet extensions. - */ - protected synchronized String getExtensionsXML() { - StringBuffer buf = new StringBuffer(); - // Add in all standard extension sub-packets. - Iterator extensions = getExtensions(); - while (extensions.hasNext()) { - PacketExtension extension = (PacketExtension)extensions.next(); - buf.append(extension.toXML()); - } - // Add in packet properties. - if (properties != null && !properties.isEmpty()) { - buf.append(""); - // Loop through all properties and write them out. - for (Iterator i=getPropertyNames(); i.hasNext(); ) { - String name = (String)i.next(); - Object value = getProperty(name); - buf.append(""); - buf.append("").append(StringUtils.escapeForXML(name)).append(""); - buf.append("").append(value).append(""); - } - else if (value instanceof Long) { - buf.append("long\">").append(value).append(""); - } - else if (value instanceof Float) { - buf.append("float\">").append(value).append(""); - } - else if (value instanceof Double) { - buf.append("double\">").append(value).append(""); - } - else if (value instanceof Boolean) { - buf.append("boolean\">").append(value).append(""); - } - else if (value instanceof String) { - buf.append("string\">"); - buf.append(StringUtils.escapeForXML((String)value)); - buf.append(""); - } - // Otherwise, it's a generic Serializable object. Serialized objects are in - // a binary format, which won't work well inside of XML. Therefore, we base-64 - // encode the binary data before adding it. - else { - ByteArrayOutputStream byteStream = null; - ObjectOutputStream out = null; - try { - byteStream = new ByteArrayOutputStream(); - out = new ObjectOutputStream(byteStream); - out.writeObject(value); - buf.append("java-object\">"); - String encodedVal = StringUtils.encodeBase64(byteStream.toByteArray()); - buf.append(encodedVal).append(""); - } - catch (Exception e) { - e.printStackTrace(); - } - finally { - if (out != null) { - try { out.close(); } catch (Exception e) { } - } - if (byteStream != null) { - try { byteStream.close(); } catch (Exception e) { } - } - } - } - buf.append(""); - } - buf.append(""); - } - return buf.toString(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/PacketExtension.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/PacketExtension.java deleted file mode 100644 index e402e9d29..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/PacketExtension.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -/** - * Interface to represent packet extensions. A packet extension is an XML subdocument - * with a root element name and namespace. Packet extensions are used to provide - * extended functionality beyond what is in the base XMPP specification. Examples of - * packet extensions include message events, message properties, and extra presence data. - * IQ packets cannot contain packet extensions. - * - * @see DefaultPacketExtension - * @see org.jivesoftware.smack.provider.PacketExtensionProvider - * @author Matt Tucker - */ -public interface PacketExtension { - - /** - * Returns the root element name. - * - * @return the element name. - */ - public String getElementName(); - - /** - * Returns the root element XML namespace. - * - * @return the namespace. - */ - public String getNamespace(); - - /** - * Returns the XML reppresentation of the PacketExtension. - * - * @return the packet extension as XML. - */ - public String toXML(); -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/Presence.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/Presence.java deleted file mode 100644 index 52e17d0f0..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/Presence.java +++ /dev/null @@ -1,327 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * Represents XMPP presence packets. Every presence packet has a type, which is one of - * the following values: - *

      - *
    • Presence.Type.AVAILABLE -- (Default) indicates the user is available to - * receive messages. - *
    • Presence.Type.UNAVAILABLE -- the user is unavailable to receive messages. - *
    • Presence.Type.SUBSCRIBE -- request subscription to recipient's presence. - *
    • Presence.Type.SUBSCRIBED -- grant subscription to sender's presence. - *
    • Presence.Type.UNSUBSCRIBE -- request removal of subscription to sender's - * presence. - *
    • Presence.Type.UNSUBSCRIBED -- grant removal of subscription to sender's - * presence. - *
    • Presence.Type.ERROR -- the presence packet contains an error message. - *

    - * - * A number of attributes are optional: - *

      - *
    • Status -- free-form text describing a user's presence (i.e., gone to lunch). - *
    • Priority -- non-negative numerical priority of a sender's resource. The - * highest resource priority is the default recipient of packets not addressed - * to a particular resource. - *
    • Mode -- one of five presence modes: available (the default), chat, away, - * xa (extended away, and dnd (do not disturb). - *

    - * - * Presence packets are used for two purposes. First, to notify the server of our - * the clients current presence status. Second, they are used to subscribe and - * unsubscribe users from the roster. - * - * @see RosterPacket - * @author Matt Tucker - */ -public class Presence extends Packet { - - private Type type = Type.AVAILABLE; - private String status = null; - private int priority = -1; - private Mode mode = Mode.AVAILABLE; - - /** - * Creates a new presence update. Status, priority, and mode are left un-set. - * - * @param type the type. - */ - public Presence(Type type) { - this.type = type; - } - - /** - * Creates a new presence update with a specified status, priority, and mode. - * - * @param type the type. - * @param status a text message describing the presence update. - * @param priority the priority of this presence update. - * @param mode the mode type for this presence update. - */ - public Presence(Type type, String status, int priority, Mode mode) { - this.type = type; - this.status = status; - this.priority = priority; - this.mode = mode; - } - - /** - * Returns the type of this presence packet. - * - * @return the type of the presence packet. - */ - public Type getType() { - return type; - } - - /** - * Sets the type of the presence packet. - * - * @param type the type of the presence packet. - */ - public void setType(Type type) { - this.type = type; - } - - /** - * Returns the status message of the presence update, or null if there - * is not a status. The status is free-form text describing a user's presence - * (i.e., "gone to lunch"). - * - * @return the status message. - */ - public String getStatus() { - return status; - } - - /** - * Sets the status message of the presence update. The status is free-form text - * describing a user's presence (i.e., "gone to lunch"). - * - * @param status the status message. - */ - public void setStatus(String status) { - this.status = status; - } - - /** - * Returns the priority of the presence, or -1 if no priority has been set. - * - * @return the priority. - */ - public int getPriority() { - return priority; - } - - /** - * Sets the priority of the presence. The valid range is -128 through 128. - * - * @param priority the priority of the presence. - * @throws IllegalArgumentException if the priority is outside the valid range. - */ - public void setPriority(int priority) { - if (priority < -128 || priority > 128) { - throw new IllegalArgumentException("Priority value " + priority + - " is not valid. Valid range is -128 through 128."); - } - this.priority = priority; - } - - /** - * Returns the mode of the presence update. - * - * @return the mode. - */ - public Mode getMode() { - return mode; - } - - /** - * Sets the mode of the presence update. For the standard "available" state, set - * the mode to null. - * - * @param mode the mode. - */ - public void setMode(Mode mode) { - this.mode = mode; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (status != null) { - buf.append("").append(status).append(""); - } - if (priority != -1) { - buf.append("").append(priority).append(""); - } - if (mode != null && mode != Mode.AVAILABLE) { - buf.append("").append(mode).append(""); - } - - buf.append(this.getExtensionsXML()); - - // Add the error sub-packet, if there is one. - XMPPError error = getError(); - if (error != null) { - buf.append(error.toXML()); - } - - buf.append(""); - - return buf.toString(); - } - - public String toString() { - StringBuffer buf = new StringBuffer(); - buf.append(type); - if (mode != null) { - buf.append(": ").append(mode); - } - if (status != null) { - buf.append(" (").append(status).append(")"); - } - return buf.toString(); - } - - /** - * A typsafe enum class to represent the presecence type. - */ - public static class Type { - - public static final Type AVAILABLE = new Type("available"); - public static final Type UNAVAILABLE = new Type("unavailable"); - public static final Type SUBSCRIBE = new Type("subscribe"); - public static final Type SUBSCRIBED = new Type("subscribed"); - public static final Type UNSUBSCRIBE = new Type("unsubscribe"); - public static final Type UNSUBSCRIBED = new Type("unsubscribed"); - public static final Type ERROR = new Type("error"); - - private String value; - - private Type(String value) { - this.value = value; - } - - public String toString() { - return value; - } - - /** - * Returns the type constant associated with the String value. - */ - public static Type fromString(String value) { - if (value == null) { - return AVAILABLE; - } - value = value.toLowerCase(); - if ("unavailable".equals(value)) { - return UNAVAILABLE; - } - else if ("subscribe".equals(value)) { - return SUBSCRIBE; - } - else if ("subscribed".equals(value)) { - return SUBSCRIBED; - } - else if ("unsubscribe".equals(value)) { - return UNSUBSCRIBE; - } - else if ("unsubscribed".equals(value)) { - return UNSUBSCRIBED; - } - else if ("error".equals(value)) { - return ERROR; - } - // Default to available. - else { - return AVAILABLE; - } - } - } - - /** - * A typsafe enum class to represent the presence mode. - */ - public static class Mode { - - public static final Mode AVAILABLE = new Mode("available"); - public static final Mode CHAT = new Mode("chat"); - public static final Mode AWAY = new Mode("away"); - public static final Mode EXTENDED_AWAY = new Mode("xa"); - public static final Mode DO_NOT_DISTURB = new Mode("dnd"); - public static final Mode INVISIBLE = new Mode("invisible"); - - private String value; - - private Mode(String value) { - this.value = value; - } - - public String toString() { - return value; - } - - /** - * Returns the mode constant associated with the String value. - */ - public static Mode fromString(String value) { - if (value == null) { - return AVAILABLE; - } - value = value.toLowerCase(); - if (value.equals("chat")) { - return CHAT; - } - else if (value.equals("away")) { - return AWAY; - } - else if (value.equals("xa")) { - return EXTENDED_AWAY; - } - else if (value.equals("dnd")) { - return DO_NOT_DISTURB; - } - else if (value.equals("invisible")) { - return INVISIBLE; - } - else { - return AVAILABLE; - } - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/Registration.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/Registration.java deleted file mode 100644 index 07b06daa7..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/Registration.java +++ /dev/null @@ -1,113 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import java.util.Map; -import java.util.Iterator; - -/** - * Represents registration packets. An empty GET query will cause the server to return information - * about it's registration support. SET queries can be used to create accounts or update - * existing account information. XMPP servers may require a number of attributes to be set - * when creating a new account. The standard account attributes are as follows: - *

      - *
    • name -- the user's name. - *
    • first -- the user's first name. - *
    • last -- the user's last name. - *
    • email -- the user's email address. - *
    • city -- the user's city. - *
    • state -- the user's state. - *
    • zip -- the user's ZIP code. - *
    • phone -- the user's phone number. - *
    • url -- the user's website. - *
    • date -- the date the registration took place. - *
    • misc -- other miscellaneous information to associate with the account. - *
    • text -- textual information to associate with the account. - *
    • remove -- empty flag to remove account. - *
    - * - * @author Matt Tucker - */ -public class Registration extends IQ { - - private String instructions = null; - private Map attributes = null; - - /** - * Returns the registration instructions, or null if no instructions - * have been set. If present, instructions should be displayed to the end-user - * that will complete the registration process. - * - * @return the registration instructions, or null if there are none. - */ - public String getInstructions() { - return instructions; - } - - /** - * Sets the registration instructions. - * - * @param instructions the registration instructions. - */ - public void setInstructions(String instructions) { - this.instructions = instructions; - } - - /** - * Returns the map of String key/value pairs of account attributes. - * - * @return the account attributes. - */ - public Map getAttributes() { - return attributes; - } - - /** - * Sets the account attributes. The map must only contain String key/value pairs. - * - * @param attributes the account attributes. - */ - public void setAttributes(Map attributes) { - this.attributes = attributes; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (instructions != null) { - buf.append("").append(instructions).append(""); - } - if (attributes != null && attributes.size() > 0) { - Iterator fieldNames = attributes.keySet().iterator(); - while (fieldNames.hasNext()) { - String name = (String)fieldNames.next(); - String value = (String)attributes.get(name); - buf.append("<").append(name).append(">"); - buf.append(value); - buf.append(""); - } - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/RosterPacket.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/RosterPacket.java deleted file mode 100644 index 0008428d0..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/RosterPacket.java +++ /dev/null @@ -1,348 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import java.util.*; - -/** - * Represents XMPP roster packets. - * - * @author Matt Tucker - */ -public class RosterPacket extends IQ { - - private List rosterItems = new ArrayList(); - - /** - * Adds a roster item to the packet. - * - * @param item a roster item. - */ - public void addRosterItem(Item item) { - synchronized (rosterItems) { - rosterItems.add(item); - } - } - - /** - * Returns the number of roster items in this roster packet. - * - * @return the number of roster items. - */ - public int getRosterItemCount() { - synchronized (rosterItems) { - return rosterItems.size(); - } - } - - /** - * Returns an Iterator for the roster items in the packet. - * - * @return and Iterator for the roster items in the packet. - */ - public Iterator getRosterItems() { - synchronized (rosterItems) { - List entries = Collections.unmodifiableList(new ArrayList(rosterItems)); - return entries.iterator(); - } - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (rosterItems) { - for (int i=0; i"); - return buf.toString(); - } - - /** - * A roster item, which consists of a JID, their name, the type of subscription, and - * the groups the roster item belongs to. - */ - public static class Item { - - private String user; - private String name; - private ItemType itemType; - private ItemStatus itemStatus; - private List groupNames; - - /** - * Creates a new roster item. - * - * @param user the user. - * @param name the user's name. - */ - public Item(String user, String name) { - this.user = user; - this.name = name; - itemType = null; - itemStatus = null; - groupNames = new ArrayList(); - } - - /** - * Returns the user. - * - * @return the user. - */ - public String getUser() { - return user; - } - - /** - * Returns the user's name. - * - * @return the user's name. - */ - public String getName() { - return name; - } - - /** - * Sets the user's name. - * - * @param name the user's name. - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the roster item type. - * - * @return the roster item type. - */ - public ItemType getItemType() { - return itemType; - } - - /** - * Sets the roster item type. - * - * @param itemType the roster item type. - */ - public void setItemType(ItemType itemType) { - this.itemType = itemType; - } - - /** - * Returns the roster item status. - * - * @return the roster item status. - */ - public ItemStatus getItemStatus() { - return itemStatus; - } - - /** - * Sets the roster item status. - * - * @param itemStatus the roster item status. - */ - public void setItemStatus(ItemStatus itemStatus) { - this.itemStatus = itemStatus; - } - - /** - * Returns an Iterator for the group names (as Strings) that the roster item - * belongs to. - * - * @return an Iterator for the group names. - */ - public Iterator getGroupNames() { - synchronized (groupNames) { - return Collections.unmodifiableList(groupNames).iterator(); - } - } - - /** - * Adds a group name. - * - * @param groupName the group name. - */ - public void addGroupName(String groupName) { - synchronized (groupNames) { - if (!groupNames.contains(groupName)) { - groupNames.add(groupName); - } - } - } - - /** - * Removes a group name. - * - * @param groupName the group name. - */ - public void removeGroupName(String groupName) { - synchronized (groupNames) { - groupNames.remove(groupName); - } - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (groupNames) { - for (int i=0; i").append(groupName).append(""); - } - } - buf.append(""); - return buf.toString(); - } - } - - /** - * The subscription status of a roster item. An optional element that indicates - * the subscription status if a change request is pending. - */ - public static class ItemStatus { - - /** - * Request to subcribe. - */ - public static final ItemStatus SUBSCRIPTION_PENDING = new ItemStatus("subscribe"); - - /** - * Request to unsubscribe. - */ - public static final ItemStatus UNSUBCRIPTION_PENDING = new ItemStatus("unsubscribe"); - - public static ItemStatus fromString(String value) { - if (value == null) { - return null; - } - value = value.toLowerCase(); - if ("unsubscribe".equals(value)) { - return SUBSCRIPTION_PENDING; - } - else if ("subscribe".equals(value)) { - return SUBSCRIPTION_PENDING; - } - else { - return null; - } - } - - private String value; - - /** - * Returns the item status associated with the specified string. - * - * @param value the item status. - */ - private ItemStatus(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } - - /** - * The subscription type of a roster item. - */ - public static class ItemType { - - /** - * The user and subscriber have no interest in each other's presence. - */ - public static final ItemType NONE = new ItemType("none"); - - /** - * The user is interested in receiving presence updates from the subscriber. - */ - public static final ItemType TO = new ItemType("to"); - - /** - * The subscriber is interested in receiving presence updates from the user. - */ - public static final ItemType FROM = new ItemType("from"); - - /** - * The user and subscriber have a mutual interest in each other's presence. - */ - public static final ItemType BOTH = new ItemType("both"); - - /** - * The user wishes to stop receiving presence updates from the subscriber. - */ - public static final ItemType REMOVE = new ItemType("remove"); - - public static ItemType fromString(String value) { - if (value == null) { - return null; - } - value = value.toLowerCase(); - if ("none".equals(value)) { - return NONE; - } - else if ("to".equals(value)) { - return TO; - } - else if ("from".equals(value)) { - return FROM; - } - else if ("both".equals(value)) { - return BOTH; - } - else if ("remove".equals(value)) { - return REMOVE; - } - else { - return null; - } - } - - private String value; - - /** - * Returns the item type associated with the specified string. - * - * @param value the item type. - */ - public ItemType(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/XMPPError.java b/CopyOftrunk/source/org/jivesoftware/smack/packet/XMPPError.java deleted file mode 100644 index 6d90c48e6..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/XMPPError.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -/** - * Represents a XMPP error sub-packet. Typically, a server responds to a request that has - * problems by sending the packet back and including an error packet. Each error has a code - * as well as as an optional text explanation. Typical error codes are as follows:

    - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
    CodeDescription
    302 Redirect
    400 Bad Request
    401 Unauthorized
    402 Payment Required
    403 Forbidden
    404 Not Found
    405 Not Allowed
    406 Not Acceptable
    407 Registration Required
    408 Request Timeout
    409 Conflict
    500 Internal Server XMPPError
    501 Not Implemented
    502 Remote Server Error
    503 Service Unavailable
    504 Remote Server Timeout
    - * - * @author Matt Tucker - */ -public class XMPPError { - - private int code; - private String message; - - /** - * Creates a new error with the specified code and no message.. - * - * @param code the error code. - */ - public XMPPError(int code) { - this.code = code; - this.message = null; - } - - /** - * Creates a new error with the specified code and message. - * - * @param code the error code. - * @param message a message describing the error. - */ - public XMPPError(int code, String message) { - this.code = code; - this.message = message; - } - - /** - * Returns the error code. - * - * @return the error code. - */ - public int getCode() { - return code; - } - - /** - * Returns the message describing the error, or null if there is no message. - * - * @return the message describing the error, or null if there is no message. - */ - public String getMessage() { - return message; - } - - /** - * Returns the error as XML. - * - * @return the error as XML. - */ - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (message != null) { - buf.append(message); - } - buf.append(""); - return buf.toString(); - } - - public String toString() { - StringBuffer txt = new StringBuffer(); - txt.append("(").append(code).append(")"); - if (message != null) { - txt.append(" ").append(message); - } - return txt.toString(); - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/packet/package.html b/CopyOftrunk/source/org/jivesoftware/smack/packet/package.html deleted file mode 100644 index 18a6405c8..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/packet/package.html +++ /dev/null @@ -1 +0,0 @@ -XML packets that are part of the XMPP protocol. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/provider/IQProvider.java b/CopyOftrunk/source/org/jivesoftware/smack/provider/IQProvider.java deleted file mode 100644 index 8273283f1..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/provider/IQProvider.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.xmlpull.v1.XmlPullParser; - -/** - * An interface for parsing custom IQ packets. Each IQProvider must be registered with - * the ProviderManager class for it to be used. Every implementation of this - * interface must have a public, no-argument constructor. - * - * @author Matt Tucker - */ -public interface IQProvider { - - /** - * Parse the IQ sub-document and create an IQ instance. Each IQ must have a - * single child element. At the beginning of the method call, the xml parser - * will be positioned at the opening tag of the IQ child element. At the end - * of the method call, the parser must be positioned on the closing tag - * of the child element. - * - * @param parser an XML parser. - * @return a new IQ instance. - * @throws Exception if an error occurs parsing the XML. - */ - public IQ parseIQ(XmlPullParser parser) throws Exception; -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/provider/PacketExtensionProvider.java b/CopyOftrunk/source/org/jivesoftware/smack/provider/PacketExtensionProvider.java deleted file mode 100644 index 40baeaafc..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/provider/PacketExtensionProvider.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.provider; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.xmlpull.v1.XmlPullParser; - -/** - * An interface for parsing custom packets extensions. Each PacketExtensionProvider must - * be registered with the ProviderManager class for it to be used. Every implementation - * of this interface must have a public, no-argument constructor. - * - * @author Matt Tucker - */ -public interface PacketExtensionProvider { - - /** - * Parse an extension sub-packet and create a PacketExtension instance. At - * the beginning of the method call, the xml parser will be positioned on the - * opening element of the packet extension. At the end of the method call, the - * parser must be positioned on the closing element of the packet extension. - * - * @param parser an XML parser. - * @return a new IQ instance. - * @throws java.lang.Exception if an error occurs parsing the XML. - */ - public PacketExtension parseExtension(XmlPullParser parser) throws Exception; -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/provider/ProviderManager.java b/CopyOftrunk/source/org/jivesoftware/smack/provider/ProviderManager.java deleted file mode 100644 index 2a97f4068..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/provider/ProviderManager.java +++ /dev/null @@ -1,359 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.packet.PacketExtension; -import org.xmlpull.v1.*; -import org.xmlpull.mxp1.MXParser; - -import java.util.*; -import java.net.URL; - -/** - * Manages providers for parsing custom XML sub-documents of XMPP packets. Two types of - * providers exist:

      - *
    • IQProvider -- parses IQ requests into Java objects. - *
    • PacketExtension -- parses XML sub-documents attached to packets into - * PacketExtension instances.
    - * - * IQProvider

    - * - * By default, Smack only knows how to process IQ packets with sub-packets that - * are in a few namespaces such as:

      - *
    • jabber:iq:auth - *
    • jabber:iq:roster - *
    • jabber:iq:register
    - * - * Because many more IQ types are part of XMPP and its extensions, a pluggable IQ parsing - * mechanism is provided. IQ providers are registered programatically or by creating a - * smack.providers file in the META-INF directory of your JAR file. The file is an XML - * document that contains one or more iqProvider entries, as in the following example: - * - *
    - * <?xml version="1.0"?>
    - * <smackProviders>
    - *     <iqProvider>
    - *         <elementName>query</elementName>
    - *         <namespace>jabber:iq:time</namespace>
    - *         <className>org.jivesoftware.smack.packet.Time</className>
    - *     </iqProvider>
    - * </smackProviders>
    - * - * Each IQ provider is associated with an element name and a namespace. If multiple provider - * entries attempt to register to handle the same namespace, the first entry loaded from the - * classpath will take precedence. The IQ provider class can either implement the IQProvider - * interface, or extend the IQ class. In the former case, each IQProvider is responsible for - * parsing the raw XML stream to create an IQ instance. In the latter case, bean introspection - * is used to try to automatically set properties of the IQ instance using the values found - * in the IQ packet XML. For example, an XMPP time packet resembles the following: - *
    - * <iq type='result' to='joe@example.com' from='mary@example.com' id='time_1'>
    - *     <query xmlns='jabber:iq:time'>
    - *         <utc>20020910T17:58:35</utc>
    - *         <tz>MDT</tz>
    - *         <display>Tue Sep 10 12:58:35 2002</display>
    - *     </query>
    - * </iq>
    - * - * In order for this packet to be automatically mapped to the Time object listed in the - * providers file above, it must have the methods setUtc(String), setTz(String), and - * setDisplay(String). The introspection service will automatically try to convert the String - * value from the XML into a boolean, int, long, float, double, or Class depending on the - * type the IQ instance expects.

    - * - * A pluggable system for packet extensions, child elements in a custom namespace for - * message and presence packets, also exists. Each extension provider - * is registered with a name space in the smack.providers file as in the following example: - * - *

    - * <?xml version="1.0"?>
    - * <smackProviders>
    - *     <extensionProvider>
    - *         <elementName>x</elementName>
    - *         <namespace>jabber:iq:event</namespace>
    - *         <className>org.jivesoftware.smack.packet.MessageEvent</className>
    - *     </extensionProvider>
    - * </smackProviders>
    - * - * If multiple provider entries attempt to register to handle the same element name and namespace, - * the first entry loaded from the classpath will take precedence. Whenever a packet extension - * is found in a packet, parsing will be passed to the correct provider. Each provider - * can either implement the PacketExtensionProvider interface or be a standard Java Bean. In - * the former case, each extension provider is responsible for parsing the raw XML stream to - * contruct an object. In the latter case, bean introspection is used to try to automatically - * set the properties of the class using the values in the packet extension sub-element. When an - * extension provider is not registered for an element name and namespace combination, Smack will - * store all top-level elements of the sub-packet in DefaultPacketExtension object and then - * attach it to the packet. - * - * @author Matt Tucker - */ -public class ProviderManager { - - private static Map extensionProviders = new Hashtable(); - private static Map iqProviders = new Hashtable(); - - static { - // Load IQ processing providers. - try { - // Get an array of class loaders to try loading the providers files from. - ClassLoader[] classLoaders = getClassLoaders(); - for (int i=0; i - * <iq type='result' to='joe@example.com' from='mary@example.com' id='time_1'> - * <query xmlns='jabber:iq:time'> - * <utc>20020910T17:58:35</utc> - * <tz>MDT</tz> - * <display>Tue Sep 10 12:58:35 2002</display> - * </query> - * </iq> - * - *

    Note: this method is generally only called by the internal Smack classes. - * - * @param elementName the XML element name. - * @param namespace the XML namespace. - * @return the IQ provider. - */ - public static Object getIQProvider(String elementName, String namespace) { - String key = getProviderKey(elementName, namespace); - return iqProviders.get(key); - } - - /** - * Returns an Iterator for all IQProvider instances. - * - * @return an Iterator for all IQProvider instances. - */ - public static Iterator getIQProviders() { - return Collections.unmodifiableCollection(new HashMap(iqProviders).values()).iterator(); - } - - /** - * Adds an IQ provider (must be an instance of IQProvider or Class object that is an IQ) - * with the specified element name and name space. The provider will override any providers - * loaded through the classpath. - * - * @param elementName the XML element name. - * @param namespace the XML namespace. - * @param provider the IQ provider. - */ - public static void addIQProvider(String elementName, String namespace, - Object provider) - { - if (!(provider instanceof IQProvider || (provider instanceof Class && - IQ.class.isAssignableFrom((Class)provider)))) - { - throw new IllegalArgumentException("Provider must be an IQProvider " + - "or a Class instance."); - } - String key = getProviderKey(elementName, namespace); - iqProviders.put(key, provider); - } - - /** - * Returns the packet extension provider registered to the specified XML element name - * and namespace. For example, if a provider was registered to the element name "x" and the - * namespace "jabber:x:event", then the following packet would trigger the provider: - * - *

    -     * <message to='romeo@montague.net' id='message_1'>
    -     *     <body>Art thou not Romeo, and a Montague?</body>
    -     *     <x xmlns='jabber:x:event'>
    -     *         <composing/>
    -     *     </x>
    -     * </message>
    - * - *

    Note: this method is generally only called by the internal Smack classes. - * - * @param elementName - * @param namespace - * @return the extenion provider. - */ - public static Object getExtensionProvider(String elementName, String namespace) { - String key = getProviderKey(elementName, namespace); - return extensionProviders.get(key); - } - - /** - * Adds an extension provider with the specified element name and name space. The provider - * will override any providers loaded through the classpath. The provider must be either - * a PacketExtensionProvider instance, or a Class object of a Javabean. - * - * @param elementName the XML element name. - * @param namespace the XML namespace. - * @param provider the extension provider. - */ - public static void addExtensionProvider(String elementName, String namespace, - Object provider) - { - if (!(provider instanceof PacketExtensionProvider || provider instanceof Class)) { - throw new IllegalArgumentException("Provider must be a PacketExtensionProvider " + - "or a Class instance."); - } - String key = getProviderKey(elementName, namespace); - extensionProviders.put(key, provider); - } - - /** - * Returns an Iterator for all PacketExtensionProvider instances. - * - * @return an Iterator for all PacketExtensionProvider instances. - */ - public static Iterator getExtensionProviders() { - return Collections.unmodifiableCollection( - new HashMap(extensionProviders).values()).iterator(); - } - - /** - * Returns a String key for a given element name and namespace. - * - * @param elementName the element name. - * @param namespace the namespace. - * @return a unique key for the element name and namespace pair. - */ - private static String getProviderKey(String elementName, String namespace) { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(elementName).append("/><").append(namespace).append("/>"); - return buf.toString(); - } - - /** - * Returns an array of class loaders to load resources from. - * - * @return an array of ClassLoader instances. - */ - private static ClassLoader[] getClassLoaders() { - ClassLoader[] classLoaders = new ClassLoader[2]; - classLoaders[0] = new ProviderManager().getClass().getClassLoader(); - classLoaders[1] = Thread.currentThread().getContextClassLoader(); - return classLoaders; - } - - private ProviderManager() { - - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/provider/package.html b/CopyOftrunk/source/org/jivesoftware/smack/provider/package.html deleted file mode 100644 index fccc3836d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/provider/package.html +++ /dev/null @@ -1 +0,0 @@ -Provides pluggable parsing of incoming IQ's and packet extensions. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableReader.java b/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableReader.java deleted file mode 100644 index 5b073b830..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableReader.java +++ /dev/null @@ -1,118 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.util; - -import java.io.*; -import java.util.*; - -/** - * An ObservableReader is a wrapper on a Reader that notifies to its listeners when - * reading character streams. - * - * @author Gaston Dombiak - */ -public class ObservableReader extends Reader { - - Reader wrappedReader = null; - List listeners = new ArrayList(); - - public ObservableReader(Reader wrappedReader) { - this.wrappedReader = wrappedReader; - } - - public int read(char[] cbuf, int off, int len) throws IOException { - int count = wrappedReader.read(cbuf, off, len); - if (count > 0) { - String str = new String(cbuf, off, count); - // Notify that a new string has been read - ReaderListener[] readerListeners = null; - synchronized (listeners) { - readerListeners = new ReaderListener[listeners.size()]; - listeners.toArray(readerListeners); - } - for (int i = 0; i < readerListeners.length; i++) { - readerListeners[i].read(str); - } - } - return count; - } - - public void close() throws IOException { - wrappedReader.close(); - } - - public int read() throws IOException { - return wrappedReader.read(); - } - - public int read(char cbuf[]) throws IOException { - return wrappedReader.read(cbuf); - } - - public long skip(long n) throws IOException { - return wrappedReader.skip(n); - } - - public boolean ready() throws IOException { - return wrappedReader.ready(); - } - - public boolean markSupported() { - return wrappedReader.markSupported(); - } - - public void mark(int readAheadLimit) throws IOException { - wrappedReader.mark(readAheadLimit); - } - - public void reset() throws IOException { - wrappedReader.reset(); - } - - /** - * Adds a reader listener to this reader that will be notified when - * new strings are read. - * - * @param readerListener a reader listener. - */ - public void addReaderListener(ReaderListener readerListener) { - if (readerListener == null) { - return; - } - synchronized (listeners) { - if (!listeners.contains(readerListener)) { - listeners.add(readerListener); - } - } - } - - /** - * Removes a reader listener from this reader. - * - * @param readerListener a reader listener. - */ - public void removeReaderListener(ReaderListener readerListener) { - synchronized (listeners) { - listeners.remove(readerListener); - } - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableWriter.java b/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableWriter.java deleted file mode 100644 index ea1c0356e..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/util/ObservableWriter.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.util; - -import java.io.*; -import java.util.*; - -/** - * An ObservableWriter is a wrapper on a Writer that notifies to its listeners when - * writing to character streams. - * - * @author Gaston Dombiak - */ -public class ObservableWriter extends Writer { - - Writer wrappedWriter = null; - List listeners = new ArrayList(); - - public ObservableWriter(Writer wrappedWriter) { - this.wrappedWriter = wrappedWriter; - } - - public void write(char cbuf[], int off, int len) throws IOException { - wrappedWriter.write(cbuf, off, len); - String str = new String(cbuf, off, len); - notifyListeners(str); - } - - public void flush() throws IOException { - wrappedWriter.flush(); - } - - public void close() throws IOException { - wrappedWriter.close(); - } - - public void write(int c) throws IOException { - wrappedWriter.write(c); - } - - public void write(char cbuf[]) throws IOException { - wrappedWriter.write(cbuf); - String str = new String(cbuf); - notifyListeners(str); - } - - public void write(String str) throws IOException { - wrappedWriter.write(str); - notifyListeners(str); - } - - public void write(String str, int off, int len) throws IOException { - wrappedWriter.write(str, off, len); - str = str.substring(off, off + len); - notifyListeners(str); - } - - /** - * Notify that a new string has been written. - * - * @param str the written String to notify - */ - private void notifyListeners(String str) { - WriterListener[] writerListeners = null; - synchronized (listeners) { - writerListeners = new WriterListener[listeners.size()]; - listeners.toArray(writerListeners); - } - for (int i = 0; i < writerListeners.length; i++) { - writerListeners[i].write(str); - } - } - - /** - * Adds a writer listener to this writer that will be notified when - * new strings are sent. - * - * @param writerListener a writer listener. - */ - public void addWriterListener(WriterListener writerListener) { - if (writerListener == null) { - return; - } - synchronized (listeners) { - if (!listeners.contains(writerListener)) { - listeners.add(writerListener); - } - } - } - - /** - * Removes a writer listener from this writer. - * - * @param writerListener a writer listener. - */ - public void removeWriterListener(WriterListener writerListener) { - synchronized (listeners) { - listeners.remove(writerListener); - } - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smack/util/PacketParserUtils.java b/CopyOftrunk/source/org/jivesoftware/smack/util/PacketParserUtils.java deleted file mode 100644 index 73c21ea3d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smack/util/PacketParserUtils.java +++ /dev/null @@ -1,417 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.util; - -import java.beans.PropertyDescriptor; -import java.util.Map; -import java.util.Iterator; -import java.util.HashMap; -import java.io.ObjectInputStream; -import java.io.ByteArrayInputStream; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smack.provider.ProviderManager; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -/** - * Utility class that helps to parse packets. Any parsing packets method that must be shared - * between many clients must be placed in this utility class. - * - * @author Gaston Dombiak - */ -public class PacketParserUtils { - - /** - * Namespace used to store packet properties. - */ - private static final String PROPERTIES_NAMESPACE = - "http://www.jivesoftware.com/xmlns/xmpp/properties"; - - /** - * Parses a message packet. - * - * @param parser the XML parser, positioned at the start of a message packet. - * @return a Message packet. - * @throws Exception if an exception occurs while parsing the packet. - */ - public static Packet parseMessage(XmlPullParser parser) throws Exception { - Message message = new Message(); - String id = parser.getAttributeValue("", "id"); - message.setPacketID(id == null ? Packet.ID_NOT_AVAILABLE : id); - message.setTo(parser.getAttributeValue("", "to")); - message.setFrom(parser.getAttributeValue("", "from")); - message.setType(Message.Type.fromString(parser.getAttributeValue("", "type"))); - - // Parse sub-elements. We include extra logic to make sure the values - // are only read once. This is because it's possible for the names to appear - // in arbitrary sub-elements. - boolean done = false; - String subject = null; - String body = null; - String thread = null; - Map properties = null; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - String elementName = parser.getName(); - String namespace = parser.getNamespace(); - if (elementName.equals("subject")) { - if (subject == null) { - subject = parser.nextText(); - } - } - else if (elementName.equals("body")) { - if (body == null) { - body = parser.nextText(); - } - } - else if (elementName.equals("thread")) { - if (thread == null) { - thread = parser.nextText(); - } - } - else if (elementName.equals("error")) { - message.setError(parseError(parser)); - } - else if (elementName.equals("properties") && - namespace.equals(PROPERTIES_NAMESPACE)) - { - properties = parseProperties(parser); - } - // Otherwise, it must be a packet extension. - else { - message.addExtension( - PacketParserUtils.parsePacketExtension(elementName, namespace, parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("message")) { - done = true; - } - } - } - message.setSubject(subject); - message.setBody(body); - message.setThread(thread); - // Set packet properties. - if (properties != null) { - for (Iterator i=properties.keySet().iterator(); i.hasNext(); ) { - String name = (String)i.next(); - message.setProperty(name, properties.get(name)); - } - } - return message; - } - - /** - * Parses a presence packet. - * - * @param parser the XML parser, positioned at the start of a presence packet. - * @return a Presence packet. - * @throws Exception if an exception occurs while parsing the packet. - */ - public static Presence parsePresence(XmlPullParser parser) throws Exception { - Presence.Type type = Presence.Type.fromString(parser.getAttributeValue("", "type")); - - Presence presence = new Presence(type); - presence.setTo(parser.getAttributeValue("", "to")); - presence.setFrom(parser.getAttributeValue("", "from")); - String id = parser.getAttributeValue("", "id"); - presence.setPacketID(id == null ? Packet.ID_NOT_AVAILABLE : id); - - // Parse sub-elements - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - String elementName = parser.getName(); - String namespace = parser.getNamespace(); - if (elementName.equals("status")) { - presence.setStatus(parser.nextText()); - } - else if (elementName.equals("priority")) { - try { - int priority = Integer.parseInt(parser.nextText()); - presence.setPriority(priority); - } - catch (NumberFormatException nfe) { } - catch (IllegalArgumentException iae) { - // Presence priority is out of range so assume priority to be zero - presence.setPriority(0); - } - } - else if (elementName.equals("show")) { - presence.setMode(Presence.Mode.fromString(parser.nextText())); - } - else if (elementName.equals("error")) { - presence.setError(parseError(parser)); - } - else if (elementName.equals("properties") && - namespace.equals(PROPERTIES_NAMESPACE)) - { - Map properties = parseProperties(parser); - // Set packet properties. - for (Iterator i=properties.keySet().iterator(); i.hasNext(); ) { - String name = (String)i.next(); - presence.setProperty(name, properties.get(name)); - } - } - // Otherwise, it must be a packet extension. - else { - presence.addExtension( - PacketParserUtils.parsePacketExtension(elementName, namespace, parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("presence")) { - done = true; - } - } - } - return presence; - } - - /** - * Parse a properties sub-packet. If any errors occur while de-serializing Java object - * properties, an exception will be printed and not thrown since a thrown - * exception will shut down the entire connection. ClassCastExceptions will occur - * when both the sender and receiver of the packet don't have identical versions - * of the same class. - * - * @param parser the XML parser, positioned at the start of a properties sub-packet. - * @return a map of the properties. - * @throws Exception if an error occurs while parsing the properties. - */ - public static Map parseProperties(XmlPullParser parser) throws Exception { - Map properties = new HashMap(); - while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("property")) { - // Parse a property - boolean done = false; - String name = null; - String type = null; - String valueText = null; - Object value = null; - while (!done) { - eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - String elementName = parser.getName(); - if (elementName.equals("name")) { - name = parser.nextText(); - } - else if (elementName.equals("value")) { - type = parser.getAttributeValue("", "type"); - valueText = parser.nextText(); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("property")) { - if ("integer".equals(type)) { - value = new Integer(valueText); - } - else if ("long".equals(type)) { - value = new Long(valueText); - } - else if ("float".equals(type)) { - value = new Float(valueText); - } - else if ("double".equals(type)) { - value = new Double(valueText); - } - else if ("boolean".equals(type)) { - value = new Boolean(valueText); - } - else if ("string".equals(type)) { - value = valueText; - } - else if ("java-object".equals(type)) { - try { - byte [] bytes = StringUtils.decodeBase64(valueText); - ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes)); - value = in.readObject(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - if (name != null && value != null) { - properties.put(name, value); - } - done = true; - } - } - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("properties")) { - break; - } - } - } - return properties; - } - - /** - * Parses error sub-packets. - * - * @param parser the XML parser. - * @return an error sub-packet. - * @throws Exception if an exception occurs while parsing the packet. - */ - public static XMPPError parseError(XmlPullParser parser) throws Exception { - String errorCode = "-1"; - String message = null; - for (int i=0; i XMPPAddress.length()) { - return ""; - } - int slashIndex = XMPPAddress.indexOf("/"); - if (slashIndex > 0) { - return XMPPAddress.substring(atIndex + 1, slashIndex); - } - else { - return XMPPAddress.substring(atIndex + 1); - } - } - - /** - * Returns the resource portion of a XMPP address. For example, for the - * address "matt@jivesoftware.com/Smack", "Smack" would be returned. If no - * resource is present in the address, the empty string will be returned. - * - * @param XMPPAddress the XMPP address. - * @return the resource portion of the XMPP address. - */ - public static String parseResource(String XMPPAddress) { - if (XMPPAddress == null) { - return null; - } - int slashIndex = XMPPAddress.indexOf("/"); - if (slashIndex + 1 > XMPPAddress.length() || slashIndex < 0) { - return ""; - } - else { - return XMPPAddress.substring(slashIndex + 1); - } - } - - /** - * Returns the XMPP address with any resource information removed. For example, - * for the address "matt@jivesoftware.com/Smack", "matt@jivesoftware.com" would - * be returned. - * - * @param XMPPAddress the XMPP address. - * @return the bare XMPP address without resource information. - */ - public static String parseBareAddress(String XMPPAddress) { - if (XMPPAddress == null) { - return null; - } - int slashIndex = XMPPAddress.indexOf("/"); - if (slashIndex < 0) { - return XMPPAddress; - } - else if (slashIndex == 0) { - return ""; - } - else { - return XMPPAddress.substring(0, slashIndex); - } - } - - /** - * Escapes all necessary characters in the String so that it can be used - * in an XML doc. - * - * @param string the string to escape. - * @return the string with appropriate characters escaped. - */ - public static final String escapeForXML(String string) { - if (string == null) { - return null; - } - char ch; - int i=0; - int last=0; - char[] input = string.toCharArray(); - int len = input.length; - StringBuffer out = new StringBuffer((int)(len*1.3)); - for (; i < len; i++) { - ch = input[i]; - if (ch > '>') { - continue; - } - else if (ch == '<') { - if (i > last) { - out.append(input, last, i - last); - } - last = i + 1; - out.append(LT_ENCODE); - } - else if (ch == '>') { - if (i > last) { - out.append(input, last, i - last); - } - last = i + 1; - out.append(GT_ENCODE); - } - - else if (ch == '&') { - if (i > last) { - out.append(input, last, i - last); - } - // Do nothing if the string is of the form ë (unicode value) - if (!(len > i + 5 - && input[i + 1] == '#' - && Character.isDigit(input[i + 2]) - && Character.isDigit(input[i + 3]) - && Character.isDigit(input[i + 4]) - && input[i + 5] == ';')) { - last = i + 1; - out.append(AMP_ENCODE); - } - } - else if (ch == '"') { - if (i > last) { - out.append(input, last, i - last); - } - last = i + 1; - out.append(QUOTE_ENCODE); - } - } - if (last == 0) { - return string; - } - if (i > last) { - out.append(input, last, i - last); - } - return out.toString(); - } - - /** - * Used by the hash method. - */ - private static MessageDigest digest = null; - - /** - * Hashes a String using the SHA-1 algorithm and returns the result as a - * String of hexadecimal numbers. This method is synchronized to avoid - * excessive MessageDigest object creation. If calling this method becomes - * a bottleneck in your code, you may wish to maintain a pool of - * MessageDigest objects instead of using this method. - *

    - * A hash is a one-way function -- that is, given an - * input, an output is easily computed. However, given the output, the - * input is almost impossible to compute. This is useful for passwords - * since we can store the hash and a hacker will then have a very hard time - * determining the original password. - * - * @param data the String to compute the hash of. - * @return a hashed version of the passed-in String - */ - public synchronized static final String hash(String data) { - if (digest == null) { - try { - digest = MessageDigest.getInstance("SHA-1"); - } - catch (NoSuchAlgorithmException nsae) { - System.err.println("Failed to load the SHA-1 MessageDigest. " + - "Jive will be unable to function normally."); - } - } - // Now, compute hash. - try { - digest.update(data.getBytes("UTF-8")); - } - catch (UnsupportedEncodingException e) { - System.err.println(e); - } - return encodeHex(digest.digest()); - } - - /** - * Turns an array of bytes into a String representing each byte as an - * unsigned hex number. - *

    - * Method by Santeri Paavolainen, Helsinki Finland 1996
    - * (c) Santeri Paavolainen, Helsinki Finland 1996
    - * Distributed under LGPL. - * - * @param bytes an array of bytes to convert to a hex-string - * @return generated hex string - */ - public static final String encodeHex(byte[] bytes) { - StringBuffer buf = new StringBuffer(bytes.length * 2); - int i; - - for (i = 0; i < bytes.length; i++) { - if (((int) bytes[i] & 0xff) < 0x10) { - buf.append("0"); - } - buf.append(Long.toString((int) bytes[i] & 0xff, 16)); - } - return buf.toString(); - } - - //********************************************************************* - //* Base64 - a simple base64 encoder and decoder. - //* - //* Copyright (c) 1999, Bob Withers - bwit@pobox.com - //* - //* This code may be freely used for any purpose, either personal - //* or commercial, provided the authors copyright notice remains - //* intact. - //********************************************************************* - - private static final int fillchar = '='; - private static final String cvt = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" - + "0123456789+/"; - - /** - * Encodes a String as a base64 String. - * - * @param data a String to encode. - * @return a base64 encoded String. - */ - public static String encodeBase64(String data) { - byte [] bytes = null; - try { - bytes = data.getBytes("ISO-8859-1"); - } - catch (UnsupportedEncodingException uee) { - uee.printStackTrace(); - } - return encodeBase64(bytes); - } - - /** - * Encodes a byte array into a base64 String. - * - * @param data a byte array to encode. - * @return a base64 encode String. - */ - public static String encodeBase64(byte[] data) { - int c; - int len = data.length; - StringBuffer ret = new StringBuffer(((len / 3) + 1) * 4); - for (int i = 0; i < len; ++i) { - c = (data[i] >> 2) & 0x3f; - ret.append(cvt.charAt(c)); - c = (data[i] << 4) & 0x3f; - if (++i < len) - c |= (data[i] >> 4) & 0x0f; - - ret.append(cvt.charAt(c)); - if (i < len) { - c = (data[i] << 2) & 0x3f; - if (++i < len) - c |= (data[i] >> 6) & 0x03; - - ret.append(cvt.charAt(c)); - } - else { - ++i; - ret.append((char) fillchar); - } - - if (i < len) { - c = data[i] & 0x3f; - ret.append(cvt.charAt(c)); - } - else { - ret.append((char) fillchar); - } - } - return ret.toString(); - } - - /** - * Decodes a base64 String. - * - * @param data a base64 encoded String to decode. - * @return the decoded String. - */ - public static byte[] decodeBase64(String data) { - byte [] bytes = null; - try { - bytes = data.getBytes("ISO-8859-1"); - return decodeBase64(bytes).getBytes("ISO-8859-1"); - } - catch (UnsupportedEncodingException uee) { - uee.printStackTrace(); - } - return new byte[] { }; - } - - /** - * Decodes a base64 aray of bytes. - * - * @param data a base64 encode byte array to decode. - * @return the decoded String. - */ - private static String decodeBase64(byte[] data) { - int c, c1; - int len = data.length; - StringBuffer ret = new StringBuffer((len * 3) / 4); - for (int i = 0; i < len; ++i) { - c = cvt.indexOf(data[i]); - ++i; - c1 = cvt.indexOf(data[i]); - c = ((c << 2) | ((c1 >> 4) & 0x3)); - ret.append((char) c); - if (++i < len) { - c = data[i]; - if (fillchar == c) - break; - - c = cvt.indexOf(c); - c1 = ((c1 << 4) & 0xf0) | ((c >> 2) & 0xf); - ret.append((char) c1); - } - - if (++i < len) { - c1 = data[i]; - if (fillchar == c1) - break; - - c1 = cvt.indexOf(c1); - c = ((c << 6) & 0xc0) | c1; - ret.append((char) c); - } - } - return ret.toString(); - } - - /** - * Pseudo-random number generator object for use with randomString(). - * The Random class is not considered to be cryptographically secure, so - * only use these random Strings for low to medium security applications. - */ - private static Random randGen = new Random(); - - /** - * Array of numbers and letters of mixed case. Numbers appear in the list - * twice so that there is a more equal chance that a number will be picked. - * We can use the array to get a random number or letter by picking a random - * array index. - */ - private static char[] numbersAndLetters = ("0123456789abcdefghijklmnopqrstuvwxyz" + - "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray(); - - /** - * Returns a random String of numbers and letters (lower and upper case) - * of the specified length. The method uses the Random class that is - * built-in to Java which is suitable for low to medium grade security uses. - * This means that the output is only pseudo random, i.e., each number is - * mathematically generated so is not truly random.

    - * - * The specified length must be at least one. If not, the method will return - * null. - * - * @param length the desired length of the random String to return. - * @return a random String of numbers and letters of the specified length. - */ - public static final String randomString(int length) { - if (length < 1) { - return null; - } - // Create a char buffer to put random letters and numbers in. - char [] randBuffer = new char[length]; - for (int i=0; iUtility classes. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/DefaultMessageEventRequestListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/DefaultMessageEventRequestListener.java deleted file mode 100644 index 5cfb15acf..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/DefaultMessageEventRequestListener.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -/** - * - * Default implementation of the MessageEventRequestListener interface.

    - * - * This class automatically sends a delivered notification to the sender of the message - * if the sender has requested to be notified when the message is delivered. - * - * @author Gaston Dombiak - */ -public class DefaultMessageEventRequestListener implements MessageEventRequestListener { - - public void deliveredNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager) - { - // Send to the message's sender that the message has been delivered - messageEventManager.sendDeliveredNotification(from, packetID); - } - - public void displayedNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager) - { - } - - public void composingNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager) - { - } - - public void offlineNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager) - { - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/Form.java b/CopyOftrunk/source/org/jivesoftware/smackx/Form.java deleted file mode 100644 index 0f9ae8084..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/Form.java +++ /dev/null @@ -1,539 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.packet.DataForm; - -/** - * Represents a Form for gathering data. The form could be of the following types: - *

      - *
    • form -> Indicates a form to fill out.
    • - *
    • submit -> The form is filled out, and this is the data that is being returned from - * the form.
    • - *
    • cancel -> The form was cancelled. Tell the asker that piece of information.
    • - *
    • result -> Data results being returned from a search, or some other query.
    • - *
    - * - * Depending of the form's type different operations are available. For example, it's only possible - * to set answers if the form is of type "submit". - * - * @author Gaston Dombiak - */ -public class Form { - - public static final String TYPE_FORM = "form"; - public static final String TYPE_SUBMIT = "submit"; - public static final String TYPE_CANCEL = "cancel"; - public static final String TYPE_RESULT = "result"; - - private DataForm dataForm; - - /** - * Returns a new ReportedData if the packet is used for gathering data and includes an - * extension that matches the elementName and namespace "x","jabber:x:data". - * - * @param packet the packet used for gathering data. - */ - public static Form getFormFrom(Packet packet) { - // Check if the packet includes the DataForm extension - PacketExtension packetExtension = packet.getExtension("x","jabber:x:data"); - if (packetExtension != null) { - // Check if the existing DataForm is not a result of a search - DataForm dataForm = (DataForm) packetExtension; - if (dataForm.getReportedData() == null) - return new Form(dataForm); - } - // Otherwise return null - return null; - } - - /** - * Creates a new Form that will wrap an existing DataForm. The wrapped DataForm must be - * used for gathering data. - * - * @param dataForm the data form used for gathering data. - */ - private Form(DataForm dataForm) { - this.dataForm = dataForm; - } - - /** - * Creates a new Form of a given type from scratch.

    - * - * Possible form types are: - *

      - *
    • form -> Indicates a form to fill out.
    • - *
    • submit -> The form is filled out, and this is the data that is being returned from - * the form.
    • - *
    • cancel -> The form was cancelled. Tell the asker that piece of information.
    • - *
    • result -> Data results being returned from a search, or some other query.
    • - *
    - * - * @param type the form's type (e.g. form, submit,cancel,result). - */ - public Form(String type) { - this.dataForm = new DataForm(type); - } - - /** - * Adds a new field to complete as part of the form. - * - * @param field the field to complete. - */ - public void addField(FormField field) { - dataForm.addField(field); - } - - /** - * Sets a new String value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised.

    - * - * If the value to set to the field is not a basic type (e.g. String, boolean, int, etc.) you - * can use this message where the String value is the String representation of the object. - * - * @param variable the variable name that was completed. - * @param value the String value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, String value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_TEXT_MULTI.equals(field.getType()) - && !FormField.TYPE_TEXT_PRIVATE.equals(field.getType()) - && !FormField.TYPE_TEXT_SINGLE.equals(field.getType()) - && !FormField.TYPE_JID_SINGLE.equals(field.getType()) - && !FormField.TYPE_HIDDEN.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type String."); - } - setAnswer(field, value); - } - - /** - * Sets a new int value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable name that was completed. - * @param value the int value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, int value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_TEXT_MULTI.equals(field.getType()) - && !FormField.TYPE_TEXT_PRIVATE.equals(field.getType()) - && !FormField.TYPE_TEXT_SINGLE.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type int."); - } - setAnswer(field, new Integer(value)); - } - - /** - * Sets a new long value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable name that was completed. - * @param value the long value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, long value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_TEXT_MULTI.equals(field.getType()) - && !FormField.TYPE_TEXT_PRIVATE.equals(field.getType()) - && !FormField.TYPE_TEXT_SINGLE.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type long."); - } - setAnswer(field, new Long(value)); - } - - /** - * Sets a new float value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable name that was completed. - * @param value the float value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, float value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_TEXT_MULTI.equals(field.getType()) - && !FormField.TYPE_TEXT_PRIVATE.equals(field.getType()) - && !FormField.TYPE_TEXT_SINGLE.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type float."); - } - setAnswer(field, new Float(value)); - } - - /** - * Sets a new double value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable name that was completed. - * @param value the double value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, double value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_TEXT_MULTI.equals(field.getType()) - && !FormField.TYPE_TEXT_PRIVATE.equals(field.getType()) - && !FormField.TYPE_TEXT_SINGLE.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type double."); - } - setAnswer(field, new Double(value)); - } - - /** - * Sets a new boolean value to a given form's field. The field whose variable matches the - * requested variable will be completed with the specified value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable name that was completed. - * @param value the boolean value that was answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - * @throws IllegalArgumentException if the answer type does not correspond with the field type. - */ - public void setAnswer(String variable, boolean value) { - FormField field = getField(variable); - if (field == null) { - throw new IllegalArgumentException("Field not found for the specified variable name."); - } - if (!FormField.TYPE_BOOLEAN.equals(field.getType())) { - throw new IllegalArgumentException("This field is not of type boolean."); - } - setAnswer(field, (value ? "1" : "0")); - } - - /** - * Sets a new Object value to a given form's field. In fact, the object representation - * (i.e. #toString) will be the actual value of the field.

    - * - * If the value to set to the field is not a basic type (e.g. String, boolean, int, etc.) you - * will need to use {@link #setAnswer(String, String))} where the String value is the - * String representation of the object.

    - * - * Before setting the new value to the field we will check if the form is of type submit. If - * the form isn't of type submit means that it's not possible to complete the form and an - * exception will be thrown. - * - * @param field the form field that was completed. - * @param value the Object value that was answered. The object representation will be the - * actual value. - * @throws IllegalStateException if the form is not of type "submit". - */ - private void setAnswer(FormField field, Object value) { - if (!isSubmitType()) { - throw new IllegalStateException("Cannot set an answer if the form is not of type " + - "\"submit\""); - } - field.resetValues(); - field.addValue(value.toString()); - } - - /** - * Sets a new values to a given form's field. The field whose variable matches the requested - * variable will be completed with the specified values. If no field could be found for - * the specified variable then an exception will be raised.

    - * - * The Objects contained in the List could be of any type. The String representation of them - * (i.e. #toString) will be actually used when sending the answer to the server. - * - * @param variable the variable that was completed. - * @param values the values that were answered. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - */ - public void setAnswer(String variable, List values) { - if (!isSubmitType()) { - throw new IllegalStateException("Cannot set an answer if the form is not of type " + - "\"submit\""); - } - FormField field = getField(variable); - if (field != null) { - // Check that the field can accept a collection of values - if (!FormField.TYPE_JID_MULTI.equals(field.getType()) - && !FormField.TYPE_LIST_MULTI.equals(field.getType()) - && !FormField.TYPE_LIST_SINGLE.equals(field.getType()) - && !FormField.TYPE_HIDDEN.equals(field.getType())) { - throw new IllegalArgumentException("This field only accept list of values."); - } - // Clear the old values - field.resetValues(); - // Set the new values. The string representation of each value will be actually used. - field.addValues(values); - } - else { - throw new IllegalArgumentException("Couldn't find a field for the specified variable."); - } - } - - /** - * Sets the default value as the value of a given form's field. The field whose variable matches - * the requested variable will be completed with its default value. If no field could be found - * for the specified variable then an exception will be raised. - * - * @param variable the variable to complete with its default value. - * @throws IllegalStateException if the form is not of type "submit". - * @throws IllegalArgumentException if the form does not include the specified variable. - */ - public void setDefaultAnswer(String variable) { - if (!isSubmitType()) { - throw new IllegalStateException("Cannot set an answer if the form is not of type " + - "\"submit\""); - } - FormField field = getField(variable); - if (field != null) { - // Clear the old values - field.resetValues(); - // Set the default value - for (Iterator it = field.getValues(); it.hasNext();) { - field.addValue((String) it.next()); - } - } - else { - throw new IllegalArgumentException("Couldn't find a field for the specified variable."); - } - } - - /** - * Returns an Iterator for the fields that are part of the form. - * - * @return an Iterator for the fields that are part of the form. - */ - public Iterator getFields() { - return dataForm.getFields(); - } - - /** - * Returns the field of the form whose variable matches the specified variable. - * The fields of type FIXED will never be returned since they do not specify a - * variable. - * - * @param variable the variable to look for in the form fields. - * @return the field of the form whose variable matches the specified variable. - */ - public FormField getField(String variable) { - if (variable == null || variable.equals("")) { - throw new IllegalArgumentException("Variable must not be null or blank."); - } - // Look for the field whose variable matches the requested variable - FormField field; - for (Iterator it=getFields();it.hasNext();) { - field = (FormField)it.next(); - if (variable.equals(field.getVariable())) { - return field; - } - } - return null; - } - - /** - * Returns the instructions that explain how to fill out the form and what the form is about. - * - * @return instructions that explain how to fill out the form. - */ - public String getInstructions() { - StringBuffer sb = new StringBuffer(); - // Join the list of instructions together separated by newlines - for (Iterator it = dataForm.getInstructions(); it.hasNext();) { - sb.append((String) it.next()); - // If this is not the last instruction then append a newline - if (it.hasNext()) { - sb.append("\n"); - } - } - return sb.toString(); - } - - - /** - * Returns the description of the data. It is similar to the title on a web page or an X - * window. You can put a on either a form to fill out, or a set of data results. - * - * @return description of the data. - */ - public String getTitle() { - return dataForm.getTitle(); - } - - - /** - * Returns the meaning of the data within the context. The data could be part of a form - * to fill out, a form submission or data results.<p> - * - * Possible form types are: - * <ul> - * <li>form -> Indicates a form to fill out.</li> - * <li>submit -> The form is filled out, and this is the data that is being returned from - * the form.</li> - * <li>cancel -> The form was cancelled. Tell the asker that piece of information.</li> - * <li>result -> Data results being returned from a search, or some other query.</li> - * </ul> - * - * @return the form's type. - */ - public String getType() { - return dataForm.getType(); - } - - - /** - * Sets instructions that explain how to fill out the form and what the form is about. - * - * @param instructions instructions that explain how to fill out the form. - */ - public void setInstructions(String instructions) { - // Split the instructions into multiple instructions for each existent newline - ArrayList instructionsList = new ArrayList(); - StringTokenizer st = new StringTokenizer(instructions, "\n"); - while (st.hasMoreTokens()) { - instructionsList.add(st.nextToken()); - } - // Set the new list of instructions - dataForm.setInstructions(instructionsList); - - } - - - /** - * Sets the description of the data. It is similar to the title on a web page or an X window. - * You can put a <title/> on either a form to fill out, or a set of data results. - * - * @param title description of the data. - */ - public void setTitle(String title) { - dataForm.setTitle(title); - } - - /** - * Returns a DataForm that serves to send this Form to the server. If the form is of type - * submit, it may contain fields with no value. These fields will be removed since they only - * exist to assist the user while editing/completing the form in a UI. - * - * @return the wrapped DataForm. - */ - public DataForm getDataFormToSend() { - if (isSubmitType()) { - // Create a new DataForm that contains only the answered fields - DataForm dataFormToSend = new DataForm(getType()); - for(Iterator it=getFields();it.hasNext();) { - FormField field = (FormField)it.next(); - if (field.getValues().hasNext()) { - dataFormToSend.addField(field); - } - } - return dataFormToSend; - } - return dataForm; - } - - /** - * Returns true if the form is a form to fill out. - * - * @return if the form is a form to fill out. - */ - private boolean isFormType() { - return TYPE_FORM.equals(dataForm.getType()); - } - - /** - * Returns true if the form is a form to submit. - * - * @return if the form is a form to submit. - */ - private boolean isSubmitType() { - return TYPE_SUBMIT.equals(dataForm.getType()); - } - - /** - * Returns a new Form to submit the completed values. The new Form will include all the fields - * of the original form except for the fields of type FIXED. Only the HIDDEN fields will - * include the same value of the original form. The other fields of the new form MUST be - * completed. If a field remains with no answer when sending the completed form, then it won't - * be included as part of the completed form.<p> - * - * The reason why the fields with variables are included in the new form is to provide a model - * for binding with any UI. This means that the UIs will use the original form (of type - * "form") to learn how to render the form, but the UIs will bind the fields to the form of - * type submit. - * - * @return a Form to submit the completed values. - */ - public Form createAnswerForm() { - if (!isFormType()) { - throw new IllegalStateException("Only forms of type \"form\" could be answered"); - } - // Create a new Form - Form form = new Form(TYPE_SUBMIT); - for (Iterator fields=getFields(); fields.hasNext();) { - FormField field = (FormField)fields.next(); - // Add to the new form any type of field that includes a variable. - // Note: The fields of type FIXED are the only ones that don't specify a variable - if (field.getVariable() != null) { - FormField newField = new FormField(field.getVariable()); - newField.setType(field.getType()); - form.addField(newField); - // Set the answer ONLY to the hidden fields - if (FormField.TYPE_HIDDEN.equals(field.getType())) { - // Since a hidden field could have many values we need to collect them - // in a list - List values = new ArrayList(); - for (Iterator it=field.getValues();it.hasNext();) { - values.add((String)it.next()); - } - form.setAnswer(field.getVariable(), values); - } - } - } - return form; - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/FormField.java b/CopyOftrunk/source/org/jivesoftware/smackx/FormField.java deleted file mode 100644 index 124b0c62f..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/FormField.java +++ /dev/null @@ -1,350 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -/** - * Represents a field of a form. The field could be used to represent a question to complete, - * a completed question or a data returned from a search. The exact interpretation of the field - * depends on the context where the field is used. - * - * @author Gaston Dombiak - */ -public class FormField { - public static final String TYPE_BOOLEAN = "boolean"; - public static final String TYPE_FIXED = "fixed"; - public static final String TYPE_HIDDEN = "hidden"; - public static final String TYPE_JID_MULTI = "jid-multi"; - public static final String TYPE_JID_SINGLE = "jid-single"; - public static final String TYPE_LIST_MULTI = "list-multi"; - public static final String TYPE_LIST_SINGLE = "list-single"; - public static final String TYPE_TEXT_MULTI = "text-multi"; - public static final String TYPE_TEXT_PRIVATE = "text-private"; - public static final String TYPE_TEXT_SINGLE = "text-single"; - - private String description; - private boolean required = false; - private String label; - private String variable; - private String type; - private List options = new ArrayList(); - private List values = new ArrayList(); - - /** - * Creates a new FormField with the variable name that uniquely identifies the field - * in the context of the form. - * - * @param variable the variable name of the question. - */ - public FormField(String variable) { - this.variable = variable; - } - - /** - * Creates a new FormField of type FIXED. The fields of type FIXED do not define a variable - * name. - * - */ - public FormField() { - this.type = FormField.TYPE_FIXED; - } - - /** - * Returns a description that provides extra clarification about the question. This information - * could be presented to the user either in tool-tip, help button, or as a section of text - * before the question.<p> - * - * If the question is of type FIXED then the description should remain empty. - * - * @return description that provides extra clarification about the question. - */ - public String getDescription() { - return description; - } - - /** - * Returns the label of the question which should give enough information to the user to - * fill out the form. - * - * @return label of the question. - */ - public String getLabel() { - return label; - } - - /** - * Returns an Iterator for the available options that the user has in order to answer - * the question. - * - * @return Iterator for the available options. - */ - public Iterator getOptions() { - synchronized (options) { - return Collections.unmodifiableList(new ArrayList(options)).iterator(); - } - } - - /** - * Returns true if the question must be answered in order to complete the questionnaire. - * - * @return true if the question must be answered in order to complete the questionnaire. - */ - public boolean isRequired() { - return required; - } - - /** - * Returns an indicative of the format for the data to answer. Valid formats are: - * - * <ul> - * <li>text-single -> single line or word of text - * <li>text-private -> instead of showing the user what they typed, you show ***** to - * protect it - * <li>text-multi -> multiple lines of text entry - * <li>list-single -> given a list of choices, pick one - * <li>list-multi -> given a list of choices, pick one or more - * <li>boolean -> 0 or 1, true or false, yes or no. Default value is 0 - * <li>fixed -> fixed for putting in text to show sections, or just advertise your web - * site in the middle of the form - * <li>hidden -> is not given to the user at all, but returned with the questionnaire - * <li>jid-single -> Jabber ID - choosing a JID from your roster, and entering one based - * on the rules for a JID. - * <li>jid-multi -> multiple entries for JIDs - * </ul> - * - * @return format for the data to answer. - */ - public String getType() { - return type; - } - - /** - * Returns an Iterator for the default values of the question if the question is part - * of a form to fill out. Otherwise, returns an Iterator for the answered values of - * the question. - * - * @return an Iterator for the default values or answered values of the question. - */ - public Iterator getValues() { - synchronized (values) { - return Collections.unmodifiableList(new ArrayList(values)).iterator(); - } - } - - /** - * Returns the variable name that the question is filling out. - * - * @return the variable name of the question. - */ - public String getVariable() { - return variable; - } - - /** - * Sets a description that provides extra clarification about the question. This information - * could be presented to the user either in tool-tip, help button, or as a section of text - * before the question.<p> - * - * If the question is of type FIXED then the description should remain empty. - * - * @param description provides extra clarification about the question. - */ - public void setDescription(String description) { - this.description = description; - } - - /** - * Sets the label of the question which should give enough information to the user to - * fill out the form. - * - * @param label the label of the question. - */ - public void setLabel(String label) { - this.label = label; - } - - /** - * Sets if the question must be answered in order to complete the questionnaire. - * - * @param required if the question must be answered in order to complete the questionnaire. - */ - public void setRequired(boolean required) { - this.required = required; - } - - /** - * Sets an indicative of the format for the data to answer. Valid formats are: - * - * <ul> - * <li>text-single -> single line or word of text - * <li>text-private -> instead of showing the user what they typed, you show ***** to - * protect it - * <li>text-multi -> multiple lines of text entry - * <li>list-single -> given a list of choices, pick one - * <li>list-multi -> given a list of choices, pick one or more - * <li>boolean -> 0 or 1, true or false, yes or no. Default value is 0 - * <li>fixed -> fixed for putting in text to show sections, or just advertise your web - * site in the middle of the form - * <li>hidden -> is not given to the user at all, but returned with the questionnaire - * <li>jid-single -> Jabber ID - choosing a JID from your roster, and entering one based - * on the rules for a JID. - * <li>jid-multi -> multiple entries for JIDs - * </ul> - * - * @param type an indicative of the format for the data to answer. - */ - public void setType(String type) { - this.type = type; - } - - /** - * Adds a default value to the question if the question is part of a form to fill out. - * Otherwise, adds an answered value to the question. - * - * @param value a default value or an answered value of the question. - */ - public void addValue(String value) { - synchronized (values) { - values.add(value); - } - } - - /** - * Adds a default values to the question if the question is part of a form to fill out. - * Otherwise, adds an answered values to the question. - * - * @param newValues default values or an answered values of the question. - */ - public void addValues(List newValues) { - synchronized (values) { - values.addAll(newValues); - } - } - - /** - * Removes all the values of the field. - * - */ - protected void resetValues() { - synchronized (values) { - values.removeAll(new ArrayList(values)); - } - } - - /** - * Adss an available options to the question that the user has in order to answer - * the question. - * - * @param option a new available option for the question. - */ - public void addOption(Option option) { - synchronized (options) { - options.add(option); - } - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<field"); - // Add attributes - if (getLabel() != null) { - buf.append(" label=\"").append(getLabel()).append("\""); - } - if (getVariable() != null) { - buf.append(" var=\"").append(getVariable()).append("\""); - } - if (getType() != null) { - buf.append(" type=\"").append(getType()).append("\""); - } - buf.append(">"); - // Add elements - if (getDescription() != null) { - buf.append("<desc>").append(getDescription()).append("</desc>"); - } - if (isRequired()) { - buf.append("<required/>"); - } - // Loop through all the values and append them to the string buffer - for (Iterator i = getValues(); i.hasNext();) { - buf.append("<value>").append(i.next()).append("</value>"); - } - // Loop through all the values and append them to the string buffer - for (Iterator i = getOptions(); i.hasNext();) { - buf.append(((Option)i.next()).toXML()); - } - buf.append("</field>"); - return buf.toString(); - } - - /** - * - * Represents the available option of a given FormField. - * - * @author Gaston Dombiak - */ - public static class Option { - private String label; - private String value; - - public Option(String value) { - this.value = value; - } - - public Option(String label, String value) { - this.label = label; - this.value = value; - } - - /** - * Returns the label that represents the option. - * - * @return the label that represents the option. - */ - public String getLabel() { - return label; - } - - /** - * Returns the value of the option. - * - * @return the value of the option. - */ - public String getValue() { - return value; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<option"); - // Add attribute - if (getLabel() != null) { - buf.append(" label=\"").append(getLabel()).append("\""); - } - buf.append(">"); - // Add element - buf.append("<value>").append(getValue()).append("</value>"); - - buf.append("</option>"); - return buf.toString(); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/GroupChatInvitation.java b/CopyOftrunk/source/org/jivesoftware/smackx/GroupChatInvitation.java deleted file mode 100644 index c2ee81ad1..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/GroupChatInvitation.java +++ /dev/null @@ -1,115 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.xmlpull.v1.XmlPullParser; - -/** - * A group chat invitation packet extension, which is used to invite other - * users to a group chat room. To invite a user to a group chat room, address - * a new message to the user and set the room name appropriately, as in the - * following code example: - * - * <pre> - * Message message = new Message("user@chat.example.com"); - * message.setBody("Join me for a group chat!"); - * message.addExtension(new GroupChatInvitation("room@chat.example.com");); - * con.sendPacket(message); - * </pre> - * - * To listen for group chat invitations, use a PacketExtensionFilter for the - * <tt>x</tt> element name and <tt>jabber:x:conference</tt> namespace, as in the - * following code example: - * - * <pre> - * PacketFilter filter = new PacketExtensionFilter("x", "jabber:x:conference"); - * // Create a packet collector or packet listeners using the filter... - * </pre> - * - * <b>Note</b>: this protocol is outdated now that the Multi-User Chat (MUC) JEP is available - * (<a href="http://www.jabber.org/jeps/jep-0045.html">JEP-45</a>). However, most - * existing clients still use this older protocol. Once MUC support becomes more - * widespread, this API may be deprecated. - * - * @author Matt Tucker - */ -public class GroupChatInvitation implements PacketExtension { - - /** - * Element name of the packet extension. - */ - public static final String ELEMENT_NAME = "x"; - - /** - * Namespace of the packet extension. - */ - public static final String NAMESPACE = "jabber:x:conference"; - - private String roomAddress; - - /** - * Creates a new group chat invitation to the specified room address. - * GroupChat room addresses are in the form <tt>room@service</tt>, - * where <tt>service</tt> is the name of groupchat server, such as - * <tt>chat.example.com</tt>. - * - * @param roomAddress the address of the group chat room. - */ - public GroupChatInvitation(String roomAddress) { - this.roomAddress = roomAddress; - } - - /** - * Returns the address of the group chat room. GroupChat room addresses - * are in the form <tt>room@service</tt>, where <tt>service</tt> is - * the name of groupchat server, such as <tt>chat.example.com</tt>. - * - * @return the address of the group chat room. - */ - public String getRoomAddress() { - return roomAddress; - } - - public String getElementName() { - return ELEMENT_NAME; - } - - public String getNamespace() { - return NAMESPACE; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<x xmlns=\"jabber:x:conference\" jid=\"").append(roomAddress).append("\"/>"); - return buf.toString(); - } - - public static class Provider implements PacketExtensionProvider { - public PacketExtension parseExtension (XmlPullParser parser) throws Exception { - String roomAddress = parser.getAttributeValue("", "jid"); - // Advance to end of extension. - parser.next(); - return new GroupChatInvitation(roomAddress); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventManager.java deleted file mode 100644 index 3fd6c6859..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventManager.java +++ /dev/null @@ -1,304 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.packet.*; - -/** - * Manages message events requests and notifications. A MessageEventManager provides a high - * level access to request for notifications and send event notifications. It also provides - * an easy way to hook up custom logic when requests or notifications are received. - * - * @author Gaston Dombiak - */ -public class MessageEventManager { - - private List messageEventNotificationListeners = new ArrayList(); - private List messageEventRequestListeners = new ArrayList(); - - private XMPPConnection con; - - private PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:event"); - private PacketListener packetListener; - - /** - * Creates a new message event manager. - * - * @param con an XMPPConnection. - */ - public MessageEventManager(XMPPConnection con) { - this.con = con; - init(); - } - - /** - * Adds event notification requests to a message. For each event type that - * the user wishes event notifications from the message recepient for, <tt>true</tt> - * should be passed in to this method. - * - * @param message the message to add the requested notifications. - * @param offline specifies if the offline event is requested. - * @param delivered specifies if the delivered event is requested. - * @param displayed specifies if the displayed event is requested. - * @param composing specifies if the composing event is requested. - */ - public static void addNotificationsRequests(Message message, boolean offline, - boolean delivered, boolean displayed, boolean composing) - { - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setOffline(offline); - messageEvent.setDelivered(delivered); - messageEvent.setDisplayed(displayed); - messageEvent.setComposing(composing); - message.addExtension(messageEvent); - } - - /** - * Adds a message event request listener. The listener will be fired anytime a request for - * event notification is received. - * - * @param messageEventRequestListener a message event request listener. - */ - public void addMessageEventRequestListener(MessageEventRequestListener messageEventRequestListener) { - synchronized (messageEventRequestListeners) { - if (!messageEventRequestListeners.contains(messageEventRequestListener)) { - messageEventRequestListeners.add(messageEventRequestListener); - } - } - } - - /** - * Removes a message event request listener. The listener will be fired anytime a request for - * event notification is received. - * - * @param messageEventRequestListener a message event request listener. - */ - public void removeMessageEventRequestListener(MessageEventRequestListener messageEventRequestListener) { - synchronized (messageEventRequestListeners) { - messageEventRequestListeners.remove(messageEventRequestListener); - } - } - - /** - * Adds a message event notification listener. The listener will be fired anytime a notification - * event is received. - * - * @param messageEventNotificationListener a message event notification listener. - */ - public void addMessageEventNotificationListener(MessageEventNotificationListener messageEventNotificationListener) { - synchronized (messageEventNotificationListeners) { - if (!messageEventNotificationListeners.contains(messageEventNotificationListener)) { - messageEventNotificationListeners.add(messageEventNotificationListener); - } - } - } - - /** - * Removes a message event notification listener. The listener will be fired anytime a notification - * event is received. - * - * @param messageEventNotificationListener a message event notification listener. - */ - public void removeMessageEventNotificationListener(MessageEventNotificationListener messageEventNotificationListener) { - synchronized (messageEventNotificationListeners) { - messageEventNotificationListeners.remove(messageEventNotificationListener); - } - } - - /** - * Fires message event request listeners. - */ - private void fireMessageEventRequestListeners( - String from, - String packetID, - String methodName) { - MessageEventRequestListener[] listeners = null; - Method method; - synchronized (messageEventRequestListeners) { - listeners = new MessageEventRequestListener[messageEventRequestListeners.size()]; - messageEventRequestListeners.toArray(listeners); - } - try { - method = - MessageEventRequestListener.class.getDeclaredMethod( - methodName, - new Class[] { String.class, String.class, MessageEventManager.class }); - for (int i = 0; i < listeners.length; i++) { - method.invoke(listeners[i], new Object[] { from, packetID, this }); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - /** - * Fires message event notification listeners. - */ - private void fireMessageEventNotificationListeners( - String from, - String packetID, - String methodName) { - MessageEventNotificationListener[] listeners = null; - Method method; - synchronized (messageEventNotificationListeners) { - listeners = - new MessageEventNotificationListener[messageEventNotificationListeners.size()]; - messageEventNotificationListeners.toArray(listeners); - } - try { - method = - MessageEventNotificationListener.class.getDeclaredMethod( - methodName, - new Class[] { String.class, String.class }); - for (int i = 0; i < listeners.length; i++) { - method.invoke(listeners[i], new Object[] { from, packetID }); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - private void init() { - // Listens for all message event packets and fire the proper message event listeners. - packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - MessageEvent messageEvent = - (MessageEvent) message.getExtension("x", "jabber:x:event"); - if (messageEvent.isMessageEventRequest()) { - // Fire event for requests of message events - for (Iterator it = messageEvent.getEventTypes(); it.hasNext();) - fireMessageEventRequestListeners( - message.getFrom(), - message.getPacketID(), - ((String) it.next()).concat("NotificationRequested")); - } else - // Fire event for notifications of message events - for (Iterator it = messageEvent.getEventTypes(); it.hasNext();) - fireMessageEventNotificationListeners( - message.getFrom(), - messageEvent.getPacketID(), - ((String) it.next()).concat("Notification")); - - }; - - }; - con.addPacketListener(packetListener, packetFilter); - } - - /** - * Sends the notification that the message was delivered to the sender of the original message - * - * @param to the recipient of the notification. - * @param packetID the id of the message to send. - */ - public void sendDeliveredNotification(String to, String packetID) { - // Create the message to send - Message msg = new Message(to); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setDelivered(true); - messageEvent.setPacketID(packetID); - msg.addExtension(messageEvent); - // Send the packet - con.sendPacket(msg); - } - - /** - * Sends the notification that the message was displayed to the sender of the original message - * - * @param to the recipient of the notification. - * @param packetID the id of the message to send. - */ - public void sendDisplayedNotification(String to, String packetID) { - // Create the message to send - Message msg = new Message(to); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setDisplayed(true); - messageEvent.setPacketID(packetID); - msg.addExtension(messageEvent); - // Send the packet - con.sendPacket(msg); - } - - /** - * Sends the notification that the receiver of the message is composing a reply - * - * @param to the recipient of the notification. - * @param packetID the id of the message to send. - */ - public void sendComposingNotification(String to, String packetID) { - // Create the message to send - Message msg = new Message(to); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setComposing(true); - messageEvent.setPacketID(packetID); - msg.addExtension(messageEvent); - // Send the packet - con.sendPacket(msg); - } - - /** - * Sends the notification that the receiver of the message has cancelled composing a reply. - * - * @param to the recipient of the notification. - * @param packetID the id of the message to send. - */ - public void sendCancelledNotification(String to, String packetID) { - // Create the message to send - Message msg = new Message(to); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setCancelled(true); - messageEvent.setPacketID(packetID); - msg.addExtension(messageEvent); - // Send the packet - con.sendPacket(msg); - } - - public void destroy() { - if (con != null) { - con.removePacketListener(packetListener); - } - } - - public void finalize() { - destroy(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventNotificationListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventNotificationListener.java deleted file mode 100644 index e6442af40..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventNotificationListener.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -/** - * - * A listener that is fired anytime a message event notification is received. - * Message event notifications are received as a consequence of the request - * to receive notifications when sending a message. - * - * @author Gaston Dombiak - */ -public interface MessageEventNotificationListener { - - /** - * Called when a notification of message delivered is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - */ - public void deliveredNotification(String from, String packetID); - - /** - * Called when a notification of message displayed is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - */ - public void displayedNotification(String from, String packetID); - - /** - * Called when a notification that the receiver of the message is composing a reply is - * received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - */ - public void composingNotification(String from, String packetID); - - /** - * Called when a notification that the receiver of the message is offline is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - */ - public void offlineNotification(String from, String packetID); - - /** - * Called when a notification that the receiver of the message cancelled the reply - * is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - */ - public void cancelledNotification(String from, String packetID); -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventRequestListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventRequestListener.java deleted file mode 100644 index 107168ff4..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/MessageEventRequestListener.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -/** - * - * A listener that is fired anytime a message event request is received. - * Message event requests are received when the received message includes an extension - * like this: - * - * <pre> - * <x xmlns='jabber:x:event'> - * <offline/> - * <delivered/> - * <composing/> - * </x> - * </pre> - * - * In this example you can see that the sender of the message requests to be notified - * when the user couldn't receive the message because he/she is offline, the message - * was delivered or when the receiver of the message is composing a reply. - * - * @author Gaston Dombiak - */ -public interface MessageEventRequestListener { - - /** - * Called when a request for message delivered notification is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - * @param messageEventManager the messageEventManager that fired the listener. - */ - public void deliveredNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager); - - /** - * Called when a request for message displayed notification is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - * @param messageEventManager the messageEventManager that fired the listener. - */ - public void displayedNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager); - - /** - * Called when a request that the receiver of the message is composing a reply notification is - * received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - * @param messageEventManager the messageEventManager that fired the listener. - */ - public void composingNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager); - - /** - * Called when a request that the receiver of the message is offline is received. - * - * @param from the user that sent the notification. - * @param packetID the id of the message that was sent. - * @param messageEventManager the messageEventManager that fired the listener. - */ - public void offlineNotificationRequested(String from, String packetID, - MessageEventManager messageEventManager); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/NodeInformationProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/NodeInformationProvider.java deleted file mode 100644 index 2a06e2f8d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/NodeInformationProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - - -/** - * The NodeInformationProvider is responsible for providing information (i.e. DiscoverItems.Item) - * about a given node. This information will be requested each time this XMPPP client receives a - * disco items requests on the given node. - * - * @author Gaston Dombiak - */ -public interface NodeInformationProvider { - - /** - * Returns an Iterator on the Items {@link org.jivesoftware.smackx.packet.DiscoverItems.Item} - * defined in the node. For example, the MUC protocol specifies that an XMPP client should - * answer an Item for each joined room when asked for the rooms where the use has joined. - * - * @return an Iterator on the Items defined in the node. - */ - public abstract Iterator getNodeItems(); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageHeader.java b/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageHeader.java deleted file mode 100644 index c3ff215a1..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageHeader.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smackx.packet.DiscoverItems; - -/** - * The OfflineMessageHeader holds header information of an offline message. The header - * information was retrieved using the {@link OfflineMessageManager} class.<p> - * - * Each offline message is identified by the target user of the offline message and a unique stamp. - * Use {@link OfflineMessageManager#getMessages(java.util.List)} to retrieve the whole message. - * - * @author Gaston Dombiak - */ -public class OfflineMessageHeader { - /** - * Bare JID of the user that was offline when the message was sent. - */ - private String user; - /** - * Full JID of the user that sent the message. - */ - private String jid; - /** - * Stamp that uniquely identifies the offline message. This stamp will be used for - * getting the specific message or delete it. The stamp may be of the form UTC timestamps - * but it is not required to have that format. - */ - private String stamp; - - public OfflineMessageHeader(DiscoverItems.Item item) { - super(); - user = item.getEntityID(); - jid = item.getName(); - stamp = item.getNode(); - } - - /** - * Returns the bare JID of the user that was offline when the message was sent. - * - * @return the bare JID of the user that was offline when the message was sent. - */ - public String getUser() { - return user; - } - - /** - * Returns the full JID of the user that sent the message. - * - * @return the full JID of the user that sent the message. - */ - public String getJid() { - return jid; - } - - /** - * Returns the stamp that uniquely identifies the offline message. This stamp will - * be used for getting the specific message or delete it. The stamp may be of the - * form UTC timestamps but it is not required to have that format. - * - * @return the stamp that uniquely identifies the offline message. - */ - public String getStamp() { - return stamp; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageManager.java deleted file mode 100644 index ba4331d83..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/OfflineMessageManager.java +++ /dev/null @@ -1,284 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.PacketCollector; -import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.packet.Packet; -import org.jivesoftware.smackx.packet.DiscoverInfo; -import org.jivesoftware.smackx.packet.DiscoverItems; -import org.jivesoftware.smackx.packet.OfflineMessageInfo; -import org.jivesoftware.smackx.packet.OfflineMessageRequest; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * The OfflineMessageManager helps manage offline messages even before the user has sent an - * available presence. When a user asks for his offline messages before sending an available - * presence then the server will not send a flood with all the offline messages when the user - * becomes online. The server will not send a flood with all the offline messages to the session - * that made the offline messages request or to any other session used by the user that becomes - * online.<p> - * - * Once the session that made the offline messages request has been closed and the user becomes - * offline in all the resources then the server will resume storing the messages offline and will - * send all the offline messages to the user when he becomes online. Therefore, the server will - * flood the user when he becomes online unless the user uses this class to manage his offline - * messages. - * - * @author Gaston Dombiak - */ -public class OfflineMessageManager { - - private final static String namespace = "http://jabber.org/protocol/offline"; - - private XMPPConnection connection; - - private PacketFilter packetFilter; - - public OfflineMessageManager(XMPPConnection connection) { - this.connection = connection; - packetFilter = - new AndFilter(new PacketExtensionFilter("offline", namespace), - new PacketTypeFilter(Message.class)); - } - - /** - * Returns true if the server supports Flexible Offline Message Retrieval. When the server - * supports Flexible Offline Message Retrieval it is possible to get the header of the offline - * messages, get specific messages, delete specific messages, etc. - * - * @return a boolean indicating if the server supports Flexible Offline Message Retrieval. - * @throws XMPPException If the user is not allowed to make this request. - */ - public boolean supportsFlexibleRetrieval() throws XMPPException { - DiscoverInfo info = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(null); - return info.containsFeature(namespace); - } - - /** - * Returns the number of offline messages for the user of the connection. - * - * @return the number of offline messages for the user of the connection. - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public int getMessageCount() throws XMPPException { - DiscoverInfo info = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(null, - namespace); - Form extendedInfo = Form.getFormFrom(info); - if (extendedInfo != null) { - String value = (String) extendedInfo.getField("number_of_messages").getValues().next(); - return Integer.parseInt(value); - } - return 0; - } - - /** - * Returns an iterator on <tt>OfflineMessageHeader</tt> that keep information about the - * offline message. The OfflineMessageHeader includes a stamp that could be used to retrieve - * the complete message or delete the specific message. - * - * @return an iterator on <tt>OfflineMessageHeader</tt> that keep information about the offline - * message. - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public Iterator getHeaders() throws XMPPException { - List answer = new ArrayList(); - DiscoverItems items = ServiceDiscoveryManager.getInstanceFor(connection).discoverItems( - null, namespace); - for (Iterator it = items.getItems(); it.hasNext();) { - DiscoverItems.Item item = (DiscoverItems.Item) it.next(); - answer.add(new OfflineMessageHeader(item)); - } - return answer.iterator(); - } - - /** - * Returns an Iterator with the offline <tt>Messages</tt> whose stamp matches the specified - * request. The request will include the list of stamps that uniquely identifies - * the offline messages to retrieve. The returned offline messages will not be deleted - * from the server. Use {@link #deleteMessages(java.util.List)} to delete the messages. - * - * @param nodes the list of stamps that uniquely identifies offline message. - * @return an Iterator with the offline <tt>Messages</tt> that were received as part of - * this request. - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public Iterator getMessages(final List nodes) throws XMPPException { - List messages = new ArrayList(); - OfflineMessageRequest request = new OfflineMessageRequest(); - for (Iterator it = nodes.iterator(); it.hasNext();) { - OfflineMessageRequest.Item item = new OfflineMessageRequest.Item((String) it.next()); - item.setAction("view"); - request.addItem(item); - } - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(request.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Filter offline messages that were requested by this request - PacketFilter messageFilter = new AndFilter(packetFilter, new PacketFilter() { - public boolean accept(Packet packet) { - OfflineMessageInfo info = (OfflineMessageInfo) packet.getExtension("offline", - namespace); - return nodes.contains(info.getNode()); - } - }); - PacketCollector messageCollector = connection.createPacketCollector(messageFilter); - // Send the retrieval request to the server. - connection.sendPacket(request); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - - // Collect the received offline messages - Message message = (Message) messageCollector.nextResult( - SmackConfiguration.getPacketReplyTimeout()); - while (message != null) { - messages.add(message); - message = - (Message) messageCollector.nextResult( - SmackConfiguration.getPacketReplyTimeout()); - } - // Stop queuing offline messages - messageCollector.cancel(); - return messages.iterator(); - } - - /** - * Returns an Iterator with all the offline <tt>Messages</tt> of the user. The returned offline - * messages will not be deleted from the server. Use {@link #deleteMessages(java.util.List)} - * to delete the messages. - * - * @return an Iterator with all the offline <tt>Messages</tt> of the user. - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public Iterator getMessages() throws XMPPException { - List messages = new ArrayList(); - OfflineMessageRequest request = new OfflineMessageRequest(); - request.setFetch(true); - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(request.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Filter offline messages that were requested by this request - PacketCollector messageCollector = connection.createPacketCollector(packetFilter); - // Send the retrieval request to the server. - connection.sendPacket(request); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - - // Collect the received offline messages - Message message = (Message) messageCollector.nextResult( - SmackConfiguration.getPacketReplyTimeout()); - while (message != null) { - messages.add(message); - message = - (Message) messageCollector.nextResult( - SmackConfiguration.getPacketReplyTimeout()); - } - // Stop queuing offline messages - messageCollector.cancel(); - return messages.iterator(); - } - - /** - * Deletes the specified list of offline messages. The request will include the list of - * stamps that uniquely identifies the offline messages to delete. - * - * @param nodes the list of stamps that uniquely identifies offline message. - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public void deleteMessages(List nodes) throws XMPPException { - OfflineMessageRequest request = new OfflineMessageRequest(); - for (Iterator it = nodes.iterator(); it.hasNext();) { - OfflineMessageRequest.Item item = new OfflineMessageRequest.Item((String) it.next()); - item.setAction("remove"); - request.addItem(item); - } - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(request.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the deletion request to the server. - connection.sendPacket(request); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - /** - * Deletes all offline messages of the user. - * - * @throws XMPPException If the user is not allowed to make this request or the server does - * not support offline message retrieval. - */ - public void deleteMessages() throws XMPPException { - OfflineMessageRequest request = new OfflineMessageRequest(); - request.setPurge(true); - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(request.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the deletion request to the server. - connection.sendPacket(request); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/PrivateDataManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/PrivateDataManager.java deleted file mode 100644 index 96bc6f781..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/PrivateDataManager.java +++ /dev/null @@ -1,345 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smack.filter.PacketIDFilter; -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smackx.packet.*; -import org.jivesoftware.smackx.provider.*; -import org.xmlpull.v1.XmlPullParser; - -import java.util.Map; -import java.util.Hashtable; - -/** - * Manages private data, which is a mechanism to allow users to store arbitrary XML - * data on an XMPP server. Each private data chunk is defined by a element name and - * XML namespace. Example private data: - * - * <pre> - * <color xmlns="http://example.com/xmpp/color"> - * <favorite>blue</blue> - * <leastFavorite>puce</leastFavorite> - * </color> - * </pre> - * - * {@link PrivateDataProvider} instances are responsible for translating the XML into objects. - * If no PrivateDataProvider is registered for a given element name and namespace, then - * a {@link DefaultPrivateData} instance will be returned.<p> - * - * Warning: this is an non-standard protocol documented by - * <a href="http://www.jabber.org/jeps/jep-0049.html">JEP-49</a>. Because this is a - * non-standard protocol, it is subject to change. - * - * @author Matt Tucker - */ -public class PrivateDataManager { - - /** - * Map of provider instances. - */ - private static Map privateDataProviders = new Hashtable(); - - /** - * Returns the private data provider registered to the specified XML element name and namespace. - * For example, if a provider was registered to the element name "prefs" and the - * namespace "http://www.xmppclient.com/prefs", then the following packet would trigger - * the provider: - * - * <pre> - * <iq type='result' to='joe@example.com' from='mary@example.com' id='time_1'> - * <query xmlns='jabber:iq:private'> - * <prefs xmlns='http://www.xmppclient.com/prefs'> - * <value1>ABC</value1> - * <value2>XYZ</value2> - * </prefs> - * </query> - * </iq></pre> - * - * <p>Note: this method is generally only called by the internal Smack classes. - * - * @param elementName the XML element name. - * @param namespace the XML namespace. - * @return the PrivateData provider. - */ - public static PrivateDataProvider getPrivateDataProvider(String elementName, String namespace) { - String key = getProviderKey(elementName, namespace); - return (PrivateDataProvider)privateDataProviders.get(key); - } - - /** - * Adds a private data provider with the specified element name and name space. The provider - * will override any providers loaded through the classpath. - * - * @param elementName the XML element name. - * @param namespace the XML namespace. - * @param provider the private data provider. - */ - public static void addPrivateDataProvider(String elementName, String namespace, - PrivateDataProvider provider) - { - String key = getProviderKey(elementName, namespace); - privateDataProviders.put(key, provider); - } - - - private XMPPConnection connection; - - /** - * The user to get and set private data for. In most cases, this value should - * be <tt>null</tt>, as the typical use of private data is to get and set - * your own private data and not others. - */ - private String user; - - /** - * Creates a new private data manager. The connection must have - * undergone a successful login before being used to construct an instance of - * this class. - * - * @param connection an XMPP connection which must have already undergone a - * successful login. - */ - public PrivateDataManager(XMPPConnection connection) { - if (!connection.isAuthenticated()) { - throw new IllegalStateException("Must be logged in to XMPP server."); - } - this.connection = connection; - } - - /** - * Creates a new private data manager for a specific user (special case). Most - * servers only support getting and setting private data for the user that - * authenticated via the connection. However, some servers support the ability - * to get and set private data for other users (for example, if you are the - * administrator). The connection must have undergone a successful login before - * being used to construct an instance of this class. - * - * @param connection an XMPP connection which must have already undergone a - * successful login. - * @param user the XMPP address of the user to get and set private data for. - */ - public PrivateDataManager(XMPPConnection connection, String user) { - if (!connection.isAuthenticated()) { - throw new IllegalStateException("Must be logged in to XMPP server."); - } - this.connection = connection; - this.user = user; - } - - /** - * Returns the private data specified by the given element name and namespace. Each chunk - * of private data is uniquely identified by an element name and namespace pair.<p> - * - * If a PrivateDataProvider is registered for the specified element name/namespace pair then - * that provider will determine the specific object type that is returned. If no provider - * is registered, a {@link DefaultPrivateData} instance will be returned. - * - * @param elementName the element name. - * @param namespace the namespace. - * @return the private data. - * @throws XMPPException if an error occurs getting the private data. - */ - public PrivateData getPrivateData(final String elementName, final String namespace) - throws XMPPException - { - // Create an IQ packet to get the private data. - IQ privateDataGet = new IQ() { - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<query xmlns=\"jabber:iq:private\">"); - buf.append("<").append(elementName).append(" xmlns=\"").append(namespace).append("\"/>"); - buf.append("</query>"); - return buf.toString(); - } - }; - privateDataGet.setType(IQ.Type.GET); - // Address the packet to the other account if user has been set. - if (user != null) { - privateDataGet.setTo(user); - } - - // Setup a listener for the reply to the set operation. - String packetID = privateDataGet.getPacketID(); - PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(packetID)); - - // Send the private data. - connection.sendPacket(privateDataGet); - - // Wait up to five seconds for a response from the server. - IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - return ((PrivateDataResult)response).getPrivateData(); - } - - /** - * Sets a private data value. Each chunk of private data is uniquely identified by an - * element name and namespace pair. If private data has already been set with the - * element name and namespace, then the new private data will overwrite the old value. - * - * @param privateData the private data. - * @throws XMPPException if setting the private data fails. - */ - public void setPrivateData(final PrivateData privateData) throws XMPPException { - // Create an IQ packet to set the private data. - IQ privateDataSet = new IQ() { - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<query xmlns=\"jabber:iq:private\">"); - buf.append(privateData.toXML()); - buf.append("</query>"); - return buf.toString(); - } - }; - privateDataSet.setType(IQ.Type.SET); - // Address the packet to the other account if user has been set. - if (user != null) { - privateDataSet.setTo(user); - } - - // Setup a listener for the reply to the set operation. - String packetID = privateDataSet.getPacketID(); - PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(packetID)); - - // Send the private data. - connection.sendPacket(privateDataSet); - - // Wait up to five seconds for a response from the server. - IQ response = (IQ)collector.nextResult(5000); - // Stop queuing results - collector.cancel(); - if (response == null) { - throw new XMPPException("No response from the server."); - } - // If the server replied with an error, throw an exception. - else if (response.getType() == IQ.Type.ERROR) { - throw new XMPPException(response.getError()); - } - } - - /** - * Returns a String key for a given element name and namespace. - * - * @param elementName the element name. - * @param namespace the namespace. - * @return a unique key for the element name and namespace pair. - */ - private static String getProviderKey(String elementName, String namespace) { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(elementName).append("/><").append(namespace).append("/>"); - return buf.toString(); - } - - /** - * An IQ provider to parse IQ results containing private data. - */ - public static class PrivateDataIQProvider implements IQProvider { - public IQ parseIQ(XmlPullParser parser) throws Exception { - PrivateData privateData = null; - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - String elementName = parser.getName(); - String namespace = parser.getNamespace(); - // See if any objects are registered to handle this private data type. - PrivateDataProvider provider = getPrivateDataProvider(elementName, namespace); - // If there is a registered provider, use it. - if (provider != null) { - privateData = provider.parsePrivateData(parser); - } - // Otherwise, use a DefaultPrivateData instance to store the private data. - else { - DefaultPrivateData data = new DefaultPrivateData(elementName, namespace); - boolean finished = false; - while (!finished) { - int event = parser.next(); - if (event == XmlPullParser.START_TAG) { - String name = parser.getName(); - // If an empty element, set the value with the empty string. - if (parser.isEmptyElementTag()) { - data.setValue(name,""); - } - // Otherwise, get the the element text. - else { - event = parser.next(); - if (event == XmlPullParser.TEXT) { - String value = parser.getText(); - data.setValue(name, value); - } - } - } - else if (event == XmlPullParser.END_TAG) { - if (parser.getName().equals(elementName)) { - finished = true; - } - } - } - privateData = data; - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("query")) { - done = true; - } - } - } - IQ result = new PrivateDataResult(privateData); - return result; - } - } - - /** - * An IQ packet to hold PrivateData GET results. - */ - private static class PrivateDataResult extends IQ { - - private PrivateData privateData; - - PrivateDataResult(PrivateData privateData) { - this.privateData = privateData; - } - - public PrivateData getPrivateData() { - return privateData; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<query xmlns=\"jabber:iq:private\">"); - if (privateData != null) { - privateData.toXML(); - } - buf.append("</query>"); - return buf.toString(); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/RemoteRosterEntry.java b/CopyOftrunk/source/org/jivesoftware/smackx/RemoteRosterEntry.java deleted file mode 100644 index e8c62de31..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/RemoteRosterEntry.java +++ /dev/null @@ -1,118 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -/** - * Represents a roster item, which consists of a JID and , their name and - * the groups the roster item belongs to. This roster item does not belong - * to the local roster. Therefore, it does not persist in the server.<p> - * - * The idea of a RemoteRosterEntry is to be used as part of a roster exchange. - * - * @author Gaston Dombiak - */ -public class RemoteRosterEntry { - - private String user; - private String name; - private List groupNames = new ArrayList(); - - /** - * Creates a new remote roster entry. - * - * @param user the user. - * @param name the user's name. - * @param groups the list of group names the entry will belong to, or <tt>null</tt> if the - * the roster entry won't belong to a group. - */ - public RemoteRosterEntry(String user, String name, String [] groups) { - this.user = user; - this.name = name; - if (groups != null) { - groupNames = new ArrayList(Arrays.asList(groups)); - } - } - - /** - * Returns the user. - * - * @return the user. - */ - public String getUser() { - return user; - } - - /** - * Returns the user's name. - * - * @return the user's name. - */ - public String getName() { - return name; - } - - /** - * Returns an Iterator for the group names (as Strings) that the roster entry - * belongs to. - * - * @return an Iterator for the group names. - */ - public Iterator getGroupNames() { - synchronized (groupNames) { - return Collections.unmodifiableList(groupNames).iterator(); - } - } - - /** - * Returns a String array for the group names that the roster entry - * belongs to. - * - * @return a String[] for the group names. - */ - public String[] getGroupArrayNames() { - synchronized (groupNames) { - return (String[]) - (Collections - .unmodifiableList(groupNames) - .toArray(new String[groupNames.size()])); - } - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<item jid=\"").append(user).append("\""); - if (name != null) { - buf.append(" name=\"").append(name).append("\""); - } - buf.append(">"); - synchronized (groupNames) { - for (int i = 0; i < groupNames.size(); i++) { - String groupName = (String) groupNames.get(i); - buf.append("<group>").append(groupName).append("</group>"); - } - } - buf.append("</item>"); - return buf.toString(); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/ReportedData.java b/CopyOftrunk/source/org/jivesoftware/smackx/ReportedData.java deleted file mode 100644 index 35a446afc..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/ReportedData.java +++ /dev/null @@ -1,255 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.packet.DataForm; - -/** - * Represents a set of data results returned as part of a search. The report is structured - * in columns and rows. - * - * @author Gaston Dombiak - */ -public class ReportedData { - - private List columns = new ArrayList(); - private List rows = new ArrayList(); - private String title = ""; - - /** - * Returns a new ReportedData if the packet is used for reporting data and includes an - * extension that matches the elementName and namespace "x","jabber:x:data". - * - * @param packet the packet used for reporting data. - */ - public static ReportedData getReportedDataFrom(Packet packet) { - // Check if the packet includes the DataForm extension - PacketExtension packetExtension = packet.getExtension("x","jabber:x:data"); - if (packetExtension != null) { - // Check if the existing DataForm is a result of a search - DataForm dataForm = (DataForm) packetExtension; - if (dataForm.getReportedData() != null) - return new ReportedData(dataForm); - } - // Otherwise return null - return null; - } - - - /** - * Creates a new ReportedData based on the returned dataForm from a search - *(namespace "jabber:iq:search"). - * - * @param dataForm the dataForm returned from a search (namespace "jabber:iq:search"). - */ - private ReportedData(DataForm dataForm) { - // Add the columns to the report based on the reported data fields - for (Iterator fields = dataForm.getReportedData().getFields(); fields.hasNext();) { - FormField field = (FormField)fields.next(); - columns.add(new Column(field.getLabel(), field.getVariable(), field.getType())); - } - - // Add the rows to the report based on the form's items - for (Iterator items = dataForm.getItems(); items.hasNext();) { - DataForm.Item item = (DataForm.Item)items.next(); - List fieldList = new ArrayList(columns.size()); - FormField field; - for (Iterator fields = item.getFields(); fields.hasNext();) { - field = (FormField) fields.next(); - // The field is created with all the values of the data form's field - List values = new ArrayList(); - for (Iterator it=field.getValues(); it.hasNext();) { - values.add(it.next()); - } - fieldList.add(new Field(field.getVariable(), values)); - } - rows.add(new Row(fieldList)); - } - - // Set the report's title - this.title = dataForm.getTitle(); - } - - /** - * Returns an Iterator for the rows returned from a search. - * - * @return an Iterator for the rows returned from a search. - */ - public Iterator getRows() { - return Collections.unmodifiableList(new ArrayList(rows)).iterator(); - } - - /** - * Returns an Iterator for the columns returned from a search. - * - * @return an Iterator for the columns returned from a search. - */ - public Iterator getColumns() { - return Collections.unmodifiableList(new ArrayList(columns)).iterator(); - } - - - /** - * Returns the report's title. It is similar to the title on a web page or an X - * window. - * - * @return title of the report. - */ - public String getTitle() { - return title; - } - - /** - * - * Represents the columns definition of the reported data. - * - * @author Gaston Dombiak - */ - public static class Column { - private String label; - private String variable; - private String type; - - /** - * Creates a new column with the specified definition. - * - * @param label the columns's label. - * @param variable the variable name of the column. - * @param type the format for the returned data. - */ - private Column(String label, String variable, String type) { - this.label = label; - this.variable = variable; - this.type = type; - } - - /** - * Returns the column's label. - * - * @return label of the column. - */ - public String getLabel() { - return label; - } - - - /** - * Returns the column's data format. Valid formats are: - * - * <ul> - * <li>text-single -> single line or word of text - * <li>text-private -> instead of showing the user what they typed, you show ***** to - * protect it - * <li>text-multi -> multiple lines of text entry - * <li>list-single -> given a list of choices, pick one - * <li>list-multi -> given a list of choices, pick one or more - * <li>boolean -> 0 or 1, true or false, yes or no. Default value is 0 - * <li>fixed -> fixed for putting in text to show sections, or just advertise your web - * site in the middle of the form - * <li>hidden -> is not given to the user at all, but returned with the questionnaire - * <li>jid-single -> Jabber ID - choosing a JID from your roster, and entering one based - * on the rules for a JID. - * <li>jid-multi -> multiple entries for JIDs - * </ul> - * - * @return format for the returned data. - */ - public String getType() { - return type; - } - - - /** - * Returns the variable name that the column is showing. - * - * @return the variable name of the column. - */ - public String getVariable() { - return variable; - } - - - } - - public static class Row { - private List fields = new ArrayList(); - - private Row(List fields) { - this.fields = fields; - } - - /** - * Returns the values of the field whose variable matches the requested variable. - * - * @param variable the variable to match. - * @return the values of the field whose variable matches the requested variable. - */ - public Iterator getValues(String variable) { - for(Iterator it=getFields();it.hasNext();) { - Field field = (Field) it.next(); - if (variable.equals(field.getVariable())) { - return field.getValues(); - } - } - return null; - } - - /** - * Returns the fields that define the data that goes with the item. - * - * @return the fields that define the data that goes with the item. - */ - private Iterator getFields() { - return Collections.unmodifiableList(new ArrayList(fields)).iterator(); - } - } - - private static class Field { - private String variable; - private List values; - - private Field(String variable, List values) { - this.variable = variable; - this.values = values; - } - - /** - * Returns the variable name that the field represents. - * - * @return the variable name of the field. - */ - public String getVariable() { - return variable; - } - - /** - * Returns an iterator on the values reported as part of the search. - * - * @return the returned values of the search. - */ - public Iterator getValues() { - return Collections.unmodifiableList(values).iterator(); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeListener.java deleted file mode 100644 index 2c7460b62..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeListener.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - -/** - * - * A listener that is fired anytime a roster exchange is received. - * - * @author Gaston Dombiak - */ -public interface RosterExchangeListener { - - /** - * Called when roster entries are received as part of a roster exchange. - * - * @param from the user that sent the entries. - * @param remoteRosterEntries the entries sent by the user. The entries are instances of - * RemoteRosterEntry. - */ - public void entriesReceived(String from, Iterator remoteRosterEntries); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeManager.java deleted file mode 100644 index 66c4f477f..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/RosterExchangeManager.java +++ /dev/null @@ -1,177 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.packet.RosterExchange; - -/** - * - * Manages Roster exchanges. A RosterExchangeManager provides a high level access to send - * rosters, roster groups and roster entries to XMPP clients. It also provides an easy way - * to hook up custom logic when entries are received from another XMPP client through - * RosterExchangeListeners. - * - * @author Gaston Dombiak - */ -public class RosterExchangeManager { - - private List rosterExchangeListeners = new ArrayList(); - - private XMPPConnection con; - - private PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:roster"); - private PacketListener packetListener; - - /** - * Creates a new roster exchange manager. - * - * @param con an XMPPConnection. - */ - public RosterExchangeManager(XMPPConnection con) { - this.con = con; - init(); - } - - /** - * Adds a listener to roster exchanges. The listener will be fired anytime roster entries - * are received from remote XMPP clients. - * - * @param rosterExchangeListener a roster exchange listener. - */ - public void addRosterListener(RosterExchangeListener rosterExchangeListener) { - synchronized (rosterExchangeListeners) { - if (!rosterExchangeListeners.contains(rosterExchangeListener)) { - rosterExchangeListeners.add(rosterExchangeListener); - } - } - } - - /** - * Removes a listener from roster exchanges. The listener will be fired anytime roster - * entries are received from remote XMPP clients. - * - * @param rosterExchangeListener a roster exchange listener.. - */ - public void removeRosterListener(RosterExchangeListener rosterExchangeListener) { - synchronized (rosterExchangeListeners) { - rosterExchangeListeners.remove(rosterExchangeListener); - } - } - - /** - * Sends a roster to userID. All the entries of the roster will be sent to the - * target user. - * - * @param roster the roster to send - * @param targetUserID the user that will receive the roster entries - */ - public void send(Roster roster, String targetUserID) { - // Create a new message to send the roster - Message msg = new Message(targetUserID); - // Create a RosterExchange Package and add it to the message - RosterExchange rosterExchange = new RosterExchange(roster); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - con.sendPacket(msg); - } - - /** - * Sends a roster entry to userID. - * - * @param rosterEntry the roster entry to send - * @param targetUserID the user that will receive the roster entries - */ - public void send(RosterEntry rosterEntry, String targetUserID) { - // Create a new message to send the roster - Message msg = new Message(targetUserID); - // Create a RosterExchange Package and add it to the message - RosterExchange rosterExchange = new RosterExchange(); - rosterExchange.addRosterEntry(rosterEntry); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - con.sendPacket(msg); - } - - /** - * Sends a roster group to userID. All the entries of the group will be sent to the - * target user. - * - * @param rosterGroup the roster group to send - * @param targetUserID the user that will receive the roster entries - */ - public void send(RosterGroup rosterGroup, String targetUserID) { - // Create a new message to send the roster - Message msg = new Message(targetUserID); - // Create a RosterExchange Package and add it to the message - RosterExchange rosterExchange = new RosterExchange(); - for (Iterator it = rosterGroup.getEntries(); it.hasNext();) - rosterExchange.addRosterEntry((RosterEntry) it.next()); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - con.sendPacket(msg); - } - - /** - * Fires roster exchange listeners. - */ - private void fireRosterExchangeListeners(String from, Iterator remoteRosterEntries) { - RosterExchangeListener[] listeners = null; - synchronized (rosterExchangeListeners) { - listeners = new RosterExchangeListener[rosterExchangeListeners.size()]; - rosterExchangeListeners.toArray(listeners); - } - for (int i = 0; i < listeners.length; i++) { - listeners[i].entriesReceived(from, remoteRosterEntries); - } - } - - private void init() { - // Listens for all roster exchange packets and fire the roster exchange listeners. - packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - RosterExchange rosterExchange = - (RosterExchange) message.getExtension("x", "jabber:x:roster"); - // Fire event for roster exchange listeners - fireRosterExchangeListeners(message.getFrom(), rosterExchange.getRosterEntries()); - }; - - }; - con.addPacketListener(packetListener, packetFilter); - } - - public void destroy() { - if (con != null) - con.removePacketListener(packetListener); - - } - public void finalize() { - destroy(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java deleted file mode 100644 index 7cdbd0510..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java +++ /dev/null @@ -1,476 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.packet.*; - -/** - * Manages discovery of services in XMPP entities. This class provides: - * <ol> - * <li>A registry of supported features in this XMPP entity. - * <li>Automatic response when this XMPP entity is queried for information. - * <li>Ability to discover items and information of remote XMPP entities. - * <li>Ability to publish publicly available items. - * </ol> - * - * @author Gaston Dombiak - */ -public class ServiceDiscoveryManager { - - private static String identityName = "Smack"; - private static String identityType = "pc"; - - private static Map instances = new Hashtable(); - - private XMPPConnection connection; - private List features = new ArrayList(); - private Map nodeInformationProviders = new Hashtable(); - - // Create a new ServiceDiscoveryManager on every established connection - static { - XMPPConnection.addConnectionListener(new ConnectionEstablishedListener() { - public void connectionEstablished(XMPPConnection connection) { - new ServiceDiscoveryManager(connection); - } - }); - } - - /** - * Creates a new ServiceDiscoveryManager for a given XMPPConnection. This means that the - * service manager will respond to any service discovery request that the connection may - * receive. - * - * @param connection the connection to which a ServiceDiscoveryManager is going to be created. - */ - public ServiceDiscoveryManager(XMPPConnection connection) { - this.connection = connection; - init(); - } - - /** - * Returns the ServiceDiscoveryManager instance associated with a given XMPPConnection. - * - * @param connection the connection used to look for the proper ServiceDiscoveryManager. - * @return the ServiceDiscoveryManager associated with a given XMPPConnection. - */ - public static ServiceDiscoveryManager getInstanceFor(XMPPConnection connection) { - return (ServiceDiscoveryManager) instances.get(connection); - } - - /** - * Returns the name of the client that will be returned when asked for the client identity - * in a disco request. The name could be any value you need to identity this client. - * - * @return the name of the client that will be returned when asked for the client identity - * in a disco request. - */ - public static String getIdentityName() { - return identityName; - } - - /** - * Sets the name of the client that will be returned when asked for the client identity - * in a disco request. The name could be any value you need to identity this client. - * - * @param name the name of the client that will be returned when asked for the client identity - * in a disco request. - */ - public static void setIdentityName(String name) { - identityName = name; - } - - /** - * Returns the type of client that will be returned when asked for the client identity in a - * disco request. The valid types are defined by the category client. Follow this link to learn - * the possible types: <a href="http://www.jabber.org/registrar/disco-categories.html#client">Jabber::Registrar</a>. - * - * @return the type of client that will be returned when asked for the client identity in a - * disco request. - */ - public static String getIdentityType() { - return identityType; - } - - /** - * Sets the type of client that will be returned when asked for the client identity in a - * disco request. The valid types are defined by the category client. Follow this link to learn - * the possible types: <a href="http://www.jabber.org/registrar/disco-categories.html#client">Jabber::Registrar</a>. - * - * @param type the type of client that will be returned when asked for the client identity in a - * disco request. - */ - public static void setIdentityType(String type) { - identityType = type; - } - - /** - * Initializes the packet listeners of the connection that will answer to any - * service discovery request. - */ - private void init() { - // Register the new instance and associate it with the connection - instances.put(connection, this); - // Add a listener to the connection that removes the registered instance when - // the connection is closed - connection.addConnectionListener(new ConnectionListener() { - public void connectionClosed() { - // Unregister this instance since the connection has been closed - instances.remove(connection); - } - - public void connectionClosedOnError(Exception e) { - // Unregister this instance since the connection has been closed - instances.remove(connection); - } - }); - - // Listen for disco#items requests and answer with an empty result - PacketFilter packetFilter = new PacketTypeFilter(DiscoverItems.class); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - DiscoverItems discoverItems = (DiscoverItems) packet; - // Send back the items defined in the client if the request is of type GET - if (discoverItems != null && discoverItems.getType() == IQ.Type.GET) { - DiscoverItems response = new DiscoverItems(); - response.setType(IQ.Type.RESULT); - response.setTo(discoverItems.getFrom()); - response.setPacketID(discoverItems.getPacketID()); - - // Add the defined items related to the requested node. Look for - // the NodeInformationProvider associated with the requested node. - if (getNodeInformationProvider(discoverItems.getNode()) != null) { - Iterator items = - getNodeInformationProvider(discoverItems.getNode()).getNodeItems(); - while (items.hasNext()) { - response.addItem((DiscoverItems.Item) items.next()); - } - } - connection.sendPacket(response); - } - } - }; - connection.addPacketListener(packetListener, packetFilter); - - // Listen for disco#info requests and answer the client's supported features - // To add a new feature as supported use the #addFeature message - packetFilter = new PacketTypeFilter(DiscoverInfo.class); - packetListener = new PacketListener() { - public void processPacket(Packet packet) { - DiscoverInfo discoverInfo = (DiscoverInfo) packet; - // Answer the client's supported features if the request is of the GET type - if (discoverInfo != null && discoverInfo.getType() == IQ.Type.GET) { - DiscoverInfo response = new DiscoverInfo(); - response.setType(IQ.Type.RESULT); - response.setTo(discoverInfo.getFrom()); - response.setPacketID(discoverInfo.getPacketID()); - // Add the client's identity and features only if "node" is null - if (discoverInfo.getNode() == null) { - // Set this client identity - DiscoverInfo.Identity identity = new DiscoverInfo.Identity("client", - getIdentityName()); - identity.setType(getIdentityType()); - response.addIdentity(identity); - // Add the registered features to the response - synchronized (features) { - for (Iterator it = getFeatures(); it.hasNext();) { - response.addFeature((String) it.next()); - } - } - } - else { - // Return an <item-not-found/> error since a client doesn't have nodes - response.setType(IQ.Type.ERROR); - response.setError(new XMPPError(404, "item-not-found")); - } - connection.sendPacket(response); - } - } - }; - connection.addPacketListener(packetListener, packetFilter); - } - - /** - * Returns the NodeInformationProvider responsible for providing information - * (ie items) related to a given node or <tt>null</null> if none.<p> - * - * In MUC, a node could be 'http://jabber.org/protocol/muc#rooms' which means that the - * NodeInformationProvider will provide information about the rooms where the user has joined. - * - * @param node the node that contains items associated with an entity not addressable as a JID. - * @return the NodeInformationProvider responsible for providing information related - * to a given node. - */ - private NodeInformationProvider getNodeInformationProvider(String node) { - if (node == null) { - return null; - } - return (NodeInformationProvider) nodeInformationProviders.get(node); - } - - /** - * Sets the NodeInformationProvider responsible for providing information - * (ie items) related to a given node. Every time this client receives a disco request - * regarding the items of a given node, the provider associated to that node will be the - * responsible for providing the requested information.<p> - * - * In MUC, a node could be 'http://jabber.org/protocol/muc#rooms' which means that the - * NodeInformationProvider will provide information about the rooms where the user has joined. - * - * @param node the node whose items will be provided by the NodeInformationProvider. - * @param listener the NodeInformationProvider responsible for providing items related - * to the node. - */ - public void setNodeInformationProvider(String node, NodeInformationProvider listener) { - nodeInformationProviders.put(node, listener); - } - - /** - * Removes the NodeInformationProvider responsible for providing information - * (ie items) related to a given node. This means that no more information will be - * available for the specified node. - * - * In MUC, a node could be 'http://jabber.org/protocol/muc#rooms' which means that the - * NodeInformationProvider will provide information about the rooms where the user has joined. - * - * @param node the node to remove the associated NodeInformationProvider. - */ - public void removeNodeInformationProvider(String node) { - nodeInformationProviders.remove(node); - } - - /** - * Returns the supported features by this XMPP entity. - * - * @return an Iterator on the supported features by this XMPP entity. - */ - public Iterator getFeatures() { - synchronized (features) { - return Collections.unmodifiableList(new ArrayList(features)).iterator(); - } - } - - /** - * Registers that a new feature is supported by this XMPP entity. When this client is - * queried for its information the registered features will be answered.<p> - * - * Since no packet is actually sent to the server it is safe to perform this operation - * before logging to the server. In fact, you may want to configure the supported features - * before logging to the server so that the information is already available if it is required - * upon login. - * - * @param feature the feature to register as supported. - */ - public void addFeature(String feature) { - synchronized (features) { - features.add(feature); - } - } - - /** - * Removes the specified feature from the supported features by this XMPP entity.<p> - * - * Since no packet is actually sent to the server it is safe to perform this operation - * before logging to the server. - * - * @param feature the feature to remove from the supported features. - */ - public void removeFeature(String feature) { - synchronized (features) { - features.remove(feature); - } - } - - /** - * Returns true if the specified feature is registered in the ServiceDiscoveryManager. - * - * @param feature the feature to look for. - * @return a boolean indicating if the specified featured is registered or not. - */ - public boolean includesFeature(String feature) { - synchronized (features) { - return features.contains(feature); - } - } - - /** - * Returns the discovered information of a given XMPP entity addressed by its JID. - * - * @param entityID the address of the XMPP entity. - * @return the discovered information. - * @throws XMPPException if the operation failed for some reason. - */ - public DiscoverInfo discoverInfo(String entityID) throws XMPPException { - return discoverInfo(entityID, null); - } - - /** - * Returns the discovered information of a given XMPP entity addressed by its JID and - * note attribute. Use this message only when trying to query information which is not - * directly addressable. - * - * @param entityID the address of the XMPP entity. - * @param node the attribute that supplements the 'jid' attribute. - * @return the discovered information. - * @throws XMPPException if the operation failed for some reason. - */ - public DiscoverInfo discoverInfo(String entityID, String node) throws XMPPException { - // Discover the entity's info - DiscoverInfo disco = new DiscoverInfo(); - disco.setType(IQ.Type.GET); - disco.setTo(entityID); - disco.setNode(node); - - // Create a packet collector to listen for a response. - PacketCollector collector = - connection.createPacketCollector(new PacketIDFilter(disco.getPacketID())); - - connection.sendPacket(disco); - - // Wait up to 5 seconds for a result. - IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from the server."); - } - if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - return (DiscoverInfo) result; - } - - /** - * Returns the discovered items of a given XMPP entity addressed by its JID. - * - * @param entityID the address of the XMPP entity. - * @return the discovered information. - * @throws XMPPException if the operation failed for some reason. - */ - public DiscoverItems discoverItems(String entityID) throws XMPPException { - return discoverItems(entityID, null); - } - - /** - * Returns the discovered items of a given XMPP entity addressed by its JID and - * note attribute. Use this message only when trying to query information which is not - * directly addressable. - * - * @param entityID the address of the XMPP entity. - * @param node the attribute that supplements the 'jid' attribute. - * @return the discovered items. - * @throws XMPPException if the operation failed for some reason. - */ - public DiscoverItems discoverItems(String entityID, String node) throws XMPPException { - // Discover the entity's items - DiscoverItems disco = new DiscoverItems(); - disco.setType(IQ.Type.GET); - disco.setTo(entityID); - disco.setNode(node); - - // Create a packet collector to listen for a response. - PacketCollector collector = - connection.createPacketCollector(new PacketIDFilter(disco.getPacketID())); - - connection.sendPacket(disco); - - // Wait up to 5 seconds for a result. - IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from the server."); - } - if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - return (DiscoverItems) result; - } - - /** - * Returns true if the server supports publishing of items. A client may wish to publish items - * to the server so that the server can provide items associated to the client. These items will - * be returned by the server whenever the server receives a disco request targeted to the bare - * address of the client (i.e. user@host.com). - * - * @param entityID the address of the XMPP entity. - * @return true if the server supports publishing of items. - * @throws XMPPException if the operation failed for some reason. - */ - public boolean canPublishItems(String entityID) throws XMPPException { - DiscoverInfo info = discoverInfo(entityID); - return info.containsFeature("http://jabber.org/protocol/disco#publish"); - } - - /** - * Publishes new items to a parent entity. The item elements to publish MUST have at least - * a 'jid' attribute specifying the Entity ID of the item, and an action attribute which - * specifies the action being taken for that item. Possible action values are: "update" and - * "remove". - * - * @param entityID the address of the XMPP entity. - * @param discoverItems the DiscoveryItems to publish. - * @throws XMPPException if the operation failed for some reason. - */ - public void publishItems(String entityID, DiscoverItems discoverItems) - throws XMPPException { - publishItems(entityID, null, discoverItems); - } - - /** - * Publishes new items to a parent entity and node. The item elements to publish MUST have at - * least a 'jid' attribute specifying the Entity ID of the item, and an action attribute which - * specifies the action being taken for that item. Possible action values are: "update" and - * "remove". - * - * @param entityID the address of the XMPP entity. - * @param node the attribute that supplements the 'jid' attribute. - * @param discoverItems the DiscoveryItems to publish. - * @throws XMPPException if the operation failed for some reason. - */ - public void publishItems(String entityID, String node, DiscoverItems discoverItems) - throws XMPPException { - discoverItems.setType(IQ.Type.SET); - discoverItems.setTo(entityID); - discoverItems.setNode(node); - - // Create a packet collector to listen for a response. - PacketCollector collector = - connection.createPacketCollector(new PacketIDFilter(discoverItems.getPacketID())); - - connection.sendPacket(discoverItems); - - // Wait up to 5 seconds for a result. - IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from the server."); - } - if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLManager.java b/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLManager.java deleted file mode 100644 index 064c03b43..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLManager.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smackx.packet.*; - -/** - * Manages XHTML formatted texts within messages. A XHTMLManager provides a high level access to - * get and set XHTML bodies to messages, enable and disable XHTML support and check if remote XMPP - * clients support XHTML. - * - * @author Gaston Dombiak - */ -public class XHTMLManager { - - private final static String namespace = "http://jabber.org/protocol/xhtml-im"; - - // Enable the XHTML support on every established connection - // The ServiceDiscoveryManager class should have been already initialized - static { - XMPPConnection.addConnectionListener(new ConnectionEstablishedListener() { - public void connectionEstablished(XMPPConnection connection) { - XHTMLManager.setServiceEnabled(connection, true); - } - }); - } - - /** - * Returns an Iterator for the XHTML bodies in the message. Returns null if - * the message does not contain an XHTML extension. - * - * @param message an XHTML message - * @return an Iterator for the bodies in the message or null if none. - */ - public static Iterator getBodies(Message message) { - XHTMLExtension xhtmlExtension = (XHTMLExtension) message.getExtension("html", namespace); - if (xhtmlExtension != null) - return xhtmlExtension.getBodies(); - else - return null; - } - - /** - * Adds an XHTML body to the message. - * - * @param message the message that will receive the XHTML body - * @param body the string to add as an XHTML body to the message - */ - public static void addBody(Message message, String body) { - XHTMLExtension xhtmlExtension = (XHTMLExtension) message.getExtension("html", namespace); - if (xhtmlExtension == null) { - // Create an XHTMLExtension and add it to the message - xhtmlExtension = new XHTMLExtension(); - message.addExtension(xhtmlExtension); - } - // Add the required bodies to the message - xhtmlExtension.addBody(body); - } - - /** - * Returns true if the message contains an XHTML extension. - * - * @param message the message to check if contains an XHTML extentsion or not - * @return a boolean indicating whether the message is an XHTML message - */ - public static boolean isXHTMLMessage(Message message) { - return message.getExtension("html", namespace) != null; - } - - /** - * Enables or disables the XHTML support on a given connection.<p> - * - * Before starting to send XHTML messages to a user, check that the user can handle XHTML - * messages. Enable the XHTML support to indicate that this client handles XHTML messages. - * - * @param connection the connection where the service will be enabled or disabled - * @param enabled indicates if the service will be enabled or disabled - */ - public synchronized static void setServiceEnabled(XMPPConnection connection, boolean enabled) { - if (isServiceEnabled(connection) == enabled) - return; - - if (enabled) { - ServiceDiscoveryManager.getInstanceFor(connection).addFeature(namespace); - } - else { - ServiceDiscoveryManager.getInstanceFor(connection).removeFeature(namespace); - } - } - - /** - * Returns true if the XHTML support is enabled for the given connection. - * - * @param connection the connection to look for XHTML support - * @return a boolean indicating if the XHTML support is enabled for the given connection - */ - public static boolean isServiceEnabled(XMPPConnection connection) { - return ServiceDiscoveryManager.getInstanceFor(connection).includesFeature(namespace); - } - - /** - * Returns true if the specified user handles XHTML messages. - * - * @param connection the connection to use to perform the service discovery - * @param userID the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com - * @return a boolean indicating whether the specified user handles XHTML messages - */ - public static boolean isServiceEnabled(XMPPConnection connection, String userID) { - try { - DiscoverInfo result = - ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(userID); - return result.containsFeature(namespace); - } - catch (XMPPException e) { - e.printStackTrace(); - return false; - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLText.java b/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLText.java deleted file mode 100644 index ee67e2880..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/XHTMLText.java +++ /dev/null @@ -1,429 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * An XHTMLText represents formatted text. This class also helps to build valid - * XHTML tags. - * - * @author Gaston Dombiak - */ -public class XHTMLText { - - private StringBuffer text = new StringBuffer(30); - - /** - * Creates a new XHTMLText with body tag params. - * - * @param style the XHTML style of the body - * @param lang the language of the body - */ - public XHTMLText(String style, String lang) { - appendOpenBodyTag(style, lang); - } - - /** - * Appends a tag that indicates that an anchor section begins. - * - * @param href indicates the URL being linked to - * @param style the XHTML style of the anchor - */ - public void appendOpenAnchorTag(String href, String style) { - StringBuffer sb = new StringBuffer("<a"); - if (href != null) { - sb.append(" href=\""); - sb.append(href); - sb.append("\""); - } - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that an anchor section ends. - * - */ - public void appendCloseAnchorTag() { - text.append("</a>"); - } - - /** - * Appends a tag that indicates that a blockquote section begins. - * - * @param style the XHTML style of the blockquote - */ - public void appendOpenBlockQuoteTag(String style) { - StringBuffer sb = new StringBuffer("<blockquote"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that a blockquote section ends. - * - */ - public void appendCloseBlockQuoteTag() { - text.append("</blockquote>"); - } - - /** - * Appends a tag that indicates that a body section begins. - * - * @param style the XHTML style of the body - * @param lang the language of the body - */ - private void appendOpenBodyTag(String style, String lang) { - StringBuffer sb = new StringBuffer("<body"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - if (lang != null) { - sb.append(" xml:lang=\""); - sb.append(lang); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that a body section ends. - * - */ - private String closeBodyTag() { - return "</body>"; - } - - /** - * Appends a tag that inserts a single carriage return. - * - */ - public void appendBrTag() { - text.append("<br>"); - } - - /** - * Appends a tag that indicates a reference to work, such as a book, report or web site. - * - */ - public void appendOpenCiteTag() { - text.append("<cite>"); - } - - /** - * Appends a tag that indicates text that is the code for a program. - * - */ - public void appendOpenCodeTag() { - text.append("<code>"); - } - - /** - * Appends a tag that indicates end of text that is the code for a program. - * - */ - public void appendCloseCodeTag() { - text.append("</code>"); - } - - /** - * Appends a tag that indicates emphasis. - * - */ - public void appendOpenEmTag() { - text.append("<em>"); - } - - /** - * Appends a tag that indicates end of emphasis. - * - */ - public void appendCloseEmTag() { - text.append("</em>"); - } - - /** - * Appends a tag that indicates a header, a title of a section of the message. - * - * @param level the level of the Header. It should be a value between 1 and 3 - * @param style the XHTML style of the blockquote - */ - public void appendOpenHeaderTag(int level, String style) { - if (level > 3 || level < 1) { - return; - } - StringBuffer sb = new StringBuffer("<h"); - sb.append(level); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that a header section ends. - * - * @param level the level of the Header. It should be a value between 1 and 3 - */ - public void appendCloseHeaderTag(int level) { - if (level > 3 || level < 1) { - return; - } - StringBuffer sb = new StringBuffer("</h"); - sb.append(level); - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates an image. - * - * @param align how text should flow around the picture - * @param alt the text to show if you don't show the picture - * @param height how tall is the picture - * @param src where to get the picture - * @param width how wide is the picture - */ - public void appendImageTag(String align, String alt, String height, String src, String width) { - StringBuffer sb = new StringBuffer("<img"); - if (align != null) { - sb.append(" align=\""); - sb.append(align); - sb.append("\""); - } - if (alt != null) { - sb.append(" alt=\""); - sb.append(alt); - sb.append("\""); - } - if (height != null) { - sb.append(" height=\""); - sb.append(height); - sb.append("\""); - } - if (src != null) { - sb.append(" src=\""); - sb.append(src); - sb.append("\""); - } - if (width != null) { - sb.append(" width=\""); - sb.append(width); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates the start of a new line item within a list. - * - * @param style the style of the line item - */ - public void appendLineItemTag(String style) { - StringBuffer sb = new StringBuffer("<li"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that creates an ordered list. "Ordered" means that the order of the items - * in the list is important. To show this, browsers automatically number the list. - * - * @param style the style of the ordered list - */ - public void appendOpenOrderedListTag(String style) { - StringBuffer sb = new StringBuffer("<ol"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that an ordered list section ends. - * - */ - public void appendCloseOrderedListTag() { - text.append("</ol>"); - } - - /** - * Appends a tag that creates an unordered list. The unordered part means that the items - * in the list are not in any particular order. - * - * @param style the style of the unordered list - */ - public void appendOpenUnorderedListTag(String style) { - StringBuffer sb = new StringBuffer("<ul"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that an unordered list section ends. - * - */ - public void appendCloseUnorderedListTag() { - text.append("</ul>"); - } - - /** - * Appends a tag that indicates the start of a new paragraph. This is usually rendered - * with two carriage returns, producing a single blank line in between the two paragraphs. - * - * @param style the style of the paragraph - */ - public void appendOpenParagraphTag(String style) { - StringBuffer sb = new StringBuffer("<p"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates the end of a new paragraph. This is usually rendered - * with two carriage returns, producing a single blank line in between the two paragraphs. - * - */ - public void appendCloseParagraphTag() { - text.append("</p>"); - } - - /** - * Appends a tag that indicates that an inlined quote section begins. - * - * @param style the style of the inlined quote - */ - public void appendOpenInlinedQuoteTag(String style) { - StringBuffer sb = new StringBuffer("<q"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that an inlined quote section ends. - * - */ - public void appendCloseInlinedQuoteTag() { - text.append("</q>"); - } - - /** - * Appends a tag that allows to set the fonts for a span of text. - * - * @param style the style for a span of text - */ - public void appendOpenSpanTag(String style) { - StringBuffer sb = new StringBuffer("<span"); - if (style != null) { - sb.append(" style=\""); - sb.append(style); - sb.append("\""); - } - sb.append(">"); - text.append(sb.toString()); - } - - /** - * Appends a tag that indicates that a span section ends. - * - */ - public void appendCloseSpanTag() { - text.append("</span>"); - } - - /** - * Appends a tag that indicates text which should be more forceful than surrounding text. - * - */ - public void appendOpenStrongTag() { - text.append("<strong>"); - } - - /** - * Appends a tag that indicates that a strong section ends. - * - */ - public void appendCloseStrongTag() { - text.append("</strong>"); - } - - /** - * Appends a given text to the XHTMLText. - * - * @param textToAppend the text to append - */ - public void append(String textToAppend) { - text.append(StringUtils.escapeForXML(textToAppend)); - } - - /** - * Returns the text of the XHTMLText. - * - * Note: Automatically adds the closing body tag. - * - * @return the text of the XHTMLText - */ - public String toString() { - return text.toString().concat(closeBodyTag()); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java b/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java deleted file mode 100644 index 61f35ae22..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java +++ /dev/null @@ -1,858 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.debugger; - -import java.awt.*; -import java.awt.datatransfer.*; -import java.awt.event.*; -import java.io.*; -import java.net.*; -import java.text.*; -import java.util.Date; - -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.table.*; -import javax.xml.transform.*; -import javax.xml.transform.stream.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.debugger.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.util.*; - -/** - * The EnhancedDebugger is a debugger that allows to debug sent, received and interpreted messages - * but also provides the ability to send ad-hoc messages composed by the user.<p> - * - * A new EnhancedDebugger will be created for each connection to debug. All the EnhancedDebuggers - * will be shown in the same debug window provided by the class EnhancedDebuggerWindow. - * - * @author Gaston Dombiak - */ -public class EnhancedDebugger implements SmackDebugger { - - private static final String NEWLINE = "\n"; - - private static ImageIcon packetReceivedIcon; - private static ImageIcon packetSentIcon; - private static ImageIcon presencePacketIcon; - private static ImageIcon iqPacketIcon; - private static ImageIcon messagePacketIcon; - private static ImageIcon unknownPacketTypeIcon; - - { - URL url; - // Load the image icons - url = - Thread.currentThread().getContextClassLoader().getResource("images/nav_left_blue.png"); - if (url != null) { - packetReceivedIcon = new ImageIcon(url); - } - url = - Thread.currentThread().getContextClassLoader().getResource("images/nav_right_red.png"); - if (url != null) { - packetSentIcon = new ImageIcon(url); - } - url = - Thread.currentThread().getContextClassLoader().getResource("images/photo_portrait.png"); - if (url != null) { - presencePacketIcon = new ImageIcon(url); - } - url = - Thread.currentThread().getContextClassLoader().getResource( - "images/question_and_answer.png"); - if (url != null) { - iqPacketIcon = new ImageIcon(url); - } - url = Thread.currentThread().getContextClassLoader().getResource("images/message.png"); - if (url != null) { - messagePacketIcon = new ImageIcon(url); - } - url = Thread.currentThread().getContextClassLoader().getResource("images/unknown.png"); - if (url != null) { - unknownPacketTypeIcon = new ImageIcon(url); - } - } - - private DefaultTableModel messagesTable = null; - private JTextArea messageTextArea = null; - private JFormattedTextField userField = null; - private JFormattedTextField statusField = null; - - private XMPPConnection connection = null; - - private PacketListener packetReaderListener = null; - private PacketListener packetWriterListener = null; - private ConnectionListener connListener = null; - - private Writer writer; - private Reader reader; - private ReaderListener readerListener; - private WriterListener writerListener; - - private Date creationTime = new Date(); - - // Statistics variables - private DefaultTableModel statisticsTable = null; - private int sentPackets = 0; - private int receivedPackets = 0; - private int sentIQPackets = 0; - private int receivedIQPackets = 0; - private int sentMessagePackets = 0; - private int receivedMessagePackets = 0; - private int sentPresencePackets = 0; - private int receivedPresencePackets = 0; - private int sentOtherPackets = 0; - private int receivedOtherPackets = 0; - - JTabbedPane tabbedPane; - - public EnhancedDebugger(XMPPConnection connection, Writer writer, Reader reader) { - this.connection = connection; - this.writer = writer; - this.reader = reader; - createDebug(); - EnhancedDebuggerWindow.addDebugger(this); - } - - /** - * Creates the debug process, which is a GUI window that displays XML traffic. - */ - private void createDebug() { - // We'll arrange the UI into six tabs. The first tab contains all data, the second - // client generated XML, the third server generated XML, the fourth allows to send - // ad-hoc messages and the fifth contains connection information. - tabbedPane = new JTabbedPane(); - - // Add the All Packets, Sent, Received and Interpreted panels - addBasicPanels(); - - // Add the panel to send ad-hoc messages - addAdhocPacketPanel(); - - // Add the connection information panel - addInformationPanel(); - - // Create a thread that will listen for all incoming packets and write them to - // the GUI. This is what we call "interpreted" packet data, since it's the packet - // data as Smack sees it and not as it's coming in as raw XML. - packetReaderListener = new PacketListener() { - SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm:ss aaa"); - public void processPacket(Packet packet) { - addReadPacketToTable(dateFormatter, packet); - } - }; - - // Create a thread that will listen for all outgoing packets and write them to - // the GUI. - packetWriterListener = new PacketListener() { - SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm:ss aaa"); - public void processPacket(Packet packet) { - addSentPacketToTable(dateFormatter, packet); - } - }; - - // Create a thread that will listen for any connection closed event - connListener = new ConnectionListener() { - public void connectionClosed() { - statusField.setValue("Closed"); - EnhancedDebuggerWindow.connectionClosed(EnhancedDebugger.this); - } - - public void connectionClosedOnError(Exception e) { - statusField.setValue("Closed due to an exception"); - EnhancedDebuggerWindow.connectionClosedOnError(EnhancedDebugger.this, e); - } - }; - } - - private void addBasicPanels() { - JPanel allPane = new JPanel(); - allPane.setLayout(new GridLayout(2, 1)); - tabbedPane.add("All Packets", allPane); - tabbedPane.setToolTipTextAt(0, "Sent and received packets processed by Smack"); - - messagesTable = - new DefaultTableModel( - new Object[] { "Hide", "Timestamp", "", "", "Message", "Id", "Type", "To", "From" }, - 0) { - public boolean isCellEditable(int rowIndex, int mColIndex) { - return false; - } - public Class getColumnClass(int columnIndex) { - if (columnIndex == 2 || columnIndex == 3) { - return Icon.class; - } - return super.getColumnClass(columnIndex); - } - - }; - JTable table = new JTable(messagesTable); - // Allow only single a selection - table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - // Hide the first column - table.getColumnModel().getColumn(0).setMaxWidth(0); - table.getColumnModel().getColumn(0).setMinWidth(0); - table.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(0); - table.getTableHeader().getColumnModel().getColumn(0).setMinWidth(0); - // Set the column "timestamp" size - table.getColumnModel().getColumn(1).setMaxWidth(300); - table.getColumnModel().getColumn(1).setPreferredWidth(70); - // Set the column "direction" icon size - table.getColumnModel().getColumn(2).setMaxWidth(50); - table.getColumnModel().getColumn(2).setPreferredWidth(30); - // Set the column "packet type" icon size - table.getColumnModel().getColumn(3).setMaxWidth(50); - table.getColumnModel().getColumn(3).setPreferredWidth(30); - // Set the column "Id" size - table.getColumnModel().getColumn(5).setMaxWidth(100); - table.getColumnModel().getColumn(5).setPreferredWidth(55); - // Set the column "type" size - table.getColumnModel().getColumn(6).setMaxWidth(200); - table.getColumnModel().getColumn(6).setPreferredWidth(50); - // Set the column "to" size - table.getColumnModel().getColumn(7).setMaxWidth(300); - table.getColumnModel().getColumn(7).setPreferredWidth(90); - // Set the column "from" size - table.getColumnModel().getColumn(8).setMaxWidth(300); - table.getColumnModel().getColumn(8).setPreferredWidth(90); - // Create a table listener that listen for row selection events - SelectionListener selectionListener = new SelectionListener(table); - table.getSelectionModel().addListSelectionListener(selectionListener); - table.getColumnModel().getSelectionModel().addListSelectionListener(selectionListener); - allPane.add(new JScrollPane(table)); - messageTextArea = new JTextArea(); - messageTextArea.setEditable(false); - // Add pop-up menu. - JPopupMenu menu = new JPopupMenu(); - JMenuItem menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(messageTextArea.getText()), null); - } - }); - menu.add(menuItem1); - // Add listener to the text area so the popup menu can come up. - messageTextArea.addMouseListener(new PopupListener(menu)); - allPane.add(new JScrollPane(messageTextArea)); - - // Create UI elements for client generated XML traffic. - final JTextArea sentText = new JTextArea(); - sentText.setEditable(false); - sentText.setForeground(new Color(112, 3, 3)); - tabbedPane.add("Raw Sent Packets", new JScrollPane(sentText)); - tabbedPane.setToolTipTextAt(1, "Raw text of the sent packets"); - - // Add pop-up menu. - menu = new JPopupMenu(); - menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(sentText.getText()), null); - } - }); - - JMenuItem menuItem2 = new JMenuItem("Clear"); - menuItem2.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - sentText.setText(""); - } - }); - - // Add listener to the text area so the popup menu can come up. - sentText.addMouseListener(new PopupListener(menu)); - menu.add(menuItem1); - menu.add(menuItem2); - - // Create UI elements for server generated XML traffic. - final JTextArea receivedText = new JTextArea(); - receivedText.setEditable(false); - receivedText.setForeground(new Color(6, 76, 133)); - tabbedPane.add("Raw Received Packets", new JScrollPane(receivedText)); - tabbedPane.setToolTipTextAt( - 2, - "Raw text of the received packets before Smack process them"); - - // Add pop-up menu. - menu = new JPopupMenu(); - menuItem1 = new JMenuItem("Copy"); - menuItem1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Get the clipboard - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // Set the sent text as the new content of the clipboard - clipboard.setContents(new StringSelection(receivedText.getText()), null); - } - }); - - menuItem2 = new JMenuItem("Clear"); - menuItem2.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - receivedText.setText(""); - } - }); - - // Add listener to the text area so the popup menu can come up. - receivedText.addMouseListener(new PopupListener(menu)); - menu.add(menuItem1); - menu.add(menuItem2); - - // Create a special Reader that wraps the main Reader and logs data to the GUI. - ObservableReader debugReader = new ObservableReader(reader); - readerListener = new ReaderListener() { - public void read(String str) { - int index = str.lastIndexOf(">"); - if (index != -1) { - receivedText.append(str.substring(0, index + 1)); - receivedText.append(NEWLINE); - if (str.length() > index) { - receivedText.append(str.substring(index + 1)); - } - } - else { - receivedText.append(str); - } - } - }; - debugReader.addReaderListener(readerListener); - - // Create a special Writer that wraps the main Writer and logs data to the GUI. - ObservableWriter debugWriter = new ObservableWriter(writer); - writerListener = new WriterListener() { - public void write(String str) { - sentText.append(str); - if (str.endsWith(">")) { - sentText.append(NEWLINE); - } - } - }; - debugWriter.addWriterListener(writerListener); - - // Assign the reader/writer objects to use the debug versions. The packet reader - // and writer will use the debug versions when they are created. - reader = debugReader; - writer = debugWriter; - - } - - private void addAdhocPacketPanel() { - // Create UI elements for sending ad-hoc messages. - final JTextArea adhocMessages = new JTextArea(); - adhocMessages.setEditable(true); - adhocMessages.setForeground(new Color(1, 94, 35)); - tabbedPane.add("Ad-hoc message", new JScrollPane(adhocMessages)); - tabbedPane.setToolTipTextAt(3, "Panel that allows you to send adhoc packets"); - - // Add pop-up menu. - JPopupMenu menu = new JPopupMenu(); - JMenuItem menuItem = new JMenuItem("Message"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - adhocMessages.setText( - "<message to=\"\" id=\"" - + StringUtils.randomString(5) - + "-X\"><body></body></message>"); - } - }); - menu.add(menuItem); - - menuItem = new JMenuItem("IQ Get"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - adhocMessages.setText( - "<iq type=\"get\" to=\"\" id=\"" - + StringUtils.randomString(5) - + "-X\"><query xmlns=\"\"></query></iq>"); - } - }); - menu.add(menuItem); - - menuItem = new JMenuItem("IQ Set"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - adhocMessages.setText( - "<iq type=\"set\" to=\"\" id=\"" - + StringUtils.randomString(5) - + "-X\"><query xmlns=\"\"></query></iq>"); - } - }); - menu.add(menuItem); - - menuItem = new JMenuItem("Presence"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - adhocMessages.setText( - "<presence to=\"\" id=\"" + StringUtils.randomString(5) + "-X\"/>"); - } - }); - menu.add(menuItem); - menu.addSeparator(); - - menuItem = new JMenuItem("Send"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (!"".equals(adhocMessages.getText())) { - AdHocPacket packetToSend = new AdHocPacket(adhocMessages.getText()); - connection.sendPacket(packetToSend); - } - } - }); - menu.add(menuItem); - - menuItem = new JMenuItem("Clear"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - adhocMessages.setText(null); - } - }); - menu.add(menuItem); - - // Add listener to the text area so the popup menu can come up. - adhocMessages.addMouseListener(new PopupListener(menu)); - } - - private void addInformationPanel() { - // Create UI elements for connection information. - JPanel informationPanel = new JPanel(); - informationPanel.setLayout(new BorderLayout()); - - // Add the Host information - JPanel connPanel = new JPanel(); - connPanel.setLayout(new GridBagLayout()); - connPanel.setBorder(BorderFactory.createTitledBorder("Connection information")); - - JLabel label = new JLabel("Host: "); - label.setMinimumSize(new java.awt.Dimension(150, 14)); - label.setMaximumSize(new java.awt.Dimension(150, 14)); - connPanel.add( - label, - new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 21, 0, new Insets(0, 0, 0, 0), 0, 0)); - JFormattedTextField field = new JFormattedTextField(connection.getHost()); - field.setMinimumSize(new java.awt.Dimension(150, 20)); - field.setMaximumSize(new java.awt.Dimension(150, 20)); - field.setEditable(false); - field.setBorder(null); - connPanel.add( - field, - new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 2, new Insets(0, 0, 0, 0), 0, 0)); - - // Add the Port information - label = new JLabel("Port: "); - label.setMinimumSize(new java.awt.Dimension(150, 14)); - label.setMaximumSize(new java.awt.Dimension(150, 14)); - connPanel.add( - label, - new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 21, 0, new Insets(0, 0, 0, 0), 0, 0)); - field = new JFormattedTextField(new Integer(connection.getPort())); - field.setMinimumSize(new java.awt.Dimension(150, 20)); - field.setMaximumSize(new java.awt.Dimension(150, 20)); - field.setEditable(false); - field.setBorder(null); - connPanel.add( - field, - new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, 10, 2, new Insets(0, 0, 0, 0), 0, 0)); - - // Add the connection's User information - label = new JLabel("User: "); - label.setMinimumSize(new java.awt.Dimension(150, 14)); - label.setMaximumSize(new java.awt.Dimension(150, 14)); - connPanel.add( - label, - new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 21, 0, new Insets(0, 0, 0, 0), 0, 0)); - userField = new JFormattedTextField(); - userField.setMinimumSize(new java.awt.Dimension(150, 20)); - userField.setMaximumSize(new java.awt.Dimension(150, 20)); - userField.setEditable(false); - userField.setBorder(null); - connPanel.add( - userField, - new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, 10, 2, new Insets(0, 0, 0, 0), 0, 0)); - - // Add the connection's creationTime information - label = new JLabel("Creation time: "); - label.setMinimumSize(new java.awt.Dimension(150, 14)); - label.setMaximumSize(new java.awt.Dimension(150, 14)); - connPanel.add( - label, - new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, 21, 0, new Insets(0, 0, 0, 0), 0, 0)); - field = new JFormattedTextField(new SimpleDateFormat("yyyy.MM.dd hh:mm:ss aaa")); - field.setMinimumSize(new java.awt.Dimension(150, 20)); - field.setMaximumSize(new java.awt.Dimension(150, 20)); - field.setValue(creationTime); - field.setEditable(false); - field.setBorder(null); - connPanel.add( - field, - new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, 10, 2, new Insets(0, 0, 0, 0), 0, 0)); - - // Add the connection's creationTime information - label = new JLabel("Status: "); - label.setMinimumSize(new java.awt.Dimension(150, 14)); - label.setMaximumSize(new java.awt.Dimension(150, 14)); - connPanel.add( - label, - new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, 21, 0, new Insets(0, 0, 0, 0), 0, 0)); - statusField = new JFormattedTextField(); - statusField.setMinimumSize(new java.awt.Dimension(150, 20)); - statusField.setMaximumSize(new java.awt.Dimension(150, 20)); - statusField.setValue("Active"); - statusField.setEditable(false); - statusField.setBorder(null); - connPanel.add( - statusField, - new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0, 10, 2, new Insets(0, 0, 0, 0), 0, 0)); - // Add the connection panel to the information panel - informationPanel.add(connPanel, BorderLayout.NORTH); - - // Add the Number of sent packets information - JPanel packetsPanel = new JPanel(); - packetsPanel.setLayout(new GridLayout(1, 1)); - packetsPanel.setBorder(BorderFactory.createTitledBorder("Transmitted Packets")); - - statisticsTable = - new DefaultTableModel(new Object[][] { { "IQ", new Integer(0), new Integer(0)}, { - "Message", new Integer(0), new Integer(0) - }, { - "Presence", new Integer(0), new Integer(0) - }, { - "Other", new Integer(0), new Integer(0) - }, { - "Total", new Integer(0), new Integer(0) - } - }, new Object[] { "Type", "Received", "Sent" }) { - public boolean isCellEditable(int rowIndex, int mColIndex) { - return false; - } - }; - JTable table = new JTable(statisticsTable); - // Allow only single a selection - table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - packetsPanel.add(new JScrollPane(table)); - - // Add the packets panel to the information panel - informationPanel.add(packetsPanel, BorderLayout.CENTER); - - tabbedPane.add("Information", new JScrollPane(informationPanel)); - tabbedPane.setToolTipTextAt(4, "Information and statistics about the debugged connection"); - } - - public void userHasLogged(String user) { - userField.setText(user); - EnhancedDebuggerWindow.userHasLogged(this, user); - // Add the connection listener to the connection so that the debugger can be notified - // whenever the connection is closed. - connection.addConnectionListener(connListener); - } - - public Reader getReader() { - return reader; - } - - public Writer getWriter() { - return writer; - } - - public PacketListener getReaderListener() { - return packetReaderListener; - } - - public PacketListener getWriterListener() { - return packetWriterListener; - } - - /** - * Updates the statistics table - */ - private void updateStatistics() { - statisticsTable.setValueAt(new Integer(receivedIQPackets), 0, 1); - statisticsTable.setValueAt(new Integer(sentIQPackets), 0, 2); - - statisticsTable.setValueAt(new Integer(receivedMessagePackets), 1, 1); - statisticsTable.setValueAt(new Integer(sentMessagePackets), 1, 2); - - statisticsTable.setValueAt(new Integer(receivedPresencePackets), 2, 1); - statisticsTable.setValueAt(new Integer(sentPresencePackets), 2, 2); - - statisticsTable.setValueAt(new Integer(receivedOtherPackets), 3, 1); - statisticsTable.setValueAt(new Integer(sentOtherPackets), 3, 2); - - statisticsTable.setValueAt(new Integer(receivedPackets), 4, 1); - statisticsTable.setValueAt(new Integer(sentPackets), 4, 2); - } - - /** - * Adds the received packet detail to the messages table. - * - * @param dateFormatter the SimpleDateFormat to use to format Dates - * @param packet the read packet to add to the table - */ - private void addReadPacketToTable(SimpleDateFormat dateFormatter, Packet packet) { - String messageType = null; - String from = packet.getFrom(); - String type = ""; - Icon packetTypeIcon; - receivedPackets++; - if (packet instanceof IQ) { - packetTypeIcon = iqPacketIcon; - messageType = "IQ Received (class=" + packet.getClass().getName() + ")"; - type = ((IQ) packet).getType().toString(); - receivedIQPackets++; - } - else if (packet instanceof Message) { - packetTypeIcon = messagePacketIcon; - messageType = "Message Received"; - type = ((Message) packet).getType().toString(); - receivedMessagePackets++; - } - else if (packet instanceof Presence) { - packetTypeIcon = presencePacketIcon; - messageType = "Presence Received"; - type = ((Presence) packet).getType().toString(); - receivedPresencePackets++; - } - else { - packetTypeIcon = unknownPacketTypeIcon; - messageType = packet.getClass().getName() + " Received"; - receivedOtherPackets++; - } - - messagesTable.addRow( - new Object[] { - formatXML(packet.toXML()), - dateFormatter.format(new Date()), - packetReceivedIcon, - packetTypeIcon, - messageType, - packet.getPacketID(), - type, - "", - from }); - // Update the statistics table - updateStatistics(); - } - - /** - * Adds the sent packet detail to the messages table. - * - * @param dateFormatter the SimpleDateFormat to use to format Dates - * @param packet the sent packet to add to the table - */ - private void addSentPacketToTable(SimpleDateFormat dateFormatter, Packet packet) { - String messageType = null; - String to = packet.getTo(); - String type = ""; - Icon packetTypeIcon; - sentPackets++; - if (packet instanceof IQ) { - packetTypeIcon = iqPacketIcon; - messageType = "IQ Sent (class=" + packet.getClass().getName() + ")"; - type = ((IQ) packet).getType().toString(); - sentIQPackets++; - } - else if (packet instanceof Message) { - packetTypeIcon = messagePacketIcon; - messageType = "Message Sent"; - type = ((Message) packet).getType().toString(); - sentMessagePackets++; - } - else if (packet instanceof Presence) { - packetTypeIcon = presencePacketIcon; - messageType = "Presence Sent"; - type = ((Presence) packet).getType().toString(); - sentPresencePackets++; - } - else { - packetTypeIcon = unknownPacketTypeIcon; - messageType = packet.getClass().getName() + " Sent"; - sentOtherPackets++; - } - - messagesTable.addRow( - new Object[] { - formatXML(packet.toXML()), - dateFormatter.format(new Date()), - packetSentIcon, - packetTypeIcon, - messageType, - packet.getPacketID(), - type, - to, - "" }); - - // Update the statistics table - updateStatistics(); - } - - private String formatXML(String str) { - try { - // Use a Transformer for output - TransformerFactory tFactory = TransformerFactory.newInstance(); - // Surround this setting in a try/catch for compatibility with Java 1.4. This setting is required - // for Java 1.5 - try { - tFactory.setAttribute("indent-number", new Integer(2)); - } - catch (IllegalArgumentException e) {} - Transformer transformer = tFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); - - // Transform the requested string into a nice formatted XML string - StreamSource source = new StreamSource(new StringReader(str)); - StringWriter sw = new StringWriter(); - StreamResult result = new StreamResult(sw); - transformer.transform(source, result); - return sw.toString(); - - } - catch (TransformerConfigurationException tce) { - // Error generated by the parser - System.out.println("\n** Transformer Factory error"); - System.out.println(" " + tce.getMessage()); - - // Use the contained exception, if any - Throwable x = tce; - if (tce.getException() != null) - x = tce.getException(); - x.printStackTrace(); - - } - catch (TransformerException te) { - // Error generated by the parser - System.out.println("\n** Transformation error"); - System.out.println(" " + te.getMessage()); - - // Use the contained exception, if any - Throwable x = te; - if (te.getException() != null) - x = te.getException(); - x.printStackTrace(); - - } - return str; - } - - /** - * Returns true if the debugger's connection with the server is up and running. - * - * @return true if the connection with the server is active. - */ - boolean isConnectionActive() { - return connection.isConnected(); - } - - /** - * Stops debugging the connection. Removes any listener on the connection. - * - */ - void cancel() { - connection.removeConnectionListener(connListener); - connection.removePacketListener(packetReaderListener); - connection.removePacketWriterListener(packetWriterListener); - ((ObservableReader)reader).removeReaderListener(readerListener); - ((ObservableWriter)writer).removeWriterListener(writerListener); - messagesTable = null; - } - - /** - * An ad-hoc packet is like any regular packet but with the exception that it's intention is - * to be used only <b>to send packets</b>.<p> - * - * The whole text to send must be passed to the constructor. This implies that the client of - * this class is responsible for sending a valid text to the constructor. - * - */ - private class AdHocPacket extends Packet { - - private String text; - - /** - * Create a new AdHocPacket with the text to send. The passed text must be a valid text to - * send to the server, no validation will be done on the passed text. - * - * @param text the whole text of the packet to send - */ - public AdHocPacket(String text) { - this.text = text; - } - - public String toXML() { - return text; - } - - } - - /** - * Listens for debug window popup dialog events. - */ - private class PopupListener extends MouseAdapter { - JPopupMenu popup; - - PopupListener(JPopupMenu popupMenu) { - popup = popupMenu; - } - - public void mousePressed(MouseEvent e) { - maybeShowPopup(e); - } - - public void mouseReleased(MouseEvent e) { - maybeShowPopup(e); - } - - private void maybeShowPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - popup.show(e.getComponent(), e.getX(), e.getY()); - } - } - } - - private class SelectionListener implements ListSelectionListener { - JTable table; - - // It is necessary to keep the table since it is not possible - // to determine the table from the event's source - SelectionListener(JTable table) { - this.table = table; - } - public void valueChanged(ListSelectionEvent e) { - if (table.getSelectedRow() == -1) { - // Clear the messageTextArea since there is none packet selected - messageTextArea.setText(null); - } - else { - // Set the detail of the packet in the messageTextArea - messageTextArea.setText( - (String) table.getModel().getValueAt(table.getSelectedRow(), 0)); - // Scroll up to the top - messageTextArea.setCaretPosition(0); - } - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java b/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java deleted file mode 100644 index 54127b529..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java +++ /dev/null @@ -1,348 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.debugger; - -import java.awt.*; -import java.awt.event.*; -import java.net.*; -import java.util.*; - -import javax.swing.*; - -import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.provider.ProviderManager; - -/** - * The EnhancedDebuggerWindow is the main debug window that will show all the EnhancedDebuggers. - * For each connection to debug there will be an EnhancedDebugger that will be shown in the - * EnhancedDebuggerWindow.<p> - * - * This class also provides information about Smack like for example the Smack version and the - * installed providers. - * - * @author Gaston Dombiak - */ -class EnhancedDebuggerWindow { - - private static EnhancedDebuggerWindow instance; - - private static ImageIcon connectionCreatedIcon; - private static ImageIcon connectionActiveIcon; - private static ImageIcon connectionClosedIcon; - private static ImageIcon connectionClosedOnErrorIcon; - - { - URL url; - - url = - Thread.currentThread().getContextClassLoader().getResource( - "images/trafficlight_off.png"); - if (url != null) { - connectionCreatedIcon = new ImageIcon(url); - } - url = - Thread.currentThread().getContextClassLoader().getResource( - "images/trafficlight_green.png"); - if (url != null) { - connectionActiveIcon = new ImageIcon(url); - } - url = - Thread.currentThread().getContextClassLoader().getResource( - "images/trafficlight_red.png"); - if (url != null) { - connectionClosedIcon = new ImageIcon(url); - } - url = Thread.currentThread().getContextClassLoader().getResource("images/warning.png"); - if (url != null) { - connectionClosedOnErrorIcon = new ImageIcon(url); - } - - } - - private JFrame frame = null; - private JTabbedPane tabbedPane = null; - private java.util.List debuggers = new ArrayList(); - - private EnhancedDebuggerWindow() { - } - - /** - * Returns the unique EnhancedDebuggerWindow instance available in the system. - * - * @return the unique EnhancedDebuggerWindow instance - */ - private static EnhancedDebuggerWindow getInstance() { - if (instance == null) { - instance = new EnhancedDebuggerWindow(); - } - return instance; - } - - /** - * Adds the new specified debugger to the list of debuggers to show in the main window. - * - * @param debugger the new debugger to show in the debug window - */ - synchronized static void addDebugger(EnhancedDebugger debugger) { - getInstance().showNewDebugger(debugger); - } - - /** - * Shows the new debugger in the debug window. - * - * @param debugger the new debugger to show - */ - private void showNewDebugger(EnhancedDebugger debugger) { - if (frame == null) { - createDebug(); - } - debugger.tabbedPane.setName("Connection_" + tabbedPane.getComponentCount()); - tabbedPane.add(debugger.tabbedPane, tabbedPane.getComponentCount() - 1); - tabbedPane.setIconAt(tabbedPane.indexOfComponent(debugger.tabbedPane), connectionCreatedIcon); - frame.setTitle( - "Smack Debug Window -- Total connections: " + (tabbedPane.getComponentCount() - 1)); - // Keep the added debugger for later access - debuggers.add(debugger); - } - - /** - * Notification that a user has logged in to the server. A new title will be set - * to the tab of the given debugger. - * - * @param debugger the debugger whose connection logged in to the server - * @param user the user@host/resource that has just logged in - */ - synchronized static void userHasLogged(EnhancedDebugger debugger, String user) { - int index = getInstance().tabbedPane.indexOfComponent(debugger.tabbedPane); - getInstance().tabbedPane.setTitleAt( - index, - user); - getInstance().tabbedPane.setIconAt( - index, - connectionActiveIcon); - } - - /** - * Notification that the connection was properly closed. - * - * @param debugger the debugger whose connection was properly closed. - */ - synchronized static void connectionClosed(EnhancedDebugger debugger) { - getInstance().tabbedPane.setIconAt( - getInstance().tabbedPane.indexOfComponent(debugger.tabbedPane), - connectionClosedIcon); - } - - /** - * Notification that the connection was closed due to an exception. - * - * @param debugger the debugger whose connection was closed due to an exception. - * @param e the exception. - */ - synchronized static void connectionClosedOnError(EnhancedDebugger debugger, Exception e) { - int index = getInstance().tabbedPane.indexOfComponent(debugger.tabbedPane); - getInstance().tabbedPane.setToolTipTextAt( - index, - "Connection closed due to the exception: " + e.getMessage()); - getInstance().tabbedPane.setIconAt( - index, - connectionClosedOnErrorIcon); - } - - /** - * Creates the main debug window that provides information about Smack and also shows - * a tab panel for each connection that is being debugged. - */ - private void createDebug() { - - frame = new JFrame("Smack Debug Window"); - - // Add listener for window closing event - frame.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent evt) { - rootWindowClosing(evt); - } - }); - - // We'll arrange the UI into tabs. The last tab contains Smack's information. - // All the connection debugger tabs will be shown before the Smack info tab. - tabbedPane = new JTabbedPane(); - - // Create the Smack info panel - JPanel informationPanel = new JPanel(); - informationPanel.setLayout(new BoxLayout(informationPanel, BoxLayout.Y_AXIS)); - - // Add the Smack version label - JPanel versionPanel = new JPanel(); - versionPanel.setLayout(new BoxLayout(versionPanel, BoxLayout.X_AXIS)); - versionPanel.setMaximumSize(new Dimension(2000, 31)); - versionPanel.add(new JLabel(" Smack version: ")); - JFormattedTextField field = new JFormattedTextField(SmackConfiguration.getVersion()); - field.setEditable(false); - field.setBorder(null); - versionPanel.add(field); - informationPanel.add(versionPanel); - - // Add the list of installed IQ Providers - JPanel iqProvidersPanel = new JPanel(); - iqProvidersPanel.setLayout(new GridLayout(1, 1)); - iqProvidersPanel.setBorder(BorderFactory.createTitledBorder("Installed IQ Providers")); - Vector providers = new Vector(); - for (Iterator it = ProviderManager.getIQProviders(); it.hasNext();) { - Object provider = it.next(); - if (provider.getClass() == Class.class) { - providers.add(((Class) provider).getName()); - } - else { - providers.add(provider.getClass().getName()); - } - } - // Sort the collection of providers - Collections.sort(providers); - JList list = new JList(providers); - iqProvidersPanel.add(new JScrollPane(list)); - informationPanel.add(iqProvidersPanel); - - // Add the list of installed Extension Providers - JPanel extensionProvidersPanel = new JPanel(); - extensionProvidersPanel.setLayout(new GridLayout(1, 1)); - extensionProvidersPanel.setBorder(BorderFactory.createTitledBorder("Installed Extension Providers")); - providers = new Vector(); - for (Iterator it = ProviderManager.getExtensionProviders(); it.hasNext();) { - Object provider = it.next(); - if (provider.getClass() == Class.class) { - providers.add(((Class) provider).getName()); - } - else { - providers.add(provider.getClass().getName()); - } - } - // Sort the collection of providers - Collections.sort(providers); - list = new JList(providers); - extensionProvidersPanel.add(new JScrollPane(list)); - informationPanel.add(extensionProvidersPanel); - - tabbedPane.add("Smack Info", informationPanel); - - // Add pop-up menu. - JPopupMenu menu = new JPopupMenu(); - // Add a menu item that allows to close the current selected tab - JMenuItem menuItem = new JMenuItem("Close"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // Remove the selected tab pane if it's not the Smack info pane - if (tabbedPane.getSelectedIndex() < tabbedPane.getComponentCount() - 1) { - int index = tabbedPane.getSelectedIndex(); - // Notify to the debugger to stop debugging - EnhancedDebugger debugger = (EnhancedDebugger)debuggers.get(index); - debugger.cancel(); - // Remove the debugger from the root window - tabbedPane.remove(debugger.tabbedPane); - debuggers.remove(debugger); - // Update the root window title - frame.setTitle( - "Smack Debug Window -- Total connections: " - + (tabbedPane.getComponentCount() - 1)); - } - } - }); - menu.add(menuItem); - // Add a menu item that allows to close all the tabs that have their connections closed - menuItem = new JMenuItem("Close All Not Active"); - menuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - ArrayList debuggersToRemove = new ArrayList(); - // Remove all the debuggers of which their connections are no longer valid - for (int index=0; index < tabbedPane.getComponentCount()-1; index++) { - EnhancedDebugger debugger = (EnhancedDebugger)debuggers.get(index); - if (!debugger.isConnectionActive()) { - // Notify to the debugger to stop debugging - debugger.cancel(); - debuggersToRemove.add(debugger); - } - } - for (Iterator it=debuggersToRemove.iterator(); it.hasNext();) { - EnhancedDebugger debugger = (EnhancedDebugger)it.next(); - // Remove the debugger from the root window - tabbedPane.remove(debugger.tabbedPane); - debuggers.remove(debugger); - } - // Update the root window title - frame.setTitle( - "Smack Debug Window -- Total connections: " - + (tabbedPane.getComponentCount() - 1)); - } - }); - menu.add(menuItem); - // Add listener to the text area so the popup menu can come up. - tabbedPane.addMouseListener(new PopupListener(menu)); - - frame.getContentPane().add(tabbedPane); - - frame.setSize(650, 400); - frame.setVisible(true); - - } - - /** - * Notification that the root window is closing. Stop listening for received and - * transmitted packets in all the debugged connections. - * - * @param evt the event that indicates that the root window is closing - */ - public void rootWindowClosing(WindowEvent evt) { - // Notify to all the debuggers to stop debugging - for (Iterator it = debuggers.iterator(); it.hasNext();) { - EnhancedDebugger debugger = (EnhancedDebugger)it.next(); - debugger.cancel(); - } - // Release any reference to the debuggers - debuggers.removeAll(debuggers); - // Release the default instance - instance = null; - } - - /** - * Listens for debug window popup dialog events. - */ - private class PopupListener extends MouseAdapter { - JPopupMenu popup; - - PopupListener(JPopupMenu popupMenu) { - popup = popupMenu; - } - - public void mousePressed(MouseEvent e) { - maybeShowPopup(e); - } - - public void mouseReleased(MouseEvent e) { - maybeShowPopup(e); - } - - private void maybeShowPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - popup.show(e.getComponent(), e.getX(), e.getY()); - } - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/package.html b/CopyOftrunk/source/org/jivesoftware/smackx/debugger/package.html deleted file mode 100644 index 8ea20e0ac..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/debugger/package.html +++ /dev/null @@ -1 +0,0 @@ -<body>Smack optional Debuggers.</body> \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/Affiliate.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/Affiliate.java deleted file mode 100644 index 9300dc6f7..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/Affiliate.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import org.jivesoftware.smackx.packet.MUCAdmin; -import org.jivesoftware.smackx.packet.MUCOwner; - -/** - * Represents an affiliation of a user to a given room. The affiliate's information will always have - * the bare jid of the real user and its affiliation. If the affiliate is an occupant of the room - * then we will also have information about the role and nickname of the user in the room. - * - * @author Gaston Dombiak - */ -public class Affiliate { - // Fields that must have a value - private String jid; - private String affiliation; - - // Fields that may have a value - private String role; - private String nick; - - Affiliate(MUCOwner.Item item) { - super(); - this.jid = item.getJid(); - this.affiliation = item.getAffiliation(); - this.role = item.getRole(); - this.nick = item.getNick(); - } - - Affiliate(MUCAdmin.Item item) { - super(); - this.jid = item.getJid(); - this.affiliation = item.getAffiliation(); - this.role = item.getRole(); - this.nick = item.getNick(); - } - - /** - * Returns the bare JID of the affiliated user. This information will always be available. - * - * @return the bare JID of the affiliated user. - */ - public String getJid() { - return jid; - } - - /** - * Returns the affiliation of the afffiliated user. Possible affiliations are: "owner", "admin", - * "member", "outcast". This information will always be available. - * - * @return the affiliation of the afffiliated user. - */ - public String getAffiliation() { - return affiliation; - } - - /** - * Returns the current role of the affiliated user if the user is currently in the room. - * If the user is not present in the room then the answer will be null. - * - * @return the current role of the affiliated user in the room or null if the user is not in - * the room. - */ - public String getRole() { - return role; - } - - /** - * Returns the current nickname of the affiliated user if the user is currently in the room. - * If the user is not present in the room then the answer will be null. - * - * @return the current nickname of the affiliated user in the room or null if the user is not in - * the room. - */ - public String getNick() { - return nick; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java deleted file mode 100644 index 625655fbb..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * Default implementation of the ParticipantStatusListener interface.<p> - * - * This class does not provide any behavior by default. It just avoids having - * to implement all the inteface methods if the user is only interested in implementing - * some of the methods. - * - * @author Gaston Dombiak - */ -public class DefaultParticipantStatusListener implements ParticipantStatusListener { - - public void joined(String participant) { - } - - public void left(String participant) { - } - - public void kicked(String participant) { - } - - public void voiceGranted(String participant) { - } - - public void voiceRevoked(String participant) { - } - - public void banned(String participant) { - } - - public void membershipGranted(String participant) { - } - - public void membershipRevoked(String participant) { - } - - public void moderatorGranted(String participant) { - } - - public void moderatorRevoked(String participant) { - } - - public void ownershipGranted(String participant) { - } - - public void ownershipRevoked(String participant) { - } - - public void adminGranted(String participant) { - } - - public void adminRevoked(String participant) { - } - - public void nicknameChanged(String nickname) { - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java deleted file mode 100644 index 1075d6ca0..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * Default implementation of the UserStatusListener interface.<p> - * - * This class does not provide any behavior by default. It just avoids having - * to implement all the inteface methods if the user is only interested in implementing - * some of the methods. - * - * @author Gaston Dombiak - */ -public class DefaultUserStatusListener implements UserStatusListener { - - public void kicked(String actor, String reason) { - } - - public void voiceGranted() { - } - - public void voiceRevoked() { - } - - public void banned(String actor, String reason) { - } - - public void membershipGranted() { - } - - public void membershipRevoked() { - } - - public void moderatorGranted() { - } - - public void moderatorRevoked() { - } - - public void ownershipGranted() { - } - - public void ownershipRevoked() { - } - - public void adminGranted() { - } - - public void adminRevoked() { - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DiscussionHistory.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/DiscussionHistory.java deleted file mode 100644 index a5edc6fc8..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/DiscussionHistory.java +++ /dev/null @@ -1,173 +0,0 @@ -/** - * $RCSfile$ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import java.util.Date; - -import org.jivesoftware.smackx.packet.MUCInitialPresence; - -/** - * The DiscussionHistory class controls the number of characters or messages to receive - * when entering a room. The room will decide the amount of history to return if you don't - * specify a DiscussionHistory while joining a room.<p> - * - * You can use some or all of these variable to control the amount of history to receive: - * <ul> - * <li>maxchars -> total number of characters to receive in the history. - * <li>maxstanzas -> total number of messages to receive in the history. - * <li>seconds -> only the messages received in the last "X" seconds will be included in the - * history. - * <li>since -> only the messages received since the datetime specified will be included in - * the history. - * </ul> - * - * Note: Setting maxchars to 0 indicates that the user requests to receive no history. - * - * @author Gaston Dombiak - */ -public class DiscussionHistory { - - private int maxChars = -1; - private int maxStanzas = -1; - private int seconds = -1; - private Date since; - - /** - * Returns the total number of characters to receive in the history. - * - * @return total number of characters to receive in the history. - */ - public int getMaxChars() { - return maxChars; - } - - /** - * Returns the total number of messages to receive in the history. - * - * @return the total number of messages to receive in the history. - */ - public int getMaxStanzas() { - return maxStanzas; - } - - /** - * Returns the number of seconds to use to filter the messages received during that time. - * In other words, only the messages received in the last "X" seconds will be included in - * the history. - * - * @return the number of seconds to use to filter the messages received during that time. - */ - public int getSeconds() { - return seconds; - } - - /** - * Returns the since date to use to filter the messages received during that time. - * In other words, only the messages received since the datetime specified will be - * included in the history. - * - * @return the since date to use to filter the messages received during that time. - */ - public Date getSince() { - return since; - } - - /** - * Sets the total number of characters to receive in the history. - * - * @param maxChars the total number of characters to receive in the history. - */ - public void setMaxChars(int maxChars) { - this.maxChars = maxChars; - } - - /** - * Sets the total number of messages to receive in the history. - * - * @param maxStanzas the total number of messages to receive in the history. - */ - public void setMaxStanzas(int maxStanzas) { - this.maxStanzas = maxStanzas; - } - - /** - * Sets the number of seconds to use to filter the messages received during that time. - * In other words, only the messages received in the last "X" seconds will be included in - * the history. - * - * @param seconds the number of seconds to use to filter the messages received during - * that time. - */ - public void setSeconds(int seconds) { - this.seconds = seconds; - } - - /** - * Sets the since date to use to filter the messages received during that time. - * In other words, only the messages received since the datetime specified will be - * included in the history. - * - * @param since the since date to use to filter the messages received during that time. - */ - public void setSince(Date since) { - this.since = since; - } - - /** - * Returns true if the history has been configured with some values. - * - * @return true if the history has been configured with some values. - */ - private boolean isConfigured() { - return maxChars > -1 || maxStanzas > -1 || seconds > -1 || since != null; - } - - /** - * Returns the History that manages the amount of discussion history provided on entering a - * room. - * - * @return the History that manages the amount of discussion history provided on entering a - * room. - */ - MUCInitialPresence.History getMUCHistory() { - // Return null if the history was not properly configured - if (!isConfigured()) { - return null; - } - - MUCInitialPresence.History mucHistory = new MUCInitialPresence.History(); - if (maxChars > -1) { - mucHistory.setMaxChars(maxChars); - } - if (maxStanzas > -1) { - mucHistory.setMaxStanzas(maxStanzas); - } - if (seconds > -1) { - mucHistory.setSeconds(seconds); - } - if (since != null) { - mucHistory.setSince(since); - } - return mucHistory; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/HostedRoom.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/HostedRoom.java deleted file mode 100644 index 51905a346..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/HostedRoom.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jivesoftware.smackx.muc; - -import org.jivesoftware.smackx.packet.DiscoverItems; - -/** - * Hosted rooms by a chat service may be discovered if they are configured to appear in the room - * directory . The information that may be discovered is the XMPP address of the room and the room - * name. The address of the room may be used for obtaining more detailed information - * {@link org.jivesoftware.smackx.muc.MultiUserChat#getRoomInfo(org.jivesoftware.smack.XMPPConnection, String)} - * or could be used for joining the room - * {@link org.jivesoftware.smackx.muc.MultiUserChat#MultiUserChat(org.jivesoftware.smack.XMPPConnection, String)} - * and {@link org.jivesoftware.smackx.muc.MultiUserChat#join(String)}. - * - * @author Gaston Dombiak - */ -public class HostedRoom { - - private String jid; - - private String name; - - public HostedRoom(DiscoverItems.Item item) { - super(); - jid = item.getEntityID(); - name = item.getName(); - } - - /** - * Returns the XMPP address of the hosted room by the chat service. This address may be used - * when creating a <code>MultiUserChat</code> when joining a room. - * - * @return the XMPP address of the hosted room by the chat service. - */ - public String getJid() { - return jid; - } - - /** - * Returns the name of the room. - * - * @return the name of the room. - */ - public String getName() { - return name; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationListener.java deleted file mode 100644 index eeb814e7a..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationListener.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.packet.Message; - -/** - * A listener that is fired anytime an invitation to join a MUC room is received. - * - * @author Gaston Dombiak - */ -public interface InvitationListener { - - /** - * Called when the an invitation to join a MUC room is received.<p> - * - * If the room is password-protected, the invitee will receive a password to use to join - * the room. If the room is members-only, the the invitee may be added to the member list. - * - * @param conn the XMPPConnection that received the invitation. - * @param room the room that invitation refers to. - * @param inviter the inviter that sent the invitation. (e.g. crone1@shakespeare.lit). - * @param reason the reason why the inviter sent the invitation. - * @param password the password to use when joining the room. - * @param message the message used by the inviter to send the invitation. - */ - public abstract void invitationReceived(XMPPConnection conn, String room, String inviter, String reason, - String password, Message message); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationRejectionListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationRejectionListener.java deleted file mode 100644 index 81ae0ab55..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/InvitationRejectionListener.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * A listener that is fired anytime an invitee declines or rejects an invitation. - * - * @author Gaston Dombiak - */ -public interface InvitationRejectionListener { - - /** - * Called when the invitee declines the invitation. - * - * @param invitee the invitee that declined the invitation. (e.g. hecate@shakespeare.lit). - * @param reason the reason why the invitee declined the invitation. - */ - public abstract void invitationDeclined(String invitee, String reason); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/MultiUserChat.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/MultiUserChat.java deleted file mode 100644 index fc53a5bb8..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/MultiUserChat.java +++ /dev/null @@ -1,2572 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import java.lang.ref.WeakReference; -import java.lang.reflect.*; -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smackx.Form; -import org.jivesoftware.smackx.NodeInformationProvider; -import org.jivesoftware.smackx.ServiceDiscoveryManager; -import org.jivesoftware.smackx.packet.*; - -/** - * A MultiUserChat is a conversation that takes place among many users in a virtual - * room. A room could have many occupants with different affiliation and roles. - * Possible affiliatons are "owner", "admin", "member", and "outcast". Possible roles - * are "moderator", "participant", and "visitor". Each role and affiliation guarantees - * different privileges (e.g. Send messages to all occupants, Kick participants and visitors, - * Grant voice, Edit member list, etc.). - * - * @author Gaston Dombiak - */ -public class MultiUserChat { - - private final static String discoNamespace = "http://jabber.org/protocol/muc"; - private final static String discoNode = "http://jabber.org/protocol/muc#rooms"; - - private static Map joinedRooms = new WeakHashMap(); - - private XMPPConnection connection; - private String room; - private String subject; - private String nickname = null; - private boolean joined = false; - private Map occupantsMap = new HashMap(); - - private List invitationRejectionListeners = new ArrayList(); - private List subjectUpdatedListeners = new ArrayList(); - private List userStatusListeners = new ArrayList(); - private List participantStatusListeners = new ArrayList(); - - private PacketFilter presenceFilter; - private PacketListener presenceListener; - private PacketFilter subjectFilter; - private PacketListener subjectListener; - private PacketFilter messageFilter; - private PacketFilter declinesFilter; - private PacketListener declinesListener; - private PacketCollector messageCollector; - private List connectionListeners = new ArrayList(); - - static { - XMPPConnection.addConnectionListener(new ConnectionEstablishedListener() { - public void connectionEstablished(final XMPPConnection connection) { - // Set on every established connection that this client supports the Multi-User - // Chat protocol. This information will be used when another client tries to - // discover whether this client supports MUC or not. - ServiceDiscoveryManager.getInstanceFor(connection).addFeature(discoNamespace); - // Set the NodeInformationProvider that will provide information about the - // joined rooms whenever a disco request is received - ServiceDiscoveryManager.getInstanceFor(connection).setNodeInformationProvider( - discoNode, - new NodeInformationProvider() { - public Iterator getNodeItems() { - ArrayList answer = new ArrayList(); - Iterator rooms=MultiUserChat.getJoinedRooms(connection); - while (rooms.hasNext()) { - answer.add(new DiscoverItems.Item((String)rooms.next())); - } - return answer.iterator(); - } - }); - } - }); - } - - /** - * Creates a new multi user chat with the specified connection and room name. Note: no - * information is sent to or received from the server until you attempt to - * {@link #join(String) join} the chat room. On some server implementations, - * the room will not be created until the first person joins it.<p> - * - * Most XMPP servers use a sub-domain for the chat service (eg chat.example.com - * for the XMPP server example.com). You must ensure that the room address you're - * trying to connect to includes the proper chat sub-domain. - * - * @param connection the XMPP connection. - * @param room the name of the room in the form "roomName@service", where - * "service" is the hostname at which the multi-user chat - * service is running. Make sure to provide a valid JID. - */ - public MultiUserChat(XMPPConnection connection, String room) { - this.connection = connection; - this.room = room.toLowerCase(); - init(); - } - - /** - * Returns true if the specified user supports the Multi-User Chat protocol. - * - * @param connection the connection to use to perform the service discovery. - * @param user the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com. - * @return a boolean indicating whether the specified user supports the MUC protocol. - */ - public static boolean isServiceEnabled(XMPPConnection connection, String user) { - try { - DiscoverInfo result = - ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(user); - return result.containsFeature(discoNamespace); - } - catch (XMPPException e) { - e.printStackTrace(); - return false; - } - } - - /** - * Returns an Iterator on the rooms where the user has joined using a given connection. - * The Iterator will contain Strings where each String represents a room - * (e.g. room@muc.jabber.org). - * - * @param connection the connection used to join the rooms. - * @return an Iterator on the rooms where the user has joined using a given connection. - */ - private static Iterator getJoinedRooms(XMPPConnection connection) { - ArrayList rooms = (ArrayList)joinedRooms.get(connection); - if (rooms != null) { - return rooms.iterator(); - } - // Return an iterator on an empty collection (i.e. the user never joined a room) - return new ArrayList().iterator(); - } - - /** - * Returns an Iterator on the rooms where the requested user has joined. The Iterator will - * contain Strings where each String represents a room (e.g. room@muc.jabber.org). - * - * @param connection the connection to use to perform the service discovery. - * @param user the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com. - * @return an Iterator on the rooms where the requested user has joined. - */ - public static Iterator getJoinedRooms(XMPPConnection connection, String user) { - try { - ArrayList answer = new ArrayList(); - // Send the disco packet to the user - DiscoverItems result = - ServiceDiscoveryManager.getInstanceFor(connection).discoverItems(user, discoNode); - // Collect the entityID for each returned item - for (Iterator items=result.getItems(); items.hasNext();) { - answer.add(((DiscoverItems.Item)items.next()).getEntityID()); - } - return answer.iterator(); - } - catch (XMPPException e) { - e.printStackTrace(); - // Return an iterator on an empty collection - return new ArrayList().iterator(); - } - } - - /** - * Returns the discovered information of a given room whithout actually having to join the room. - * The server will provide information only for rooms that are public. - * - * @param connection the XMPP connection to use for discovering information about the room. - * @param room the name of the room in the form "roomName@service" of which we want to discover - * its information. - * @return the discovered information of a given room whithout actually having to join the room. - * @throws XMPPException if an error occured while trying to discover information of a room. - */ - public static RoomInfo getRoomInfo(XMPPConnection connection, String room) - throws XMPPException { - DiscoverInfo info = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(room); - return new RoomInfo(info); - } - - /** - * Returns a collection with the XMPP addresses of the Multi-User Chat services. - * - * @param connection the XMPP connection to use for discovering Multi-User Chat services. - * @return a collection with the XMPP addresses of the Multi-User Chat services. - * @throws XMPPException if an error occured while trying to discover MUC services. - */ - public static Collection getServiceNames(XMPPConnection connection) throws XMPPException { - List answer = new ArrayList(); - ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection); - DiscoverItems items = discoManager.discoverItems(connection.getHost()); - for (Iterator it = items.getItems(); it.hasNext();) { - DiscoverItems.Item item = (DiscoverItems.Item) it.next(); - DiscoverInfo info = discoManager.discoverInfo(item.getEntityID()); - if (info.containsFeature("http://jabber.org/protocol/muc")) { - answer.add(item.getEntityID()); - } - } - return answer; - } - - /** - * Returns a collection of HostedRooms where each HostedRoom has the XMPP address of the room - * and the room's name. Once discovered the rooms hosted by a chat service it is possible to - * discover more detailed room information or join the room. - * - * @param connection the XMPP connection to use for discovering hosted rooms by the MUC service. - * @param serviceName the service that is hosting the rooms to discover. - * @return a collection of HostedRooms. - * @throws XMPPException if an error occured while trying to discover the information. - */ - public static Collection getHostedRooms(XMPPConnection connection, String serviceName) - throws XMPPException { - List answer = new ArrayList(); - ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection); - DiscoverItems items = discoManager.discoverItems(serviceName); - for (Iterator it = items.getItems(); it.hasNext();) { - DiscoverItems.Item item = (DiscoverItems.Item) it.next(); - answer.add(new HostedRoom(item)); - } - return answer; - } - - /** - * Returns the name of the room this MultiUserChat object represents. - * - * @return the multi user chat room name. - */ - public String getRoom() { - return room; - } - - /** - * Creates the room according to some default configuration, assign the requesting user - * as the room owner, and add the owner to the room but not allow anyone else to enter - * the room (effectively "locking" the room). The requesting user will join the room - * under the specified nickname as soon as the room has been created.<p> - * - * To create an "Instant Room", that means a room with some default configuration that is - * available for immediate access, the room's owner should send an empty form after creating - * the room. {@link #sendConfigurationForm(Form)}<p> - * - * To create a "Reserved Room", that means a room manually configured by the room creator - * before anyone is allowed to enter, the room's owner should complete and send a form after - * creating the room. Once the completed configutation form is sent to the server, the server - * will unlock the room. {@link #sendConfigurationForm(Form)} - * - * @param nickname the nickname to use. - * @throws XMPPException if the room couldn't be created for some reason - * (e.g. room already exists; user already joined to an existant room or - * 405 error if the user is not allowed to create the room) - */ - public synchronized void create(String nickname) throws XMPPException { - if (nickname == null || nickname.equals("")) { - throw new IllegalArgumentException("Nickname must not be null or blank."); - } - // If we've already joined the room, leave it before joining under a new - // nickname. - if (joined) { - throw new IllegalStateException("Creation failed - User already joined the room."); - } - // We create a room by sending a presence packet to room@service/nick - // and signal support for MUC. The owner will be automatically logged into the room. - Presence joinPresence = new Presence(Presence.Type.AVAILABLE); - joinPresence.setTo(room + "/" + nickname); - // Indicate the the client supports MUC - joinPresence.addExtension(new MUCInitialPresence()); - - // Wait for a presence packet back from the server. - PacketFilter responseFilter = - new AndFilter( - new FromMatchesFilter(room + "/" + nickname), - new PacketTypeFilter(Presence.class)); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send create & join packet. - connection.sendPacket(joinPresence); - // Wait up to a certain number of seconds for a reply. - Presence presence = - (Presence) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (presence == null) { - throw new XMPPException("No response from server."); - } - else if (presence.getError() != null) { - throw new XMPPException(presence.getError()); - } - // Whether the room existed before or was created, the user has joined the room - this.nickname = nickname; - joined = true; - userHasJoined(); - - // Look for confirmation of room creation from the server - MUCUser mucUser = getMUCUserExtension(presence); - if (mucUser != null && mucUser.getStatus() != null) { - if ("201".equals(mucUser.getStatus().getCode())) { - // Room was created and the user has joined the room - return; - } - } - // We need to leave the room since it seems that the room already existed - leave(); - throw new XMPPException("Creation failed - Missing acknowledge of room creation."); - } - - /** - * Joins the chat room using the specified nickname. If already joined - * using another nickname, this method will first leave the room and then - * re-join using the new nickname. The default timeout of Smack for a reply - * from the group chat server that the join succeeded will be used. After - * joining the room, the room will decide the amount of history to send. - * - * @param nickname the nickname to use. - * @throws XMPPException if an error occurs joining the room. In particular, a - * 401 error can occur if no password was provided and one is required; or a - * 403 error can occur if the user is banned; or a - * 404 error can occur if the room does not exist or is locked; or a - * 407 error can occur if user is not on the member list; or a - * 409 error can occur if someone is already in the group chat with the same nickname. - */ - public void join(String nickname) throws XMPPException { - join(nickname, null, null, SmackConfiguration.getPacketReplyTimeout()); - } - - /** - * Joins the chat room using the specified nickname and password. If already joined - * using another nickname, this method will first leave the room and then - * re-join using the new nickname. The default timeout of Smack for a reply - * from the group chat server that the join succeeded will be used. After - * joining the room, the room will decide the amount of history to send.<p> - * - * A password is required when joining password protected rooms. If the room does - * not require a password there is no need to provide one. - * - * @param nickname the nickname to use. - * @param password the password to use. - * @throws XMPPException if an error occurs joining the room. In particular, a - * 401 error can occur if no password was provided and one is required; or a - * 403 error can occur if the user is banned; or a - * 404 error can occur if the room does not exist or is locked; or a - * 407 error can occur if user is not on the member list; or a - * 409 error can occur if someone is already in the group chat with the same nickname. - */ - public void join(String nickname, String password) throws XMPPException { - join(nickname, password, null, SmackConfiguration.getPacketReplyTimeout()); - } - - /** - * Joins the chat room using the specified nickname and password. If already joined - * using another nickname, this method will first leave the room and then - * re-join using the new nickname.<p> - * - * To control the amount of history to receive while joining a room you will need to provide - * a configured DiscussionHistory object.<p> - * - * A password is required when joining password protected rooms. If the room does - * not require a password there is no need to provide one.<p> - * - * If the room does not already exist when the user seeks to enter it, the server will - * decide to create a new room or not. - * - * @param nickname the nickname to use. - * @param password the password to use. - * @param history the amount of discussion history to receive while joining a room. - * @param timeout the amount of time to wait for a reply from the MUC service(in milleseconds). - * @throws XMPPException if an error occurs joining the room. In particular, a - * 401 error can occur if no password was provided and one is required; or a - * 403 error can occur if the user is banned; or a - * 404 error can occur if the room does not exist or is locked; or a - * 407 error can occur if user is not on the member list; or a - * 409 error can occur if someone is already in the group chat with the same nickname. - */ - public synchronized void join( - String nickname, - String password, - DiscussionHistory history, - long timeout) - throws XMPPException { - if (nickname == null || nickname.equals("")) { - throw new IllegalArgumentException("Nickname must not be null or blank."); - } - // If we've already joined the room, leave it before joining under a new - // nickname. - if (joined) { - leave(); - } - // We join a room by sending a presence packet where the "to" - // field is in the form "roomName@service/nickname" - Presence joinPresence = new Presence(Presence.Type.AVAILABLE); - joinPresence.setTo(room + "/" + nickname); - - // Indicate the the client supports MUC - MUCInitialPresence mucInitialPresence = new MUCInitialPresence(); - if (password != null) { - mucInitialPresence.setPassword(password); - } - if (history != null) { - mucInitialPresence.setHistory(history.getMUCHistory()); - } - joinPresence.addExtension(mucInitialPresence); - - // Wait for a presence packet back from the server. - PacketFilter responseFilter = - new AndFilter( - new FromMatchesFilter(room + "/" + nickname), - new PacketTypeFilter(Presence.class)); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send join packet. - connection.sendPacket(joinPresence); - // Wait up to a certain number of seconds for a reply. - Presence presence = (Presence) response.nextResult(timeout); - // Stop queuing results - response.cancel(); - - if (presence == null) { - throw new XMPPException("No response from server."); - } - else if (presence.getError() != null) { - throw new XMPPException(presence.getError()); - } - this.nickname = nickname; - joined = true; - userHasJoined(); - } - - /** - * Returns true if currently in the multi user chat (after calling the {@link - * #join(String)} method). - * - * @return true if currently in the multi user chat room. - */ - public boolean isJoined() { - return joined; - } - - /** - * Leave the chat room. - */ - public synchronized void leave() { - // If not joined already, do nothing. - if (!joined) { - return; - } - // We leave a room by sending a presence packet where the "to" - // field is in the form "roomName@service/nickname" - Presence leavePresence = new Presence(Presence.Type.UNAVAILABLE); - leavePresence.setTo(room + "/" + nickname); - connection.sendPacket(leavePresence); - // Reset occupant information. - occupantsMap = new HashMap(); - nickname = null; - joined = false; - userHasLeft(); - } - - /** - * Returns the room's configuration form that the room's owner can use or <tt>null</tt> if - * no configuration is possible. The configuration form allows to set the room's language, - * enable logging, specify room's type, etc.. - * - * @return the Form that contains the fields to complete together with the instrucions or - * <tt>null</tt> if no configuration is possible. - * @throws XMPPException if an error occurs asking the configuration form for the room. - */ - public Form getConfigurationForm() throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.GET); - - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Request the configuration form to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - return Form.getFormFrom(answer); - } - - /** - * Sends the completed configuration form to the server. The room will be configured - * with the new settings defined in the form. If the form is empty then the server - * will create an instant room (will use default configuration). - * - * @param form the form with the new settings. - * @throws XMPPException if an error occurs setting the new rooms' configuration. - */ - public void sendConfigurationForm(Form form) throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - iq.addExtension(form.getDataFormToSend()); - - // Filter packets looking for an answer from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the completed configuration form to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - /** - * Returns the room's registration form that an unaffiliated user, can use to become a member - * of the room or <tt>null</tt> if no registration is possible. Some rooms may restrict the - * privilege to register members and allow only room admins to add new members.<p> - * - * If the user requesting registration requirements is not allowed to register with the room - * (e.g. because that privilege has been restricted), the room will return a "Not Allowed" - * error to the user (error code 405). - * - * @return the registration Form that contains the fields to complete together with the - * instrucions or <tt>null</tt> if no registration is possible. - * @throws XMPPException if an error occurs asking the registration form for the room or a - * 405 error if the user is not allowed to register with the room. - */ - public Form getRegistrationForm() throws XMPPException { - Registration reg = new Registration(); - reg.setType(IQ.Type.GET); - reg.setTo(room); - - PacketFilter filter = - new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - return Form.getFormFrom(result); - } - - /** - * Sends the completed registration form to the server. After the user successfully submits - * the form, the room may queue the request for review by the room admins or may immediately - * add the user to the member list by changing the user's affiliation from "none" to "member.<p> - * - * If the desired room nickname is already reserved for that room, the room will return a - * "Conflict" error to the user (error code 409). If the room does not support registration, - * it will return a "Service Unavailable" error to the user (error code 503). - * - * @param form the completed registration form. - * @throws XMPPException if an error occurs submitting the registration form. In particular, a - * 409 error can occur if the desired room nickname is already reserved for that room; - * or a 503 error can occur if the room does not support registration. - */ - public void sendRegistrationForm(Form form) throws XMPPException { - Registration reg = new Registration(); - reg.setType(IQ.Type.SET); - reg.setTo(room); - reg.addExtension(form.getDataFormToSend()); - - PacketFilter filter = - new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); - PacketCollector collector = connection.createPacketCollector(filter); - connection.sendPacket(reg); - IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - collector.cancel(); - if (result == null) { - throw new XMPPException("No response from server."); - } - else if (result.getType() == IQ.Type.ERROR) { - throw new XMPPException(result.getError()); - } - } - - /** - * Sends a request to the server to destroy the room. The sender of the request - * should be the room's owner. If the sender of the destroy request is not the room's owner - * then the server will answer a "Forbidden" error (403). - * - * @param reason the reason for the room destruction. - * @param alternateJID the JID of an alternate location. - * @throws XMPPException if an error occurs while trying to destroy the room. - * An error can occur which will be wrapped by an XMPPException -- - * XMPP error code 403. The error code can be used to present more - * appropiate error messages to end-users. - */ - public void destroy(String reason, String alternateJID) throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - - // Create the reason for the room destruction - MUCOwner.Destroy destroy = new MUCOwner.Destroy(); - destroy.setReason(reason); - destroy.setJid(alternateJID); - iq.setDestroy(destroy); - - // Wait for a presence packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the room destruction request. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - // Reset occupant information. - occupantsMap = new HashMap(); - nickname = null; - joined = false; - userHasLeft(); - } - - /** - * Invites another user to the room in which one is an occupant. The invitation - * will be sent to the room which in turn will forward the invitation to the invitee.<p> - * - * If the room is password-protected, the invitee will receive a password to use to join - * the room. If the room is members-only, the the invitee may be added to the member list. - * - * @param user the user to invite to the room.(e.g. hecate@shakespeare.lit) - * @param reason the reason why the user is being invited. - */ - public void invite(String user, String reason) { - invite(new Message(), user, reason); - } - - /** - * Invites another user to the room in which one is an occupant using a given Message. The invitation - * will be sent to the room which in turn will forward the invitation to the invitee.<p> - * - * If the room is password-protected, the invitee will receive a password to use to join - * the room. If the room is members-only, the the invitee may be added to the member list. - * - * @param message the message to use for sending the invitation. - * @param user the user to invite to the room.(e.g. hecate@shakespeare.lit) - * @param reason the reason why the user is being invited. - */ - public void invite(Message message, String user, String reason) { - // TODO listen for 404 error code when inviter supplies a non-existent JID - message.setTo(room); - - // Create the MUCUser packet that will include the invitation - MUCUser mucUser = new MUCUser(); - MUCUser.Invite invite = new MUCUser.Invite(); - invite.setTo(user); - invite.setReason(reason); - mucUser.setInvite(invite); - // Add the MUCUser packet that includes the invitation to the message - message.addExtension(mucUser); - - connection.sendPacket(message); - } - - /** - * Informs the sender of an invitation that the invitee declines the invitation. The rejection - * will be sent to the room which in turn will forward the rejection to the inviter. - * - * @param conn the connection to use for sending the rejection. - * @param room the room that sent the original invitation. - * @param inviter the inviter of the declined invitation. - * @param reason the reason why the invitee is declining the invitation. - */ - public static void decline(XMPPConnection conn, String room, String inviter, String reason) { - Message message = new Message(room); - - // Create the MUCUser packet that will include the rejection - MUCUser mucUser = new MUCUser(); - MUCUser.Decline decline = new MUCUser.Decline(); - decline.setTo(inviter); - decline.setReason(reason); - mucUser.setDecline(decline); - // Add the MUCUser packet that includes the rejection - message.addExtension(mucUser); - - conn.sendPacket(message); - } - - /** - * Adds a listener to invitation notifications. The listener will be fired anytime - * an invitation is received. - * - * @param conn the connection where the listener will be applied. - * @param listener an invitation listener. - */ - public static void addInvitationListener(XMPPConnection conn, InvitationListener listener) { - InvitationsMonitor.getInvitationsMonitor(conn).addInvitationListener(listener); - } - - /** - * Removes a listener to invitation notifications. The listener will be fired anytime - * an invitation is received. - * - * @param conn the connection where the listener was applied. - * @param listener an invitation listener. - */ - public static void removeInvitationListener(XMPPConnection conn, InvitationListener listener) { - InvitationsMonitor.getInvitationsMonitor(conn).removeInvitationListener(listener); - } - - /** - * Adds a listener to invitation rejections notifications. The listener will be fired anytime - * an invitation is declined. - * - * @param listener an invitation rejection listener. - */ - public void addInvitationRejectionListener(InvitationRejectionListener listener) { - synchronized (invitationRejectionListeners) { - if (!invitationRejectionListeners.contains(listener)) { - invitationRejectionListeners.add(listener); - } - } - } - - /** - * Removes a listener from invitation rejections notifications. The listener will be fired - * anytime an invitation is declined. - * - * @param listener an invitation rejection listener. - */ - public void removeInvitationRejectionListener(InvitationRejectionListener listener) { - synchronized (invitationRejectionListeners) { - invitationRejectionListeners.remove(listener); - } - } - - /** - * Fires invitation rejection listeners. - */ - private void fireInvitationRejectionListeners(String invitee, String reason) { - InvitationRejectionListener[] listeners = null; - synchronized (invitationRejectionListeners) { - listeners = new InvitationRejectionListener[invitationRejectionListeners.size()]; - invitationRejectionListeners.toArray(listeners); - } - for (int i = 0; i < listeners.length; i++) { - listeners[i].invitationDeclined(invitee, reason); - } - } - - /** - * Adds a listener to subject change notifications. The listener will be fired anytime - * the room's subject changes. - * - * @param listener a subject updated listener. - */ - public void addSubjectUpdatedListener(SubjectUpdatedListener listener) { - synchronized (subjectUpdatedListeners) { - if (!subjectUpdatedListeners.contains(listener)) { - subjectUpdatedListeners.add(listener); - } - } - } - - /** - * Removes a listener from subject change notifications. The listener will be fired - * anytime the room's subject changes. - * - * @param listener a subject updated listener. - */ - public void removeSubjectUpdatedListener(SubjectUpdatedListener listener) { - synchronized (subjectUpdatedListeners) { - subjectUpdatedListeners.remove(listener); - } - } - - /** - * Fires subject updated listeners. - */ - private void fireSubjectUpdatedListeners(String subject, String from) { - SubjectUpdatedListener[] listeners = null; - synchronized (subjectUpdatedListeners) { - listeners = new SubjectUpdatedListener[subjectUpdatedListeners.size()]; - subjectUpdatedListeners.toArray(listeners); - } - for (int i = 0; i < listeners.length; i++) { - listeners[i].subjectUpdated(subject, from); - } - } - - /** - * Returns the last known room's subject or <tt>null</tt> if the user hasn't joined the room - * or the room does not have a subject yet. In case the room has a subject, as soon as the - * user joins the room a message with the current room's subject will be received.<p> - * - * To be notified every time the room's subject change you should add a listener - * to this room. {@link #addSubjectUpdatedListener(SubjectUpdatedListener)}<p> - * - * To change the room's subject use {@link #changeSubject(String)}. - * - * @return the room's subject or <tt>null</tt> if the user hasn't joined the room or the - * room does not have a subject yet. - */ - public String getSubject() { - return subject; - } - - /** - * Returns the reserved room nickname for the user in the room. A user may have a reserved - * nickname, for example through explicit room registration or database integration. In such - * cases it may be desirable for the user to discover the reserved nickname before attempting - * to enter the room. - * - * @return the reserved room nickname or <tt>null</tt> if none. - */ - public String getReservedNickname() { - try { - DiscoverInfo result = - ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo( - room, - "x-roomuser-item"); - // Look for an Identity that holds the reserved nickname and return its name - for (Iterator identities = result.getIdentities(); identities.hasNext();) { - DiscoverInfo.Identity identity = (DiscoverInfo.Identity) identities.next(); - return identity.getName(); - } - // If no Identity was found then the user does not have a reserved room nickname - return null; - } - catch (XMPPException e) { - e.printStackTrace(); - return null; - } - } - - /** - * Returns the nickname that was used to join the room, or <tt>null</tt> if not - * currently joined. - * - * @return the nickname currently being used. - */ - public String getNickname() { - return nickname; - } - - /** - * Changes the occupant's nickname to a new nickname within the room. Each room occupant - * will receive two presence packets. One of type "unavailable" for the old nickname and one - * indicating availability for the new nickname. The unavailable presence will contain the new - * nickname and an appropriate status code (namely 303) as extended presence information. The - * status code 303 indicates that the occupant is changing his/her nickname. - * - * @param nickname the new nickname within the room. - * @throws XMPPException if the new nickname is already in use by another occupant. - */ - public void changeNickname(String nickname) throws XMPPException { - if (nickname == null || nickname.equals("")) { - throw new IllegalArgumentException("Nickname must not be null or blank."); - } - // Check that we already have joined the room before attempting to change the - // nickname. - if (!joined) { - throw new IllegalStateException("Must be logged into the room to change nickname."); - } - // We change the nickname by sending a presence packet where the "to" - // field is in the form "roomName@service/nickname" - // We don't have to signal the MUC support again - Presence joinPresence = new Presence(Presence.Type.AVAILABLE); - joinPresence.setTo(room + "/" + nickname); - - // Wait for a presence packet back from the server. - PacketFilter responseFilter = - new AndFilter( - new FromMatchesFilter(room + "/" + nickname), - new PacketTypeFilter(Presence.class)); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send join packet. - connection.sendPacket(joinPresence); - // Wait up to a certain number of seconds for a reply. - Presence presence = - (Presence) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (presence == null) { - throw new XMPPException("No response from server."); - } - else if (presence.getError() != null) { - throw new XMPPException(presence.getError()); - } - this.nickname = nickname; - } - - /** - * Changes the occupant's availability status within the room. The presence type - * will remain available but with a new status that describes the presence update and - * a new presence mode (e.g. Extended away). - * - * @param status a text message describing the presence update. - * @param mode the mode type for the presence update. - */ - public void changeAvailabilityStatus(String status, Presence.Mode mode) { - if (nickname == null || nickname.equals("")) { - throw new IllegalArgumentException("Nickname must not be null or blank."); - } - // Check that we already have joined the room before attempting to change the - // availability status. - if (!joined) { - throw new IllegalStateException( - "Must be logged into the room to change the " + "availability status."); - } - // We change the availability status by sending a presence packet to the room with the - // new presence status and mode - Presence joinPresence = new Presence(Presence.Type.AVAILABLE); - joinPresence.setStatus(status); - joinPresence.setMode(mode); - joinPresence.setTo(room + "/" + nickname); - - // Send join packet. - connection.sendPacket(joinPresence); - } - - /** - * Kicks a visitor or participant from the room. The kicked occupant will receive a presence - * of type "unavailable" including a status code 307 and optionally along with the reason - * (if provided) and the bare JID of the user who initiated the kick. After the occupant - * was kicked from the room, the rest of the occupants will receive a presence of type - * "unavailable". The presence will include a status code 307 which means that the occupant - * was kicked from the room. - * - * @param nickname the nickname of the participant or visitor to kick from the room - * (e.g. "john"). - * @param reason the reason why the participant or visitor is being kicked from the room. - * @throws XMPPException if an error occurs kicking the occupant. In particular, a - * 405 error can occur if a moderator or a user with an affiliation of "owner" or "admin" - * was intended to be kicked (i.e. Not Allowed error); or a - * 403 error can occur if the occupant that intended to kick another occupant does - * not have kicking privileges (i.e. Forbidden error); or a - * 400 error can occur if the provided nickname is not present in the room. - */ - public void kickParticipant(String nickname, String reason) throws XMPPException { - changeRole(nickname, "none", reason); - } - - /** - * Grants voice to visitors in the room. In a moderated room, a moderator may want to manage - * who does and does not have "voice" in the room. To have voice means that a room occupant - * is able to send messages to the room occupants. - * - * @param nicknames the nicknames of the visitors to grant voice in the room (e.g. "john"). - * @throws XMPPException if an error occurs granting voice to a visitor. In particular, a - * 403 error can occur if the occupant that intended to grant voice is not - * a moderator in this room (i.e. Forbidden error); or a - * 400 error can occur if the provided nickname is not present in the room. - */ - public void grantVoice(Collection nicknames) throws XMPPException { - changeRole(nicknames, "participant"); - } - - /** - * Grants voice to a visitor in the room. In a moderated room, a moderator may want to manage - * who does and does not have "voice" in the room. To have voice means that a room occupant - * is able to send messages to the room occupants. - * - * @param nickname the nickname of the visitor to grant voice in the room (e.g. "john"). - * @throws XMPPException if an error occurs granting voice to a visitor. In particular, a - * 403 error can occur if the occupant that intended to grant voice is not - * a moderator in this room (i.e. Forbidden error); or a - * 400 error can occur if the provided nickname is not present in the room. - */ - public void grantVoice(String nickname) throws XMPPException { - changeRole(nickname, "participant", null); - } - - /** - * Revokes voice from participants in the room. In a moderated room, a moderator may want to - * revoke an occupant's privileges to speak. To have voice means that a room occupant - * is able to send messages to the room occupants. - * - * @param nicknames the nicknames of the participants to revoke voice (e.g. "john"). - * @throws XMPPException if an error occurs revoking voice from a participant. In particular, a - * 405 error can occur if a moderator or a user with an affiliation of "owner" or "admin" - * was tried to revoke his voice (i.e. Not Allowed error); or a - * 400 error can occur if the provided nickname is not present in the room. - */ - public void revokeVoice(Collection nicknames) throws XMPPException { - changeRole(nicknames, "visitor"); - } - - /** - * Revokes voice from a participant in the room. In a moderated room, a moderator may want to - * revoke an occupant's privileges to speak. To have voice means that a room occupant - * is able to send messages to the room occupants. - * - * @param nickname the nickname of the participant to revoke voice (e.g. "john"). - * @throws XMPPException if an error occurs revoking voice from a participant. In particular, a - * 405 error can occur if a moderator or a user with an affiliation of "owner" or "admin" - * was tried to revoke his voice (i.e. Not Allowed error); or a - * 400 error can occur if the provided nickname is not present in the room. - */ - public void revokeVoice(String nickname) throws XMPPException { - changeRole(nickname, "visitor", null); - } - - /** - * Bans users from the room. An admin or owner of the room can ban users from a room. This - * means that the banned user will no longer be able to join the room unless the ban has been - * removed. If the banned user was present in the room then he/she will be removed from the - * room and notified that he/she was banned along with the reason (if provided) and the bare - * XMPP user ID of the user who initiated the ban. - * - * @param jids the bare XMPP user IDs of the users to ban. - * @throws XMPPException if an error occurs banning a user. In particular, a - * 405 error can occur if a moderator or a user with an affiliation of "owner" or "admin" - * was tried to be banned (i.e. Not Allowed error). - */ - public void banUsers(Collection jids) throws XMPPException { - changeAffiliationByAdmin(jids, "outcast"); - } - - /** - * Bans a user from the room. An admin or owner of the room can ban users from a room. This - * means that the banned user will no longer be able to join the room unless the ban has been - * removed. If the banned user was present in the room then he/she will be removed from the - * room and notified that he/she was banned along with the reason (if provided) and the bare - * XMPP user ID of the user who initiated the ban. - * - * @param jid the bare XMPP user ID of the user to ban (e.g. "user@host.org"). - * @param reason the reason why the user was banned. - * @throws XMPPException if an error occurs banning a user. In particular, a - * 405 error can occur if a moderator or a user with an affiliation of "owner" or "admin" - * was tried to be banned (i.e. Not Allowed error). - */ - public void banUser(String jid, String reason) throws XMPPException { - changeAffiliationByAdmin(jid, "outcast", reason); - } - - /** - * Grants membership to other users. Only administrators are able to grant membership. A user - * that becomes a room member will be able to enter a room of type Members-Only (i.e. a room - * that a user cannot enter without being on the member list). - * - * @param jids the XMPP user IDs of the users to grant membership. - * @throws XMPPException if an error occurs granting membership to a user. - */ - public void grantMembership(Collection jids) throws XMPPException { - changeAffiliationByAdmin(jids, "member"); - } - - /** - * Grants membership to a user. Only administrators are able to grant membership. A user - * that becomes a room member will be able to enter a room of type Members-Only (i.e. a room - * that a user cannot enter without being on the member list). - * - * @param jid the XMPP user ID of the user to grant membership (e.g. "user@host.org"). - * @throws XMPPException if an error occurs granting membership to a user. - */ - public void grantMembership(String jid) throws XMPPException { - changeAffiliationByAdmin(jid, "member", null); - } - - /** - * Revokes users' membership. Only administrators are able to revoke membership. A user - * that becomes a room member will be able to enter a room of type Members-Only (i.e. a room - * that a user cannot enter without being on the member list). If the user is in the room and - * the room is of type members-only then the user will be removed from the room. - * - * @param jids the bare XMPP user IDs of the users to revoke membership. - * @throws XMPPException if an error occurs revoking membership to a user. - */ - public void revokeMembership(Collection jids) throws XMPPException { - changeAffiliationByAdmin(jids, "none"); - } - - /** - * Revokes a user's membership. Only administrators are able to revoke membership. A user - * that becomes a room member will be able to enter a room of type Members-Only (i.e. a room - * that a user cannot enter without being on the member list). If the user is in the room and - * the room is of type members-only then the user will be removed from the room. - * - * @param jid the bare XMPP user ID of the user to revoke membership (e.g. "user@host.org"). - * @throws XMPPException if an error occurs revoking membership to a user. - */ - public void revokeMembership(String jid) throws XMPPException { - changeAffiliationByAdmin(jid, "none", null); - } - - /** - * Grants moderator privileges to participants or visitors. Room administrators may grant - * moderator privileges. A moderator is allowed to kick users, grant and revoke voice, invite - * other users, modify room's subject plus all the partcipants privileges. - * - * @param nicknames the nicknames of the occupants to grant moderator privileges. - * @throws XMPPException if an error occurs granting moderator privileges to a user. - */ - public void grantModerator(Collection nicknames) throws XMPPException { - changeRole(nicknames, "moderator"); - } - - /** - * Grants moderator privileges to a participant or visitor. Room administrators may grant - * moderator privileges. A moderator is allowed to kick users, grant and revoke voice, invite - * other users, modify room's subject plus all the partcipants privileges. - * - * @param nickname the nickname of the occupant to grant moderator privileges. - * @throws XMPPException if an error occurs granting moderator privileges to a user. - */ - public void grantModerator(String nickname) throws XMPPException { - changeRole(nickname, "moderator", null); - } - - /** - * Revokes moderator privileges from other users. The occupant that loses moderator - * privileges will become a participant. Room administrators may revoke moderator privileges - * only to occupants whose affiliation is member or none. This means that an administrator is - * not allowed to revoke moderator privileges from other room administrators or owners. - * - * @param nicknames the nicknames of the occupants to revoke moderator privileges. - * @throws XMPPException if an error occurs revoking moderator privileges from a user. - */ - public void revokeModerator(Collection nicknames) throws XMPPException { - changeRole(nicknames, "participant"); - } - - /** - * Revokes moderator privileges from another user. The occupant that loses moderator - * privileges will become a participant. Room administrators may revoke moderator privileges - * only to occupants whose affiliation is member or none. This means that an administrator is - * not allowed to revoke moderator privileges from other room administrators or owners. - * - * @param nickname the nickname of the occupant to revoke moderator privileges. - * @throws XMPPException if an error occurs revoking moderator privileges from a user. - */ - public void revokeModerator(String nickname) throws XMPPException { - changeRole(nickname, "participant", null); - } - - /** - * Grants ownership privileges to other users. Room owners may grant ownership privileges. - * Some room implementations will not allow to grant ownership privileges to other users. - * An owner is allowed to change defining room features as well as perform all administrative - * functions. - * - * @param jids the collection of bare XMPP user IDs of the users to grant ownership. - * @throws XMPPException if an error occurs granting ownership privileges to a user. - */ - public void grantOwnership(Collection jids) throws XMPPException { - changeAffiliationByOwner(jids, "owner"); - } - - /** - * Grants ownership privileges to another user. Room owners may grant ownership privileges. - * Some room implementations will not allow to grant ownership privileges to other users. - * An owner is allowed to change defining room features as well as perform all administrative - * functions. - * - * @param jid the bare XMPP user ID of the user to grant ownership (e.g. "user@host.org"). - * @throws XMPPException if an error occurs granting ownership privileges to a user. - */ - public void grantOwnership(String jid) throws XMPPException { - changeAffiliationByOwner(jid, "owner"); - } - - /** - * Revokes ownership privileges from other users. The occupant that loses ownership - * privileges will become an administrator. Room owners may revoke ownership privileges. - * Some room implementations will not allow to grant ownership privileges to other users. - * - * @param jids the bare XMPP user IDs of the users to revoke ownership. - * @throws XMPPException if an error occurs revoking ownership privileges from a user. - */ - public void revokeOwnership(Collection jids) throws XMPPException { - changeAffiliationByOwner(jids, "admin"); - } - - /** - * Revokes ownership privileges from another user. The occupant that loses ownership - * privileges will become an administrator. Room owners may revoke ownership privileges. - * Some room implementations will not allow to grant ownership privileges to other users. - * - * @param jid the bare XMPP user ID of the user to revoke ownership (e.g. "user@host.org"). - * @throws XMPPException if an error occurs revoking ownership privileges from a user. - */ - public void revokeOwnership(String jid) throws XMPPException { - changeAffiliationByOwner(jid, "admin"); - } - - /** - * Grants administrator privileges to other users. Room owners may grant administrator - * privileges to a member or unaffiliated user. An administrator is allowed to perform - * administrative functions such as banning users and edit moderator list. - * - * @param jids the bare XMPP user IDs of the users to grant administrator privileges. - * @throws XMPPException if an error occurs granting administrator privileges to a user. - */ - public void grantAdmin(Collection jids) throws XMPPException { - changeAffiliationByOwner(jids, "admin"); - } - - /** - * Grants administrator privileges to another user. Room owners may grant administrator - * privileges to a member or unaffiliated user. An administrator is allowed to perform - * administrative functions such as banning users and edit moderator list. - * - * @param jid the bare XMPP user ID of the user to grant administrator privileges - * (e.g. "user@host.org"). - * @throws XMPPException if an error occurs granting administrator privileges to a user. - */ - public void grantAdmin(String jid) throws XMPPException { - changeAffiliationByOwner(jid, "admin"); - } - - /** - * Revokes administrator privileges from users. The occupant that loses administrator - * privileges will become a member. Room owners may revoke administrator privileges from - * a member or unaffiliated user. - * - * @param jids the bare XMPP user IDs of the user to revoke administrator privileges. - * @throws XMPPException if an error occurs revoking administrator privileges from a user. - */ - public void revokeAdmin(Collection jids) throws XMPPException { - changeAffiliationByOwner(jids, "member"); - } - - /** - * Revokes administrator privileges from a user. The occupant that loses administrator - * privileges will become a member. Room owners may revoke administrator privileges from - * a member or unaffiliated user. - * - * @param jid the bare XMPP user ID of the user to revoke administrator privileges - * (e.g. "user@host.org"). - * @throws XMPPException if an error occurs revoking administrator privileges from a user. - */ - public void revokeAdmin(String jid) throws XMPPException { - changeAffiliationByOwner(jid, "member"); - } - - private void changeAffiliationByOwner(String jid, String affiliation) throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - // Set the new affiliation. - MUCOwner.Item item = new MUCOwner.Item(affiliation); - item.setJid(jid); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - private void changeAffiliationByOwner(Collection jids, String affiliation) - throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - for (Iterator it=jids.iterator(); it.hasNext();) { - // Set the new affiliation. - MUCOwner.Item item = new MUCOwner.Item(affiliation); - item.setJid((String) it.next()); - iq.addItem(item); - } - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - private void changeAffiliationByAdmin(String jid, String affiliation, String reason) - throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - // Set the new affiliation. - MUCAdmin.Item item = new MUCAdmin.Item(affiliation, null); - item.setJid(jid); - item.setReason(reason); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - private void changeAffiliationByAdmin(Collection jids, String affiliation) - throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - for (Iterator it=jids.iterator(); it.hasNext();) { - // Set the new affiliation. - MUCAdmin.Item item = new MUCAdmin.Item(affiliation, null); - item.setJid((String) it.next()); - iq.addItem(item); - } - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - private void changeRole(String nickname, String role, String reason) throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - // Set the new role. - MUCAdmin.Item item = new MUCAdmin.Item(null, role); - item.setNick(nickname); - item.setReason(reason); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - private void changeRole(Collection nicknames, String role) throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.SET); - for (Iterator it=nicknames.iterator(); it.hasNext();) { - // Set the new role. - MUCAdmin.Item item = new MUCAdmin.Item(null, role); - item.setNick((String) it.next()); - iq.addItem(item); - } - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the change request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - /** - * Returns the number of occupants in the group chat.<p> - * - * Note: this value will only be accurate after joining the group chat, and - * may fluctuate over time. If you query this value directly after joining the - * group chat it may not be accurate, as it takes a certain amount of time for - * the server to send all presence packets to this client. - * - * @return the number of occupants in the group chat. - */ - public int getOccupantsCount() { - synchronized (occupantsMap) { - return occupantsMap.size(); - } - } - - /** - * Returns an Iterator (of Strings) for the list of fully qualified occupants - * in the group chat. For example, "conference@chat.jivesoftware.com/SomeUser". - * Typically, a client would only display the nickname of the occupant. To - * get the nickname from the fully qualified name, use the - * {@link org.jivesoftware.smack.util.StringUtils#parseResource(String)} method. - * Note: this value will only be accurate after joining the group chat, and may - * fluctuate over time. - * - * @return an Iterator for the occupants in the group chat. - */ - public Iterator getOccupants() { - synchronized (occupantsMap) { - return Collections.unmodifiableList(new ArrayList(occupantsMap.keySet())).iterator(); - } - } - - /** - * Returns the presence info for a particular user, or <tt>null</tt> if the user - * is not in the room.<p> - * - * @param user the room occupant to search for his presence. The format of user must - * be: roomName@service/nickname (e.g. darkcave@macbeth.shakespeare.lit/thirdwitch). - * @return the occupant's current presence, or <tt>null</tt> if the user is unavailable - * or if no presence information is available. - */ - public Presence getOccupantPresence(String user) { - return (Presence) occupantsMap.get(user); - } - - /** - * Returns the Occupant information for a particular occupant, or <tt>null</tt> if the - * user is not in the room. The Occupant object may include information such as full - * JID of the user as well as the role and affiliation of the user in the room.<p> - * - * @param user the room occupant to search for his presence. The format of user must - * be: roomName@service/nickname (e.g. darkcave@macbeth.shakespeare.lit/thirdwitch). - * @return the Occupant or <tt>null</tt> if the user is unavailable (i.e. not in the room). - */ - public Occupant getOccupant(String user) { - Presence presence = (Presence) occupantsMap.get(user); - if (presence != null) { - return new Occupant(presence); - } - return null; - } - - /** - * Adds a packet listener that will be notified of any new Presence packets - * sent to the group chat. Using a listener is a suitable way to know when the list - * of occupants should be re-loaded due to any changes. - * - * @param listener a packet listener that will be notified of any presence packets - * sent to the group chat. - */ - public void addParticipantListener(PacketListener listener) { - connection.addPacketListener(listener, presenceFilter); - connectionListeners.add(listener); - } - - /** - * Remoces a packet listener that was being notified of any new Presence packets - * sent to the group chat. - * - * @param listener a packet listener that was being notified of any presence packets - * sent to the group chat. - */ - public void removeParticipantListener(PacketListener listener) { - connection.removePacketListener(listener); - connectionListeners.remove(listener); - } - - /** - * Returns a collection of <code>Affiliate</code> with the room owners. - * - * @return a collection of <code>Affiliate</code> with the room owners. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getOwners() throws XMPPException { - return getAffiliatesByOwner("owner"); - } - - /** - * Returns a collection of <code>Affiliate</code> with the room administrators. - * - * @return a collection of <code>Affiliate</code> with the room administrators. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getAdmins() throws XMPPException { - return getAffiliatesByOwner("admin"); - } - - /** - * Returns a collection of <code>Affiliate</code> with the room members. - * - * @return a collection of <code>Affiliate</code> with the room members. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getMembers() throws XMPPException { - return getAffiliatesByAdmin("member"); - } - - /** - * Returns a collection of <code>Affiliate</code> with the room outcasts. - * - * @return a collection of <code>Affiliate</code> with the room outcasts. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getOutcasts() throws XMPPException { - return getAffiliatesByAdmin("outcast"); - } - - /** - * Returns a collection of <code>Affiliate</code> that have the specified room affiliation - * sending a request in the owner namespace. - * - * @param affiliation the affiliation of the users in the room. - * @return a collection of <code>Affiliate</code> that have the specified room affiliation. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - private Collection getAffiliatesByOwner(String affiliation) throws XMPPException { - MUCOwner iq = new MUCOwner(); - iq.setTo(room); - iq.setType(IQ.Type.GET); - // Set the specified affiliation. This may request the list of owners/admins/members/outcasts. - MUCOwner.Item item = new MUCOwner.Item(affiliation); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - MUCOwner answer = (MUCOwner) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - // Get the list of affiliates from the server's answer - List affiliates = new ArrayList(); - for (Iterator it = answer.getItems(); it.hasNext();) { - affiliates.add(new Affiliate((MUCOwner.Item) it.next())); - } - return affiliates; - } - - /** - * Returns a collection of <code>Affiliate</code> that have the specified room affiliation - * sending a request in the admin namespace. - * - * @param affiliation the affiliation of the users in the room. - * @return a collection of <code>Affiliate</code> that have the specified room affiliation. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - private Collection getAffiliatesByAdmin(String affiliation) throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.GET); - // Set the specified affiliation. This may request the list of owners/admins/members/outcasts. - MUCAdmin.Item item = new MUCAdmin.Item(affiliation, null); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - MUCAdmin answer = (MUCAdmin) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - // Get the list of affiliates from the server's answer - List affiliates = new ArrayList(); - for (Iterator it = answer.getItems(); it.hasNext();) { - affiliates.add(new Affiliate((MUCAdmin.Item) it.next())); - } - return affiliates; - } - - /** - * Returns a collection of <code>Occupant</code> with the room moderators. - * - * @return a collection of <code>Occupant</code> with the room moderators. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getModerators() throws XMPPException { - return getOccupants("moderator"); - } - - /** - * Returns a collection of <code>Occupant</code> with the room participants. - * - * @return a collection of <code>Occupant</code> with the room participants. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - public Collection getParticipants() throws XMPPException { - return getOccupants("participant"); - } - - /** - * Returns a collection of <code>Occupant</code> that have the specified room role. - * - * @param role the role of the occupant in the room. - * @return a collection of <code>Occupant</code> that have the specified room role. - * @throws XMPPException if an error occured while performing the request to the server or you - * don't have enough privileges to get this information. - */ - private Collection getOccupants(String role) throws XMPPException { - MUCAdmin iq = new MUCAdmin(); - iq.setTo(room); - iq.setType(IQ.Type.GET); - // Set the specified role. This may request the list of moderators/participants. - MUCAdmin.Item item = new MUCAdmin.Item(null, role); - iq.addItem(item); - - // Wait for a response packet back from the server. - PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID()); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send the request to the server. - connection.sendPacket(iq); - // Wait up to a certain number of seconds for a reply. - MUCAdmin answer = (MUCAdmin) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - // Get the list of participants from the server's answer - List participants = new ArrayList(); - for (Iterator it = answer.getItems(); it.hasNext();) { - participants.add(new Occupant((MUCAdmin.Item) it.next())); - } - return participants; - } - - /** - * Sends a message to the chat room. - * - * @param text the text of the message to send. - * @throws XMPPException if sending the message fails. - */ - public void sendMessage(String text) throws XMPPException { - Message message = new Message(room, Message.Type.GROUP_CHAT); - message.setBody(text); - connection.sendPacket(message); - } - - /** - * Returns a new Chat for sending private messages to a given room occupant. - * The Chat's occupant address is the room's JID (i.e. roomName@service/nick). The server - * service will change the 'from' address to the sender's room JID and delivering the message - * to the intended recipient's full JID. - * - * @param occupant occupant unique room JID (e.g. 'darkcave@macbeth.shakespeare.lit/Paul'). - * @return new Chat for sending private messages to a given room occupant. - */ - public Chat createPrivateChat(String occupant) { - return new Chat(connection, occupant); - } - - /** - * Creates a new Message to send to the chat room. - * - * @return a new Message addressed to the chat room. - */ - public Message createMessage() { - return new Message(room, Message.Type.GROUP_CHAT); - } - - /** - * Sends a Message to the chat room. - * - * @param message the message. - * @throws XMPPException if sending the message fails. - */ - public void sendMessage(Message message) throws XMPPException { - connection.sendPacket(message); - } - - /** - * Polls for and returns the next message, or <tt>null</tt> if there isn't - * a message immediately available. This method provides significantly different - * functionalty than the {@link #nextMessage()} method since it's non-blocking. - * In other words, the method call will always return immediately, whereas the - * nextMessage method will return only when a message is available (or after - * a specific timeout). - * - * @return the next message if one is immediately available and - * <tt>null</tt> otherwise. - */ - public Message pollMessage() { - return (Message) messageCollector.pollResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a message is available. - * - * @return the next message. - */ - public Message nextMessage() { - return (Message) messageCollector.nextResult(); - } - - /** - * Returns the next available message in the chat. The method call will block - * (not return) until a packet is available or the <tt>timeout</tt> has elapased. - * If the timeout elapses without a result, <tt>null</tt> will be returned. - * - * @param timeout the maximum amount of time to wait for the next message. - * @return the next message, or <tt>null</tt> if the timeout elapses without a - * message becoming available. - */ - public Message nextMessage(long timeout) { - return (Message) messageCollector.nextResult(timeout); - } - - /** - * Adds a packet listener that will be notified of any new messages in the - * group chat. Only "group chat" messages addressed to this group chat will - * be delivered to the listener. If you wish to listen for other packets - * that may be associated with this group chat, you should register a - * PacketListener directly with the XMPPConnection with the appropriate - * PacketListener. - * - * @param listener a packet listener. - */ - public void addMessageListener(PacketListener listener) { - connection.addPacketListener(listener, messageFilter); - connectionListeners.add(listener); - } - - /** - * Removes a packet listener that was being notified of any new messages in the - * multi user chat. Only "group chat" messages addressed to this multi user chat were - * being delivered to the listener. - * - * @param listener a packet listener. - */ - public void removeMessageListener(PacketListener listener) { - connection.removePacketListener(listener); - connectionListeners.remove(listener); - } - - /** - * Changes the subject within the room. As a default, only users with a role of "moderator" - * are allowed to change the subject in a room. Although some rooms may be configured to - * allow a mere participant or even a visitor to change the subject. - * - * @param subject the new room's subject to set. - * @throws XMPPException if someone without appropriate privileges attempts to change the - * room subject will throw an error with code 403 (i.e. Forbidden) - */ - public void changeSubject(final String subject) throws XMPPException { - Message message = new Message(room, Message.Type.GROUP_CHAT); - message.setSubject(subject); - // Wait for an error or confirmation message back from the server. - PacketFilter responseFilter = - new AndFilter( - new FromMatchesFilter(room), - new PacketTypeFilter(Message.class)); - responseFilter = new AndFilter(responseFilter, new PacketFilter() { - public boolean accept(Packet packet) { - Message msg = (Message) packet; - return subject.equals(msg.getSubject()); - } - }); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send change subject packet. - connection.sendPacket(message); - // Wait up to a certain number of seconds for a reply. - Message answer = - (Message) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - response.cancel(); - - if (answer == null) { - throw new XMPPException("No response from server."); - } - else if (answer.getError() != null) { - throw new XMPPException(answer.getError()); - } - } - - /** - * Notification message that the user has joined the room. - */ - private synchronized void userHasJoined() { - // Update the list of joined rooms through this connection - ArrayList rooms = (ArrayList)joinedRooms.get(connection); - if (rooms == null) { - rooms = new ArrayList(); - joinedRooms.put(connection, rooms); - } - rooms.add(room); - } - - /** - * Notification message that the user has left the room. - */ - private synchronized void userHasLeft() { - // Update the list of joined rooms through this connection - ArrayList rooms = (ArrayList)joinedRooms.get(connection); - if (rooms == null) { - return; - } - rooms.remove(room); - } - - /** - * Returns the MUCUser packet extension included in the packet or <tt>null</tt> if none. - * - * @param packet the packet that may include the MUCUser extension. - * @return the MUCUser found in the packet. - */ - private MUCUser getMUCUserExtension(Packet packet) { - if (packet != null) { - // Get the MUC User extension - return (MUCUser) packet.getExtension("x", "http://jabber.org/protocol/muc#user"); - } - return null; - } - - /** - * Adds a listener that will be notified of changes in your status in the room - * such as the user being kicked, banned, or granted admin permissions. - * - * @param listener a user status listener. - */ - public void addUserStatusListener(UserStatusListener listener) { - synchronized (userStatusListeners) { - if (!userStatusListeners.contains(listener)) { - userStatusListeners.add(listener); - } - } - } - - /** - * Removes a listener that was being notified of changes in your status in the room - * such as the user being kicked, banned, or granted admin permissions. - * - * @param listener a user status listener. - */ - public void removeUserStatusListener(UserStatusListener listener) { - synchronized (userStatusListeners) { - userStatusListeners.remove(listener); - } - } - - private void fireUserStatusListeners(String methodName, Object[] params) { - UserStatusListener[] listeners = null; - synchronized (userStatusListeners) { - listeners = new UserStatusListener[userStatusListeners.size()]; - userStatusListeners.toArray(listeners); - } - // Get the classes of the method parameters - Class[] paramClasses = new Class[params.length]; - for (int i = 0; i < params.length; i++) { - paramClasses[i] = params[i].getClass(); - } - try { - // Get the method to execute based on the requested methodName and parameters classes - Method method = UserStatusListener.class.getDeclaredMethod(methodName, paramClasses); - for (int i = 0; i < listeners.length; i++) { - method.invoke(listeners[i], params); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - /** - * Adds a listener that will be notified of changes in occupants status in the room - * such as the user being kicked, banned, or granted admin permissions. - * - * @param listener a participant status listener. - */ - public void addParticipantStatusListener(ParticipantStatusListener listener) { - synchronized (participantStatusListeners) { - if (!participantStatusListeners.contains(listener)) { - participantStatusListeners.add(listener); - } - } - } - - /** - * Removes a listener that was being notified of changes in occupants status in the room - * such as the user being kicked, banned, or granted admin permissions. - * - * @param listener a participant status listener. - */ - public void removeParticipantStatusListener(ParticipantStatusListener listener) { - synchronized (participantStatusListeners) { - participantStatusListeners.remove(listener); - } - } - - private void fireParticipantStatusListeners(String methodName, String param) { - ParticipantStatusListener[] listeners = null; - synchronized (participantStatusListeners) { - listeners = new ParticipantStatusListener[participantStatusListeners.size()]; - participantStatusListeners.toArray(listeners); - } - try { - // Get the method to execute based on the requested methodName and parameter - Method method = - ParticipantStatusListener.class.getDeclaredMethod( - methodName, - new Class[] { String.class }); - for (int i = 0; i < listeners.length; i++) { - method.invoke(listeners[i], new Object[] {param}); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - private void init() { - // Create a collector for incoming messages. - messageFilter = - new AndFilter( - new FromMatchesFilter(room), - new MessageTypeFilter(Message.Type.GROUP_CHAT)); - messageFilter = new AndFilter(messageFilter, new PacketFilter() { - public boolean accept(Packet packet) { - Message msg = (Message) packet; - return msg.getBody() != null; - } - }); - messageCollector = connection.createPacketCollector(messageFilter); - - // Create a listener for subject updates. - subjectFilter = - new AndFilter( - new FromMatchesFilter(room), - new MessageTypeFilter(Message.Type.GROUP_CHAT)); - subjectFilter = new AndFilter(subjectFilter, new PacketFilter() { - public boolean accept(Packet packet) { - Message msg = (Message) packet; - return msg.getSubject() != null; - } - }); - subjectListener = new PacketListener() { - public void processPacket(Packet packet) { - Message msg = (Message) packet; - // Update the room subject - subject = msg.getSubject(); - // Fire event for subject updated listeners - fireSubjectUpdatedListeners( - msg.getSubject(), - msg.getFrom()); - - } - }; - connection.addPacketListener(subjectListener, subjectFilter); - - // Create a listener for all presence updates. - presenceFilter = - new AndFilter(new FromMatchesFilter(room), new PacketTypeFilter(Presence.class)); - presenceListener = new PacketListener() { - public void processPacket(Packet packet) { - Presence presence = (Presence) packet; - String from = presence.getFrom(); - String myRoomJID = room + "/" + nickname; - boolean isUserStatusModification = presence.getFrom().equals(myRoomJID); - if (presence.getType() == Presence.Type.AVAILABLE) { - Presence oldPresence; - synchronized (occupantsMap) { - oldPresence = (Presence)occupantsMap.get(from); - occupantsMap.put(from, presence); - } - if (oldPresence != null) { - // Get the previous occupant's affiliation & role - MUCUser mucExtension = getMUCUserExtension(oldPresence); - String oldAffiliation = mucExtension.getItem().getAffiliation(); - String oldRole = mucExtension.getItem().getRole(); - // Get the new occupant's affiliation & role - mucExtension = getMUCUserExtension(presence); - String newAffiliation = mucExtension.getItem().getAffiliation(); - String newRole = mucExtension.getItem().getRole(); - // Fire role modification events - checkRoleModifications(oldRole, newRole, isUserStatusModification, from); - // Fire affiliation modification events - checkAffiliationModifications( - oldAffiliation, - newAffiliation, - isUserStatusModification, - from); - } - else { - // A new occupant has joined the room - if (!isUserStatusModification) { - fireParticipantStatusListeners("joined", from); - } - } - } - else if (presence.getType() == Presence.Type.UNAVAILABLE) { - synchronized (occupantsMap) { - occupantsMap.remove(from); - } - MUCUser mucUser = getMUCUserExtension(presence); - if (mucUser != null && mucUser.getStatus() != null) { - // Fire events according to the received presence code - checkPresenceCode( - mucUser.getStatus().getCode(), - presence.getFrom().equals(myRoomJID), - mucUser, - from); - } else { - // An occupant has left the room - if (!isUserStatusModification) { - fireParticipantStatusListeners("left", from); - } - } - } - } - }; - connection.addPacketListener(presenceListener, presenceFilter); - - // Listens for all messages that include a MUCUser extension and fire the invitation - // rejection listeners if the message includes an invitation rejection. - declinesFilter = new PacketExtensionFilter("x", "http://jabber.org/protocol/muc#user"); - declinesListener = new PacketListener() { - public void processPacket(Packet packet) { - // Get the MUC User extension - MUCUser mucUser = getMUCUserExtension(packet); - // Check if the MUCUser informs that the invitee has declined the invitation - if (mucUser.getDecline() != null) { - // Fire event for invitation rejection listeners - fireInvitationRejectionListeners( - mucUser.getDecline().getFrom(), - mucUser.getDecline().getReason()); - } - }; - }; - connection.addPacketListener(declinesListener, declinesFilter); - } - - /** - * Fires notification events if the role of a room occupant has changed. If the occupant that - * changed his role is your occupant then the <code>UserStatusListeners</code> added to this - * <code>MultiUserChat</code> will be fired. On the other hand, if the occupant that changed - * his role is not yours then the <code>ParticipantStatusListeners</code> added to this - * <code>MultiUserChat</code> will be fired. The following table shows the events that will - * be fired depending on the previous and new role of the occupant. - * - * <pre> - * <table border="1"> - * <tr><td><b>Old</b></td><td><b>New</b></td><td><b>Events</b></td></tr> - * - * <tr><td>None</td><td>Visitor</td><td>--</td></tr> - * <tr><td>Visitor</td><td>Participant</td><td>voiceGranted</td></tr> - * <tr><td>Participant</td><td>Moderator</td><td>moderatorGranted</td></tr> - * - * <tr><td>None</td><td>Participant</td><td>voiceGranted</td></tr> - * <tr><td>None</td><td>Moderator</td><td>voiceGranted + moderatorGranted</td></tr> - * <tr><td>Visitor</td><td>Moderator</td><td>voiceGranted + moderatorGranted</td></tr> - * - * <tr><td>Moderator</td><td>Participant</td><td>moderatorRevoked</td></tr> - * <tr><td>Participant</td><td>Visitor</td><td>voiceRevoked</td></tr> - * <tr><td>Visitor</td><td>None</td><td>kicked</td></tr> - * - * <tr><td>Moderator</td><td>Visitor</td><td>voiceRevoked + moderatorRevoked</td></tr> - * <tr><td>Moderator</td><td>None</td><td>kicked</td></tr> - * <tr><td>Participant</td><td>None</td><td>kicked</td></tr> - * </table> - * </pre> - * - * @param oldRole the previous role of the user in the room before receiving the new presence - * @param newRole the new role of the user in the room after receiving the new presence - * @param isUserModification whether the received presence is about your user in the room or not - * @param from the occupant whose role in the room has changed - * (e.g. room@conference.jabber.org/nick). - */ - private void checkRoleModifications( - String oldRole, - String newRole, - boolean isUserModification, - String from) { - // Voice was granted to a visitor - if (("visitor".equals(oldRole) || "none".equals(oldRole)) - && "participant".equals(newRole)) { - if (isUserModification) { - fireUserStatusListeners("voiceGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("voiceGranted", from); - } - } - // The participant's voice was revoked from the room - else if ( - "participant".equals(oldRole) - && ("visitor".equals(newRole) || "none".equals(newRole))) { - if (isUserModification) { - fireUserStatusListeners("voiceRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("voiceRevoked", from); - } - } - // Moderator privileges were granted to a participant - if (!"moderator".equals(oldRole) && "moderator".equals(newRole)) { - if ("visitor".equals(oldRole) || "none".equals(oldRole)) { - if (isUserModification) { - fireUserStatusListeners("voiceGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("voiceGranted", from); - } - } - if (isUserModification) { - fireUserStatusListeners("moderatorGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("moderatorGranted", from); - } - } - // Moderator privileges were revoked from a participant - else if ("moderator".equals(oldRole) && !"moderator".equals(newRole)) { - if ("visitor".equals(newRole) || "none".equals(newRole)) { - if (isUserModification) { - fireUserStatusListeners("voiceRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("voiceRevoked", from); - } - } - if (isUserModification) { - fireUserStatusListeners("moderatorRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("moderatorRevoked", from); - } - } - } - - /** - * Fires notification events if the affiliation of a room occupant has changed. If the - * occupant that changed his affiliation is your occupant then the - * <code>UserStatusListeners</code> added to this <code>MultiUserChat</code> will be fired. - * On the other hand, if the occupant that changed his affiliation is not yours then the - * <code>ParticipantStatusListeners</code> added to this <code>MultiUserChat</code> will be - * fired. The following table shows the events that will be fired depending on the previous - * and new affiliation of the occupant. - * - * <pre> - * <table border="1"> - * <tr><td><b>Old</b></td><td><b>New</b></td><td><b>Events</b></td></tr> - * - * <tr><td>None</td><td>Member</td><td>membershipGranted</td></tr> - * <tr><td>Member</td><td>Admin</td><td>membershipRevoked + adminGranted</td></tr> - * <tr><td>Admin</td><td>Owner</td><td>adminRevoked + ownershipGranted</td></tr> - * - * <tr><td>None</td><td>Admin</td><td>adminGranted</td></tr> - * <tr><td>None</td><td>Owner</td><td>ownershipGranted</td></tr> - * <tr><td>Member</td><td>Owner</td><td>membershipRevoked + ownershipGranted</td></tr> - * - * <tr><td>Owner</td><td>Admin</td><td>ownershipRevoked + adminGranted</td></tr> - * <tr><td>Admin</td><td>Member</td><td>adminRevoked + membershipGranted</td></tr> - * <tr><td>Member</td><td>None</td><td>membershipRevoked</td></tr> - * - * <tr><td>Owner</td><td>Member</td><td>ownershipRevoked + membershipGranted</td></tr> - * <tr><td>Owner</td><td>None</td><td>ownershipRevoked</td></tr> - * <tr><td>Admin</td><td>None</td><td>adminRevoked</td></tr> - * <tr><td><i>Anyone</i></td><td>Outcast</td><td>banned</td></tr> - * </table> - * </pre> - * - * @param oldAffiliation the previous affiliation of the user in the room before receiving the - * new presence - * @param newAffiliation the new affiliation of the user in the room after receiving the new - * presence - * @param isUserModification whether the received presence is about your user in the room or not - * @param from the occupant whose role in the room has changed - * (e.g. room@conference.jabber.org/nick). - */ - private void checkAffiliationModifications( - String oldAffiliation, - String newAffiliation, - boolean isUserModification, - String from) { - // First check for revoked affiliation and then for granted affiliations. The idea is to - // first fire the "revoke" events and then fire the "grant" events. - - // The user's ownership to the room was revoked - if ("owner".equals(oldAffiliation) && !"owner".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("ownershipRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("ownershipRevoked", from); - } - } - // The user's administrative privileges to the room were revoked - else if ("admin".equals(oldAffiliation) && !"admin".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("adminRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("adminRevoked", from); - } - } - // The user's membership to the room was revoked - else if ("member".equals(oldAffiliation) && !"member".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("membershipRevoked", new Object[] {}); - } - else { - fireParticipantStatusListeners("membershipRevoked", from); - } - } - - // The user was granted ownership to the room - if (!"owner".equals(oldAffiliation) && "owner".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("ownershipGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("ownershipGranted", from); - } - } - // The user was granted administrative privileges to the room - else if (!"admin".equals(oldAffiliation) && "admin".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("adminGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("adminGranted", from); - } - } - // The user was granted membership to the room - else if (!"member".equals(oldAffiliation) && "member".equals(newAffiliation)) { - if (isUserModification) { - fireUserStatusListeners("membershipGranted", new Object[] {}); - } - else { - fireParticipantStatusListeners("membershipGranted", from); - } - } - } - - /** - * Fires events according to the received presence code. - * - * @param code - * @param isUserModification - * @param mucUser - * @param from - */ - private void checkPresenceCode( - String code, - boolean isUserModification, - MUCUser mucUser, - String from) { - // Check if an occupant was kicked from the room - if ("307".equals(code)) { - // Check if this occupant was kicked - if (isUserModification) { - joined = false; - - fireUserStatusListeners( - "kicked", - new Object[] { mucUser.getItem().getActor(), mucUser.getItem().getReason()}); - - // Reset occupant information. - occupantsMap = new HashMap(); - nickname = null; - userHasLeft(); - } - else { - fireParticipantStatusListeners("kicked", from); - } - } - // A user was banned from the room - else if ("301".equals(code)) { - // Check if this occupant was banned - if (isUserModification) { - joined = false; - - fireUserStatusListeners( - "banned", - new Object[] { mucUser.getItem().getActor(), mucUser.getItem().getReason()}); - - // Reset occupant information. - occupantsMap = new HashMap(); - nickname = null; - userHasLeft(); - } - else { - // TODO Check if we have to send the JID of the banned user - fireParticipantStatusListeners("banned", from); - } - } - // A user's membership was revoked from the room - else if ("321".equals(code)) { - // Check if this occupant's membership was revoked - if (isUserModification) { - joined = false; - - fireUserStatusListeners("membershipRevoked", new Object[] {}); - - // Reset occupant information. - occupantsMap = new HashMap(); - nickname = null; - userHasLeft(); - } - } - // A occupant has changed his nickname in the room - else if ("303".equals(code)) { - fireParticipantStatusListeners("nicknameChanged", mucUser.getItem().getNick()); - } - } - - public void finalize() throws Throwable { - super.finalize(); - try { - if (connection != null) { - messageCollector.cancel(); - connection.removePacketListener(subjectListener); - connection.removePacketListener(presenceListener); - connection.removePacketListener(declinesListener); - // Remove all the PacketListeners added to the connection by this chat - for (Iterator it=connectionListeners.iterator(); it.hasNext();) { - connection.removePacketListener((PacketListener) it.next()); - } - } - } - catch (Exception e) {} - } - - /** - * An InvitationsMonitor monitors a given connection to detect room invitations. Every - * time the InvitationsMonitor detects a new invitation it will fire the invitation listeners. - * - * @author Gaston Dombiak - */ - private static class InvitationsMonitor implements ConnectionListener { - // We use a WeakHashMap so that the GC can collect the monitor when the - // connection is no longer referenced by any object. - private static Map monitors = new WeakHashMap(); - - private List invitationsListeners = new ArrayList(); - private XMPPConnection connection; - private PacketFilter invitationFilter; - private PacketListener invitationPacketListener; - - /** - * Returns a new or existing InvitationsMonitor for a given connection. - * - * @param conn the connection to monitor for room invitations. - * @return a new or existing InvitationsMonitor for a given connection. - */ - public static InvitationsMonitor getInvitationsMonitor(XMPPConnection conn) { - synchronized (monitors) { - if (!monitors.containsKey(conn)) { - // We need to use a WeakReference because the monitor references the - // connection and this could prevent the GC from collecting the monitor - // when no other object references the monitor - monitors.put(conn, new WeakReference(new InvitationsMonitor(conn))); - } - // Return the InvitationsMonitor that monitors the connection - return (InvitationsMonitor) ((WeakReference) monitors.get(conn)).get(); - } - } - - /** - * Creates a new InvitationsMonitor that will monitor invitations received - * on a given connection. - * - * @param connection the connection to monitor for possible room invitations - */ - private InvitationsMonitor(XMPPConnection connection) { - this.connection = connection; - } - - /** - * Adds a listener to invitation notifications. The listener will be fired anytime - * an invitation is received.<p> - * - * If this is the first monitor's listener then the monitor will be initialized in - * order to start listening to room invitations. - * - * @param listener an invitation listener. - */ - public void addInvitationListener(InvitationListener listener) { - synchronized (invitationsListeners) { - // If this is the first monitor's listener then initialize the listeners - // on the connection to detect room invitations - if (invitationsListeners.size() == 0) { - init(); - } - if (!invitationsListeners.contains(listener)) { - invitationsListeners.add(listener); - } - } - } - - /** - * Removes a listener to invitation notifications. The listener will be fired anytime - * an invitation is received.<p> - * - * If there are no more listeners to notifiy for room invitations then the monitor will - * be stopped. As soon as a new listener is added to the monitor, the monitor will resume - * monitoring the connection for new room invitations. - * - * @param listener an invitation listener. - */ - public void removeInvitationListener(InvitationListener listener) { - synchronized (invitationsListeners) { - if (invitationsListeners.contains(listener)) { - invitationsListeners.remove(listener); - } - // If there are no more listeners to notifiy for room invitations - // then proceed to cancel/release this monitor - if (invitationsListeners.size() == 0) { - cancel(); - } - } - } - - /** - * Fires invitation listeners. - */ - private void fireInvitationListeners(String room, String inviter, String reason, String password, - Message message) { - InvitationListener[] listeners = null; - synchronized (invitationsListeners) { - listeners = new InvitationListener[invitationsListeners.size()]; - invitationsListeners.toArray(listeners); - } - for (int i = 0; i < listeners.length; i++) { - listeners[i].invitationReceived(connection, room, inviter, reason, password, message); - } - } - - public void connectionClosed() { - cancel(); - } - - public void connectionClosedOnError(Exception e) { - cancel(); - } - - /** - * Initializes the listeners to detect received room invitations and to detect when the - * connection gets closed. As soon as a room invitation is received the invitations - * listeners will be fired. When the connection gets closed the monitor will remove - * his listeners on the connection. - */ - private void init() { - // Listens for all messages that include a MUCUser extension and fire the invitation - // listeners if the message includes an invitation. - invitationFilter = - new PacketExtensionFilter("x", "http://jabber.org/protocol/muc#user"); - invitationPacketListener = new PacketListener() { - public void processPacket(Packet packet) { - // Get the MUCUser extension - MUCUser mucUser = - (MUCUser) packet.getExtension("x", "http://jabber.org/protocol/muc#user"); - // Check if the MUCUser extension includes an invitation - if (mucUser.getInvite() != null) { - // Fire event for invitation listeners - fireInvitationListeners(packet.getFrom(), mucUser.getInvite().getFrom(), - mucUser.getInvite().getReason(), mucUser.getPassword(), (Message) packet); - } - }; - }; - connection.addPacketListener(invitationPacketListener, invitationFilter); - // Add a listener to detect when the connection gets closed in order to - // cancel/release this monitor - connection.addConnectionListener(this); - } - - /** - * Cancels all the listeners that this InvitationsMonitor has added to the connection. - */ - private void cancel() { - connection.removePacketListener(invitationPacketListener); - connection.removeConnectionListener(this); - } - - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/Occupant.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/Occupant.java deleted file mode 100644 index e82de84ad..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/Occupant.java +++ /dev/null @@ -1,104 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import org.jivesoftware.smackx.packet.MUCAdmin; -import org.jivesoftware.smackx.packet.MUCUser; -import org.jivesoftware.smack.packet.Presence; -import org.jivesoftware.smack.util.StringUtils; - -/** - * Represents the information about an occupant in a given room. The information will always have - * the affiliation and role of the occupant in the room. The full JID and nickname are optional. - * - * @author Gaston Dombiak - */ -public class Occupant { - // Fields that must have a value - private String affiliation; - private String role; - // Fields that may have a value - private String jid; - private String nick; - - Occupant(MUCAdmin.Item item) { - super(); - this.jid = item.getJid(); - this.affiliation = item.getAffiliation(); - this.role = item.getRole(); - this.nick = item.getNick(); - } - - Occupant(Presence presence) { - super(); - MUCUser mucUser = (MUCUser) presence.getExtension("x", - "http://jabber.org/protocol/muc#user"); - MUCUser.Item item = mucUser.getItem(); - this.jid = item.getJid(); - this.affiliation = item.getAffiliation(); - this.role = item.getRole(); - // Get the nickname from the FROM attribute of the presence - this.nick = StringUtils.parseResource(presence.getFrom()); - } - - /** - * Returns the full JID of the occupant. If this information was extracted from a presence and - * the room is semi or full-anonymous then the answer will be null. On the other hand, if this - * information was obtained while maintaining the voice list or the moderator list then we will - * always have a full JID. - * - * @return the full JID of the occupant. - */ - public String getJid() { - return jid; - } - - /** - * Returns the affiliation of the occupant. Possible affiliations are: "owner", "admin", - * "member", "outcast". This information will always be available. - * - * @return the affiliation of the occupant. - */ - public String getAffiliation() { - return affiliation; - } - - /** - * Returns the current role of the occupant in the room. This information will always be - * available. - * - * @return the current role of the occupant in the room. - */ - public String getRole() { - return role; - } - - /** - * Returns the current nickname of the occupant in the room. If this information was extracted - * from a presence then the answer will be null. - * - * @return the current nickname of the occupant in the room or null if this information was - * obtained from a presence. - */ - public String getNick() { - return nick; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/ParticipantStatusListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/ParticipantStatusListener.java deleted file mode 100644 index 2f570a673..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/ParticipantStatusListener.java +++ /dev/null @@ -1,173 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * A listener that is fired anytime a participant's status in a room is changed, such as the - * user being kicked, banned, or granted admin permissions. - * - * @author Gaston Dombiak - */ -public interface ParticipantStatusListener { - - /** - * Called when a new room occupant has joined the room. Note: Take in consideration that when - * you join a room you will receive the list of current occupants in the room. This message will - * be sent for each occupant. - * - * @param participant the participant that has just joined the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void joined(String participant); - - /** - * Called when a room occupant has left the room on its own. This means that the occupant was - * neither kicked nor banned from the room. - * - * @param participant the participant that has left the room on its own. - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void left(String participant); - - /** - * Called when a room participant has been kicked from the room. This means that the kicked - * participant is no longer participating in the room. - * - * @param participant the participant that was kicked from the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void kicked(String participant); - - /** - * Called when a moderator grants voice to a visitor. This means that the visitor - * can now participate in the moderated room sending messages to all occupants. - * - * @param participant the participant that was granted voice in the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void voiceGranted(String participant); - - /** - * Called when a moderator revokes voice from a participant. This means that the participant - * in the room was able to speak and now is a visitor that can't send messages to the room - * occupants. - * - * @param participant the participant that was revoked voice from the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void voiceRevoked(String participant); - - /** - * Called when an administrator or owner banned a participant from the room. This means that - * banned participant will no longer be able to join the room unless the ban has been removed. - * - * @param participant the participant that was banned from the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void banned(String participant); - - /** - * Called when an administrator grants a user membership to the room. This means that the user - * will be able to join the members-only room. - * - * @param participant the participant that was granted membership in the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void membershipGranted(String participant); - - /** - * Called when an administrator revokes a user membership to the room. This means that the - * user will not be able to join the members-only room. - * - * @param participant the participant that was revoked membership from the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void membershipRevoked(String participant); - - /** - * Called when an administrator grants moderator privileges to a user. This means that the user - * will be able to kick users, grant and revoke voice, invite other users, modify room's - * subject plus all the partcipants privileges. - * - * @param participant the participant that was granted moderator privileges in the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void moderatorGranted(String participant); - - /** - * Called when an administrator revokes moderator privileges from a user. This means that the - * user will no longer be able to kick users, grant and revoke voice, invite other users, - * modify room's subject plus all the partcipants privileges. - * - * @param participant the participant that was revoked moderator privileges in the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void moderatorRevoked(String participant); - - /** - * Called when an owner grants a user ownership on the room. This means that the user - * will be able to change defining room features as well as perform all administrative - * functions. - * - * @param participant the participant that was granted ownership on the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void ownershipGranted(String participant); - - /** - * Called when an owner revokes a user ownership on the room. This means that the user - * will no longer be able to change defining room features as well as perform all - * administrative functions. - * - * @param participant the participant that was revoked ownership on the room - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void ownershipRevoked(String participant); - - /** - * Called when an owner grants administrator privileges to a user. This means that the user - * will be able to perform administrative functions such as banning users and edit moderator - * list. - * - * @param participant the participant that was granted administrator privileges - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void adminGranted(String participant); - - /** - * Called when an owner revokes administrator privileges from a user. This means that the user - * will no longer be able to perform administrative functions such as banning users and edit - * moderator list. - * - * @param participant the participant that was revoked administrator privileges - * (e.g. room@conference.jabber.org/nick). - */ - public abstract void adminRevoked(String participant); - - /** - * Called when a participant changed his/her nickname in the room. The new participant's - * nickname will be informed with the next available presence. - * - * @param nickname the old nickname that the participant decided to change. - */ - public abstract void nicknameChanged(String nickname); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/RoomInfo.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/RoomInfo.java deleted file mode 100644 index 694dd38d8..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/RoomInfo.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -import org.jivesoftware.smackx.packet.DiscoverInfo; -import org.jivesoftware.smackx.Form; - -/** - * Represents the room information that was discovered using Service Discovery. It's possible to - * obtain information about a room before joining the room but only for rooms that are public (i.e. - * rooms that may be discovered). - * - * @author Gaston Dombiak - */ -public class RoomInfo { - - /** - * JID of the room. The node of the JID is commonly used as the ID of the room or name. - */ - private String room; - /** - * Description of the room. - */ - private String description = ""; - /** - * Last known subject of the room. - */ - private String subject = ""; - /** - * Current number of occupants in the room. - */ - private int occupantsCount = -1; - /** - * A room is considered members-only if an invitation is required in order to enter the room. - * Any user that is not a member of the room won't be able to join the room unless the user - * decides to register with the room (thus becoming a member). - */ - private boolean membersOnly; - /** - * Moderated rooms enable only participants to speak. Users that join the room and aren't - * participants can't speak (they are just visitors). - */ - private boolean moderated; - /** - * Every presence packet can include the JID of every occupant unless the owner deactives this - * configuration. - */ - private boolean nonanonymous; - /** - * Indicates if users must supply a password to join the room. - */ - private boolean passwordProtected; - /** - * Persistent rooms are saved to the database to make sure that rooms configurations can be - * restored in case the server goes down. - */ - private boolean persistent; - - RoomInfo(DiscoverInfo info) { - super(); - this.room = info.getFrom(); - // Get the information based on the discovered features - this.membersOnly = info.containsFeature("muc_membersonly"); - this.moderated = info.containsFeature("muc_moderated"); - this.nonanonymous = info.containsFeature("muc_nonanonymous"); - this.passwordProtected = info.containsFeature("muc_passwordprotected"); - this.persistent = info.containsFeature("muc_persistent"); - // Get the information based on the discovered extended information - Form form = Form.getFormFrom(info); - if (form != null) { - this.description = - (String) form.getField("muc#roominfo_description").getValues().next(); - this.subject = (String) form.getField("muc#roominfo_subject").getValues().next(); - this.occupantsCount = - Integer.parseInt((String) form.getField("muc#roominfo_occupants").getValues() - .next()); - } - } - - /** - * Returns the JID of the room whose information was discovered. - * - * @return the JID of the room whose information was discovered. - */ - public String getRoom() { - return room; - } - - /** - * Returns the discovered description of the room. - * - * @return the discovered description of the room. - */ - public String getDescription() { - return description; - } - - /** - * Returns the discovered subject of the room. The subject may be empty if the room does not - * have a subject. - * - * @return the discovered subject of the room. - */ - public String getSubject() { - return subject; - } - - /** - * Returns the discovered number of occupants that are currently in the room. If this - * information was not discovered (i.e. the server didn't send it) then a value of -1 will be - * returned. - * - * @return the number of occupants that are currently in the room or -1 if that information was - * not provided by the server. - */ - public int getOccupantsCount() { - return occupantsCount; - } - - /** - * Returns true if the room has restricted the access so that only members may enter the room. - * - * @return true if the room has restricted the access so that only members may enter the room. - */ - public boolean isMembersOnly() { - return membersOnly; - } - - /** - * Returns true if the room enabled only participants to speak. Occupants with a role of - * visitor won't be able to speak in the room. - * - * @return true if the room enabled only participants to speak. - */ - public boolean isModerated() { - return moderated; - } - - /** - * Returns true if presence packets will include the JID of every occupant. - * - * @return true if presence packets will include the JID of every occupant. - */ - public boolean isNonanonymous() { - return nonanonymous; - } - - /** - * Returns true if users musy provide a valid password in order to join the room. - * - * @return true if users musy provide a valid password in order to join the room. - */ - public boolean isPasswordProtected() { - return passwordProtected; - } - - /** - * Returns true if the room will persist after the last occupant have left the room. - * - * @return true if the room will persist after the last occupant have left the room. - */ - public boolean isPersistent() { - return persistent; - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/SubjectUpdatedListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/SubjectUpdatedListener.java deleted file mode 100644 index a966d7f19..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/SubjectUpdatedListener.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * A listener that is fired anytime a MUC room changes its subject. - * - * @author Gaston Dombiak - */ -public interface SubjectUpdatedListener { - - /** - * Called when a MUC room has changed its subject. - * - * @param subject the new room's subject. - * @param from the user that changed the room's subject (e.g. room@conference.jabber.org/nick). - */ - public abstract void subjectUpdated(String subject, String from); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/UserStatusListener.java b/CopyOftrunk/source/org/jivesoftware/smackx/muc/UserStatusListener.java deleted file mode 100644 index 6d243419a..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/UserStatusListener.java +++ /dev/null @@ -1,127 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.muc; - -/** - * A listener that is fired anytime your participant's status in a room is changed, such as the - * user being kicked, banned, or granted admin permissions. - * - * @author Gaston Dombiak - */ -public interface UserStatusListener { - - /** - * Called when a moderator kicked your user from the room. This means that you are no longer - * participanting in the room. - * - * @param actor the moderator that kicked your user from the room (e.g. user@host.org). - * @param reason the reason provided by the actor to kick you from the room. - */ - public abstract void kicked(String actor, String reason); - - /** - * Called when a moderator grants voice to your user. This means that you were a visitor in - * the moderated room before and now you can participate in the room by sending messages to - * all occupants. - * - */ - public abstract void voiceGranted(); - - /** - * Called when a moderator revokes voice from your user. This means that you were a - * participant in the room able to speak and now you are a visitor that can't send - * messages to the room occupants. - * - */ - public abstract void voiceRevoked(); - - /** - * Called when an administrator or owner banned your user from the room. This means that you - * will no longer be able to join the room unless the ban has been removed. - * - * @param actor the administrator that banned your user (e.g. user@host.org). - * @param reason the reason provided by the administrator to banned you. - */ - public abstract void banned(String actor, String reason); - - /** - * Called when an administrator grants your user membership to the room. This means that you - * will be able to join the members-only room. - * - */ - public abstract void membershipGranted(); - - /** - * Called when an administrator revokes your user membership to the room. This means that you - * will not be able to join the members-only room. - * - */ - public abstract void membershipRevoked(); - - /** - * Called when an administrator grants moderator privileges to your user. This means that you - * will be able to kick users, grant and revoke voice, invite other users, modify room's - * subject plus all the partcipants privileges. - * - */ - public abstract void moderatorGranted(); - - /** - * Called when an administrator revokes moderator privileges from your user. This means that - * you will no longer be able to kick users, grant and revoke voice, invite other users, - * modify room's subject plus all the partcipants privileges. - * - */ - public abstract void moderatorRevoked(); - - /** - * Called when an owner grants to your user ownership on the room. This means that you - * will be able to change defining room features as well as perform all administrative - * functions. - * - */ - public abstract void ownershipGranted(); - - /** - * Called when an owner revokes from your user ownership on the room. This means that you - * will no longer be able to change defining room features as well as perform all - * administrative functions. - * - */ - public abstract void ownershipRevoked(); - - /** - * Called when an owner grants administrator privileges to your user. This means that you - * will be able to perform administrative functions such as banning users and edit moderator - * list. - * - */ - public abstract void adminGranted(); - - /** - * Called when an owner revokes administrator privileges from your user. This means that you - * will no longer be able to perform administrative functions such as banning users and edit - * moderator list. - * - */ - public abstract void adminRevoked(); - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/muc/package.html b/CopyOftrunk/source/org/jivesoftware/smackx/muc/package.html deleted file mode 100644 index dcfaeaace..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/muc/package.html +++ /dev/null @@ -1 +0,0 @@ -<body>Classes and Interfaces that implement Multi-User Chat (MUC).</body> \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/package.html b/CopyOftrunk/source/org/jivesoftware/smackx/package.html deleted file mode 100644 index d574a2a4d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/package.html +++ /dev/null @@ -1 +0,0 @@ -<body>Smack extensions API.</body> \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DataForm.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/DataForm.java deleted file mode 100644 index 82b2939cc..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DataForm.java +++ /dev/null @@ -1,296 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smackx.FormField; - -/** - * Represents a form that could be use for gathering data as well as for reporting data - * returned from a search. - * - * @author Gaston Dombiak - */ -public class DataForm implements PacketExtension { - - private String type; - private String title; - private List instructions = new ArrayList(); - private ReportedData reportedData; - private List items = new ArrayList(); - private List fields = new ArrayList(); - - public DataForm(String type) { - this.type = type; - } - - /** - * Returns the meaning of the data within the context. The data could be part of a form - * to fill out, a form submission or data results.<p> - * - * Possible form types are: - * <ul> - * <li>form -> This packet contains a form to fill out. Display it to the user (if your - * program can).</li> - * <li>submit -> The form is filled out, and this is the data that is being returned from - * the form.</li> - * <li>cancel -> The form was cancelled. Tell the asker that piece of information.</li> - * <li>result -> Data results being returned from a search, or some other query.</li> - * </ul> - * - * @return the form's type. - */ - public String getType() { - return type; - } - - /** - * Returns the description of the data. It is similar to the title on a web page or an X - * window. You can put a <title/> on either a form to fill out, or a set of data results. - * - * @return description of the data. - */ - public String getTitle() { - return title; - } - - /** - * Returns an Iterator for the list of instructions that explain how to fill out the form and - * what the form is about. The dataform could include multiple instructions since each - * instruction could not contain newlines characters. Join the instructions together in order - * to show them to the user. - * - * @return an Iterator for the list of instructions that explain how to fill out the form. - */ - public Iterator getInstructions() { - synchronized (instructions) { - return Collections.unmodifiableList(new ArrayList(instructions)).iterator(); - } - } - - /** - * Returns the fields that will be returned from a search. - * - * @return fields that will be returned from a search. - */ - public ReportedData getReportedData() { - return reportedData; - } - - /** - * Returns an Iterator for the items returned from a search. - * - * @return an Iterator for the items returned from a search. - */ - public Iterator getItems() { - synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)).iterator(); - } - } - - /** - * Returns an Iterator for the fields that are part of the form. - * - * @return an Iterator for the fields that are part of the form. - */ - public Iterator getFields() { - synchronized (fields) { - return Collections.unmodifiableList(new ArrayList(fields)).iterator(); - } - } - - public String getElementName() { - return "x"; - } - - public String getNamespace() { - return "jabber:x:data"; - } - - /** - * Sets the description of the data. It is similar to the title on a web page or an X window. - * You can put a <title/> on either a form to fill out, or a set of data results. - * - * @param title description of the data. - */ - public void setTitle(String title) { - this.title = title; - } - - /** - * Sets the list of instructions that explain how to fill out the form and what the form is - * about. The dataform could include multiple instructions since each instruction could not - * contain newlines characters. - * - * @param instructions list of instructions that explain how to fill out the form. - */ - public void setInstructions(List instructions) { - this.instructions = instructions; - } - - /** - * Sets the fields that will be returned from a search. - * - * @param reportedData the fields that will be returned from a search. - */ - public void setReportedData(ReportedData reportedData) { - this.reportedData = reportedData; - } - - /** - * Adds a new field as part of the form. - * - * @param field the field to add to the form. - */ - public void addField(FormField field) { - synchronized (fields) { - fields.add(field); - } - } - - /** - * Adds a new instruction to the list of instructions that explain how to fill out the form - * and what the form is about. The dataform could include multiple instructions since each - * instruction could not contain newlines characters. - * - * @param instruction the new instruction that explain how to fill out the form. - */ - public void addInstruction(String instruction) { - synchronized (instructions) { - instructions.add(instruction); - } - } - - /** - * Adds a new item returned from a search. - * - * @param item the item returned from a search. - */ - public void addItem(Item item) { - synchronized (items) { - items.add(item); - } - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\" type=\"" + getType() +"\">"); - if (getTitle() != null) { - buf.append("<title>").append(getTitle()).append(""); - } - for (Iterator it=getInstructions(); it.hasNext();) { - buf.append("").append(it.next()).append(""); - } - // Append the list of fields returned from a search - if (getReportedData() != null) { - buf.append(getReportedData().toXML()); - } - // Loop through all the items returned from a search and append them to the string buffer - for (Iterator i = getItems(); i.hasNext();) { - Item item = (Item) i.next(); - buf.append(item.toXML()); - } - // Loop through all the form fields and append them to the string buffer - for (Iterator i = getFields(); i.hasNext();) { - FormField field = (FormField) i.next(); - buf.append(field.toXML()); - } - buf.append(""); - return buf.toString(); - } - - /** - * - * Represents the fields that will be returned from a search. This information is useful when - * you try to use the jabber:iq:search namespace to return dynamic form information. - * - * @author Gaston Dombiak - */ - public static class ReportedData { - private List fields = new ArrayList(); - - public ReportedData(List fields) { - this.fields = fields; - } - - /** - * Returns the fields returned from a search. - * - * @return the fields returned from a search. - */ - public Iterator getFields() { - return Collections.unmodifiableList(new ArrayList(fields)).iterator(); - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - // Loop through all the form items and append them to the string buffer - for (Iterator i = getFields(); i.hasNext();) { - FormField field = (FormField) i.next(); - buf.append(field.toXML()); - } - buf.append(""); - return buf.toString(); - } - } - - /** - * - * Represents items of reported data. - * - * @author Gaston Dombiak - */ - public static class Item { - private List fields = new ArrayList(); - - public Item(List fields) { - this.fields = fields; - } - - /** - * Returns the fields that define the data that goes with the item. - * - * @return the fields that define the data that goes with the item. - */ - public Iterator getFields() { - return Collections.unmodifiableList(new ArrayList(fields)).iterator(); - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - // Loop through all the form items and append them to the string buffer - for (Iterator i = getFields(); i.hasNext();) { - FormField field = (FormField) i.next(); - buf.append(field.toXML()); - } - buf.append(""); - return buf.toString(); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DefaultPrivateData.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/DefaultPrivateData.java deleted file mode 100644 index c000d2eed..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DefaultPrivateData.java +++ /dev/null @@ -1,137 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.Map; -import java.util.Iterator; -import java.util.Collections; -import java.util.HashMap; - -/** - * Default implementation of the PrivateData interface. Unless a PrivateDataProvider - * is registered with the PrivateDataManager class, instances of this class will be - * returned when getting private data.

    - * - * This class provides a very simple representation of an XML sub-document. Each element - * is a key in a Map with its CDATA being the value. For example, given the following - * XML sub-document: - * - *

    - * <foo xmlns="http://bar.com">
    - *     <color>blue</color>
    - *     <food>pizza</food>
    - * </foo>
    - * - * In this case, getValue("color") would return "blue", and getValue("food") would - * return "pizza". This parsing mechanism mechanism is very simplistic and will not work - * as desired in all cases (for example, if some of the elements have attributes. In those - * cases, a custom {@link org.jivesoftware.smackx.provider.PrivateDataProvider} should be used. - * - * @author Matt Tucker - */ -public class DefaultPrivateData implements PrivateData { - - private String elementName; - private String namespace; - private Map map; - - /** - * Creates a new generic private data object. - * - * @param elementName the name of the element of the XML sub-document. - * @param namespace the namespace of the element. - */ - public DefaultPrivateData(String elementName, String namespace) { - this.elementName = elementName; - this.namespace = namespace; - } - - /** - * Returns the XML element name of the private data sub-packet root element. - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return elementName; - } - - /** - * Returns the XML namespace of the private data sub-packet root element. - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return namespace; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(elementName).append(" xmlns=\"").append(namespace).append("\">"); - for (Iterator i=getNames(); i.hasNext(); ) { - String name = (String)i.next(); - String value = getValue(name); - buf.append("<").append(name).append(">"); - buf.append(value); - buf.append(""); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns an Iterator for the names that can be used to get - * values of the private data. - * - * @return an Iterator for the names. - */ - public synchronized Iterator getNames() { - if (map == null) { - return Collections.EMPTY_LIST.iterator(); - } - return Collections.unmodifiableMap(new HashMap(map)).keySet().iterator(); - } - - /** - * Returns a value given a name. - * - * @param name the name. - * @return the value. - */ - public synchronized String getValue(String name) { - if (map == null) { - return null; - } - return (String)map.get(name); - } - - /** - * Sets a value given the name. - * - * @param name the name. - * @param value the value. - */ - public synchronized void setValue(String name, String value) { - if (map == null) { - map = new HashMap(); - } - map.put(name, value); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DelayInformation.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/DelayInformation.java deleted file mode 100644 index e9e90331a..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DelayInformation.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; - -import org.jivesoftware.smack.packet.PacketExtension; - -/** - * Represents timestamp information about data stored for later delivery. A DelayInformation will - * always includes the timestamp when the packet was originally sent and may include more - * information such as the JID of the entity that originally sent the packet as well as the reason - * for the dealy.

    - * - * For more information see JEP-91. - * - * @author Gaston Dombiak - */ -public class DelayInformation implements PacketExtension { - - public static SimpleDateFormat UTC_FORMAT = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); - /** - * New date format based on JEP-82 that some clients may use when sending delayed dates. - * JEP-91 is using a SHOULD other servers or clients may be using this format instead of the - * old UTC format. - */ - public static SimpleDateFormat NEW_UTC_FORMAT = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - - static { - UTC_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+0")); - NEW_UTC_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); - } - - private Date stamp; - private String from; - private String reason; - - /** - * Creates a new instance with the specified timestamp. - */ - public DelayInformation(Date stamp) { - super(); - this.stamp = stamp; - } - - /** - * Returns the JID of the entity that originally sent the packet or that delayed the - * delivery of the packet or null if this information is not available. - * - * @return the JID of the entity that originally sent the packet or that delayed the - * delivery of the packet. - */ - public String getFrom() { - return from; - } - - /** - * Sets the JID of the entity that originally sent the packet or that delayed the - * delivery of the packet or null if this information is not available. - * - * @param from the JID of the entity that originally sent the packet. - */ - public void setFrom(String from) { - this.from = from; - } - - /** - * Returns the timstamp when the packet was originally sent. The returned Date is - * be understood as UTC. - * - * @return the timstamp when the packet was originally sent. - */ - public Date getStamp() { - return stamp; - } - - /** - * Returns a natural-language description of the reason for the delay or null if - * this information is not available. - * - * @return a natural-language description of the reason for the delay or null. - */ - public String getReason() { - return reason; - } - - /** - * Sets a natural-language description of the reason for the delay or null if - * this information is not available. - * - * @param reason a natural-language description of the reason for the delay or null. - */ - public void setReason(String reason) { - this.reason = reason; - } - - public String getElementName() { - return "x"; - } - - public String getNamespace() { - return "jabber:x:delay"; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\""); - buf.append(" stamp=\"").append(UTC_FORMAT.format(stamp)).append("\""); - if (from != null && from.length() > 0) { - buf.append(" from=\"").append(from).append("\""); - } - buf.append(">"); - if (reason != null && reason.length() > 0) { - buf.append(reason); - } - buf.append(""); - return buf.toString(); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverInfo.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverInfo.java deleted file mode 100644 index 0694a0ceb..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverInfo.java +++ /dev/null @@ -1,268 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.packet.IQ; - -/** - * A DiscoverInfo IQ packet, which is used by XMPP clients to request and receive information - * to/from other XMPP entities.

    - * - * The received information may contain one or more identities of the requested XMPP entity, and - * a list of supported features by the requested XMPP entity. - * - * @author Gaston Dombiak - */ -public class DiscoverInfo extends IQ { - - private List features = new ArrayList(); - private List identities = new ArrayList(); - private String node; - - /** - * Adds a new feature to the discovered information. - * - * @param feature the discovered feature - */ - public void addFeature(String feature) { - addFeature(new DiscoverInfo.Feature(feature)); - } - - private void addFeature(Feature feature) { - synchronized (features) { - features.add(feature); - } - } - - /** - * Returns the discovered features of an XMPP entity. - * - * @return an Iterator on the discovered features of an XMPP entity - */ - Iterator getFeatures() { - synchronized (features) { - return Collections.unmodifiableList(new ArrayList(features)).iterator(); - } - } - - /** - * Adds a new identity of the requested entity to the discovered information. - * - * @param identity the discovered entity's identity - */ - public void addIdentity(Identity identity) { - synchronized (identities) { - identities.add(identity); - } - } - - /** - * Returns the discovered identities of an XMPP entity. - * - * @return an Iterator on the discoveted identities - */ - public Iterator getIdentities() { - synchronized (identities) { - return Collections.unmodifiableList(new ArrayList(identities)).iterator(); - } - } - - /** - * Returns the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @return the node attribute that supplements the 'jid' attribute - */ - public String getNode() { - return node; - } - - /** - * Sets the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @param node the node attribute that supplements the 'jid' attribute - */ - public void setNode(String node) { - this.node = node; - } - - /** - * Returns true if the specified feature is part of the discovered information. - * - * @param feature the feature to check - * @return true if the requestes feature has been discovered - */ - public boolean containsFeature(String feature) { - for (Iterator it = getFeatures(); it.hasNext();) { - if (feature.equals(((DiscoverInfo.Feature) it.next()).getVar())) - return true; - } - return false; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (identities) { - for (int i = 0; i < identities.size(); i++) { - Identity identity = (Identity) identities.get(i); - buf.append(identity.toXML()); - } - } - synchronized (features) { - for (int i = 0; i < features.size(); i++) { - Feature feature = (Feature) features.get(i); - buf.append(feature.toXML()); - } - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } - - /** - * Represents the identity of a given XMPP entity. An entity may have many identities but all - * the identities SHOULD have the same name.

    - * - * Refer to Jabber::Registrar - * in order to get the official registry of values for the category and type - * attributes. - * - */ - public static class Identity { - - private String category; - private String name; - private String type; - - /** - * Creates a new identity for an XMPP entity. - * - * @param category the entity's category. - * @param name the entity's name. - */ - public Identity(String category, String name) { - this.category = category; - this.name = name; - } - - /** - * Returns the entity's category. To get the official registry of values for the - * 'category' attribute refer to Jabber::Registrar - * - * @return the entity's category. - */ - public String getCategory() { - return category; - } - - /** - * Returns the identity's name. - * - * @return the identity's name. - */ - public String getName() { - return name; - } - - /** - * Returns the entity's type. To get the official registry of values for the - * 'type' attribute refer to Jabber::Registrar - * - * @return the entity's type. - */ - public String getType() { - return type; - } - - /** - * Sets the entity's type. To get the official registry of values for the - * 'type' attribute refer to Jabber::Registrar - * - * @param type the identity's type. - */ - public void setType(String type) { - this.type = type; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - } - - /** - * Represents the features offered by the item. This information helps requestors determine - * what actions are possible with regard to this item (registration, search, join, etc.) - * as well as specific feature types of interest, if any (e.g., for the purpose of feature - * negotiation). - */ - public static class Feature { - - private String variable; - - /** - * Creates a new feature offered by an XMPP entity or item. - * - * @param variable the feature's variable. - */ - public Feature(String variable) { - this.variable = variable; - } - - /** - * Returns the feature's variable. - * - * @return the feature's variable. - */ - public String getVar() { - return variable; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverItems.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverItems.java deleted file mode 100644 index 0c264aea9..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/DiscoverItems.java +++ /dev/null @@ -1,235 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.packet.IQ; - -/** - * A DiscoverItems IQ packet, which is used by XMPP clients to request and receive items - * associated with XMPP entities.

    - * - * The items could also be queried in order to discover if they contain items inside. Some items - * may be addressable by its JID and others may require to be addressed by a JID and a node name. - * - * @author Gaston Dombiak - */ -public class DiscoverItems extends IQ { - - private List items = new ArrayList(); - private String node; - - /** - * Adds a new item to the discovered information. - * - * @param item the discovered entity's item - */ - public void addItem(Item item) { - synchronized (items) { - items.add(item); - } - } - - /** - * Returns the discovered items of the queried XMPP entity. - * - * @return an Iterator on the discovered entity's items - */ - public Iterator getItems() { - synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)).iterator(); - } - } - - /** - * Returns the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @return the node attribute that supplements the 'jid' attribute - */ - public String getNode() { - return node; - } - - /** - * Sets the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @param node the node attribute that supplements the 'jid' attribute - */ - public void setNode(String node) { - this.node = node; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (items) { - for (int i = 0; i < items.size(); i++) { - Item item = (Item) items.get(i); - buf.append(item.toXML()); - } - } - buf.append(""); - return buf.toString(); - } - - /** - * An item is associated with an XMPP Entity, usually thought of a children of the parent - * entity and normally are addressable as a JID.

    - * - * An item associated with an entity may not be addressable as a JID. In order to handle - * such items, Service Discovery uses an optional 'node' attribute that supplements the - * 'jid' attribute. - */ - public static class Item { - - /** - * Request to create or update the item. - */ - public static final String UPDATE_ACTION = "update"; - - /** - * Request to remove the item. - */ - public static final String REMOVE_ACTION = "remove"; - - private String entityID; - private String name; - private String node; - private String action; - - /** - * Create a new Item associated with a given entity. - * - * @param entityID the id of the entity that contains the item - */ - public Item(String entityID) { - this.entityID = entityID; - } - - /** - * Returns the entity's ID. - * - * @return the entity's ID. - */ - public String getEntityID() { - return entityID; - } - - /** - * Returns the entity's name. - * - * @return the entity's name. - */ - public String getName() { - return name; - } - - /** - * Sets the entity's name. - * - * @param name the entity's name. - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @return the node attribute that supplements the 'jid' attribute - */ - public String getNode() { - return node; - } - - /** - * Sets the node attribute that supplements the 'jid' attribute. A node is merely - * something that is associated with a JID and for which the JID can provide information.

    - * - * Node attributes SHOULD be used only when trying to provide or query information which - * is not directly addressable. - * - * @param node the node attribute that supplements the 'jid' attribute - */ - public void setNode(String node) { - this.node = node; - } - - /** - * Returns the action that specifies the action being taken for this item. Possible action - * values are: "update" and "remove". Update should either create a new entry if the node - * and jid combination does not already exist, or simply update an existing entry. If - * "remove" is used as the action, the item should be removed from persistent storage. - * - * @return the action being taken for this item - */ - public String getAction() { - return action; - } - - /** - * Sets the action that specifies the action being taken for this item. Possible action - * values are: "update" and "remove". Update should either create a new entry if the node - * and jid combination does not already exist, or simply update an existing entry. If - * "remove" is used as the action, the item should be removed from persistent storage. - * - * @param action the action being taken for this item - */ - public void setAction(String action) { - this.action = action; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCAdmin.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCAdmin.java deleted file mode 100644 index f1e877296..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCAdmin.java +++ /dev/null @@ -1,234 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; -import java.util.*; - -import org.jivesoftware.smack.packet.IQ; - -/** - * IQ packet that serves for kicking users, granting and revoking voice, banning users, - * modifying the ban list, granting and revoking membership and granting and revoking - * moderator privileges. All these operations are scoped by the - * 'http://jabber.org/protocol/muc#admin' namespace. - * - * @author Gaston Dombiak - */ -public class MUCAdmin extends IQ { - - private List items = new ArrayList(); - - /** - * Returns an Iterator for item childs that holds information about roles, affiliation, - * jids and nicks. - * - * @return an Iterator for item childs that holds information about roles, affiliation, - * jids and nicks. - */ - public Iterator getItems() { - synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)).iterator(); - } - } - - /** - * Adds an item child that holds information about roles, affiliation, jids and nicks. - * - * @param item the item child that holds information about roles, affiliation, jids and nicks. - */ - public void addItem(Item item) { - synchronized (items) { - items.add(item); - } - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (items) { - for (int i = 0; i < items.size(); i++) { - Item item = (Item) items.get(i); - buf.append(item.toXML()); - } - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } - - /** - * Item child that holds information about roles, affiliation, jids and nicks. - * - * @author Gaston Dombiak - */ - public static class Item { - private String actor; - private String reason; - private String affiliation; - private String jid; - private String nick; - private String role; - - /** - * Creates a new item child. - * - * @param affiliation the actor's affiliation to the room - * @param role the privilege level of an occupant within a room. - */ - public Item(String affiliation, String role) { - this.affiliation = affiliation; - this.role = role; - } - - /** - * Returns the actor (JID of an occupant in the room) that was kicked or banned. - * - * @return the JID of an occupant in the room that was kicked or banned. - */ - public String getActor() { - return actor; - } - - /** - * Returns the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @return the reason for the item child. - */ - public String getReason() { - return reason; - } - - /** - * Returns the occupant's affiliation to the room. The affiliation is a semi-permanent - * association or connection with a room. The possible affiliations are "owner", "admin", - * "member", and "outcast" (naturally it is also possible to have no affiliation). An - * affiliation lasts across a user's visits to a room. - * - * @return the actor's affiliation to the room - */ - public String getAffiliation() { - return affiliation; - } - - /** - * Returns the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @return the room JID by which an occupant is identified within the room. - */ - public String getJid() { - return jid; - } - - /** - * Returns the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @return the new nickname of an occupant that is changing his/her nickname. - */ - public String getNick() { - return nick; - } - - /** - * Returns the temporary position or privilege level of an occupant within a room. The - * possible roles are "moderator", "participant", and "visitor" (it is also possible to - * have no defined role). A role lasts only for the duration of an occupant's visit to - * a room. - * - * @return the privilege level of an occupant within a room. - */ - public String getRole() { - return role; - } - - /** - * Sets the actor (JID of an occupant in the room) that was kicked or banned. - * - * @param actor the actor (JID of an occupant in the room) that was kicked or banned. - */ - public void setActor(String actor) { - this.actor = actor; - } - - /** - * Sets the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @param reason the reason why a user (occupant) was kicked or banned. - */ - public void setReason(String reason) { - this.reason = reason; - } - - /** - * Sets the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @param jid the JID by which an occupant is identified within a room. - */ - public void setJid(String jid) { - this.jid = jid; - } - - /** - * Sets the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @param nick the new nickname of an occupant that is changing his/her nickname. - */ - public void setNick(String nick) { - this.nick = nick; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append(">"); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - if (getActor() != null) { - buf.append(""); - } - buf.append(""); - } - return buf.toString(); - } - }; -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCInitialPresence.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCInitialPresence.java deleted file mode 100644 index 88ba7f29b..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCInitialPresence.java +++ /dev/null @@ -1,223 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; - -import org.jivesoftware.smack.packet.PacketExtension; - -/** - * Represents extended presence information whose sole purpose is to signal the ability of - * the occupant to speak the MUC protocol when joining a room. If the room requires a password - * then the MUCInitialPresence should include one.

    - * - * The amount of discussion history provided on entering a room (perhaps because the - * user is on a low-bandwidth connection or is using a small-footprint client) could be managed by - * setting a configured History instance to the MUCInitialPresence instance. - * @see MUCInitialPresence#setHistory(MUCInitialPresence.History). - * - * @author Gaston Dombiak - */ -public class MUCInitialPresence implements PacketExtension { - - private String password; - private History history; - - public String getElementName() { - return "x"; - } - - public String getNamespace() { - return "http://jabber.org/protocol/muc"; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - if (getPassword() != null) { - buf.append("").append(getPassword()).append(""); - } - if (getHistory() != null) { - buf.append(getHistory().toXML()); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns the history that manages the amount of discussion history provided on - * entering a room. - * - * @return the history that manages the amount of discussion history provided on - * entering a room. - */ - public History getHistory() { - return history; - } - - /** - * Returns the password to use when the room requires a password. - * - * @return the password to use when the room requires a password. - */ - public String getPassword() { - return password; - } - - /** - * Sets the History that manages the amount of discussion history provided on - * entering a room. - * - * @param history that manages the amount of discussion history provided on - * entering a room. - */ - public void setHistory(History history) { - this.history = history; - } - - /** - * Sets the password to use when the room requires a password. - * - * @param password the password to use when the room requires a password. - */ - public void setPassword(String password) { - this.password = password; - } - - /** - * The History class controls the number of characters or messages to receive - * when entering a room. - * - * @author Gaston Dombiak - */ - public static class History { - - private int maxChars = -1; - private int maxStanzas = -1; - private int seconds = -1; - private Date since; - - /** - * Returns the total number of characters to receive in the history. - * - * @return total number of characters to receive in the history. - */ - public int getMaxChars() { - return maxChars; - } - - /** - * Returns the total number of messages to receive in the history. - * - * @return the total number of messages to receive in the history. - */ - public int getMaxStanzas() { - return maxStanzas; - } - - /** - * Returns the number of seconds to use to filter the messages received during that time. - * In other words, only the messages received in the last "X" seconds will be included in - * the history. - * - * @return the number of seconds to use to filter the messages received during that time. - */ - public int getSeconds() { - return seconds; - } - - /** - * Returns the since date to use to filter the messages received during that time. - * In other words, only the messages received since the datetime specified will be - * included in the history. - * - * @return the since date to use to filter the messages received during that time. - */ - public Date getSince() { - return since; - } - - /** - * Sets the total number of characters to receive in the history. - * - * @param maxChars the total number of characters to receive in the history. - */ - public void setMaxChars(int maxChars) { - this.maxChars = maxChars; - } - - /** - * Sets the total number of messages to receive in the history. - * - * @param maxStanzas the total number of messages to receive in the history. - */ - public void setMaxStanzas(int maxStanzas) { - this.maxStanzas = maxStanzas; - } - - /** - * Sets the number of seconds to use to filter the messages received during that time. - * In other words, only the messages received in the last "X" seconds will be included in - * the history. - * - * @param seconds the number of seconds to use to filter the messages received during - * that time. - */ - public void setSeconds(int seconds) { - this.seconds = seconds; - } - - /** - * Sets the since date to use to filter the messages received during that time. - * In other words, only the messages received since the datetime specified will be - * included in the history. - * - * @param since the since date to use to filter the messages received during that time. - */ - public void setSince(Date since) { - this.since = since; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCOwner.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCOwner.java deleted file mode 100644 index 626746884..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCOwner.java +++ /dev/null @@ -1,339 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; -import java.util.*; - -import org.jivesoftware.smack.packet.IQ; - -/** - * IQ packet that serves for granting and revoking ownership privileges, granting - * and revoking administrative privileges and destroying a room. All these operations - * are scoped by the 'http://jabber.org/protocol/muc#owner' namespace. - * - * @author Gaston Dombiak - */ -public class MUCOwner extends IQ { - - private List items = new ArrayList(); - private Destroy destroy; - - /** - * Returns an Iterator for item childs that holds information about affiliation, - * jids and nicks. - * - * @return an Iterator for item childs that holds information about affiliation, - * jids and nicks. - */ - public Iterator getItems() { - synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)).iterator(); - } - } - - /** - * Returns a request to the server to destroy a room. The sender of the request - * should be the room's owner. If the sender of the destroy request is not the room's owner - * then the server will answer a "Forbidden" error. - * - * @return a request to the server to destroy a room. - */ - public Destroy getDestroy() { - return destroy; - } - - /** - * Sets a request to the server to destroy a room. The sender of the request - * should be the room's owner. If the sender of the destroy request is not the room's owner - * then the server will answer a "Forbidden" error. - * - * @param destroy the request to the server to destroy a room. - */ - public void setDestroy(Destroy destroy) { - this.destroy = destroy; - } - - /** - * Adds an item child that holds information about affiliation, jids and nicks. - * - * @param item the item child that holds information about affiliation, jids and nicks. - */ - public void addItem(Item item) { - synchronized (items) { - items.add(item); - } - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (items) { - for (int i = 0; i < items.size(); i++) { - Item item = (Item) items.get(i); - buf.append(item.toXML()); - } - } - if (getDestroy() != null) { - buf.append(getDestroy().toXML()); - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } - - /** - * Item child that holds information about affiliation, jids and nicks. - * - * @author Gaston Dombiak - */ - public static class Item { - - private String actor; - private String reason; - private String affiliation; - private String jid; - private String nick; - private String role; - - /** - * Creates a new item child. - * - * @param affiliation the actor's affiliation to the room - */ - public Item(String affiliation) { - this.affiliation = affiliation; - } - - /** - * Returns the actor (JID of an occupant in the room) that was kicked or banned. - * - * @return the JID of an occupant in the room that was kicked or banned. - */ - public String getActor() { - return actor; - } - - /** - * Returns the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @return the reason for the item child. - */ - public String getReason() { - return reason; - } - - /** - * Returns the occupant's affiliation to the room. The affiliation is a semi-permanent - * association or connection with a room. The possible affiliations are "owner", "admin", - * "member", and "outcast" (naturally it is also possible to have no affiliation). An - * affiliation lasts across a user's visits to a room. - * - * @return the actor's affiliation to the room - */ - public String getAffiliation() { - return affiliation; - } - - /** - * Returns the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @return the room JID by which an occupant is identified within the room. - */ - public String getJid() { - return jid; - } - - /** - * Returns the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @return the new nickname of an occupant that is changing his/her nickname. - */ - public String getNick() { - return nick; - } - - /** - * Returns the temporary position or privilege level of an occupant within a room. The - * possible roles are "moderator", "participant", and "visitor" (it is also possible to - * have no defined role). A role lasts only for the duration of an occupant's visit to - * a room. - * - * @return the privilege level of an occupant within a room. - */ - public String getRole() { - return role; - } - - /** - * Sets the actor (JID of an occupant in the room) that was kicked or banned. - * - * @param actor the actor (JID of an occupant in the room) that was kicked or banned. - */ - public void setActor(String actor) { - this.actor = actor; - } - - /** - * Sets the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @param reason the reason why a user (occupant) was kicked or banned. - */ - public void setReason(String reason) { - this.reason = reason; - } - - /** - * Sets the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @param jid the JID by which an occupant is identified within a room. - */ - public void setJid(String jid) { - this.jid = jid; - } - - /** - * Sets the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @param nick the new nickname of an occupant that is changing his/her nickname. - */ - public void setNick(String nick) { - this.nick = nick; - } - - /** - * Sets the temporary position or privilege level of an occupant within a room. The - * possible roles are "moderator", "participant", and "visitor" (it is also possible to - * have no defined role). A role lasts only for the duration of an occupant's visit to - * a room. - * - * @param role the new privilege level of an occupant within a room. - */ - public void setRole(String role) { - this.role = role; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append(">"); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - if (getActor() != null) { - buf.append(""); - } - buf.append(""); - } - return buf.toString(); - } - }; - - /** - * Represents a request to the server to destroy a room. The sender of the request - * should be the room's owner. If the sender of the destroy request is not the room's owner - * then the server will answer a "Forbidden" error. - * - * @author Gaston Dombiak - */ - public static class Destroy { - private String reason; - private String jid; - - - /** - * Returns the JID of an alternate location since the current room is being destroyed. - * - * @return the JID of an alternate location. - */ - public String getJid() { - return jid; - } - - /** - * Returns the reason for the room destruction. - * - * @return the reason for the room destruction. - */ - public String getReason() { - return reason; - } - - /** - * Sets the JID of an alternate location since the current room is being destroyed. - * - * @param jid the JID of an alternate location. - */ - public void setJid(String jid) { - this.jid = jid; - } - - /** - * Sets the reason for the room destruction. - * - * @param reason the reason for the room destruction. - */ - public void setReason(String reason) { - this.reason = reason; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append(">"); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - buf.append(""); - } - return buf.toString(); - } - - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCUser.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCUser.java deleted file mode 100644 index 7e84cea6b..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MUCUser.java +++ /dev/null @@ -1,627 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.packet.PacketExtension; - -/** - * Represents extended presence information about roles, affiliations, full JIDs, - * or status codes scoped by the 'http://jabber.org/protocol/muc#user' namespace. - * - * @author Gaston Dombiak - */ -public class MUCUser implements PacketExtension { - - private Invite invite; - private Decline decline; - private Item item; - private String password; - private Status status; - private Destroy destroy; - - public String getElementName() { - return "x"; - } - - public String getNamespace() { - return "http://jabber.org/protocol/muc#user"; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - if (getInvite() != null) { - buf.append(getInvite().toXML()); - } - if (getDecline() != null) { - buf.append(getDecline().toXML()); - } - if (getItem() != null) { - buf.append(getItem().toXML()); - } - if (getPassword() != null) { - buf.append("").append(getPassword()).append(""); - } - if (getStatus() != null) { - buf.append(getStatus().toXML()); - } - if (getDestroy() != null) { - buf.append(getDestroy().toXML()); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns the invitation for another user to a room. The sender of the invitation - * must be an occupant of the room. The invitation will be sent to the room which in turn - * will forward the invitation to the invitee. - * - * @return an invitation for another user to a room. - */ - public Invite getInvite() { - return invite; - } - - /** - * Returns the rejection to an invitation from another user to a room. The rejection will be - * sent to the room which in turn will forward the refusal to the inviter. - * - * @return a rejection to an invitation from another user to a room. - */ - public Decline getDecline() { - return decline; - } - - /** - * Returns the item child that holds information about roles, affiliation, jids and nicks. - * - * @return an item child that holds information about roles, affiliation, jids and nicks. - */ - public Item getItem() { - return item; - } - - /** - * Returns the password to use to enter Password-Protected Room. A Password-Protected Room is - * a room that a user cannot enter without first providing the correct password. - * - * @return the password to use to enter Password-Protected Room. - */ - public String getPassword() { - return password; - } - - /** - * Returns the status which holds a code that assists in presenting notification messages. - * - * @return the status which holds a code that assists in presenting notification messages. - */ - public Status getStatus() { - return status; - } - - /** - * Returns the notification that the room has been destroyed. After a room has been destroyed, - * the room occupants will receive a Presence packet of type 'unavailable' with the reason for - * the room destruction if provided by the room owner. - * - * @return a notification that the room has been destroyed. - */ - public Destroy getDestroy() { - return destroy; - } - - /** - * Sets the invitation for another user to a room. The sender of the invitation - * must be an occupant of the room. The invitation will be sent to the room which in turn - * will forward the invitation to the invitee. - * - * @param invite the invitation for another user to a room. - */ - public void setInvite(Invite invite) { - this.invite = invite; - } - - /** - * Sets the rejection to an invitation from another user to a room. The rejection will be - * sent to the room which in turn will forward the refusal to the inviter. - * - * @param decline the rejection to an invitation from another user to a room. - */ - public void setDecline(Decline decline) { - this.decline = decline; - } - - /** - * Sets the item child that holds information about roles, affiliation, jids and nicks. - * - * @param item the item child that holds information about roles, affiliation, jids and nicks. - */ - public void setItem(Item item) { - this.item = item; - } - - /** - * Sets the password to use to enter Password-Protected Room. A Password-Protected Room is - * a room that a user cannot enter without first providing the correct password. - * - * @param string the password to use to enter Password-Protected Room. - */ - public void setPassword(String string) { - password = string; - } - - /** - * Sets the status which holds a code that assists in presenting notification messages. - * - * @param status the status which holds a code that assists in presenting notification - * messages. - */ - public void setStatus(Status status) { - this.status = status; - } - - /** - * Sets the notification that the room has been destroyed. After a room has been destroyed, - * the room occupants will receive a Presence packet of type 'unavailable' with the reason for - * the room destruction if provided by the room owner. - * - * @param destroy the notification that the room has been destroyed. - */ - public void setDestroy(Destroy destroy) { - this.destroy = destroy; - } - - /** - * Represents an invitation for another user to a room. The sender of the invitation - * must be an occupant of the room. The invitation will be sent to the room which in turn - * will forward the invitation to the invitee. - * - * @author Gaston Dombiak - */ - public static class Invite { - private String reason; - private String from; - private String to; - - /** - * Returns the bare JID of the inviter or, optionally, the room JID. (e.g. - * 'crone1@shakespeare.lit/desktop'). - * - * @return the room's occupant that sent the invitation. - */ - public String getFrom() { - return from; - } - - /** - * Returns the message explaining the invitation. - * - * @return the message explaining the invitation. - */ - public String getReason() { - return reason; - } - - /** - * Returns the bare JID of the invitee. (e.g. 'hecate@shakespeare.lit') - * - * @return the bare JID of the invitee. - */ - public String getTo() { - return to; - } - - /** - * Sets the bare JID of the inviter or, optionally, the room JID. (e.g. - * 'crone1@shakespeare.lit/desktop') - * - * @param from the bare JID of the inviter or, optionally, the room JID. - */ - public void setFrom(String from) { - this.from = from; - } - - /** - * Sets the message explaining the invitation. - * - * @param reason the message explaining the invitation. - */ - public void setReason(String reason) { - this.reason = reason; - } - - /** - * Sets the bare JID of the invitee. (e.g. 'hecate@shakespeare.lit') - * - * @param to the bare JID of the invitee. - */ - public void setTo(String to) { - this.to = to; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - buf.append(""); - return buf.toString(); - } - }; - - /** - * Represents a rejection to an invitation from another user to a room. The rejection will be - * sent to the room which in turn will forward the refusal to the inviter. - * - * @author Gaston Dombiak - */ - public static class Decline { - private String reason; - private String from; - private String to; - - /** - * Returns the bare JID of the invitee that rejected the invitation. (e.g. - * 'crone1@shakespeare.lit/desktop'). - * - * @return the bare JID of the invitee that rejected the invitation. - */ - public String getFrom() { - return from; - } - - /** - * Returns the message explaining why the invitation was rejected. - * - * @return the message explaining the reason for the rejection. - */ - public String getReason() { - return reason; - } - - /** - * Returns the bare JID of the inviter. (e.g. 'hecate@shakespeare.lit') - * - * @return the bare JID of the inviter. - */ - public String getTo() { - return to; - } - - /** - * Sets the bare JID of the invitee that rejected the invitation. (e.g. - * 'crone1@shakespeare.lit/desktop'). - * - * @param from the bare JID of the invitee that rejected the invitation. - */ - public void setFrom(String from) { - this.from = from; - } - - /** - * Sets the message explaining why the invitation was rejected. - * - * @param reason the message explaining the reason for the rejection. - */ - public void setReason(String reason) { - this.reason = reason; - } - - /** - * Sets the bare JID of the inviter. (e.g. 'hecate@shakespeare.lit') - * - * @param to the bare JID of the inviter. - */ - public void setTo(String to) { - this.to = to; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - buf.append(""); - return buf.toString(); - } - }; - - /** - * Item child that holds information about roles, affiliation, jids and nicks. - * - * @author Gaston Dombiak - */ - public static class Item { - private String actor; - private String reason; - private String affiliation; - private String jid; - private String nick; - private String role; - - /** - * Creates a new item child. - * - * @param affiliation the actor's affiliation to the room - * @param role the privilege level of an occupant within a room. - */ - public Item(String affiliation, String role) { - this.affiliation = affiliation; - this.role = role; - } - - /** - * Returns the actor (JID of an occupant in the room) that was kicked or banned. - * - * @return the JID of an occupant in the room that was kicked or banned. - */ - public String getActor() { - return actor == null ? "" : actor; - } - - /** - * Returns the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @return the reason for the item child. - */ - public String getReason() { - return reason == null ? "" : reason; - } - - /** - * Returns the occupant's affiliation to the room. The affiliation is a semi-permanent - * association or connection with a room. The possible affiliations are "owner", "admin", - * "member", and "outcast" (naturally it is also possible to have no affiliation). An - * affiliation lasts across a user's visits to a room. - * - * @return the actor's affiliation to the room - */ - public String getAffiliation() { - return affiliation; - } - - /** - * Returns the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @return the room JID by which an occupant is identified within the room. - */ - public String getJid() { - return jid; - } - - /** - * Returns the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @return the new nickname of an occupant that is changing his/her nickname. - */ - public String getNick() { - return nick; - } - - /** - * Returns the temporary position or privilege level of an occupant within a room. The - * possible roles are "moderator", "participant", and "visitor" (it is also possible to - * have no defined role). A role lasts only for the duration of an occupant's visit to - * a room. - * - * @return the privilege level of an occupant within a room. - */ - public String getRole() { - return role; - } - - /** - * Sets the actor (JID of an occupant in the room) that was kicked or banned. - * - * @param actor the actor (JID of an occupant in the room) that was kicked or banned. - */ - public void setActor(String actor) { - this.actor = actor; - } - - /** - * Sets the reason for the item child. The reason is optional and could be used to - * explain the reason why a user (occupant) was kicked or banned. - * - * @param reason the reason why a user (occupant) was kicked or banned. - */ - public void setReason(String reason) { - this.reason = reason; - } - - /** - * Sets the by which an occupant is identified within the context - * of a room. If the room is non-anonymous, the JID will be included in the item. - * - * @param jid the JID by which an occupant is identified within a room. - */ - public void setJid(String jid) { - this.jid = jid; - } - - /** - * Sets the new nickname of an occupant that is changing his/her nickname. The new - * nickname is sent as part of the unavailable presence. - * - * @param nick the new nickname of an occupant that is changing his/her nickname. - */ - public void setNick(String nick) { - this.nick = nick; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append(">"); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - if (getActor() != null) { - buf.append(""); - } - buf.append(""); - } - return buf.toString(); - } - }; - - /** - * Status code assists in presenting notification messages. The following link provides the - * list of existing error codes (@link http://www.jabber.org/jeps/jep-0045.html#errorstatus). - * - * @author Gaston Dombiak - */ - public static class Status { - private String code; - - /** - * Creates a new instance of Status with the specified code. - * - * @param code the code that uniquely identifies the reason of the error. - */ - public Status(String code) { - this.code = code; - } - - /** - * Returns the code that uniquely identifies the reason of the error. The code - * assists in presenting notification messages. - * - * @return the code that uniquely identifies the reason of the error. - */ - public String getCode() { - return code; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - }; - - /** - * Represents a notification that the room has been destroyed. After a room has been destroyed, - * the room occupants will receive a Presence packet of type 'unavailable' with the reason for - * the room destruction if provided by the room owner. - * - * @author Gaston Dombiak - */ - public static class Destroy { - private String reason; - private String jid; - - - /** - * Returns the JID of an alternate location since the current room is being destroyed. - * - * @return the JID of an alternate location. - */ - public String getJid() { - return jid; - } - - /** - * Returns the reason for the room destruction. - * - * @return the reason for the room destruction. - */ - public String getReason() { - return reason; - } - - /** - * Sets the JID of an alternate location since the current room is being destroyed. - * - * @param jid the JID of an alternate location. - */ - public void setJid(String jid) { - this.jid = jid; - } - - /** - * Sets the reason for the room destruction. - * - * @param reason the reason for the room destruction. - */ - public void setReason(String reason) { - this.reason = reason; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - } - else { - buf.append(">"); - if (getReason() != null) { - buf.append("").append(getReason()).append(""); - } - buf.append(""); - } - return buf.toString(); - } - - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MessageEvent.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/MessageEvent.java deleted file mode 100644 index 65e091897..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/MessageEvent.java +++ /dev/null @@ -1,334 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.packet.PacketExtension; - -/** - * Represents message events relating to the delivery, display, composition and cancellation of - * messages.

    - * - * There are four message events currently defined in this namespace: - *

      - *
    1. Offline
      - * Indicates that the message has been stored offline by the intended recipient's server. This - * event is triggered only if the intended recipient's server supports offline storage, has that - * support enabled, and the recipient is offline when the server receives the message for delivery.
    2. - * - *
    3. Delivered
      - * Indicates that the message has been delivered to the recipient. This signifies that the message - * has reached the recipient's XMPP client, but does not necessarily mean that the message has - * been displayed. This event is to be raised by the XMPP client.
    4. - * - *
    5. Displayed
      - * Once the message has been received by the recipient's XMPP client, it may be displayed to the - * user. This event indicates that the message has been displayed, and is to be raised by the - * XMPP client. Even if a message is displayed multiple times, this event should be raised only - * once.
    6. - * - *
    7. Composing
      - * In threaded chat conversations, this indicates that the recipient is composing a reply to a - * message. The event is to be raised by the recipient's XMPP client. A XMPP client is allowed - * to raise this event multiple times in response to the same request, providing the original - * event is cancelled first.
    8. - *
    - * - * @author Gaston Dombiak - */ -public class MessageEvent implements PacketExtension { - - public static final String OFFLINE = "offline"; - public static final String COMPOSING = "composing"; - public static final String DISPLAYED = "displayed"; - public static final String DELIVERED = "delivered"; - public static final String CANCELLED = "cancelled"; - - private boolean offline = false; - private boolean delivered = false; - private boolean displayed = false; - private boolean composing = false; - private boolean cancelled = true; - - private String packetID = null; - - /** - * Returns the XML element name of the extension sub-packet root element. - * Always returns "x" - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return "x"; - } - - /** - * Returns the XML namespace of the extension sub-packet root element. - * According the specification the namespace is always "jabber:x:event" - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return "jabber:x:event"; - } - - /** - * When the message is a request returns if the sender of the message requests to be notified - * when the receiver is composing a reply. - * When the message is a notification returns if the receiver of the message is composing a - * reply. - * - * @return true if the sender is requesting to be notified when composing or when notifying - * that the receiver of the message is composing a reply - */ - public boolean isComposing() { - return composing; - } - - /** - * When the message is a request returns if the sender of the message requests to be notified - * when the message is delivered. - * When the message is a notification returns if the message was delivered or not. - * - * @return true if the sender is requesting to be notified when delivered or when notifying - * that the message was delivered - */ - public boolean isDelivered() { - return delivered; - } - - /** - * When the message is a request returns if the sender of the message requests to be notified - * when the message is displayed. - * When the message is a notification returns if the message was displayed or not. - * - * @return true if the sender is requesting to be notified when displayed or when notifying - * that the message was displayed - */ - public boolean isDisplayed() { - return displayed; - } - - /** - * When the message is a request returns if the sender of the message requests to be notified - * when the receiver of the message is offline. - * When the message is a notification returns if the receiver of the message was offline. - * - * @return true if the sender is requesting to be notified when offline or when notifying - * that the receiver of the message is offline - */ - public boolean isOffline() { - return offline; - } - - /** - * When the message is a notification returns if the receiver of the message cancelled - * composing a reply. - * - * @return true if the receiver of the message cancelled composing a reply - */ - public boolean isCancelled() { - return cancelled; - } - - /** - * Returns the unique ID of the message that requested to be notified of the event. - * The packet id is not used when the message is a request for notifications - * - * @return the message id that requested to be notified of the event. - */ - public String getPacketID() { - return packetID; - } - - /** - * Returns the types of events. The type of event could be: - * "offline", "composing","delivered","displayed", "offline" - * - * @return an iterator over all the types of events of the MessageEvent. - */ - public Iterator getEventTypes() { - ArrayList allEvents = new ArrayList(); - if (isDelivered()) { - allEvents.add(MessageEvent.DELIVERED); - } - if (isCancelled()) { - allEvents.add(MessageEvent.CANCELLED); - } - if (isComposing()) { - allEvents.add(MessageEvent.COMPOSING); - } - if (isDisplayed()) { - allEvents.add(MessageEvent.DISPLAYED); - } - if (isOffline()) { - allEvents.add(MessageEvent.OFFLINE); - } - return allEvents.iterator(); - } - - /** - * When the message is a request sets if the sender of the message requests to be notified - * when the receiver is composing a reply. - * When the message is a notification sets if the receiver of the message is composing a - * reply. - * - * @param composing sets if the sender is requesting to be notified when composing or when - * notifying that the receiver of the message is composing a reply - */ - public void setComposing(boolean composing) { - this.composing = composing; - setCancelled(false); - } - - /** - * When the message is a request sets if the sender of the message requests to be notified - * when the message is delivered. - * When the message is a notification sets if the message was delivered or not. - * - * @param delivered sets if the sender is requesting to be notified when delivered or when - * notifying that the message was delivered - */ - public void setDelivered(boolean delivered) { - this.delivered = delivered; - setCancelled(false); - } - - /** - * When the message is a request sets if the sender of the message requests to be notified - * when the message is displayed. - * When the message is a notification sets if the message was displayed or not. - * - * @param displayed sets if the sender is requesting to be notified when displayed or when - * notifying that the message was displayed - */ - public void setDisplayed(boolean displayed) { - this.displayed = displayed; - setCancelled(false); - } - - /** - * When the message is a request sets if the sender of the message requests to be notified - * when the receiver of the message is offline. - * When the message is a notification sets if the receiver of the message was offline. - * - * @param offline sets if the sender is requesting to be notified when offline or when - * notifying that the receiver of the message is offline - */ - public void setOffline(boolean offline) { - this.offline = offline; - setCancelled(false); - } - - /** - * When the message is a notification sets if the receiver of the message cancelled - * composing a reply. - * The Cancelled event is never requested explicitly. It is requested implicitly when - * requesting to be notified of the Composing event. - * - * @param cancelled sets if the receiver of the message cancelled composing a reply - */ - public void setCancelled(boolean cancelled) { - this.cancelled = cancelled; - } - - /** - * Sets the unique ID of the message that requested to be notified of the event. - * The packet id is not used when the message is a request for notifications - * - * @param packetID the message id that requested to be notified of the event. - */ - public void setPacketID(String packetID) { - this.packetID = packetID; - } - - /** - * Returns true if this MessageEvent is a request for notifications. - * Returns false if this MessageEvent is a notification of an event. - * - * @return true if this message is a request for notifications. - */ - public boolean isMessageEventRequest() { - return this.packetID == null; - } - - /** - * Returns the XML representation of a Message Event according the specification. - * - * Usually the XML representation will be inside of a Message XML representation like - * in the following examples:

    - * - * Request to be notified when displayed: - *

    -     * <message
    -     *    to='romeo@montague.net/orchard'
    -     *    from='juliet@capulet.com/balcony'
    -     *    id='message22'>
    -     * <x xmlns='jabber:x:event'>
    -     *   <displayed/>
    -     * </x>
    -     * </message>
    -     * 
    - * - * Notification of displayed: - *
    -     * <message
    -     *    from='romeo@montague.net/orchard'
    -     *    to='juliet@capulet.com/balcony'>
    -     * <x xmlns='jabber:x:event'>
    -     *   <displayed/>
    -     *   <id>message22</id>
    -     * </x>
    -     * </message>
    -     * 
    - * - */ - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - // Note: Cancellation events don't specify any tag. They just send the packetID - - // Add the offline tag if the sender requests to be notified of offline events or if - // the target is offline - if (isOffline()) - buf.append("<").append(MessageEvent.OFFLINE).append("/>"); - // Add the delivered tag if the sender requests to be notified when the message is - // delivered or if the target notifies that the message has been delivered - if (isDelivered()) - buf.append("<").append(MessageEvent.DELIVERED).append("/>"); - // Add the displayed tag if the sender requests to be notified when the message is - // displayed or if the target notifies that the message has been displayed - if (isDisplayed()) - buf.append("<").append(MessageEvent.DISPLAYED).append("/>"); - // Add the composing tag if the sender requests to be notified when the target is - // composing a reply or if the target notifies that he/she is composing a reply - if (isComposing()) - buf.append("<").append(MessageEvent.COMPOSING).append("/>"); - // Add the id tag only if the MessageEvent is a notification message (not a request) - if (getPacketID() != null) - buf.append("").append(getPacketID()).append(""); - buf.append(""); - return buf.toString(); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageInfo.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageInfo.java deleted file mode 100644 index 90c1ead71..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageInfo.java +++ /dev/null @@ -1,128 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.xmlpull.v1.XmlPullParser; - -/** - * OfflineMessageInfo is an extension included in the retrieved offline messages requested by - * the {@link org.jivesoftware.smackx.OfflineMessageManager}. This extension includes a stamp - * that uniquely identifies the offline message. This stamp may be used for deleting the offline - * message. The stamp may be of the form UTC timestamps but it is not required to have that format. - * - * @author Gaston Dombiak - */ -public class OfflineMessageInfo implements PacketExtension { - - private String node = null; - - /** - * Returns the XML element name of the extension sub-packet root element. - * Always returns "offline" - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return "offline"; - } - - /** - * Returns the XML namespace of the extension sub-packet root element. - * According the specification the namespace is always "http://jabber.org/protocol/offline" - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return "http://jabber.org/protocol/offline"; - } - - /** - * Returns the stamp that uniquely identifies the offline message. This stamp may - * be used for deleting the offline message. The stamp may be of the form UTC timestamps - * but it is not required to have that format. - * - * @return the stamp that uniquely identifies the offline message. - */ - public String getNode() { - return node; - } - - /** - * Sets the stamp that uniquely identifies the offline message. This stamp may - * be used for deleting the offline message. The stamp may be of the form UTC timestamps - * but it is not required to have that format. - * - * @param node the stamp that uniquely identifies the offline message. - */ - public void setNode(String node) { - this.node = node; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - if (getNode() != null) - buf.append(""); - buf.append(""); - return buf.toString(); - } - - public static class Provider implements PacketExtensionProvider { - - /** - * Creates a new Provider. - * ProviderManager requires that every PacketExtensionProvider has a public, - * no-argument constructor - */ - public Provider() { - } - - /** - * Parses a OfflineMessageInfo packet (extension sub-packet). - * - * @param parser the XML parser, positioned at the starting element of the extension. - * @return a PacketExtension. - * @throws Exception if a parsing error occurs. - */ - public PacketExtension parseExtension(XmlPullParser parser) - throws Exception { - OfflineMessageInfo info = new OfflineMessageInfo(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) - info.setNode(parser.getAttributeValue("", "node")); - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("offline")) { - done = true; - } - } - } - - return info; - } - - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageRequest.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageRequest.java deleted file mode 100644 index 9b726e3c6..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/OfflineMessageRequest.java +++ /dev/null @@ -1,237 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; -import org.xmlpull.v1.XmlPullParser; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -/** - * Represents a request to get some or all the offline messages of a user. This class can also - * be used for deleting some or all the offline messages of a user. - * - * @author Gaston Dombiak - */ -public class OfflineMessageRequest extends IQ { - - private List items = new ArrayList(); - private boolean purge = false; - private boolean fetch = false; - - /** - * Returns an Iterator for item childs that holds information about offline messages to - * view or delete. - * - * @return an Iterator for item childs that holds information about offline messages to - * view or delete. - */ - public Iterator getItems() { - synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)).iterator(); - } - } - - /** - * Adds an item child that holds information about offline messages to view or delete. - * - * @param item the item child that holds information about offline messages to view or delete. - */ - public void addItem(Item item) { - synchronized (items) { - items.add(item); - } - } - - /** - * Returns true if all the offline messages of the user should be deleted. - * - * @return true if all the offline messages of the user should be deleted. - */ - public boolean isPurge() { - return purge; - } - - /** - * Sets if all the offline messages of the user should be deleted. - * - * @param purge true if all the offline messages of the user should be deleted. - */ - public void setPurge(boolean purge) { - this.purge = purge; - } - - /** - * Returns true if all the offline messages of the user should be retrieved. - * - * @return true if all the offline messages of the user should be retrieved. - */ - public boolean isFetch() { - return fetch; - } - - /** - * Sets if all the offline messages of the user should be retrieved. - * - * @param fetch true if all the offline messages of the user should be retrieved. - */ - public void setFetch(boolean fetch) { - this.fetch = fetch; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - synchronized (items) { - for (int i = 0; i < items.size(); i++) { - Item item = (Item) items.get(i); - buf.append(item.toXML()); - } - } - if (purge) { - buf.append(""); - } - if (fetch) { - buf.append(""); - } - // Add packet extensions, if any are defined. - buf.append(getExtensionsXML()); - buf.append(""); - return buf.toString(); - } - - /** - * Item child that holds information about offline messages to view or delete. - * - * @author Gaston Dombiak - */ - public static class Item { - private String action; - private String jid; - private String node; - - /** - * Creates a new item child. - * - * @param node the actor's affiliation to the room - */ - public Item(String node) { - this.node = node; - } - - public String getNode() { - return node; - } - - /** - * Returns "view" or "remove" that indicate if the server should return the specified - * offline message or delete it. - * - * @return "view" or "remove" that indicate if the server should return the specified - * offline message or delete it. - */ - public String getAction() { - return action; - } - - /** - * Sets if the server should return the specified offline message or delete it. Possible - * values are "view" or "remove". - * - * @param action if the server should return the specified offline message or delete it. - */ - public void setAction(String action) { - this.action = action; - } - - public String getJid() { - return jid; - } - - public void setJid(String jid) { - this.jid = jid; - } - - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - return buf.toString(); - } - } - - public static class Provider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - OfflineMessageRequest request = new OfflineMessageRequest(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { - request.addItem(parseItem(parser)); - } - else if (parser.getName().equals("purge")) { - request.setPurge(true); - } - else if (parser.getName().equals("fetch")) { - request.setFetch(true); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("offline")) { - done = true; - } - } - } - - return request; - } - - private Item parseItem(XmlPullParser parser) throws Exception { - boolean done = false; - Item item = new Item(parser.getAttributeValue("", "node")); - item.setAction(parser.getAttributeValue("", "action")); - item.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - done = true; - } - } - } - return item; - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/PrivateData.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/PrivateData.java deleted file mode 100644 index c83269c51..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/PrivateData.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -/** - * Interface to represent private data. Each private data chunk is an XML sub-document - * with a root element name and namespace. - * - * @see org.jivesoftware.smackx.PrivateDataManager - * @author Matt Tucker - */ -public interface PrivateData { - - /** - * Returns the root element name. - * - * @return the element name. - */ - public String getElementName(); - - /** - * Returns the root element XML namespace. - * - * @return the namespace. - */ - public String getNamespace(); - - /** - * Returns the XML reppresentation of the PrivateData. - * - * @return the private data as XML. - */ - public String toXML(); -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/RosterExchange.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/RosterExchange.java deleted file mode 100644 index 553c6dcdf..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/RosterExchange.java +++ /dev/null @@ -1,175 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smackx.*; - -/** - * Represents XMPP Roster Item Exchange packets.

    - * - * The 'jabber:x:roster' namespace (which is not to be confused with the 'jabber:iq:roster' - * namespace) is used to send roster items from one client to another. A roster item is sent by - * adding to the <message/> element an <x/> child scoped by the 'jabber:x:roster' namespace. This - * <x/> element may contain one or more <item/> children (one for each roster item to be sent).

    - * - * Each <item/> element may possess the following attributes:

    - * - * <jid/> -- The id of the contact being sent. This attribute is required.
    - * <name/> -- A natural-language nickname for the contact. This attribute is optional.

    - * - * Each <item/> element may also contain one or more <group/> children specifying the - * natural-language name of a user-specified group, for the purpose of categorizing this contact - * into one or more roster groups. - * - * @author Gaston Dombiak - */ -public class RosterExchange implements PacketExtension { - - private List remoteRosterEntries = new ArrayList(); - - /** - * Creates a new empty roster exchange package. - * - */ - public RosterExchange() { - super(); - } - - /** - * Creates a new roster exchange package with the entries specified in roster. - * - * @param roster the roster to send to other XMPP entity. - */ - public RosterExchange(Roster roster) { - // Add all the roster entries to the new RosterExchange - for (Iterator rosterEntries = roster.getEntries(); rosterEntries.hasNext();) { - this.addRosterEntry((RosterEntry) rosterEntries.next()); - } - } - - /** - * Adds a roster entry to the packet. - * - * @param rosterEntry a roster entry to add. - */ - public void addRosterEntry(RosterEntry rosterEntry) { - // Obtain a String[] from the roster entry groups name - ArrayList groupNamesList = new ArrayList(); - String[] groupNames; - for (Iterator groups = rosterEntry.getGroups(); groups.hasNext();) { - groupNamesList.add(((RosterGroup) groups.next()).getName()); - } - groupNames = (String[]) groupNamesList.toArray(new String[groupNamesList.size()]); - - // Create a new Entry based on the rosterEntry and add it to the packet - RemoteRosterEntry remoteRosterEntry = new RemoteRosterEntry(rosterEntry.getUser(), rosterEntry.getName(), groupNames); - - addRosterEntry(remoteRosterEntry); - } - - /** - * Adds a remote roster entry to the packet. - * - * @param remoteRosterEntry a remote roster entry to add. - */ - public void addRosterEntry(RemoteRosterEntry remoteRosterEntry) { - synchronized (remoteRosterEntries) { - remoteRosterEntries.add(remoteRosterEntry); - } - } - - /** - * Returns the XML element name of the extension sub-packet root element. - * Always returns "x" - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return "x"; - } - - /** - * Returns the XML namespace of the extension sub-packet root element. - * According the specification the namespace is always "jabber:x:roster" - * (which is not to be confused with the 'jabber:iq:roster' namespace - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return "jabber:x:roster"; - } - - /** - * Returns an Iterator for the roster entries in the packet. - * - * @return an Iterator for the roster entries in the packet. - */ - public Iterator getRosterEntries() { - synchronized (remoteRosterEntries) { - List entries = Collections.unmodifiableList(new ArrayList(remoteRosterEntries)); - return entries.iterator(); - } - } - - /** - * Returns a count of the entries in the roster exchange. - * - * @return the number of entries in the roster exchange. - */ - public int getEntryCount() { - return remoteRosterEntries.size(); - } - - /** - * Returns the XML representation of a Roster Item Exchange according the specification. - * - * Usually the XML representation will be inside of a Message XML representation like - * in the following example: - *

    -     * <message id="MlIpV-4" to="gato1@gato.home" from="gato3@gato.home/Smack">
    -     *     <subject>Any subject you want</subject>
    -     *     <body>This message contains roster items.</body>
    -     *     <x xmlns="jabber:x:roster">
    -     *         <item jid="gato1@gato.home"/>
    -     *         <item jid="gato2@gato.home"/>
    -     *     </x>
    -     * </message>
    -     * 
    - * - */ - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - // Loop through all roster entries and append them to the string buffer - for (Iterator i = getRosterEntries(); i.hasNext();) { - RemoteRosterEntry remoteRosterEntry = (RemoteRosterEntry) i.next(); - buf.append(remoteRosterEntry.toXML()); - } - buf.append(""); - return buf.toString(); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/Time.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/Time.java deleted file mode 100644 index 9ceea620f..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/Time.java +++ /dev/null @@ -1,196 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.packet.IQ; - -import java.util.*; -import java.text.SimpleDateFormat; -import java.text.DateFormat; - -/** - * A Time IQ packet, which is used by XMPP clients to exchange their respective local - * times. Clients that wish to fully support the entitity time protocol should register - * a PacketListener for incoming time requests that then respond with the local time. - * This class can be used to request the time from other clients, such as in the - * following code snippet: - * - *
    - * // Request the time from a remote user.
    - * Time timeRequest = new Time();
    - * timeRequest.setType(IQ.Type.GET);
    - * timeRequest.setTo(someUser@example.com);
    - *
    - * // Create a packet collector to listen for a response.
    - * PacketCollector collector = con.createPacketCollector(
    - *                new PacketIDFilter(timeRequest.getPacketID()));
    - *
    - * con.sendPacket(timeRequest);
    - *
    - * // Wait up to 5 seconds for a result.
    - * IQ result = (IQ)collector.nextResult(5000);
    - * if (result != null && result.getType() == IQ.Type.RESULT) {
    - *     Time timeResult = (Time)result;
    - *     // Do something with result...
    - * }

    - * - * Warning: this is an non-standard protocol documented by - * JEP-90. Because this is a - * non-standard protocol, it is subject to change. - * - * @author Matt Tucker - */ -public class Time extends IQ { - - private static SimpleDateFormat utcFormat = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); - private static DateFormat displayFormat = DateFormat.getDateTimeInstance(); - - private String utc = null; - private String tz = null; - private String display = null; - - /** - * Creates a new Time instance with empty values for all fields. - */ - public Time() { - this(Calendar.getInstance()); - } - - /** - * Creates a new Time instance using the specified calendar instance as - * the time value to send. - * - * @param cal the time value. - */ - public Time(Calendar cal) { - TimeZone timeZone = cal.getTimeZone(); - tz = cal.getTimeZone().getID(); - display = displayFormat.format(cal.getTime()); - // Convert local time to the UTC time. - utc = utcFormat.format(new Date( - cal.getTimeInMillis() - timeZone.getOffset(cal.getTimeInMillis()))); - } - - /** - * Returns the local time or null if the time hasn't been set. - * - * @return the lcocal time. - */ - public Date getTime() { - if (utc == null) { - return null; - } - Date date = null; - try { - Calendar cal = Calendar.getInstance(); - // Convert the UTC time to local time. - cal.setTime(new Date(utcFormat.parse(utc).getTime() + - cal.getTimeZone().getOffset(cal.getTimeInMillis()))); - date = cal.getTime(); - } - catch (Exception e) { - e.printStackTrace(); - } - return date; - } - - /** - * Sets the time using the local time. - * - * @param time the current local time. - */ - public void setTime(Date time) { - // Convert local time to UTC time. - utc = utcFormat.format(new Date( - time.getTime() - TimeZone.getDefault().getOffset(time.getTime()))); - } - - /** - * Returns the time as a UTC formatted String using the format CCYYMMDDThh:mm:ss. - * - * @return the time as a UTC formatted String. - */ - public String getUtc() { - return utc; - } - - /** - * Sets the time using UTC formatted String in the format CCYYMMDDThh:mm:ss. - * - * @param utc the time using a formatted String. - */ - public void setUtc(String utc) { - this.utc = utc; - - } - - /** - * Returns the time zone. - * - * @return the time zone. - */ - public String getTz() { - return tz; - } - - /** - * Sets the time zone. - * - * @param tz the time zone. - */ - public void setTz(String tz) { - this.tz = tz; - } - - /** - * Returns the local (non-utc) time in human-friendly format. - * - * @return the local time in human-friendly format. - */ - public String getDisplay() { - return display; - } - - /** - * Sets the local time in human-friendly format. - * - * @param display the local time in human-friendly format. - */ - public void setDisplay(String display) { - this.display = display; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (utc != null) { - buf.append("").append(utc).append(""); - } - if (tz != null) { - buf.append("").append(tz).append(""); - } - if (display != null) { - buf.append("").append(display).append(""); - } - buf.append(""); - return buf.toString(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/VCard.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/VCard.java deleted file mode 100644 index d6d475348..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/VCard.java +++ /dev/null @@ -1,646 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.PacketCollector; -import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.filter.PacketIDFilter; -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.packet.XMPPError; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -/** - * A VCard class for use with the - * SMACK jabber library.

    - * - * You should refer to the - * JEP-54 documentation.

    - * - * Please note that this class is incomplete but it does provide the most commonly found - * information in vCards. Also remember that VCard transfer is not a standard, and the protocol - * may change or be replaced.

    - * - * Usage: - *

    - *
    - * // To save VCard:
    - *
    - * VCard vCard = new VCard();
    - * vCard.setFirstName("kir");
    - * vCard.setLastName("max");
    - * vCard.setEmailHome("foo@fee.bar");
    - * vCard.setJabberId("jabber@id.org");
    - * vCard.setOrganization("Jetbrains, s.r.o");
    - * vCard.setNickName("KIR");
    - *
    - * vCard.setField("TITLE", "Mr");
    - * vCard.setAddressFieldHome("STREET", "Some street");
    - * vCard.setAddressFieldWork("CTRY", "US");
    - * vCard.setPhoneWork("FAX", "3443233");
    - *
    - * vCard.save(connection);
    - *
    - * // To load VCard:
    - *
    - * VCard vCard = new VCard();
    - * vCard.load(conn); // load own VCard
    - * vCard.load(conn, "joe@foo.bar"); // load someone's VCard
    - * 
    - * - * @author Kirill Maximov (kir@maxkir.com) - */ -public class VCard extends IQ { - - /** - * Phone types: - * VOICE?, FAX?, PAGER?, MSG?, CELL?, VIDEO?, BBS?, MODEM?, ISDN?, PCS?, PREF? - */ - private Map homePhones = new HashMap(); - private Map workPhones = new HashMap(); - - - /** - * Address types: - * POSTAL?, PARCEL?, (DOM | INTL)?, PREF?, POBOX?, EXTADR?, STREET?, LOCALITY?, - * REGION?, PCODE?, CTRY? - */ - private Map homeAddr = new HashMap(); - private Map workAddr = new HashMap(); - - private String firstName; - private String lastName; - private String middleName; - - private String emailHome; - private String emailWork; - - private String organization; - private String organizationUnit; - - /** - * Such as DESC ROLE GEO etc.. see JEP-0054 - */ - private Map otherSimpleFields = new HashMap(); - - public VCard() { - } - - /** - * Set generic VCard field. - * - * @param field value of field. Possible values: NICKNAME, PHOTO, BDAY, JABBERID, MAILER, TZ, - * GEO, TITLE, ROLE, LOGO, NOTE, PRODID, REV, SORT-STRING, SOUND, UID, URL, DESC. - */ - public String getField(String field) { - return (String) otherSimpleFields.get(field); - } - - /** - * Set generic VCard field. - * - * @param value value of field - * @param field field to set. See {@link #getField(String)} - * @see #getField(String) - */ - public void setField(String field, String value) { - otherSimpleFields.put(field, value); - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getMiddleName() { - return middleName; - } - - public void setMiddleName(String middleName) { - this.middleName = middleName; - } - - public String getNickName() { - return (String) otherSimpleFields.get("NICKNAME"); - } - - public void setNickName(String nickName) { - otherSimpleFields.put("NICKNAME", nickName); - } - - public String getEmailHome() { - return emailHome; - } - - public void setEmailHome(String email) { - this.emailHome = email; - } - - public String getEmailWork() { - return emailWork; - } - - public void setEmailWork(String emailWork) { - this.emailWork = emailWork; - } - - public String getJabberId() { - return (String) otherSimpleFields.get("JABBERID"); - } - - public void setJabberId(String jabberId) { - otherSimpleFields.put("JABBERID", jabberId); - } - - public String getOrganization() { - return organization; - } - - public void setOrganization(String organization) { - this.organization = organization; - } - - public String getOrganizationUnit() { - return organizationUnit; - } - - public void setOrganizationUnit(String organizationUnit) { - this.organizationUnit = organizationUnit; - } - - /** - * Get home address field - * - * @param addrField one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, - * LOCALITY, REGION, PCODE, CTRY - */ - public String getAddressFieldHome(String addrField) { - return (String) homeAddr.get(addrField); - } - - /** - * Set home address field - * - * @param addrField one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, - * LOCALITY, REGION, PCODE, CTRY - */ - public void setAddressFieldHome(String addrField, String value) { - homeAddr.put(addrField, value); - } - - /** - * Get work address field - * - * @param addrField one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, - * LOCALITY, REGION, PCODE, CTRY - */ - public String getAddressFieldWork(String addrField) { - return (String) workAddr.get(addrField); - } - - /** - * Set work address field - * - * @param addrField one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, - * LOCALITY, REGION, PCODE, CTRY - */ - public void setAddressFieldWork(String addrField, String value) { - workAddr.put(addrField, value); - } - - - /** - * Set home phone number - * - * @param phoneType one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF - * @param phoneNum phone number - */ - public void setPhoneHome(String phoneType, String phoneNum) { - homePhones.put(phoneType, phoneNum); - } - - /** - * Get home phone number - * - * @param phoneType one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF - */ - public String getPhoneHome(String phoneType) { - return (String) homePhones.get(phoneType); - } - - /** - * Set work phone number - * - * @param phoneType one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF - * @param phoneNum phone number - */ - public void setPhoneWork(String phoneType, String phoneNum) { - workPhones.put(phoneType, phoneNum); - } - - /** - * Get work phone number - * - * @param phoneType one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF - */ - public String getPhoneWork(String phoneType) { - return (String) workPhones.get(phoneType); - } - - /** - * Save this vCard for the user connected by 'connection'. Connection should be authenticated - * and not anonymous.

    - *

    - * NOTE: the method is asynchronous and does not wait for the returned value. - */ - public void save(XMPPConnection connection) { - checkAuthenticated(connection); - - setType(IQ.Type.SET); - setFrom(connection.getUser()); - connection.sendPacket(this); - } - - /** - * Load VCard information for a connected user. Connection should be authenticated - * and not anonymous. - */ - public void load(XMPPConnection connection) throws XMPPException { - checkAuthenticated(connection); - - setFrom(connection.getUser()); - doLoad(connection, connection.getUser()); - } - - /** - * Load VCard information for a given user. Connection should be authenticated and not anonymous. - */ - public void load(XMPPConnection connection, String user) throws XMPPException { - checkAuthenticated(connection); - - setTo(user); - doLoad(connection, user); - } - - private void doLoad(XMPPConnection connection, String user) throws XMPPException { - setType(Type.GET); - PacketCollector collector = connection.createPacketCollector( - new PacketIDFilter(getPacketID())); - connection.sendPacket(this); - - VCard result = null; - try { - result = (VCard) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - - if (result == null) { - throw new XMPPException(new XMPPError(408, "Timeout getting VCard information")); - } - if (result.getError() != null) { - throw new XMPPException(result.getError()); - } - } catch (ClassCastException e) { - System.out.println("No VCard for " + user); - } - - copyFieldsFrom(result); - } - - public String getChildElementXML() { - StringBuffer sb = new StringBuffer(); - new VCardWriter(sb).write(); - return sb.toString(); - } - - private void copyFieldsFrom(VCard result) { - if (result == null) result = new VCard(); - - Field[] fields = VCard.class.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - Field field = fields[i]; - if (field.getDeclaringClass() == VCard.class && - !Modifier.isFinal(field.getModifiers())) { - try { - field.setAccessible(true); - field.set(this, field.get(result)); - } catch (IllegalAccessException e) { - throw new RuntimeException("This cannot happen:" + field, e); - } - } - } - } - - private void checkAuthenticated(XMPPConnection connection) { - if (connection == null) { - new IllegalArgumentException("No connection was provided"); - } - if (!connection.isAuthenticated()) { - new IllegalArgumentException("Connection is not authenticated"); - } - if (connection.isAnonymous()) { - new IllegalArgumentException("Connection cannot be anonymous"); - } - } - - private boolean hasContent() { - //noinspection OverlyComplexBooleanExpression - return hasNameField() - || hasOrganizationFields() - || emailHome != null - || emailWork != null - || otherSimpleFields.size() > 0 - || homeAddr.size() > 0 - || homePhones.size() > 0 - || workAddr.size() > 0 - || workPhones.size() > 0 - ; - } - - private boolean hasNameField() { - return firstName != null || lastName != null || middleName != null; - } - - private boolean hasOrganizationFields() { - return organization != null || organizationUnit != null; - } - - // Used in tests: - - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - final VCard vCard = (VCard) o; - - if (emailHome != null ? !emailHome.equals(vCard.emailHome) : vCard.emailHome != null) { - return false; - } - if (emailWork != null ? !emailWork.equals(vCard.emailWork) : vCard.emailWork != null) { - return false; - } - if (firstName != null ? !firstName.equals(vCard.firstName) : vCard.firstName != null) { - return false; - } - if (!homeAddr.equals(vCard.homeAddr)) { - return false; - } - if (!homePhones.equals(vCard.homePhones)) { - return false; - } - if (lastName != null ? !lastName.equals(vCard.lastName) : vCard.lastName != null) { - return false; - } - if (middleName != null ? !middleName.equals(vCard.middleName) : vCard.middleName != null) { - return false; - } - if (organization != null ? - !organization.equals(vCard.organization) : vCard.organization != null) { - return false; - } - if (organizationUnit != null ? - !organizationUnit.equals(vCard.organizationUnit) : vCard.organizationUnit != null) { - return false; - } - if (!otherSimpleFields.equals(vCard.otherSimpleFields)) { - return false; - } - if (!workAddr.equals(vCard.workAddr)) { - return false; - } - if (!workPhones.equals(vCard.workPhones)) { - return false; - } - - return true; - } - - public int hashCode() { - int result; - result = homePhones.hashCode(); - result = 29 * result + workPhones.hashCode(); - result = 29 * result + homeAddr.hashCode(); - result = 29 * result + workAddr.hashCode(); - result = 29 * result + (firstName != null ? firstName.hashCode() : 0); - result = 29 * result + (lastName != null ? lastName.hashCode() : 0); - result = 29 * result + (middleName != null ? middleName.hashCode() : 0); - result = 29 * result + (emailHome != null ? emailHome.hashCode() : 0); - result = 29 * result + (emailWork != null ? emailWork.hashCode() : 0); - result = 29 * result + (organization != null ? organization.hashCode() : 0); - result = 29 * result + (organizationUnit != null ? organizationUnit.hashCode() : 0); - result = 29 * result + otherSimpleFields.hashCode(); - return result; - } - - public String toString() { - return getChildElementXML(); - } - - //============================================================== - - private class VCardWriter { - private final StringBuffer sb; - - VCardWriter(StringBuffer sb) { - this.sb = sb; - } - - public void write() { - appendTag("vCard", "xmlns", "vcard-temp", hasContent(), new ContentBuilder() { - public void addTagContent() { - buildActualContent(); - } - }); - } - - private void buildActualContent() { - if (hasNameField()) { - appendFN(); - appendN(); - } - - appendOrganization(); - appendGenericFields(); - - appendEmail(emailWork, "WORK"); - appendEmail(emailHome, "HOME"); - - appendPhones(workPhones, "WORK"); - appendPhones(homePhones, "HOME"); - - appendAddress(workAddr, "WORK"); - appendAddress(homeAddr, "HOME"); - } - - private void appendEmail(final String email, final String type) { - if (email != null) { - appendTag("EMAIL", true, new ContentBuilder() { - public void addTagContent() { - appendEmptyTag(type); - appendEmptyTag("INTERNET"); - appendEmptyTag("PREF"); - appendTag("USERID", email); - } - }); - } - } - - private void appendPhones(Map phones, final String code) { - Iterator it = phones.entrySet().iterator(); - while (it.hasNext()) { - final Map.Entry entry = (Map.Entry) it.next(); - appendTag("TEL", true, new ContentBuilder() { - public void addTagContent() { - appendEmptyTag(entry.getKey()); - appendEmptyTag(code); - appendTag("NUMBER", (String) entry.getValue()); - } - }); - } - } - - private void appendAddress(final Map addr, final String code) { - if (addr.size() > 0) { - appendTag("ADR", true, new ContentBuilder() { - public void addTagContent() { - appendEmptyTag(code); - - Iterator it = addr.entrySet().iterator(); - while (it.hasNext()) { - final Map.Entry entry = (Map.Entry) it.next(); - appendTag((String) entry.getKey(), (String) entry.getValue()); - } - } - }); - } - } - - private void appendEmptyTag(Object tag) { - sb.append('<').append(tag).append("/>"); - } - - private void appendGenericFields() { - Iterator it = otherSimpleFields.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry entry = (Map.Entry) it.next(); - appendTag(entry.getKey().toString(), (String) entry.getValue()); - } - } - - private void appendOrganization() { - if (hasOrganizationFields()) { - appendTag("ORG", true, new ContentBuilder() { - public void addTagContent() { - appendTag("ORGNAME", organization); - appendTag("ORGUNIT", organizationUnit); - } - }); - } - } - - private void appendField(String tag) { - String value = (String) otherSimpleFields.get(tag); - appendTag(tag, value); - } - - private void appendFN() { - final ContentBuilder contentBuilder = new ContentBuilder() { - public void addTagContent() { - if (firstName != null) { - sb.append(firstName + ' '); - } - if (middleName != null) { - sb.append(middleName + ' '); - } - if (lastName != null) { - sb.append(lastName); - } - } - }; - appendTag("FN", true, contentBuilder); - } - - private void appendN() { - appendTag("N", true, new ContentBuilder() { - public void addTagContent() { - appendTag("FAMILY", lastName); - appendTag("GIVEN", firstName); - appendTag("MIDDLE", middleName); - } - }); - } - - private void appendTag(String tag, String attr, String attrValue, boolean hasContent, - ContentBuilder builder) { - sb.append('<').append(tag); - if (attr != null) { - sb.append(' ').append(attr).append('=').append('\'').append(attrValue).append('\''); - } - - if (hasContent) { - sb.append('>'); - builder.addTagContent(); - sb.append("\n"); - } else { - sb.append("/>\n"); - } - } - - private void appendTag(String tag, boolean hasContent, ContentBuilder builder) { - appendTag(tag, null, null, hasContent, builder); - } - - private void appendTag(String tag, final String tagText) { - if (tagText == null) return; - final ContentBuilder contentBuilder = new ContentBuilder() { - public void addTagContent() { - sb.append(tagText.trim()); - } - }; - appendTag(tag, true, contentBuilder); - } - - } - - //============================================================== - - private interface ContentBuilder { - void addTagContent(); - } - - //============================================================== -} - diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/Version.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/Version.java deleted file mode 100644 index 206208f3f..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/Version.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.packet.IQ; - -/** - * A Version IQ packet, which is used by XMPP clients to discover version information - * about the software running at another entity's JID.

    - * - * An example to discover the version of the server: - *

    - * // Request the version from the server.
    - * Version versionRequest = new Version();
    - * timeRequest.setType(IQ.Type.GET);
    - * timeRequest.setTo("example.com");
    - *
    - * // Create a packet collector to listen for a response.
    - * PacketCollector collector = con.createPacketCollector(
    - *                new PacketIDFilter(versionRequest.getPacketID()));
    - *
    - * con.sendPacket(versionRequest);
    - *
    - * // Wait up to 5 seconds for a result.
    - * IQ result = (IQ)collector.nextResult(5000);
    - * if (result != null && result.getType() == IQ.Type.RESULT) {
    - *     Version versionResult = (Version)result;
    - *     // Do something with result...
    - * }

    - * - * @author Gaston Dombiak - */ -public class Version extends IQ { - - private String name; - private String version; - private String os; - - /** - * Returns the natural-language name of the software. This property will always be - * present in a result. - * - * @return the natural-language name of the software. - */ - public String getName() { - return name; - } - - /** - * Sets the natural-language name of the software. This message should only be - * invoked when parsing the XML and setting the property to a Version instance. - * - * @param name the natural-language name of the software. - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the specific version of the software. This property will always be - * present in a result. - * - * @return the specific version of the software. - */ - public String getVersion() { - return version; - } - - /** - * Sets the specific version of the software. This message should only be - * invoked when parsing the XML and setting the property to a Version instance. - * - * @param version the specific version of the software. - */ - public void setVersion(String version) { - this.version = version; - } - - /** - * Returns the operating system of the queried entity. This property will always be - * present in a result. - * - * @return the operating system of the queried entity. - */ - public String getOs() { - return os; - } - - /** - * Sets the operating system of the queried entity. This message should only be - * invoked when parsing the XML and setting the property to a Version instance. - * - * @param os operating system of the queried entity. - */ - public void setOs(String os) { - this.os = os; - } - - public String getChildElementXML() { - StringBuffer buf = new StringBuffer(); - buf.append(""); - if (name != null) { - buf.append("").append(name).append(""); - } - if (version != null) { - buf.append("").append(version).append(""); - } - if (os != null) { - buf.append("").append(os).append(""); - } - buf.append(""); - return buf.toString(); - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/XHTMLExtension.java b/CopyOftrunk/source/org/jivesoftware/smackx/packet/XHTMLExtension.java deleted file mode 100644 index 6bf266569..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/XHTMLExtension.java +++ /dev/null @@ -1,123 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.packet.PacketExtension; - -/** - * An XHTML sub-packet, which is used by XMPP clients to exchange formatted text. The XHTML - * extension is only a subset of XHTML 1.0.

    - * - * The following link summarizes the requirements of XHTML IM: - * Valid tags.

    - * - * Warning: this is an non-standard protocol documented by - * JEP-71. Because this is a - * non-standard protocol, it is subject to change. - * - * @author Gaston Dombiak - */ -public class XHTMLExtension implements PacketExtension { - - private List bodies = new ArrayList(); - - /** - * Returns the XML element name of the extension sub-packet root element. - * Always returns "html" - * - * @return the XML element name of the packet extension. - */ - public String getElementName() { - return "html"; - } - - /** - * Returns the XML namespace of the extension sub-packet root element. - * According the specification the namespace is always "http://jabber.org/protocol/xhtml-im" - * - * @return the XML namespace of the packet extension. - */ - public String getNamespace() { - return "http://jabber.org/protocol/xhtml-im"; - } - - /** - * Returns the XML representation of a XHTML extension according the specification. - * - * Usually the XML representation will be inside of a Message XML representation like - * in the following example: - *

    -     * <message id="MlIpV-4" to="gato1@gato.home" from="gato3@gato.home/Smack">
    -     *     <subject>Any subject you want</subject>
    -     *     <body>This message contains something interesting.</body>
    -     *     <html xmlns="http://jabber.org/protocol/xhtml-im">
    -     *         <body><p style='font-size:large'>This message contains something <em>interesting</em>.</p></body>
    -     *     </html>
    -     * </message>
    -     * 
    - * - */ - public String toXML() { - StringBuffer buf = new StringBuffer(); - buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( - "\">"); - // Loop through all the bodies and append them to the string buffer - for (Iterator i = getBodies(); i.hasNext();) { - buf.append((String) i.next()); - } - buf.append(""); - return buf.toString(); - } - - /** - * Returns an Iterator for the bodies in the packet. - * - * @return an Iterator for the bodies in the packet. - */ - public Iterator getBodies() { - synchronized (bodies) { - return Collections.unmodifiableList(new ArrayList(bodies)).iterator(); - } - } - - /** - * Adds a body to the packet. - * - * @param body the body to add. - */ - public void addBody(String body) { - synchronized (bodies) { - bodies.add(body); - } - } - - /** - * Returns a count of the bodies in the XHTML packet. - * - * @return the number of bodies in the XHTML packet. - */ - public int getBodiesCount() { - return bodies.size(); - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/packet/package.html b/CopyOftrunk/source/org/jivesoftware/smackx/packet/package.html deleted file mode 100644 index 490d1d72d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/packet/package.html +++ /dev/null @@ -1 +0,0 @@ -XML packets that are part of the XMPP extension protocols. \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DataFormProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/DataFormProvider.java deleted file mode 100644 index 325a9ce2d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DataFormProvider.java +++ /dev/null @@ -1,160 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import java.util.ArrayList; -import java.util.List; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smackx.FormField; -import org.jivesoftware.smackx.packet.DataForm; -import org.xmlpull.v1.XmlPullParser; - -/** - * The DataFormProvider parses DataForm packets. - * - * @author Gaston Dombiak - */ -public class DataFormProvider implements PacketExtensionProvider { - - /** - * Creates a new DataFormProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument constructor - */ - public DataFormProvider() { - } - - public PacketExtension parseExtension(XmlPullParser parser) throws Exception { - boolean done = false; - StringBuffer buffer = null; - DataForm dataForm = new DataForm(parser.getAttributeValue("", "type")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("instructions")) { - dataForm.addInstruction(parser.nextText()); - } - else if (parser.getName().equals("title")) { - dataForm.setTitle(parser.nextText()); - } - else if (parser.getName().equals("field")) { - dataForm.addField(parseField(parser)); - } - else if (parser.getName().equals("item")) { - dataForm.addItem(parseItem(parser)); - } - else if (parser.getName().equals("reported")) { - dataForm.setReportedData(parseReported(parser)); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals(dataForm.getElementName())) { - done = true; - } - } - } - return dataForm; - } - - private FormField parseField(XmlPullParser parser) throws Exception { - boolean done = false; - FormField formField = new FormField(parser.getAttributeValue("", "var")); - formField.setLabel(parser.getAttributeValue("", "label")); - formField.setType(parser.getAttributeValue("", "type")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("desc")) { - formField.setDescription(parser.nextText()); - } - else if (parser.getName().equals("value")) { - formField.addValue(parser.nextText()); - } - else if (parser.getName().equals("required")) { - formField.setRequired(true); - } - else if (parser.getName().equals("option")) { - formField.addOption(parseOption(parser)); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("field")) { - done = true; - } - } - } - return formField; - } - - private DataForm.Item parseItem(XmlPullParser parser) throws Exception { - boolean done = false; - List fields = new ArrayList(); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("field")) { - fields.add(parseField(parser)); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - done = true; - } - } - } - return new DataForm.Item(fields); - } - - private DataForm.ReportedData parseReported(XmlPullParser parser) throws Exception { - boolean done = false; - List fields = new ArrayList(); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("field")) { - fields.add(parseField(parser)); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("reported")) { - done = true; - } - } - } - return new DataForm.ReportedData(fields); - } - - private FormField.Option parseOption(XmlPullParser parser) throws Exception { - boolean done = false; - FormField.Option option = null; - String label = parser.getAttributeValue("", "label"); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("value")) { - option = new FormField.Option(label, parser.nextText()); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("option")) { - done = true; - } - } - } - return option; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DelayInformationProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/DelayInformationProvider.java deleted file mode 100644 index 2065af6fe..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DelayInformationProvider.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smackx.packet.DelayInformation; -import org.xmlpull.v1.XmlPullParser; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; - -/** - * The DelayInformationProvider parses DelayInformation packets. - * - * @author Gaston Dombiak - */ -public class DelayInformationProvider implements PacketExtensionProvider { - - /** - * Creates a new DeliveryInformationProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument - * constructor - */ - public DelayInformationProvider() { - } - - public PacketExtension parseExtension(XmlPullParser parser) throws Exception { - Date stamp = null; - try { - stamp = DelayInformation.UTC_FORMAT.parse(parser.getAttributeValue("", "stamp")); - } catch (ParseException e) { - // Try again but assuming that the date follows JEP-82 format - // (Jabber Date and Time Profiles) - try { - stamp = DelayInformation.NEW_UTC_FORMAT - .parse(parser.getAttributeValue("", "stamp")); - } catch (ParseException e1) { - // Last attempt. Try parsing the date assuming that it does not include milliseconds - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); - formatter.setTimeZone(TimeZone.getTimeZone("UTC")); - stamp = formatter.parse(parser.getAttributeValue("", "stamp")); - } - } - DelayInformation delayInformation = new DelayInformation(stamp); - delayInformation.setFrom(parser.getAttributeValue("", "from")); - delayInformation.setReason(parser.nextText()); - return delayInformation; - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java deleted file mode 100644 index cf13d63f5..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.packet.DiscoverInfo; -import org.xmlpull.v1.XmlPullParser; - -/** -* The DiscoverInfoProvider parses Service Discovery information packets. -* -* @author Gaston Dombiak -*/ -public class DiscoverInfoProvider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - DiscoverInfo discoverInfo = new DiscoverInfo(); - boolean done = false; - DiscoverInfo.Feature feature = null; - DiscoverInfo.Identity identity = null; - String category = ""; - String name = ""; - String type = ""; - String variable = ""; - discoverInfo.setNode(parser.getAttributeValue("", "node")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("identity")) { - // Initialize the variables from the parsed XML - category = parser.getAttributeValue("", "category"); - name = parser.getAttributeValue("", "name"); - type = parser.getAttributeValue("", "type"); - } - else if (parser.getName().equals("feature")) { - // Initialize the variables from the parsed XML - variable = parser.getAttributeValue("", "var"); - } - // Otherwise, it must be a packet extension. - else { - discoverInfo.addExtension(PacketParserUtils.parsePacketExtension(parser - .getName(), parser.getNamespace(), parser)); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("identity")) { - // Create a new identity and add it to the discovered info. - identity = new DiscoverInfo.Identity(category, name); - identity.setType(type); - discoverInfo.addIdentity(identity); - } - if (parser.getName().equals("feature")) { - // Create a new feature and add it to the discovered info. - discoverInfo.addFeature(variable); - } - if (parser.getName().equals("query")) { - done = true; - } - } - } - - return discoverInfo; - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java deleted file mode 100644 index 34aae227b..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smackx.packet.*; -import org.xmlpull.v1.XmlPullParser; - -/** -* The DiscoverInfoProvider parses Service Discovery items packets. -* -* @author Gaston Dombiak -*/ -public class DiscoverItemsProvider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - DiscoverItems discoverItems = new DiscoverItems(); - boolean done = false; - DiscoverItems.Item item = null; - String jid = ""; - String name = ""; - String action = ""; - String node = ""; - discoverItems.setNode(parser.getAttributeValue("", "node")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { - // Initialize the variables from the parsed XML - jid = parser.getAttributeValue("", "jid"); - name = parser.getAttributeValue("", "name"); - node = parser.getAttributeValue("", "node"); - action = parser.getAttributeValue("", "action"); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - // Create a new Item and add it to DiscoverItems. - item = new DiscoverItems.Item(jid); - item.setName(name); - item.setNode(node); - item.setAction(action); - discoverItems.addItem(item); - } - if (parser.getName().equals("query")) { - done = true; - } - } - } - - return discoverItems; - } -} \ No newline at end of file diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCAdminProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCAdminProvider.java deleted file mode 100644 index 0f5f04f07..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCAdminProvider.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smackx.packet.MUCAdmin; -import org.xmlpull.v1.XmlPullParser; - -/** - * The MUCAdminProvider parses MUCAdmin packets. (@see MUCAdmin) - * - * @author Gaston Dombiak - */ -public class MUCAdminProvider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - MUCAdmin mucAdmin = new MUCAdmin(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { - mucAdmin.addItem(parseItem(parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("query")) { - done = true; - } - } - } - - return mucAdmin; - } - - private MUCAdmin.Item parseItem(XmlPullParser parser) throws Exception { - boolean done = false; - MUCAdmin.Item item = - new MUCAdmin.Item( - parser.getAttributeValue("", "affiliation"), - parser.getAttributeValue("", "role")); - item.setNick(parser.getAttributeValue("", "nick")); - item.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("actor")) { - item.setActor(parser.getAttributeValue("", "jid")); - } - if (parser.getName().equals("reason")) { - item.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - done = true; - } - } - } - return item; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCOwnerProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCOwnerProvider.java deleted file mode 100644 index aaa6afa88..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCOwnerProvider.java +++ /dev/null @@ -1,108 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.provider.*; -import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.packet.MUCOwner; -import org.xmlpull.v1.XmlPullParser; - -/** - * The MUCOwnerProvider parses MUCOwner packets. (@see MUCOwner) - * - * @author Gaston Dombiak - */ -public class MUCOwnerProvider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - MUCOwner mucOwner = new MUCOwner(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { - mucOwner.addItem(parseItem(parser)); - } - else if (parser.getName().equals("destroy")) { - mucOwner.setDestroy(parseDestroy(parser)); - } - // Otherwise, it must be a packet extension. - else { - mucOwner.addExtension(PacketParserUtils.parsePacketExtension(parser.getName(), - parser.getNamespace(), parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("query")) { - done = true; - } - } - } - - return mucOwner; - } - - private MUCOwner.Item parseItem(XmlPullParser parser) throws Exception { - boolean done = false; - MUCOwner.Item item = new MUCOwner.Item(parser.getAttributeValue("", "affiliation")); - item.setNick(parser.getAttributeValue("", "nick")); - item.setRole(parser.getAttributeValue("", "role")); - item.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("actor")) { - item.setActor(parser.getAttributeValue("", "jid")); - } - if (parser.getName().equals("reason")) { - item.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - done = true; - } - } - } - return item; - } - - private MUCOwner.Destroy parseDestroy(XmlPullParser parser) throws Exception { - boolean done = false; - MUCOwner.Destroy destroy = new MUCOwner.Destroy(); - destroy.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("reason")) { - destroy.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("destroy")) { - done = true; - } - } - } - return destroy; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCUserProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCUserProvider.java deleted file mode 100644 index 25b6e8d6b..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MUCUserProvider.java +++ /dev/null @@ -1,174 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.provider.*; -import org.jivesoftware.smackx.packet.*; -import org.xmlpull.v1.XmlPullParser; - -/** - * The MUCUserProvider parses packets with extended presence information about - * roles and affiliations. - * - * @author Gaston Dombiak - */ -public class MUCUserProvider implements PacketExtensionProvider { - - /** - * Creates a new MUCUserProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument - * constructor - */ - public MUCUserProvider() { - } - - /** - * Parses a MUCUser packet (extension sub-packet). - * - * @param parser the XML parser, positioned at the starting element of the extension. - * @return a PacketExtension. - * @throws Exception if a parsing error occurs. - */ - public PacketExtension parseExtension(XmlPullParser parser) throws Exception { - MUCUser mucUser = new MUCUser(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("invite")) { - mucUser.setInvite(parseInvite(parser)); - } - if (parser.getName().equals("item")) { - mucUser.setItem(parseItem(parser)); - } - if (parser.getName().equals("password")) { - mucUser.setPassword(parser.nextText()); - } - if (parser.getName().equals("status")) { - mucUser.setStatus(new MUCUser.Status(parser.getAttributeValue("", "code"))); - } - if (parser.getName().equals("decline")) { - mucUser.setDecline(parseDecline(parser)); - } - if (parser.getName().equals("destroy")) { - mucUser.setDestroy(parseDestroy(parser)); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("x")) { - done = true; - } - } - } - - return mucUser; - } - - private MUCUser.Item parseItem(XmlPullParser parser) throws Exception { - boolean done = false; - MUCUser.Item item = - new MUCUser.Item( - parser.getAttributeValue("", "affiliation"), - parser.getAttributeValue("", "role")); - item.setNick(parser.getAttributeValue("", "nick")); - item.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("actor")) { - item.setActor(parser.getAttributeValue("", "jid")); - } - if (parser.getName().equals("reason")) { - item.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - done = true; - } - } - } - return item; - } - - private MUCUser.Invite parseInvite(XmlPullParser parser) throws Exception { - boolean done = false; - MUCUser.Invite invite = new MUCUser.Invite(); - invite.setFrom(parser.getAttributeValue("", "from")); - invite.setTo(parser.getAttributeValue("", "to")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("reason")) { - invite.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("invite")) { - done = true; - } - } - } - return invite; - } - - private MUCUser.Decline parseDecline(XmlPullParser parser) throws Exception { - boolean done = false; - MUCUser.Decline decline = new MUCUser.Decline(); - decline.setFrom(parser.getAttributeValue("", "from")); - decline.setTo(parser.getAttributeValue("", "to")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("reason")) { - decline.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("decline")) { - done = true; - } - } - } - return decline; - } - - private MUCUser.Destroy parseDestroy(XmlPullParser parser) throws Exception { - boolean done = false; - MUCUser.Destroy destroy = new MUCUser.Destroy(); - destroy.setJid(parser.getAttributeValue("", "jid")); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("reason")) { - destroy.setReason(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("destroy")) { - done = true; - } - } - } - return destroy; - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MessageEventProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/MessageEventProvider.java deleted file mode 100644 index b93a0b9a4..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/MessageEventProvider.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smackx.packet.MessageEvent; -import org.xmlpull.v1.XmlPullParser; - -/** - * - * The MessageEventProvider parses Message Event packets. -* - * @author Gaston Dombiak - */ -public class MessageEventProvider implements PacketExtensionProvider { - - /** - * Creates a new MessageEventProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument constructor - */ - public MessageEventProvider() { - } - - /** - * Parses a MessageEvent packet (extension sub-packet). - * - * @param parser the XML parser, positioned at the starting element of the extension. - * @return a PacketExtension. - * @throws Exception if a parsing error occurs. - */ - public PacketExtension parseExtension(XmlPullParser parser) - throws Exception { - MessageEvent messageEvent = new MessageEvent(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("id")) - messageEvent.setPacketID(parser.nextText()); - if (parser.getName().equals(MessageEvent.COMPOSING)) - messageEvent.setComposing(true); - if (parser.getName().equals(MessageEvent.DELIVERED)) - messageEvent.setDelivered(true); - if (parser.getName().equals(MessageEvent.DISPLAYED)) - messageEvent.setDisplayed(true); - if (parser.getName().equals(MessageEvent.OFFLINE)) - messageEvent.setOffline(true); - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("x")) { - done = true; - } - } - } - - return messageEvent; - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/PrivateDataProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/PrivateDataProvider.java deleted file mode 100644 index 7961da1bc..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/PrivateDataProvider.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.xmlpull.v1.XmlPullParser; -import org.jivesoftware.smackx.packet.PrivateData; - -/** - * An interface for parsing custom private data. Each PrivateDataProvider must - * be registered with the PrivateDataManager class for it to be used. Every implementation - * of this interface must have a public, no-argument constructor. - * - * @author Matt Tucker - */ -public interface PrivateDataProvider { - - /** - * Parse the private data sub-document and create a PrivateData instance. At the - * beginning of the method call, the xml parser will be positioned at the opening - * tag of the private data child element. At the end of the method call, the parser - * must be positioned on the closing tag of the child element. - * - * @param parser an XML parser. - * @return a new PrivateData instance. - * @throws Exception if an error occurs parsing the XML. - */ - public PrivateData parsePrivateData(XmlPullParser parser) throws Exception; -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/RosterExchangeProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/RosterExchangeProvider.java deleted file mode 100644 index 956e1328d..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/RosterExchangeProvider.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import java.util.ArrayList; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smackx.*; -import org.jivesoftware.smackx.packet.*; -import org.xmlpull.v1.XmlPullParser; - -/** - * - * The RosterExchangeProvider parses RosterExchange packets. - * - * @author Gaston Dombiak - */ -public class RosterExchangeProvider implements PacketExtensionProvider { - - /** - * Creates a new RosterExchangeProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument constructor - */ - public RosterExchangeProvider() { - } - - /** - * Parses a RosterExchange packet (extension sub-packet). - * - * @param parser the XML parser, positioned at the starting element of the extension. - * @return a PacketExtension. - * @throws Exception if a parsing error occurs. - */ - public PacketExtension parseExtension(XmlPullParser parser) throws Exception { - - RosterExchange rosterExchange = new RosterExchange(); - boolean done = false; - RemoteRosterEntry remoteRosterEntry = null; - String jid = ""; - String name = ""; - ArrayList groupsName = new ArrayList(); - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { - // Reset this variable since they are optional for each item - groupsName = new ArrayList(); - // Initialize the variables from the parsed XML - jid = parser.getAttributeValue("", "jid"); - name = parser.getAttributeValue("", "name"); - } - if (parser.getName().equals("group")) { - groupsName.add(parser.nextText()); - } - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { - // Create packet. - remoteRosterEntry = new RemoteRosterEntry(jid, name, (String[]) groupsName.toArray(new String[groupsName.size()])); - rosterExchange.addRosterEntry(remoteRosterEntry); - } - if (parser.getName().equals("x")) { - done = true; - } - } - } - - return rosterExchange; - - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/VCardProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/VCardProvider.java deleted file mode 100644 index 085832f8a..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/VCardProvider.java +++ /dev/null @@ -1,209 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smackx.packet.VCard; -import org.w3c.dom.*; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import java.io.ByteArrayInputStream; -import java.io.IOException; - -/** - * Created by IntelliJ IDEA. - * User: Gaston - * Date: Jun 18, 2005 - * Time: 1:00:57 AM - * To change this template use File | Settings | File Templates. - */ -public class VCardProvider implements IQProvider { - - public IQ parseIQ(XmlPullParser parser) throws Exception { - StringBuffer sb = new StringBuffer(); - try { - int event = parser.getEventType(); - // get the content - while (true) { - switch (event) { - case XmlPullParser.TEXT: - sb.append(parser.getText()); - break; - case XmlPullParser.START_TAG: - sb.append('<' + parser.getName() + '>'); - break; - case XmlPullParser.END_TAG: - sb.append("'); - break; - default: - } - - if (event == XmlPullParser.END_TAG && "vCard".equals(parser.getName())) break; - - event = parser.next(); - } - } catch (XmlPullParserException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - - String xmlText = sb.toString(); - VCard vCard = new VCard(); - try { - DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); - Document document = documentBuilder.parse(new ByteArrayInputStream(xmlText.getBytes())); - - new VCardReader(vCard, document).initializeFields(); - - } catch (Exception e) { - e.printStackTrace(System.err); - } - return vCard; - } - - private class VCardReader { - private final VCard vCard; - private final Document document; - - VCardReader(VCard vCard, Document document) { - this.vCard = vCard; - this.document = document; - } - - public void initializeFields() { - vCard.setFirstName(getTagContents("GIVEN")); - vCard.setLastName(getTagContents("FAMILY")); - vCard.setMiddleName(getTagContents("MIDDLE")); - - setupEmails(); - - vCard.setOrganization(getTagContents("ORGNAME")); - vCard.setOrganizationUnit(getTagContents("ORGUNIT")); - - setupSimpleFields(); - setupPhones("WORK", true); - setupPhones("HOME", false); - - setupAddress("WORK", true); - setupAddress("HOME", false); - } - - private void setupEmails() { - NodeList nodes = document.getElementsByTagName("USERID"); - for (int i = 0; i < nodes.getLength(); i++) { - Element element = (Element) nodes.item(i); - if ("WORK".equals(element.getParentNode().getFirstChild().getNodeName())) { - vCard.setEmailWork(getTextContent(element)); - } else { - vCard.setEmailHome(getTextContent(element)); - } - } - } - - private void setupPhones(String type, boolean work) { - NodeList allPhones = document.getElementsByTagName("TEL"); - for (int i = 0; i < allPhones.getLength(); i++) { - Element node = (Element) allPhones.item(i); - if (type.equals(node.getChildNodes().item(1).getNodeName())) { - String code = node.getFirstChild().getNodeName(); - String value = getTextContent(node.getChildNodes().item(2)); - if (work) { - vCard.setPhoneWork(code, value); - } - else { - vCard.setPhoneHome(code, value); - } - } - } - } - - private void setupAddress(String type, boolean work) { - NodeList allAddresses = document.getElementsByTagName("ADR"); - for (int i = 0; i < allAddresses.getLength(); i++) { - Element node = (Element) allAddresses.item(i); - NodeList childNodes = node.getChildNodes(); - if (type.equals(childNodes.item(0).getNodeName())) { - for (int j = 1; j < childNodes.getLength(); j++) { - Node item = childNodes.item(j); - if (item instanceof Element) { - if (work) { - vCard.setAddressFieldWork(item.getNodeName(), getTextContent(item)); - } - else { - vCard.setAddressFieldHome(item.getNodeName(), getTextContent(item)); - } - } - } - } - } - } - - private String getTagContents(String tag) { - NodeList nodes = document.getElementsByTagName(tag); - if (nodes.getLength() == 1) { - return getTextContent(nodes.item(0)); - } - return null; - } - - private void setupSimpleFields() { - NodeList childNodes = document.getDocumentElement().getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node node = childNodes.item(i); - if (node instanceof Element) { - Element element = (Element) node; - if ("FN".equals(element.getNodeName())) continue; - - if (element.getChildNodes().getLength() == 0) { - vCard.setField(element.getNodeName(), ""); - } else if (element.getChildNodes().getLength() == 1 && - element.getChildNodes().item(0) instanceof Text) { - vCard.setField(element.getNodeName(), getTextContent(element)); - } - } - } - } - - private String getTextContent(Node node) { - StringBuffer result = new StringBuffer(); - appendText(result, node); - return result.toString(); - } - - private void appendText(StringBuffer result, Node node) { - NodeList childNodes = node.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node nd = childNodes.item(i); - String nodeValue = nd.getNodeValue(); - if (nodeValue != null) { - result.append(nodeValue); - } - appendText(result, nd); - } - } - } -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/XHTMLExtensionProvider.java b/CopyOftrunk/source/org/jivesoftware/smackx/provider/XHTMLExtensionProvider.java deleted file mode 100644 index 7970c7907..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/XHTMLExtensionProvider.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx.provider; - -import org.jivesoftware.smack.packet.PacketExtension; -import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.jivesoftware.smackx.packet.XHTMLExtension; -import org.xmlpull.v1.XmlPullParser; - -/** - * The XHTMLExtensionProvider parses XHTML packets. - * - * @author Gaston Dombiak - */ -public class XHTMLExtensionProvider implements PacketExtensionProvider { - - /** - * Creates a new XHTMLExtensionProvider. - * ProviderManager requires that every PacketExtensionProvider has a public, no-argument constructor - */ - public XHTMLExtensionProvider() { - } - - /** - * Parses a XHTMLExtension packet (extension sub-packet). - * - * @param parser the XML parser, positioned at the starting element of the extension. - * @return a PacketExtension. - * @throws Exception if a parsing error occurs. - */ - public PacketExtension parseExtension(XmlPullParser parser) - throws Exception { - XHTMLExtension xhtmlExtension = new XHTMLExtension(); - boolean done = false; - StringBuffer buffer = new StringBuffer();; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("body")) - buffer = new StringBuffer(); - buffer.append(parser.getText()); - } else if (eventType == XmlPullParser.TEXT) { - if (buffer != null) buffer.append(parser.getText()); - } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("body")) { - buffer.append(parser.getText()); - xhtmlExtension.addBody(buffer.toString()); - } - else if (parser.getName().equals(xhtmlExtension.getElementName())) { - done = true; - } - else - buffer.append(parser.getText()); - } - } - - return xhtmlExtension; - } - -} diff --git a/CopyOftrunk/source/org/jivesoftware/smackx/provider/package.html b/CopyOftrunk/source/org/jivesoftware/smackx/provider/package.html deleted file mode 100644 index 962ba6372..000000000 --- a/CopyOftrunk/source/org/jivesoftware/smackx/provider/package.html +++ /dev/null @@ -1 +0,0 @@ -Provides pluggable parsing logic for Smack extensions. \ No newline at end of file diff --git a/CopyOftrunk/source/overview.html b/CopyOftrunk/source/overview.html deleted file mode 100644 index 49a6ce41e..000000000 --- a/CopyOftrunk/source/overview.html +++ /dev/null @@ -1,4 +0,0 @@ -API specification for Smack, an Open Source XMPP client library. -

    -The {@link org.jivesoftware.smack.XMPPConnection} class is the main entry point for the API. - diff --git a/CopyOftrunk/test/config/test-case.xml b/CopyOftrunk/test/config/test-case.xml deleted file mode 100644 index bf14215a6..000000000 --- a/CopyOftrunk/test/config/test-case.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - gato.dyndns.org - 5222 - - - chat.gato.dyndns.org - conference.gato.dyndns.org - - \ No newline at end of file diff --git a/CopyOftrunk/test/org/jivesoftware/smack/ChatTest.java b/CopyOftrunk/test/org/jivesoftware/smack/ChatTest.java deleted file mode 100644 index c678592ef..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/ChatTest.java +++ /dev/null @@ -1,131 +0,0 @@ -/** -* $RCSfile$ -* $Revision$ -* $Date$ -* -* Copyright (C) 2002-2003 Jive Software. All rights reserved. -* ==================================================================== -* The Jive Software License (based on Apache Software License, Version 1.1) -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* -* 3. The end-user documentation included with the redistribution, -* if any, must include the following acknowledgment: -* "This product includes software developed by -* Jive Software (http://www.jivesoftware.com)." -* Alternately, this acknowledgment may appear in the software itself, -* if and wherever such third-party acknowledgments normally appear. -* -* 4. The names "Smack" and "Jive Software" must not be used to -* endorse or promote products derived from this software without -* prior written permission. For written permission, please -* contact webmaster@jivesoftware.com. -* -* 5. Products derived from this software may not be called "Smack", -* nor may "Smack" appear in their name, without prior written -* permission of Jive Software. -* -* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR -* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* ==================================================================== -*/ - -package org.jivesoftware.smack; - -import java.util.Date; - -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.test.SmackTestCase; - - -/** - * Tests the chat functionality. - * - * @author Gaston Dombiak - */ -public class ChatTest extends SmackTestCase { - - /** - * Constructor for ChatTest. - * @param arg0 - */ - public ChatTest(String arg0) { - super(arg0); - } - - public void testProperties() { - try { - Chat newChat = getConnection(0).createChat(getFullJID(1)); - Chat newChat2 = new Chat(getConnection(1), getFullJID(0), newChat.getThreadID()); - - Message msg = newChat.createMessage(); - - msg.setSubject("Subject of the chat"); - msg.setBody("Body of the chat"); - msg.setProperty("favoriteColor", "red"); - msg.setProperty("age", 30); - msg.setProperty("distance", 30f); - msg.setProperty("weight", 30d); - msg.setProperty("male", true); - msg.setProperty("birthdate", new Date()); - newChat.sendMessage(msg); - - Message msg2 = newChat2.nextMessage(2000); - assertNotNull("No message was received", msg2); - assertEquals("Subjects are different", msg.getSubject(), msg2.getSubject()); - assertEquals("Bodies are different", msg.getBody(), msg2.getBody()); - assertEquals( - "favoriteColors are different", - msg.getProperty("favoriteColor"), - msg2.getProperty("favoriteColor")); - assertEquals( - "ages are different", - msg.getProperty("age"), - msg2.getProperty("age")); - assertEquals( - "distances are different", - msg.getProperty("distance"), - msg2.getProperty("distance")); - assertEquals( - "weights are different", - msg.getProperty("weight"), - msg2.getProperty("weight")); - assertEquals( - "males are different", - msg.getProperty("male"), - msg2.getProperty("male")); - assertEquals( - "birthdates are different", - msg.getProperty("birthdate"), - msg2.getProperty("birthdate")); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/FloodTest.java b/CopyOftrunk/test/org/jivesoftware/smack/FloodTest.java deleted file mode 100644 index 4885298ca..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/FloodTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * Simple test to measure server performance. - * - * @author Gaston Dombiak - */ -public class FloodTest extends SmackTestCase { - - public FloodTest(String arg0) { - super(arg0); - } - - public void testMessageFlood() { - try { - Chat chat11 = getConnection(0).createChat(getBareJID(1)); - Chat chat12 = new Chat(getConnection(1), getBareJID(0), chat11.getThreadID()); - - Chat chat21 = getConnection(0).createChat(getBareJID(2)); - Chat chat22 = new Chat(getConnection(2), getBareJID(0), chat21.getThreadID()); - - Chat chat31 = getConnection(0).createChat(getBareJID(3)); - Chat chat32 = new Chat(getConnection(3), getBareJID(0), chat31.getThreadID()); - - for (int i=0; i<500; i++) { - chat11.sendMessage("Hello_1" + i); - chat21.sendMessage("Hello_2" + i); - chat31.sendMessage("Hello_3" + i); - } - for (int i=0; i<500; i++) { - assertNotNull("Some message was lost (" + i + ")", chat12.nextMessage(1000)); - assertNotNull("Some message was lost (" + i + ")", chat22.nextMessage(1000)); - assertNotNull("Some message was lost (" + i + ")", chat32.nextMessage(1000)); - } - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /*public void testMUCFlood() { - try { - int floodNumber = 50000; - MultiUserChat chat = new MultiUserChat(getConnection(0), "myroom@" + getMUCDomain()); - chat.create("phatom"); - chat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); - - MultiUserChat chat2 = new MultiUserChat(getConnection(1), "myroom@" + getMUCDomain()); - chat2.join("christine"); - - for (int i=0; i"); - buf.append(""); - return buf.toString(); - } - }; - - PacketFilter filter = new AndFilter(new PacketIDFilter(iq.getPacketID()), - new PacketTypeFilter(IQ.class)); - PacketCollector collector = getConnection(0).createPacketCollector(filter); - // Send the iq packet with an invalid namespace - getConnection(0).sendPacket(iq); - - IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - // Stop queuing results - collector.cancel(); - if (result == null) { - fail("No response from server"); - } - else if (result.getType() != IQ.Type.ERROR) { - fail("The server didn't reply with an error packet"); - } - else { - assertEquals("Server answered an incorrect error code", 503, result.getError().getCode()); - } - } - - protected int getMaxConnections() { - return 1; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/LoginTest.java b/CopyOftrunk/test/org/jivesoftware/smack/LoginTest.java deleted file mode 100644 index 3850177d5..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/LoginTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2004 Jive Software. All rights reserved. - * - * This software is published under the terms of the GNU Public License (GPL), - * a copy of which is included in this distribution. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * Includes set of login tests. - * - * @author Gaston Dombiak - */ -public class LoginTest extends SmackTestCase { - - public LoginTest(String arg0) { - super(arg0); - } - - /** - * Check that the server is returning the correct error when trying to login using an invalid - * (i.e. non-existent) user. - */ - public void testInvalidLogin() { - try { - XMPPConnection connection = new XMPPConnection(getHost(), getPort()); - try { - // Login with an invalid user - connection.login("invaliduser" , "invalidpass"); - connection.close(); - fail("Invalid user was able to log into the server"); - } - catch (XMPPException e) { - assertEquals("Incorrect error code while login with an invalid user", 401, - e.getXMPPError().getCode()); - } - // Wait here while trying tests with exodus - //Thread.sleep(300); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Check that the server handles anonymous users correctly. - */ - public void testAnonymousLogin() { - try { - XMPPConnection conn1 = new XMPPConnection(getHost(), getPort()); - XMPPConnection conn2 = new XMPPConnection(getHost(), getPort()); - try { - // Try to login anonymously - conn1.loginAnonymously(); - conn2.loginAnonymously(); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - // Close the connection - conn1.close(); - conn2.close(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Check that the server does not allow to log in without specifying a resource. - */ - public void testLoginWithNoResource() { - try { - XMPPConnection conn = new XMPPConnection(getHost(), getPort()); - try { - conn.getAccountManager().createAccount("user_1", "user_1"); - } catch (XMPPException e) { - // Do nothing if the accout already exists - if (e.getXMPPError().getCode() != 409) { - throw e; - } - } - conn.login("user_1", "user_1", null); - fail("User with no resource was able to log into the server"); - - } catch (XMPPException e) { - assertEquals("Wrong error code returned", 406, e.getXMPPError().getCode()); - } - } - - protected int getMaxConnections() { - return 0; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/MessageTest.java b/CopyOftrunk/test/org/jivesoftware/smack/MessageTest.java deleted file mode 100644 index 418143e52..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/MessageTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smack.packet.Presence; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.filter.MessageTypeFilter; - -/** - * Tests sending messages to other clients. - * - * @author Gaston Dombiak - */ -public class MessageTest extends SmackTestCase { - - public MessageTest(String arg0) { - super(arg0); - } - - /** - * Check that when a client becomes unavailable all messages sent to the client are stored offline. So that when - * the client becomes available again the offline messages are received. - */ - public void testOfflineMessage() { - // Make user2 unavailable - getConnection(1).sendPacket(new Presence(Presence.Type.UNAVAILABLE)); - - try { - Thread.sleep(500); - - // User1 sends some messages to User2 which is not available at the moment - Chat chat = getConnection(0).createChat(getBareJID(1)); - chat.sendMessage("Test 1"); - chat.sendMessage("Test 2"); - - Thread.sleep(500); - - // User2 becomes available again - PacketCollector collector = getConnection(1).createPacketCollector(new MessageTypeFilter(Message.Type.CHAT)); - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE)); - - // Check that offline messages are retrieved by user2 which is now available - Message message = (Message) collector.nextResult(2500); - assertNotNull(message); - message = (Message) collector.nextResult(2000); - assertNotNull(message); - message = (Message) collector.nextResult(1000); - assertNull(message); - - } catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Check that two clients are able to send messages with a body of 4K characters and their - * connections are not being closed. - */ - public void testHugeMessage() { - // User2 becomes available again - PacketCollector collector = getConnection(1).createPacketCollector(new MessageTypeFilter(Message.Type.CHAT)); - - // Create message with a body of 4K characters - Message msg = new Message(getFullJID(1), Message.Type.CHAT); - StringBuffer sb = new StringBuffer(5000); - for (int i=0; i<=4000; i++) { - sb.append("X"); - } - msg.setBody(sb.toString()); - - // Send the first message - getConnection(0).sendPacket(msg); - // Check that the connection that sent the message is still connected - assertTrue("Connection was closed", getConnection(0).isConnected()); - // Check that the message was received - Message rcv = (Message) collector.nextResult(1000); - assertNotNull("No Message was received", rcv); - - // Send the second message - getConnection(0).sendPacket(msg); - // Check that the connection that sent the message is still connected - assertTrue("Connection was closed", getConnection(0).isConnected()); - // Check that the second message was received - rcv = (Message) collector.nextResult(1000); - assertNotNull("No Message was received", rcv); - - // Try now sending huge messages over an SSL connection - XMPPConnection conn = null; - try { - conn = new SSLXMPPConnection(getHost()); - conn.login(getUsername(0), getUsername(0), "Other resource"); - - // Send the first message - conn.sendPacket(msg); - // Check that the connection that sent the message is still connected - assertTrue("Connection was closed", conn.isConnected()); - // Check that the message was received - rcv = (Message) collector.nextResult(1000); - assertNotNull("No Message was received", rcv); - } catch (XMPPException e) { - fail(e.getMessage()); - } - finally { - if (conn != null) { - conn.close(); - } - } - - } - - protected int getMaxConnections() { - return 2; - } - - protected void setUp() throws Exception { - XMPPConnection.DEBUG_ENABLED = false; - super.setUp(); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/MessengerLoginTest.java b/CopyOftrunk/test/org/jivesoftware/smack/MessengerLoginTest.java deleted file mode 100644 index 884a97142..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/MessengerLoginTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ -package org.jivesoftware.smack; - -import junit.framework.TestCase; - -public class MessengerLoginTest extends TestCase { - - private String host; - private int port; - - public void setUp() { - // override default settings from system properties - if (System.getProperty("smack.test.host") != null) { - host = System.getProperty("smack.test.host"); - } - if (System.getProperty("smack.test.port") != null) { - try { - port = Integer.parseInt(System.getProperty("smack.test.port")); - } - catch (Exception ignored) {} - } - } - - public void testAdminLogin() { - - String username = System.getProperty("smack.test.admin.username"); - String password = System.getProperty("smack.test.admin.password"); - String resource = System.getProperty("smack.test.admin.resource"); - boolean debug = false; - try { - debug = Boolean.valueOf(System.getProperty("smack.debug")).booleanValue(); - } - catch (Exception ignored) {} - - XMPPConnection.DEBUG_ENABLED = debug; - - try { - XMPPConnection con = new XMPPConnection(host, port); - con.login(username, password, resource); - } - catch (XMPPException e) { - String message = e.getMessage(); - if (e.getXMPPError() != null) { - message = "XMPPError code: " + e.getXMPPError().getCode() + ", message: " - + e.getXMPPError().getMessage(); - } - /*fail("Login to server " + host + ":" + port + " failed using user/pass/resource: " - + username + "/" + password + "/" + resource + ". Error message: " + message);*/ - } - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/PacketReaderTest.java b/CopyOftrunk/test/org/jivesoftware/smack/PacketReaderTest.java deleted file mode 100644 index 77fb14f1a..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/PacketReaderTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/** -* $RCSfile$ -* $Revision$ -* $Date$ -* -* Copyright (C) 2002-2003 Jive Software. All rights reserved. -* ==================================================================== -* The Jive Software License (based on Apache Software License, Version 1.1) -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* -* 3. The end-user documentation included with the redistribution, -* if any, must include the following acknowledgment: -* "This product includes software developed by -* Jive Software (http://www.jivesoftware.com)." -* Alternately, this acknowledgment may appear in the software itself, -* if and wherever such third-party acknowledgments normally appear. -* -* 4. The names "Smack" and "Jive Software" must not be used to -* endorse or promote products derived from this software without -* prior written permission. For written permission, please -* contact webmaster@jivesoftware.com. -* -* 5. Products derived from this software may not be called "Smack", -* nor may "Smack" appear in their name, without prior written -* permission of Jive Software. -* -* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR -* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* ==================================================================== -*/ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; - - -public class PacketReaderTest extends SmackTestCase { - - /** - * Constructor for PacketReaderTest. - * @param arg0 - */ - public PacketReaderTest(String arg0) { - super(arg0); - } - - /** - * Verify that when Smack receives a "not implemented IQ" answers with an IQ packet - * with error code 501. - */ - public void testIQNotImplemented() { - - // Create a new type of IQ to send. The new IQ will include a - // non-existant namespace to cause the "feature-not-implemented" answer - IQ iqPacket = new IQ() { - public String getChildElementXML() { - return ""; - } - }; - iqPacket.setTo(getFullJID(1)); - iqPacket.setType(IQ.Type.GET); - - // Send the IQ and wait for the answer - PacketCollector collector = getConnection(0).createPacketCollector( - new PacketIDFilter(iqPacket.getPacketID())); - getConnection(0).sendPacket(iqPacket); - IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); - if (response == null) { - fail("No response from the other user."); - } - assertEquals("The received IQ is not of type ERROR", IQ.Type.ERROR, response.getType()); - assertEquals("The error code is not 501", 501, response.getError().getCode()); - collector.cancel(); - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/PresencePriorityTest.java b/CopyOftrunk/test/org/jivesoftware/smack/PresencePriorityTest.java deleted file mode 100644 index 88ccd721d..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/PresencePriorityTest.java +++ /dev/null @@ -1,137 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2004 Jive Software. All rights reserved. - * - * This software is published under the terms of the GNU Public License (GPL), - * a copy of which is included in this distribution. - */ - -package org.jivesoftware.smack; - -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smack.packet.Presence; - -/** - * Ensure that the server is delivering messages to the correct client based on the client's - * presence priority. - * - * @author Gaston Dombiak - */ -public class PresencePriorityTest extends SmackTestCase { - - public PresencePriorityTest(String arg0) { - super(arg0); - } - - /** - * Connection(0) will send messages to the bareJID of Connection(1) where the user of - * Connection(1) has logged from two different places with different presence priorities. - */ - public void testMessageToHighestPriority() { - boolean wasFiltering = Chat.isFilteredOnThreadID(); - Chat.setFilteredOnThreadID(false); - XMPPConnection conn = null; - try { - // User_1 will log in again using another resource - conn = new XMPPConnection(getHost(), getPort()); - conn.login(getUsername(1), getUsername(1), "OtherPlace"); - // Change the presence priorities of User_1 - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE, null, 1, - Presence.Mode.AVAILABLE)); - conn.sendPacket(new Presence(Presence.Type.AVAILABLE, null, 2, - Presence.Mode.AVAILABLE)); - Thread.sleep(150); - // Create the chats between the participants - Chat chat0 = new Chat(getConnection(0), getBareJID(1)); - Chat chat1 = new Chat(getConnection(1), getBareJID(0)); - Chat chat2 = new Chat(conn, getBareJID(0)); - - // Test delivery of message to the presence with highest priority - chat0.sendMessage("Hello"); - assertNotNull("Resource with highest priority didn't receive the message", - chat2.nextMessage(2000)); - assertNull("Resource with lowest priority received the message", - chat1.nextMessage(1000)); - - // Invert the presence priorities of User_1 - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE, null, 2, - Presence.Mode.AVAILABLE)); - conn.sendPacket(new Presence(Presence.Type.AVAILABLE, null, 1, - Presence.Mode.AVAILABLE)); - - Thread.sleep(150); - // Test delivery of message to the presence with highest priority - chat0.sendMessage("Hello"); - assertNotNull("Resource with highest priority didn't receive the message", - chat1.nextMessage(2000)); - assertNull("Resource with lowest priority received the message", - chat2.nextMessage(1000)); - - // User_1 closes his connection - chat2 = null; - conn.close(); - Thread.sleep(150); - - // Test delivery of message to the unique presence of the user_1 - chat0.sendMessage("Hello"); - assertNotNull("Resource with highest priority didn't receive the message", - chat1.nextMessage(2000)); - - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE, null, 2, - Presence.Mode.AVAILABLE)); - - // User_1 will log in again using another resource - conn = new XMPPConnection(getHost(), getPort()); - conn.login(getUsername(1), getUsername(1), "OtherPlace"); - conn.sendPacket(new Presence(Presence.Type.AVAILABLE, null, 1, - Presence.Mode.AVAILABLE)); - chat2 = new Chat(conn, getBareJID(0)); - - Thread.sleep(150); - // Test delivery of message to the presence with highest priority - chat0.sendMessage("Hello"); - assertNotNull("Resource with highest priority didn't receive the message", - chat1.nextMessage(2000)); - assertNull("Resource with lowest priority received the message", - chat2.nextMessage(1000)); - - // Invert the presence priorities of User_1 - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE, null, 1, - Presence.Mode.AVAILABLE)); - conn.sendPacket(new Presence(Presence.Type.AVAILABLE, null, 2, - Presence.Mode.AVAILABLE)); - - Thread.sleep(150); - // Test delivery of message to the presence with highest priority - chat0.sendMessage("Hello"); - assertNotNull("Resource with highest priority didn't receive the message", - chat2.nextMessage(2000)); - assertNull("Resource with lowest priority received the message", - chat1.nextMessage(1000)); - - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - finally { - // Restore the previous filtering value so we don't affect other test cases - Chat.setFilteredOnThreadID(wasFiltering); - if (conn != null) { - conn.close(); - } - } - } - - protected int getMaxConnections() { - return 2; - } - - protected void setUp() throws Exception { - XMPPConnection.DEBUG_ENABLED = false; - super.setUp(); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/RosterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/RosterTest.java deleted file mode 100644 index 27d8fe78e..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/RosterTest.java +++ /dev/null @@ -1,527 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack; - -import java.util.Iterator; - -import org.jivesoftware.smack.packet.Presence; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smack.util.StringUtils; - -/** - * Tests the Roster functionality by creating and removing roster entries. - * - * @author Gaston Dombiak - */ -public class RosterTest extends SmackTestCase { - - /** - * Constructor for RosterTest. - * @param name - */ - public RosterTest(String name) { - super(name); - } - - /** - * 1. Create entries in roster groups - * 2. Iterate on the groups and remove the entry from each group - * 3. Check that the entries are kept as unfiled entries - */ - public void testDeleteAllRosterGroupEntries() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), "gato11", new String[] { "Friends", "Family" }); - roster.createEntry(getBareJID(2), "gato12", new String[] { "Family" }); - - // Wait until the server confirms the new entries - while (roster.getEntryCount() != 2) { - Thread.sleep(50); - } - - Iterator it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - Iterator groups = entry.getGroups(); - while (groups.hasNext()) { - RosterGroup rosterGroup = (RosterGroup) groups.next(); - rosterGroup.removeEntry(entry); - } - } - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (roster.getGroupCount() != 0 && - getConnection(2).getRoster().getEntryCount() != 2)) { - Thread.sleep(100); - } - - assertEquals( - "The number of entries in connection 1 should be 1", - 1, - getConnection(1).getRoster().getEntryCount()); - assertEquals( - "The number of groups in connection 1 should be 0", - 0, - getConnection(1).getRoster().getGroupCount()); - - assertEquals( - "The number of entries in connection 2 should be 1", - 1, - getConnection(2).getRoster().getEntryCount()); - assertEquals( - "The number of groups in connection 2 should be 0", - 0, - getConnection(2).getRoster().getGroupCount()); - - assertEquals( - "The number of entries in connection 0 should be 2", - 2, - roster.getEntryCount()); - assertEquals( - "The number of groups in connection 0 should be 0", - 0, - roster.getGroupCount()); - - cleanUpRoster(); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * 1. Create entries in roster groups - * 2. Iterate on all the entries and remove them from the roster - * 3. Check that the number of entries and groups is zero - */ - public void testDeleteAllRosterEntries() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), "gato11", new String[] { "Friends" }); - roster.createEntry(getBareJID(2), "gato12", new String[] { "Family" }); - - // Wait up to 2 seconds to receive new roster contacts - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && roster.getEntryCount() != 2) { - Thread.sleep(100); - } - - assertEquals("Wrong number of entries in connection 0", 2, roster.getEntryCount()); - - // Wait up to 2 seconds to receive presences of the new roster contacts - initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 5000 && - (roster.getPresence(getBareJID(1)) == null || - roster.getPresence(getBareJID(2)) == null)) { - Thread.sleep(100); - } - assertNotNull("Presence not received", roster.getPresence(getBareJID(1))); - assertNotNull("Presence not received", roster.getPresence(getBareJID(2))); - - Iterator it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - roster.removeEntry(entry); - Thread.sleep(250); - } - - // Wait up to 2 seconds to receive roster removal notifications - initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && roster.getEntryCount() != 0) { - Thread.sleep(100); - } - - assertEquals("Wrong number of entries in connection 0", 0, roster.getEntryCount()); - assertEquals("Wrong number of groups in connection 0", 0, roster.getGroupCount()); - - assertEquals( - "Wrong number of entries in connection 1", - 0, - getConnection(1).getRoster().getEntryCount()); - assertEquals( - "Wrong number of groups in connection 1", - 0, - getConnection(1).getRoster().getGroupCount()); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * 1. Create unfiled entries - * 2. Iterate on all the entries and remove them from the roster - * 3. Check that the number of entries and groups is zero - */ - public void testDeleteAllUnfiledRosterEntries() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), "gato11", null); - roster.createEntry(getBareJID(2), "gato12", null); - - Thread.sleep(200); - - Iterator it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - roster.removeEntry(entry); - Thread.sleep(250); - } - - assertEquals("Wrong number of entries in connection 0", 0, roster.getEntryCount()); - assertEquals("Wrong number of groups in connection 0", 0, roster.getGroupCount()); - - assertEquals( - "Wrong number of entries in connection 1", - 0, - getConnection(1).getRoster().getEntryCount()); - assertEquals( - "Wrong number of groups in connection 1", - 0, - getConnection(1).getRoster().getGroupCount()); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * 1. Create an unfiled entry - * 2. Change its name - * 3. Check that the name has been modified - * 4. Reload the whole roster - * 5. Check that the name has been modified - */ - public void testChangeNameToUnfiledEntry() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), null, null); - - Thread.sleep(200); - - // Change the roster entry name and check if the change was made - Iterator it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - entry.setName("gato11"); - assertEquals("gato11", entry.getName()); - } - // Reload the roster and check the name again - roster.reload(); - Thread.sleep(2000); - it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - assertEquals("gato11", entry.getName()); - } - - cleanUpRoster(); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * 1. Create an unfiled entry with no name - * 2. Check that the the entry does not belong to any group - * 3. Change its name and add it to a group - * 4. Check that the name has been modified and that the entry belongs to a group - */ - public void testChangeGroupAndNameToUnfiledEntry() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), null, null); - - Thread.sleep(500); - - getConnection(1).getRoster().createEntry(getBareJID(0), null, null); - - // Wait up to 5 seconds to receive presences of the new roster contacts - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 5000 && - roster.getPresence(getBareJID(0)) == null) { - Thread.sleep(100); - } - //assertNotNull("Presence not received", roster.getPresence(getBareJID(0))); - - Iterator it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - assertFalse("The roster entry belongs to a group", entry.getGroups().hasNext()); - } - - // Change the roster entry name and check if the change was made - roster.createEntry(getBareJID(1), "NewName", new String[] { "Friends" }); - - // Reload the roster and check the name again - Thread.sleep(200); - it = roster.getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - assertEquals("Name of roster entry is wrong", "NewName", entry.getName()); - assertTrue("The roster entry does not belong to any group", entry.getGroups() - .hasNext()); - } - // Wait up to 5 seconds to receive presences of the new roster contacts - initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 5000 && - roster.getPresence(getBareJID(1)) == null) { - Thread.sleep(100); - } - assertNotNull("Presence not received", roster.getPresence(getBareJID(1))); - - cleanUpRoster(); - } catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * Test if renaming a roster group works fine. - * - */ - public void testRenameRosterGroup() { - try { - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), "gato11", new String[] { "Friends" }); - roster.createEntry(getBareJID(2), "gato12", new String[] { "Friends" }); - - Thread.sleep(200); - - roster.getGroup("Friends").setName("Amigos"); - - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (roster.getGroup("Friends") != null)) { - Thread.sleep(100); - } - - assertNull("The group Friends still exists", roster.getGroup("Friends")); - assertNotNull("The group Amigos does not exist", roster.getGroup("Amigos")); - assertEquals( - "Wrong number of entries in the group Amigos", - 2, - roster.getGroup("Amigos").getEntryCount()); - - roster.getGroup("Amigos").setName(""); - - Thread.sleep(500); - - assertNull("The group Amigos still exists", roster.getGroup("Amigos")); - assertNotNull("The group with no name does not exist", roster.getGroup("")); - assertEquals( - "Wrong number of entries in the group \"\" ", - 2, - roster.getGroup("").getEntryCount()); - - cleanUpRoster(); - Thread.sleep(200); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * Test presence management. - */ - public void testRosterPresences() { - try { - Presence presence = null; - - // Create another connection for the same user of connection 1 - XMPPConnection conn4 = new XMPPConnection(getHost()); - conn4.login(getUsername(1), getUsername(1), "Home"); - - // Add a new roster entry - Roster roster = getConnection(0).getRoster(); - roster.createEntry(getBareJID(1), "gato11", null); - - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (roster.getPresence(getBareJID(1)) == null)) { - Thread.sleep(100); - } - - // Check that a presence is returned for a user - presence = roster.getPresence(getBareJID(1)); - assertNotNull("Returned a null Presence for an existing user", presence); - - // Check that the right presence is returned for a user+resource - presence = roster.getPresenceResource(getUsername(1) + "@" + conn4.getHost() + "/Home"); - assertEquals( - "Returned the wrong Presence", - StringUtils.parseResource(presence.getFrom()), - "Home"); - - // Check that the right presence is returned for a user+resource - presence = roster.getPresenceResource(getFullJID(1)); - assertEquals( - "Returned the wrong Presence", - StringUtils.parseResource(presence.getFrom()), - "Smack"); - - // Check that the no presence is returned for a non-existent user+resource - presence = roster.getPresenceResource("noname@" + getHost() + "/Smack"); - assertNull("Returned a Presence for a non-existing user", presence); - - // Check that the returned presences are correct - Iterator presences = roster.getPresences(getBareJID(1)); - int count = 0; - while (presences.hasNext()) { - count++; - presences.next(); - } - assertEquals("Wrong number of returned presences", count, 2); - - // Close the connection so one presence must go - conn4.close(); - - // Check that the returned presences are correct - presences = roster.getPresences(getBareJID(1)); - count = 0; - while (presences.hasNext()) { - count++; - presences.next(); - } - assertEquals("Wrong number of returned presences", count, 1); - - Thread.sleep(200); - cleanUpRoster(); - - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - /** - * Clean up all the entries in the roster - */ - private void cleanUpRoster() { - // Delete all the entries from the roster - Iterator it = getConnection(0).getRoster().getEntries(); - while (it.hasNext()) { - RosterEntry entry = (RosterEntry) it.next(); - try { - getConnection(0).getRoster().removeEntry(entry); - } catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - // Wait up to 2 seconds to receive roster removal notifications - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - getConnection(0).getRoster().getEntryCount() != 0) { - try { - Thread.sleep(100); - } catch (InterruptedException e) {} - } - - // Wait up to 2 seconds to receive roster removal notifications - initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - getConnection(1).getRoster().getEntryCount() != 0) { - try { - Thread.sleep(100); - } catch (InterruptedException e) {} - } - - assertEquals( - "Wrong number of entries in connection 0", - 0, - getConnection(0).getRoster().getEntryCount()); - assertEquals( - "Wrong number of groups in connection 0", - 0, - getConnection(0).getRoster().getGroupCount()); - - assertEquals( - "Wrong number of entries in connection 1", - 0, - getConnection(1).getRoster().getEntryCount()); - assertEquals( - "Wrong number of groups in connection 1", - 0, - getConnection(1).getRoster().getGroupCount()); - - assertEquals( - "Wrong number of entries in connection 2", - 0, - getConnection(2).getRoster().getEntryCount()); - assertEquals( - "Wrong number of groups in connection 2", - 0, - getConnection(2).getRoster().getGroupCount()); - } - - protected int getMaxConnections() { - return 3; - } - - protected void setUp() throws Exception { - //XMPPConnection.DEBUG_ENABLED = false; - super.setUp(); - } -} \ No newline at end of file diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/AndFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/AndFilterTest.java deleted file mode 100644 index 68029a681..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/AndFilterTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the AndFilter class. - */ -public class AndFilterTest extends TestCase { - - public void testNullArgs() { - PacketFilter filter = null; - try { - AndFilter and = new AndFilter(filter, filter); - fail("Should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockPacketFilter trueFilter = new MockPacketFilter(true); - MockPacketFilter falseFilter = new MockPacketFilter(false); - - MockPacket packet = new MockPacket(); - - AndFilter andFilter = new AndFilter(trueFilter, trueFilter); - assertTrue(andFilter.accept(packet)); - - andFilter = new AndFilter(trueFilter, falseFilter); - assertFalse(andFilter.accept(packet)); - - andFilter = new AndFilter(falseFilter, trueFilter); - assertFalse(andFilter.accept(packet)); - - andFilter = new AndFilter(falseFilter, falseFilter); - assertFalse(andFilter.accept(packet)); - - andFilter = new AndFilter(); - andFilter.addFilter(trueFilter); - andFilter.addFilter(trueFilter); - andFilter.addFilter(falseFilter); - andFilter.addFilter(trueFilter); - assertFalse(andFilter.accept(packet)); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/FromContainsFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/FromContainsFilterTest.java deleted file mode 100644 index c06df49aa..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/FromContainsFilterTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the FromContainsFilter class. - */ -public class FromContainsFilterTest extends TestCase { - - public void testNullArgs() { - try { - new FromContainsFilter(null); - fail("Parameter can not be null"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockFromPacket packet = new MockFromPacket("foo@bar.com"); - - FromContainsFilter fromContainsFilter = new FromContainsFilter(""); - assertTrue(fromContainsFilter.accept(packet)); - - fromContainsFilter = new FromContainsFilter("foo"); - assertTrue(fromContainsFilter.accept(packet)); - - fromContainsFilter = new FromContainsFilter("foo@bar.com"); - assertTrue(fromContainsFilter.accept(packet)); - - fromContainsFilter = new FromContainsFilter("bar@foo.com"); - assertFalse(fromContainsFilter.accept(packet)); - - fromContainsFilter = new FromContainsFilter("blah-stuff,net"); - assertFalse(fromContainsFilter.accept(packet)); - } - - /** - * Wraps the MockPacket class to always give an expected From field. - */ - private class MockFromPacket extends MockPacket { - private String from; - public MockFromPacket(String from) { - this.from = from; - } - public String getFrom() { - return from; - } - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/NotFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/NotFilterTest.java deleted file mode 100644 index da8204f6e..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/NotFilterTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the NotFilter class. - */ -public class NotFilterTest extends TestCase { - - public void testNullArgs() { - PacketFilter filter = null; - try { - NotFilter or = new NotFilter(filter); - fail("Should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockPacketFilter trueFilter = new MockPacketFilter(true); - MockPacketFilter falseFilter = new MockPacketFilter(false); - - MockPacket packet = new MockPacket(); - - NotFilter NotFilter = new NotFilter(trueFilter); - assertFalse(NotFilter.accept(packet)); - - NotFilter = new NotFilter(falseFilter); - assertTrue(NotFilter.accept(packet)); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/OrFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/OrFilterTest.java deleted file mode 100644 index 2ef909998..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/OrFilterTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the OrFilter class. - */ -public class OrFilterTest extends TestCase { - - public void testNullArgs() { - PacketFilter filter = null; - try { - OrFilter or = new OrFilter(filter, filter); - fail("Should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockPacketFilter trueFilter = new MockPacketFilter(true); - MockPacketFilter falseFilter = new MockPacketFilter(false); - - MockPacket packet = new MockPacket(); - - // Testing TT == T - OrFilter orFilter = new OrFilter(trueFilter, trueFilter); - assertTrue(orFilter.accept(packet)); - - // Testing TF = F - orFilter = new OrFilter(trueFilter, falseFilter); - assertTrue(orFilter.accept(packet)); - - // Testing FT = F - orFilter = new OrFilter(falseFilter, trueFilter); - assertTrue(orFilter.accept(packet)); - - // Testing FF = F - orFilter = new OrFilter(falseFilter, falseFilter); - assertFalse(orFilter.accept(packet)); - - // Testing TTTT = T - orFilter = new OrFilter( - new OrFilter(trueFilter, trueFilter), new OrFilter(trueFilter, trueFilter) - ); - assertTrue(orFilter.accept(packet)); - - // Testing TFTT = F - orFilter = new OrFilter( - new OrFilter(trueFilter, falseFilter), new OrFilter(trueFilter, trueFilter) - ); - assertTrue(orFilter.accept(packet)); - - // Testing TTFT = F - orFilter = new OrFilter( - new OrFilter(trueFilter, trueFilter), new OrFilter(falseFilter, trueFilter) - ); - assertTrue(orFilter.accept(packet)); - - // Testing TTTF = F - orFilter = new OrFilter( - new OrFilter(trueFilter, trueFilter), new OrFilter(trueFilter, falseFilter) - ); - assertTrue(orFilter.accept(packet)); - - // Testing FFFF = F - orFilter = new OrFilter( - new OrFilter(falseFilter, falseFilter), new OrFilter(falseFilter, falseFilter) - ); - assertFalse(orFilter.accept(packet)); - - orFilter = new OrFilter(); - orFilter.addFilter(trueFilter); - orFilter.addFilter(trueFilter); - orFilter.addFilter(falseFilter); - orFilter.addFilter(trueFilter); - assertTrue(orFilter.accept(packet)); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketIDFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketIDFilterTest.java deleted file mode 100644 index 8561c7a7b..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketIDFilterTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the PacketIDFilter class. - */ -public class PacketIDFilterTest extends TestCase { - - public void testNullArgs() { - try { - new PacketIDFilter(null); - fail("Parameter can not be null"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockIDPacket packet = new MockIDPacket("foo"); - - PacketIDFilter packetIDFilter = new PacketIDFilter(""); - assertFalse(packetIDFilter.accept(packet)); - - packetIDFilter = new PacketIDFilter("foo"); - assertTrue(packetIDFilter.accept(packet)); - - packetIDFilter = new PacketIDFilter("fOO"); - assertFalse(packetIDFilter.accept(packet)); - } - - /** - * Wraps the MockPacket class to always give an expected packet ID field. - */ - private class MockIDPacket extends MockPacket { - private String id; - public MockIDPacket(String id) { - this.id = id; - } - public String getPacketID() { - return id; - } - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketTypeFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketTypeFilterTest.java deleted file mode 100644 index 3573384c0..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/PacketTypeFilterTest.java +++ /dev/null @@ -1,147 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * Test cases for the PacketTypeFilter class. - */ -public class PacketTypeFilterTest extends TestCase { - - private class Dummy {} - - private class InnerClassDummy { - public class DummyPacket extends Packet { - public String toXML() { - return null; - } - } - public DummyPacket getInnerInstance() { - return new DummyPacket(); - } - } - - private static class StaticInnerClassDummy { - public static class StaticDummyPacket extends Packet { - public String toXML() { - return null; - } - } - public static StaticDummyPacket getInnerInstance() { - return new StaticDummyPacket(); - } - } - - /** - * Test case for the constructor of PacketTypeFilter objects. - */ - public void testConstructor() { - // Test a class that is not a subclass of Packet - try { - new PacketTypeFilter(Dummy.class); - fail("Parameter must be a subclass of Packet."); - } - catch (IllegalArgumentException e) {} - - // Test a class that is a subclass of Packet - try { - new PacketTypeFilter(MockPacket.class); - } - catch (IllegalArgumentException e) { - fail(); - } - - // Test another class which is a subclass of Packet - try { - new PacketTypeFilter(IQ.class); - } - catch (IllegalArgumentException e) { - fail(); - } - - // Test an internal class which is a subclass of Packet - try { - new PacketTypeFilter(InnerClassDummy.DummyPacket.class); - } - catch (IllegalArgumentException e) { - fail(); - } - - // Test an internal static class which is a static subclass of Packet - try { - new PacketTypeFilter(StaticInnerClassDummy.StaticDummyPacket.class); - } - catch (IllegalArgumentException e) { - fail(); - } - } - - /** - * Test case to test the accept() method of PacketTypeFilter objects. - */ - public void testAccept() { - Packet packet = new MockPacket(); - PacketTypeFilter filter = new PacketTypeFilter(MockPacket.class); - assertTrue(filter.accept(packet)); - - packet = (new InnerClassDummy()).getInnerInstance(); - filter = new PacketTypeFilter(InnerClassDummy.DummyPacket.class); - assertTrue(filter.accept(packet)); - - packet = StaticInnerClassDummy.getInnerInstance(); - filter = new PacketTypeFilter(StaticInnerClassDummy.StaticDummyPacket.class); - assertTrue(filter.accept(packet)); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/filter/ToContainsFilterTest.java b/CopyOftrunk/test/org/jivesoftware/smack/filter/ToContainsFilterTest.java deleted file mode 100644 index 20986af1a..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/filter/ToContainsFilterTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.filter; - -import junit.framework.TestCase; -import org.jivesoftware.smack.packet.*; - -/** - * A test case for the ToContainsFilter class. - */ -public class ToContainsFilterTest extends TestCase { - - public void testNullArgs() { - try { - new ToContainsFilter(null); - fail("Parameter can not be null"); - } - catch (IllegalArgumentException e) { - assertTrue(true); - } - } - - public void testAccept() { - MockToPacket packet = new MockToPacket("foo@bar.com"); - - ToContainsFilter toContainsFilter = new ToContainsFilter(""); - assertTrue(toContainsFilter.accept(packet)); - - toContainsFilter = new ToContainsFilter("foo"); - assertTrue(toContainsFilter.accept(packet)); - - toContainsFilter = new ToContainsFilter("foo@bar.com"); - assertTrue(toContainsFilter.accept(packet)); - - toContainsFilter = new ToContainsFilter("bar@foo.com"); - assertFalse(toContainsFilter.accept(packet)); - - toContainsFilter = new ToContainsFilter("blah-stuff,net"); - assertFalse(toContainsFilter.accept(packet)); - } - - /** - * Wraps the MockPacket class to always give an expected To field. - */ - private class MockToPacket extends MockPacket { - private String to; - public MockToPacket(String to) { - this.to = to; - } - public String getTo() { - return to; - } - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacket.java b/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacket.java deleted file mode 100644 index 3fba4c016..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacket.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.packet; - -import java.util.*; - -/** - * A mock implementation of the Packet abstract class. Implements toXML() by returning null. - */ -public class MockPacket extends Packet { - - /** - * Returns null always. - * @return null - */ - public String toXML() { - return null; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacketFilter.java b/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacketFilter.java deleted file mode 100644 index f2f845d18..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/packet/MockPacketFilter.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.filter.PacketFilter; - -/** - * A mock implementation of the PacketFilter class. Pass in the value you want the - * accept(..) method to return. - */ -public class MockPacketFilter implements PacketFilter { - - private boolean acceptValue; - - public MockPacketFilter(boolean acceptValue) { - this.acceptValue = acceptValue; - } - - public boolean accept(Packet packet) { - return acceptValue; - } - -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/test/SmackTestCase.java b/CopyOftrunk/test/org/jivesoftware/smack/test/SmackTestCase.java deleted file mode 100644 index 938416e80..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/test/SmackTestCase.java +++ /dev/null @@ -1,370 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ -package org.jivesoftware.smack.test; - -import java.io.InputStream; -import java.net.URL; -import java.util.Enumeration; - -import javax.net.SocketFactory; - -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.xmlpull.v1.*; -import org.xmlpull.mxp1.MXParser; - -import junit.framework.TestCase; - -/** - * Base class for all the test cases which provides a pre-configured execution context. This - * means that any test case that subclassifies this base class will have access to a pool of - * connections and to the user of each connection. The maximum number of connections in the pool - * can be controlled by the message {@link #getMaxConnections()} which every subclass must - * implement.

    - * - * This base class defines a default execution context (i.e. host, port, chat domain and muc - * domain) which can be found in the file "config/test-case.xml". However, each subclass could - * redefine the default configuration by providing its own configuration file (if desired). The - * name of the configuration file must be of the form .xml (e.g. RosterTest.xml). - * The file must be placed in the folder "config". This folder is where the default configuration - * file is being held. - * - * @author Gaston Dombiak - */ -public abstract class SmackTestCase extends TestCase { - - private String host = "localhost"; - private int port = 5222; - - private String chatDomain = "chat.localhost"; - private String mucDomain = "conference.localhost"; - - private XMPPConnection[] connections = null; - - /** - * Constructor for SmackTestCase. - * @param arg0 - */ - public SmackTestCase(String arg0) { - super(arg0); - } - - /** - * Returns the maximum number of connections to initialize for this test case. All the - * initialized connections will be connected to the server using a new test account for - * each conection. - * - * @return the maximum number of connections to initialize for this test case. - */ - protected abstract int getMaxConnections(); - - /** - * Returns a SocketFactory that will be used to create the socket to the XMPP server. By - * default no SocketFactory is used but subclasses my want to redefine this method.

    - * - * A custom SocketFactory allows fine-grained control of the actual connection to the XMPP - * server. A typical use for a custom SocketFactory is when connecting through a SOCKS proxy. - * - * @return a SocketFactory that will be used to create the socket to the XMPP server. - */ - protected SocketFactory getSocketFactory() { - return null; - } - - /** - * Returns the XMPPConnection located at the requested position. Each test case holds a - * pool of connections which is initialized while setting up the test case. The maximum - * number of connections is controlled by the message {@link #getMaxConnections()} which - * every subclass must implement.

    - * - * If the requested position is greater than the connections size then an - * IllegalArgumentException will be thrown. - * - * @param index the position in the pool of the connection to look for. - * @return the XMPPConnection located at the requested position. - */ - protected XMPPConnection getConnection(int index) { - if (index > getMaxConnections()) { - throw new IllegalArgumentException("Index out of bounds"); - } - return connections[index]; - } - - /** - * Returns the name of the user (e.g. johndoe) that is using the connection - * located at the requested position. - * - * @param index the position in the pool of the connection to look for. - * @return the user of the user (e.g. johndoe). - */ - protected String getUsername(int index) { - if (index > getMaxConnections()) { - throw new IllegalArgumentException("Index out of bounds"); - } - return "user" + index; - } - - /** - * Returns the bare XMPP address of the user (e.g. johndoe@jabber.org) that is - * using the connection located at the requested position. - * - * @param index the position in the pool of the connection to look for. - * @return the bare XMPP address of the user (e.g. johndoe@jabber.org). - */ - protected String getBareJID(int index) { - return getUsername(index) + "@" + getConnection(index).getHost(); - } - - /** - * Returns the full XMPP address of the user (e.g. johndoe@jabber.org/Smack) that is - * using the connection located at the requested position. - * - * @param index the position in the pool of the connection to look for. - * @return the full XMPP address of the user (e.g. johndoe@jabber.org/Smack). - */ - protected String getFullJID(int index) { - return getBareJID(index) + "/Smack"; - } - - protected String getHost() { - return host; - } - - protected int getPort() { - return port; - } - - /** - * Returns the default groupchat service domain. - * - * @return the default groupchat service domain. - */ - protected String getChatDomain() { - return chatDomain; - } - - /** - * Returns the default MUC service domain. - * - * @return the default MUC service domain. - */ - protected String getMUCDomain() { - return mucDomain; - } - - protected void setUp() throws Exception { - super.setUp(); - init(); - if (getMaxConnections() < 1) { - return; - } - connections = new XMPPConnection[getMaxConnections()]; - try { - // Connect to the server - for (int i = 0; i < getMaxConnections(); i++) { - if (getSocketFactory() == null) { - connections[i] = new XMPPConnection(host, port); - } - else { - connections[i] = new XMPPConnection(host, port, getSocketFactory()); - } - } - // Use the host name that the server reports. This is a good idea in most - // cases, but could fail if the user set a hostname in their XMPP server - // that will not resolve as a network connection. - host = connections[0].getHost(); - // Create the test accounts - if (!getConnection(0).getAccountManager().supportsAccountCreation()) - fail("Server does not support account creation"); - - for (int i = 0; i < getMaxConnections(); i++) { - // Create the test account - try { - getConnection(i).getAccountManager().createAccount("user" + i, "user" + i); - } catch (XMPPException e) { - // Do nothing if the accout already exists - if (e.getXMPPError().getCode() != 409) { - throw e; - } - } - // Login with the new test account - getConnection(i).login("user" + i, "user" + i); - } - // Let the server process the available presences - Thread.sleep(150); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - protected void tearDown() throws Exception { - super.tearDown(); - - for (int i = 0; i < getMaxConnections(); i++) { - // Delete the created account for the test - getConnection(i).getAccountManager().deleteAccount(); - // Close the connection - getConnection(i).close(); - - } - } - - /** - * Initializes the context of the test case. We will first try to load the configuration from - * a file whose name is conformed by the test case class name plus an .xml extension - * (e.g RosterTest.xml). If no file was found under that name then we will try to load the - * default configuration for all the test cases from the file "config/test-case.xml". - * - */ - private void init() { - try { - boolean found = false; - // Try to load the configutation from an XML file specific for this test case - Enumeration resources = - ClassLoader.getSystemClassLoader().getResources(getConfigurationFilename()); - while (resources.hasMoreElements()) { - found = parseURL((URL) resources.nextElement()); - } - // If none was found then try to load the configuration from the default configuration - // file (i.e. "config/test-case.xml") - if (!found) { - resources = ClassLoader.getSystemClassLoader().getResources("config/test-case.xml"); - while (resources.hasMoreElements()) { - found = parseURL((URL) resources.nextElement()); - } - } - if (!found) { - System.err.println("File config/test-case.xml not found. Using default config."); - } - } - catch (Exception e) { - } - } - - /** - * Returns true if the given URL was found and parsed without problems. The file provided - * by the URL must contain information useful for the test case configuration, such us, - * host and port of the server. - * - * @param url the url of the file to parse. - * @return true if the given URL was found and parsed without problems. - */ - private boolean parseURL(URL url) { - boolean parsedOK = false; - InputStream systemStream = null; - try { - systemStream = url.openStream(); - XmlPullParser parser = new MXParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(systemStream, "UTF-8"); - int eventType = parser.getEventType(); - do { - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("host")) { - host = parser.nextText(); - } - else if (parser.getName().equals("port")) { - port = parseIntProperty(parser, port); - ; - } - else if (parser.getName().equals("chat")) { - chatDomain = parser.nextText(); - } - else if (parser.getName().equals("muc")) { - mucDomain = parser.nextText(); - } - } - eventType = parser.next(); - } - while (eventType != XmlPullParser.END_DOCUMENT); - parsedOK = true; - } - catch (Exception e) { - e.printStackTrace(); - } - finally { - try { - systemStream.close(); - } - catch (Exception e) { - } - } - return parsedOK; - } - - private static int parseIntProperty(XmlPullParser parser, int defaultValue) throws Exception { - try { - return Integer.parseInt(parser.nextText()); - } - catch (NumberFormatException nfe) { - nfe.printStackTrace(); - return defaultValue; - } - } - - /** - * Returns the name of the configuration file related to this test case. By default all - * the test cases will use the same configuration file. However, it's possible to override the - * default configuration by providing a file of the form .xml - * (e.g. RosterTest.xml). - * - * @return the name of the configuration file related to this test case. - */ - private String getConfigurationFilename() { - String fullClassName = this.getClass().getName(); - int firstChar = fullClassName.lastIndexOf('.') + 1; - return "config/" + fullClassName.substring(firstChar) + ".xml"; - } - -} diff --git a/CopyOftrunk/test/org/jivesoftware/smack/util/StringUtilsTest.java b/CopyOftrunk/test/org/jivesoftware/smack/util/StringUtilsTest.java deleted file mode 100644 index b3ac230ea..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smack/util/StringUtilsTest.java +++ /dev/null @@ -1,236 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smack.util; - -import junit.framework.TestCase; - -/** - * A test case for the StringUtils class. - */ -public class StringUtilsTest extends TestCase { - - public void testEscapeForXML() { - String input = null; - - assertNull(StringUtils.escapeForXML(null)); - - input = ""; - assertEquals("<b>", StringUtils.escapeForXML(input)); - - input = "\""; - assertEquals(""", StringUtils.escapeForXML(input)); - - input = "&"; - assertEquals("&", StringUtils.escapeForXML(input)); - - input = "\n\t\r"; - assertEquals("<b>\n\t\r</b>", StringUtils.escapeForXML(input)); - - input = " & "; - assertEquals(" & ", StringUtils.escapeForXML(input)); - - input = " \" "; - assertEquals(" " ", StringUtils.escapeForXML(input)); - - input = "> of me <"; - assertEquals("> of me <", StringUtils.escapeForXML(input)); - - input = "> of me & you<"; - assertEquals("> of me & you<", StringUtils.escapeForXML(input)); - - input = "& <"; - assertEquals("& <", StringUtils.escapeForXML(input)); - - input = "&"; - assertEquals("&", StringUtils.escapeForXML(input)); - } - - public void testHash() { - // Test null - // @TODO - should the StringUtils.hash(String) method be fixed to handle null input? - try { - StringUtils.hash(null); - fail(); - } - catch (NullPointerException npe) { - assertTrue(true); - } - - // Test empty String - String result = StringUtils.hash(""); - assertEquals("da39a3ee5e6b4b0d3255bfef95601890afd80709", result); - - // Test a known hash - String adminInHash = "d033e22ae348aeb5660fc2140aec35850c4da997"; - result = StringUtils.hash("admin"); - assertEquals(adminInHash, result); - - // Test a random String - make sure all resulting characters are valid hash characters - // and that the returned string is 32 characters long. - String random = "jive software blah and stuff this is pretty cool"; - result = StringUtils.hash(random); - assertTrue(isValidHash(result)); - - // Test junk input: - String junk = "\n\n\t\b\r!@(!)^(#)@+_-\u2031\u09291\u00A9\u00BD\u0394\u00F8"; - result = StringUtils.hash(junk); - assertTrue(isValidHash(result)); - } - - /* ----- Utility methods and vars ----- */ - - private final String HASH_CHARS = "0123456789abcdef"; - - /** - * Returns true if the input string is valid md5 hash, false otherwise. - */ - private boolean isValidHash(String result) { - boolean valid = true; - for (int i=0; i#$%^&*"; - output = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5CgkiPyEuQHt9W10oKTsnLC4vPD4jJCVeJio="; - assertEquals(StringUtils.encodeBase64(input), output); - } - - /*** - * This method tests 2 StringUtil methods - decodeBase64(String) and decodeBase64(byte[]). - */ - /* - public void testDecodeBase64() { - String input = ""; - String output = ""; - assertEquals(StringUtils.decodeBase64(input), output); - - input = "Zm9vIGJhciAxMjM="; - output = "foo bar 123"; - assertEquals(StringUtils.decodeBase64(input), output); - - input = "PQ=="; - output = "="; - assertEquals(StringUtils.decodeBase64(input), output); - - input = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5CgkiPyEuQHt9W10oKTsnLC4vPD4jJCVeJio="; - output = "abcdefghijklmnopqrstuvwxyz0123456789\n\t\"?!.@{}[]();',./<>#$%^&*"; - assertEquals(StringUtils.decodeBase64(input), output); - } - */ - - public void testRandomString() { - // Boundary test - String result = StringUtils.randomString(-1); - assertNull(result); - - // Zero length string test - result = StringUtils.randomString(0); - assertNull(result); - - // Test various lengths - make sure the same length is returned - result = StringUtils.randomString(4); - assertTrue(result.length() == 4); - result = StringUtils.randomString(16); - assertTrue(result.length() == 16); - result = StringUtils.randomString(128); - assertTrue(result.length() == 128); - } - - public void testParsing() { - String error = "Error parsing node name"; - assertEquals(error, "", StringUtils.parseName("yahoo.myjabber.net")); - assertEquals(error, "", StringUtils.parseName("yahoo.myjabber.net/registred")); - assertEquals(error, "user", StringUtils.parseName("user@yahoo.myjabber.net/registred")); - assertEquals(error, "user", StringUtils.parseName("user@yahoo.myjabber.net")); - - error = "Error parsing server name"; - String result = "yahoo.myjabber.net"; - assertEquals(error, result, StringUtils.parseServer("yahoo.myjabber.net")); - assertEquals(error, result, StringUtils.parseServer("yahoo.myjabber.net/registred")); - assertEquals(error, result, StringUtils.parseServer("user@yahoo.myjabber.net/registred")); - assertEquals(error, result, StringUtils.parseServer("user@yahoo.myjabber.net")); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/FormTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/FormTest.java deleted file mode 100644 index 3fd0090c1..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/FormTest.java +++ /dev/null @@ -1,182 +0,0 @@ -/** -* $RCSfile$ -* $Revision$ -* $Date$ -* -* Copyright (C) 2002-2003 Jive Software. All rights reserved. -* ==================================================================== -* The Jive Software License (based on Apache Software License, Version 1.1) -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* -* 3. The end-user documentation included with the redistribution, -* if any, must include the following acknowledgment: -* "This product includes software developed by -* Jive Software (http://www.jivesoftware.com)." -* Alternately, this acknowledgment may appear in the software itself, -* if and wherever such third-party acknowledgments normally appear. -* -* 4. The names "Smack" and "Jive Software" must not be used to -* endorse or promote products derived from this software without -* prior written permission. For written permission, please -* contact webmaster@jivesoftware.com. -* -* 5. Products derived from this software may not be called "Smack", -* nor may "Smack" appear in their name, without prior written -* permission of Jive Software. -* -* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR -* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* ==================================================================== -*/ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.Chat; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * Tests the DataForms extensions. - * - * @author Gaston Dombiak - */ -public class FormTest extends SmackTestCase { - - /** - * Constructor for FormTest. - * @param arg0 - */ - public FormTest(String arg0) { - super(arg0); - } - - /** - * 1. Create a form to fill out and send it to the other user - * 2. Retrieve the form to fill out, complete it and return it to the requestor - * 3. Retrieve the completed form and check that everything is OK - */ - public void testFilloutForm() { - Form formToSend = new Form(Form.TYPE_FORM); - formToSend.setInstructions( - "Fill out this form to report your case.\nThe case will be created automatically."); - formToSend.setTitle("Case configurations"); - // Add a hidden variable - FormField field = new FormField("hidden_var"); - field.setType(FormField.TYPE_HIDDEN); - field.addValue("Some value for the hidden variable"); - formToSend.addField(field); - // Add a fixed variable - field = new FormField(); - field.addValue("Section 1: Case description"); - formToSend.addField(field); - // Add a text-single variable - field = new FormField("name"); - field.setLabel("Enter a name for the case"); - field.setType(FormField.TYPE_TEXT_SINGLE); - formToSend.addField(field); - // Add a text-multi variable - field = new FormField("description"); - field.setLabel("Enter a description"); - field.setType(FormField.TYPE_TEXT_MULTI); - formToSend.addField(field); - // Add a boolean variable - field = new FormField("time"); - field.setLabel("Is this your first case?"); - field.setType(FormField.TYPE_BOOLEAN); - formToSend.addField(field); - // Add a text variable where an int value is expected - field = new FormField("age"); - field.setLabel("How old are you?"); - field.setType(FormField.TYPE_TEXT_SINGLE); - formToSend.addField(field); - - // Create the chats between the two participants - Chat chat = getConnection(0).createChat(getBareJID(1)); - Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat.getThreadID()); - - Message msg = chat.createMessage(); - msg.setBody("To enter a case please fill out this form and send it back to me"); - msg.addExtension(formToSend.getDataFormToSend()); - - try { - // Send the message with the form to fill out - chat.sendMessage(msg); - - // Get the message with the form to fill out - Message msg2 = chat2.nextMessage(2000); - // Retrieve the form to fill out - Form formToRespond = Form.getFormFrom(msg2); - assertNotNull(formToRespond); - assertNotNull(formToRespond.getField("name")); - assertNotNull(formToRespond.getField("description")); - // Obtain the form to send with the replies - Form completedForm = formToRespond.createAnswerForm(); - assertNotNull(completedForm.getField("hidden_var")); - // Check that a field of type String does not accept booleans - try { - completedForm.setAnswer("name", true); - fail("A boolean value was set to a field of type String"); - } - catch (IllegalArgumentException e) { - } - completedForm.setAnswer("name", "Credit card number invalid"); - completedForm.setAnswer( - "description", - "The ATM says that my credit card number is invalid. What's going on?"); - completedForm.setAnswer("time", true); - completedForm.setAnswer("age", 20); - // Create a new message to send with the completed form - msg2 = chat2.createMessage(); - msg2.setBody("To enter a case please fill out this form and send it back to me"); - // Add the completed form to the message - msg2.addExtension(completedForm.getDataFormToSend()); - // Send the message with the completed form - chat2.sendMessage(msg2); - - // Get the message with the completed form - Message msg3 = chat.nextMessage(2000); - // Retrieve the completed form - completedForm = Form.getFormFrom(msg3); - assertNotNull(completedForm); - assertNotNull(completedForm.getField("name")); - assertNotNull(completedForm.getField("description")); - assertEquals( - completedForm.getField("name").getValues().next(), - "Credit card number invalid"); - assertNotNull(completedForm.getField("time")); - assertNotNull(completedForm.getField("age")); - assertEquals("The age is bad", "20", completedForm.getField("age").getValues().next()); - - } - catch (XMPPException ex) { - fail(ex.getMessage()); - } - } - - protected int getMaxConnections() { - return 2; - } - -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/GroupChatInvitationTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/GroupChatInvitationTest.java deleted file mode 100644 index 8b8e30e67..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/GroupChatInvitationTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smack.filter.PacketFilter; -import org.jivesoftware.smack.filter.PacketExtensionFilter; - -/** - * - * - * @author Matt Tucker - */ -public class GroupChatInvitationTest extends SmackTestCase { - - private PacketCollector collector = null; - - /** - * Constructor for GroupChatInvitationTest. - * @param arg0 - */ - public GroupChatInvitationTest(String arg0) { - super(arg0); - } - - public void testInvitation() { - try { - GroupChatInvitation invitation = new GroupChatInvitation("test@" + getChatDomain()); - Message message = new Message(getBareJID(1)); - message.setBody("Group chat invitation!"); - message.addExtension(invitation); - getConnection(0).sendPacket(message); - - Thread.sleep(250); - - Message result = (Message)collector.pollResult(); - assertNotNull("Message not delivered correctly.", result); - - GroupChatInvitation resultInvite = (GroupChatInvitation)result.getExtension("x", - "jabber:x:conference"); - - assertEquals("Invitation not to correct room", "test@" + getChatDomain(), - resultInvite.getRoomAddress()); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - protected void setUp() throws Exception { - super.setUp(); - // Register listener for groupchat invitations. - PacketFilter filter = new PacketExtensionFilter("x", "jabber:x:conference"); - collector = getConnection(1).createPacketCollector(filter); - } - - protected void tearDown() throws Exception { - // Cancel the packet collector so that no more results are queued up - collector.cancel(); - - super.tearDown(); - } - - protected int getMaxConnections() { - return 2; - } -} \ No newline at end of file diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventManagerTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventManagerTest.java deleted file mode 100644 index 689b1a1d6..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventManagerTest.java +++ /dev/null @@ -1,278 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import java.util.ArrayList; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * - * Test the MessageEvent extension using the high level API. - * - * @author Gaston Dombiak - */ -public class MessageEventManagerTest extends SmackTestCase { - - /** - * Constructor for MessageEventManagerTest. - * @param name - */ - public MessageEventManagerTest(String name) { - super(name); - } - - /** - * High level API test. - * This is a simple test to use with a XMPP client and check if the client receives the - * message - * 1. User_1 will send a message to user_2 requesting to be notified when any of these events - * occurs: offline, composing, displayed or delivered - */ - public void testSendMessageEventRequest() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("An interesting body comes here..."); - // Add to the message all the notifications requests (offline, delivered, displayed, - // composing) - MessageEventManager.addNotificationsRequests(msg, true, true, true, true); - - // Send the message that contains the notifications request - try { - chat1.sendMessage(msg); - } catch (Exception e) { - fail("An error occured sending the message"); - } - } - - /** - * High level API test. - * This is a simple test to use with a XMPP client, check if the client receives the - * message and display in the console any notification - * 1. User_1 will send a message to user_2 requesting to be notified when any of these events - * occurs: offline, composing, displayed or delivered - * 2. User_2 will use a XMPP client (like Exodus) to display the message and compose a reply - * 3. User_1 will display any notification that receives - */ - public void testSendMessageEventRequestAndDisplayNotifications() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - MessageEventManager messageEventManager = new MessageEventManager(getConnection(0)); - messageEventManager - .addMessageEventNotificationListener(new MessageEventNotificationListener() { - public void deliveredNotification(String from, String packetID) { - System.out.println("From: " + from + " PacketID: " + packetID + "(delivered)"); - } - - public void displayedNotification(String from, String packetID) { - System.out.println("From: " + from + " PacketID: " + packetID + "(displayed)"); - } - - public void composingNotification(String from, String packetID) { - System.out.println("From: " + from + " PacketID: " + packetID + "(composing)"); - } - - public void offlineNotification(String from, String packetID) { - System.out.println("From: " + from + " PacketID: " + packetID + "(offline)"); - } - - public void cancelledNotification(String from, String packetID) { - System.out.println("From: " + from + " PacketID: " + packetID + "(cancelled)"); - } - }); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("An interesting body comes here..."); - // Add to the message all the notifications requests (offline, delivered, displayed, - // composing) - MessageEventManager.addNotificationsRequests(msg, true, true, true, true); - - // Send the message that contains the notifications request - try { - chat1.sendMessage(msg); - // Wait a few seconds so that the XMPP client can send any event - Thread.sleep(200); - } catch (Exception e) { - fail("An error occured sending the message"); - } - } - - /** - * High level API test. - * 1. User_1 will send a message to user_2 requesting to be notified when any of these events - * occurs: offline, composing, displayed or delivered - * 2. User_2 will receive the message - * 3. User_2 will simulate that the message was displayed - * 4. User_2 will simulate that he/she is composing a reply - * 5. User_2 will simulate that he/she has cancelled the reply - */ - public void testRequestsAndNotifications() { - final ArrayList results = new ArrayList(); - ArrayList resultsExpected = new ArrayList(); - resultsExpected.add("deliveredNotificationRequested"); - resultsExpected.add("composingNotificationRequested"); - resultsExpected.add("displayedNotificationRequested"); - resultsExpected.add("offlineNotificationRequested"); - resultsExpected.add("deliveredNotification"); - resultsExpected.add("displayedNotification"); - resultsExpected.add("composingNotification"); - resultsExpected.add("cancelledNotification"); - - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - MessageEventManager messageEventManager1 = new MessageEventManager(getConnection(0)); - messageEventManager1 - .addMessageEventNotificationListener(new MessageEventNotificationListener() { - public void deliveredNotification(String from, String packetID) { - results.add("deliveredNotification"); - } - - public void displayedNotification(String from, String packetID) { - results.add("displayedNotification"); - } - - public void composingNotification(String from, String packetID) { - results.add("composingNotification"); - } - - public void offlineNotification(String from, String packetID) { - results.add("offlineNotification"); - } - - public void cancelledNotification(String from, String packetID) { - results.add("cancelledNotification"); - } - }); - - MessageEventManager messageEventManager2 = new MessageEventManager(getConnection(1)); - messageEventManager2 - .addMessageEventRequestListener(new DefaultMessageEventRequestListener() { - public void deliveredNotificationRequested( - String from, - String packetID, - MessageEventManager messageEventManager) { - super.deliveredNotificationRequested(from, packetID, messageEventManager); - results.add("deliveredNotificationRequested"); - } - - public void displayedNotificationRequested( - String from, - String packetID, - MessageEventManager messageEventManager) { - super.displayedNotificationRequested(from, packetID, messageEventManager); - results.add("displayedNotificationRequested"); - } - - public void composingNotificationRequested( - String from, - String packetID, - MessageEventManager messageEventManager) { - super.composingNotificationRequested(from, packetID, messageEventManager); - results.add("composingNotificationRequested"); - } - - public void offlineNotificationRequested( - String from, - String packetID, - MessageEventManager messageEventManager) { - super.offlineNotificationRequested(from, packetID, messageEventManager); - results.add("offlineNotificationRequested"); - } - }); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("An interesting body comes here..."); - // Add to the message all the notifications requests (offline, delivered, displayed, - // composing) - MessageEventManager.addNotificationsRequests(msg, true, true, true, true); - - // Send the message that contains the notifications request - try { - chat1.sendMessage(msg); - messageEventManager2.sendDisplayedNotification(getBareJID(0), msg.getPacketID()); - messageEventManager2.sendComposingNotification(getBareJID(0), msg.getPacketID()); - messageEventManager2.sendCancelledNotification(getBareJID(0), msg.getPacketID()); - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (!results.containsAll(resultsExpected))) { - Thread.sleep(100); - } - assertTrue( - "Test failed due to bad results (1)" + resultsExpected, - resultsExpected.containsAll(results)); - assertTrue( - "Test failed due to bad results (2)" + results, - results.containsAll(resultsExpected)); - - } catch (Exception e) { - fail("An error occured sending the message"); - } - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventTests.java b/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventTests.java deleted file mode 100644 index 59eec801f..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/MessageEventTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smackx.packet.MessageEventTest; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * - * Test suite that runs all the Message Event extension tests - * - * @author Gaston Dombiak - */ -public class MessageEventTests { - - public static Test suite() { - TestSuite suite = new TestSuite("High and low level API tests for message event extension"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(MessageEventManagerTest.class)); - suite.addTest(new TestSuite(MessageEventTest.class)); - //$JUnit-END$ - return suite; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/OfflineMessageManagerTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/OfflineMessageManagerTest.java deleted file mode 100644 index 07c2fae6d..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/OfflineMessageManagerTest.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.Chat; -import org.jivesoftware.smack.PacketCollector; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.filter.MessageTypeFilter; -import org.jivesoftware.smack.packet.Message; -import org.jivesoftware.smack.packet.Presence; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.packet.OfflineMessageInfo; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * Tests handling of offline messaging using OfflineMessageManager. This server requires the - * server to support JEP-0013: Flexible Offline Message Retrieval. - * - * @author Gaston Dombiak - */ -public class OfflineMessageManagerTest extends SmackTestCase { - - public OfflineMessageManagerTest(String arg0) { - super(arg0); - } - - public void testDiscoverFlexibleRetrievalSupport() throws XMPPException { - OfflineMessageManager offlineManager = new OfflineMessageManager(getConnection(1)); - assertTrue("Server does not support JEP-13", offlineManager.supportsFlexibleRetrieval()); - } - - /** - * While user2 is connected but unavailable, user1 sends 2 messages to user1. User2 then - * performs some "Flexible Offline Message Retrieval" checking the number of offline messages, - * retriving the headers, then the real messages of the headers and finally removing the - * loaded messages. - */ - public void testReadAndDelete() { - // Make user2 unavailable - getConnection(1).sendPacket(new Presence(Presence.Type.UNAVAILABLE)); - - try { - Thread.sleep(500); - - // User1 sends some messages to User2 which is not available at the moment - Chat chat = getConnection(0).createChat(getBareJID(1)); - chat.sendMessage("Test 1"); - chat.sendMessage("Test 2"); - - Thread.sleep(500); - - // User2 checks the number of offline messages - OfflineMessageManager offlineManager = new OfflineMessageManager(getConnection(1)); - assertEquals("Wrong number of offline messages", 2, offlineManager.getMessageCount()); - // Check the message headers - Iterator headers = offlineManager.getHeaders(); - assertTrue("No message header was found", headers.hasNext()); - List stamps = new ArrayList(); - while (headers.hasNext()) { - OfflineMessageHeader header = (OfflineMessageHeader) headers.next(); - assertEquals("Incorrect sender", getFullJID(0), header.getJid()); - assertNotNull("No stamp was found in the message header", header.getStamp()); - stamps.add(header.getStamp()); - } - assertEquals("Wrong number of headers", 2, stamps.size()); - // Get the offline messages - Iterator messages = offlineManager.getMessages(stamps); - assertTrue("No message was found", messages.hasNext()); - stamps = new ArrayList(); - while (messages.hasNext()) { - Message message = (Message) messages.next(); - OfflineMessageInfo info = (OfflineMessageInfo) message.getExtension("offline", - "http://jabber.org/protocol/offline"); - assertNotNull("No offline information was included in the offline message", info); - assertNotNull("No stamp was found in the message header", info.getNode()); - stamps.add(info.getNode()); - } - assertEquals("Wrong number of messages", 2, stamps.size()); - // Check that the offline messages have not been deleted - assertEquals("Wrong number of offline messages", 2, offlineManager.getMessageCount()); - - // User2 becomes available again - PacketCollector collector = getConnection(1).createPacketCollector( - new MessageTypeFilter(Message.Type.CHAT)); - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE)); - - // Check that no offline messages was sent to the user - Message message = (Message) collector.nextResult(2500); - assertNull("An offline message was sent from the server", message); - - // Delete the retrieved offline messages - offlineManager.deleteMessages(stamps); - // Check that there are no offline message for this user - assertEquals("Wrong number of offline messages", 0, offlineManager.getMessageCount()); - - } catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * While user2 is connected but unavailable, user1 sends 2 messages to user1. User2 then - * performs some "Flexible Offline Message Retrieval" by fetching all the offline messages - * and then removing all the offline messages. - */ - public void testFetchAndPurge() { - // Make user2 unavailable - getConnection(1).sendPacket(new Presence(Presence.Type.UNAVAILABLE)); - - try { - Thread.sleep(500); - - // User1 sends some messages to User2 which is not available at the moment - Chat chat = getConnection(0).createChat(getBareJID(1)); - chat.sendMessage("Test 1"); - chat.sendMessage("Test 2"); - - Thread.sleep(500); - - // User2 checks the number of offline messages - OfflineMessageManager offlineManager = new OfflineMessageManager(getConnection(1)); - assertEquals("Wrong number of offline messages", 2, offlineManager.getMessageCount()); - // Get all offline messages - Iterator messages = offlineManager.getMessages(); - assertTrue("No message was found", messages.hasNext()); - List stamps = new ArrayList(); - while (messages.hasNext()) { - Message message = (Message) messages.next(); - OfflineMessageInfo info = (OfflineMessageInfo) message.getExtension("offline", - "http://jabber.org/protocol/offline"); - assertNotNull("No offline information was included in the offline message", info); - assertNotNull("No stamp was found in the message header", info.getNode()); - stamps.add(info.getNode()); - } - assertEquals("Wrong number of messages", 2, stamps.size()); - // Check that the offline messages have not been deleted - assertEquals("Wrong number of offline messages", 2, offlineManager.getMessageCount()); - - // User2 becomes available again - PacketCollector collector = getConnection(1).createPacketCollector( - new MessageTypeFilter(Message.Type.CHAT)); - getConnection(1).sendPacket(new Presence(Presence.Type.AVAILABLE)); - - // Check that no offline messages was sent to the user - Message message = (Message) collector.nextResult(2500); - assertNull("An offline message was sent from the server", message); - - // Delete all offline messages - offlineManager.deleteMessages(); - // Check that there are no offline message for this user - assertEquals("Wrong number of offline messages", 0, offlineManager.getMessageCount()); - - } catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeManagerTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeManagerTest.java deleted file mode 100644 index f1e009118..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeManagerTest.java +++ /dev/null @@ -1,246 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * - * Test the Roster Exchange extension using the high level API - * - * @author Gaston Dombiak - */ -public class RosterExchangeManagerTest extends SmackTestCase { - - private int entriesSent; - private int entriesReceived; - - /** - * Constructor for RosterExchangeManagerTest. - * @param name - */ - public RosterExchangeManagerTest(String name) { - super(name); - } - - /** - * High level API test. - * This is a simple test to use with a XMPP client and check if the client receives user1's - * roster - * 1. User_1 will send his/her roster to user_2 - */ - public void testSendRoster() { - // Send user1's roster to user2 - try { - RosterExchangeManager rosterExchangeManager = - new RosterExchangeManager(getConnection(0)); - rosterExchangeManager.send(getConnection(0).getRoster(), getBareJID(1)); - } - catch (Exception e) { - e.printStackTrace(); - fail("An error occured sending the roster"); - } - } - - /** - * High level API test. - * This is a simple test to use with a XMPP client and check if the client receives user1's - * roster groups - * 1. User_1 will send his/her RosterGroups to user_2 - */ - public void testSendRosterGroup() { - // Send user1's RosterGroups to user2 - try { - RosterExchangeManager rosterExchangeManager = - new RosterExchangeManager(getConnection(0)); - for (Iterator it = getConnection(0).getRoster().getGroups(); it.hasNext();) - rosterExchangeManager.send((RosterGroup) it.next(), getBareJID(1)); - } - catch (Exception e) { - e.printStackTrace(); - fail("An error occured sending the roster"); - } - } - - /** - * High level API test. - * 1. User_1 will send his/her roster to user_2 - * 2. User_2 will receive the entries and iterate over them to check if everything is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendAndReceiveRoster() { - RosterExchangeManager rosterExchangeManager1 = new RosterExchangeManager(getConnection(0)); - RosterExchangeManager rosterExchangeManager2 = new RosterExchangeManager(getConnection(1)); - - // Create a RosterExchangeListener that will iterate over the received roster entries - RosterExchangeListener rosterExchangeListener = new RosterExchangeListener() { - public void entriesReceived(String from, Iterator remoteRosterEntries) { - int received = 0; - assertNotNull("From is null", from); - assertNotNull("rosterEntries is null", remoteRosterEntries); - assertTrue("Roster without entries", remoteRosterEntries.hasNext()); - while (remoteRosterEntries.hasNext()) { - received++; - RemoteRosterEntry remoteEntry = (RemoteRosterEntry) remoteRosterEntries.next(); - System.out.println(remoteEntry); - } - entriesReceived = received; - } - }; - rosterExchangeManager2.addRosterListener(rosterExchangeListener); - - // Send user1's roster to user2 - try { - entriesSent = getConnection(0).getRoster().getEntryCount(); - entriesReceived = 0; - rosterExchangeManager1.send(getConnection(0).getRoster(), getBareJID(1)); - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (entriesSent != entriesReceived)) { - Thread.sleep(100); - } - } - catch (Exception e) { - fail("An error occured sending the message with the roster"); - } - assertEquals( - "Number of sent and received entries does not match", - entriesSent, - entriesReceived); - } - - /** - * High level API test. - * 1. User_1 will send his/her roster to user_2 - * 2. User_2 will automatically add the entries that receives to his/her roster in the - * corresponding group - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendAndAcceptRoster() { - RosterExchangeManager rosterExchangeManager1 = new RosterExchangeManager(getConnection(0)); - RosterExchangeManager rosterExchangeManager2 = new RosterExchangeManager(getConnection(1)); - - // Create a RosterExchangeListener that will accept all the received roster entries - RosterExchangeListener rosterExchangeListener = new RosterExchangeListener() { - public void entriesReceived(String from, Iterator remoteRosterEntries) { - int received = 0; - assertNotNull("From is null", from); - assertNotNull("remoteRosterEntries is null", remoteRosterEntries); - assertTrue("Roster without entries", remoteRosterEntries.hasNext()); - while (remoteRosterEntries.hasNext()) { - received++; - try { - RemoteRosterEntry remoteRosterEntry = - (RemoteRosterEntry) remoteRosterEntries.next(); - getConnection(1).getRoster().createEntry( - remoteRosterEntry.getUser(), - remoteRosterEntry.getName(), - remoteRosterEntry.getGroupArrayNames()); - } - catch (Exception e) { - fail(e.toString()); - } - } - entriesReceived = received; - } - }; - rosterExchangeManager2.addRosterListener(rosterExchangeListener); - - // Send user1's roster to user2 - try { - entriesSent = getConnection(0).getRoster().getEntryCount(); - entriesReceived = 0; - rosterExchangeManager1.send(getConnection(0).getRoster(), getBareJID(1)); - // Wait up to 2 seconds - long initial = System.currentTimeMillis(); - while (System.currentTimeMillis() - initial < 2000 && - (entriesSent != entriesReceived)) { - Thread.sleep(100); - } - } - catch (Exception e) { - fail("An error occured sending the message with the roster"); - } - assertEquals( - "Number of sent and received entries does not match", - entriesSent, - entriesReceived); - assertTrue("Roster2 has no entries", getConnection(1).getRoster().getEntryCount() > 0); - } - - protected void setUp() throws Exception { - super.setUp(); - try { - getConnection(0).getRoster().createEntry( - getBareJID(2), - "gato5", - new String[] { "Friends, Coworker" }); - getConnection(0).getRoster().createEntry(getBareJID(3), "gato6", null); - Thread.sleep(100); - - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - protected int getMaxConnections() { - return 4; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeTests.java b/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeTests.java deleted file mode 100644 index a324c6d20..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/RosterExchangeTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smackx.packet.RosterExchangeTest; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * - * Test suite that runs all the Roster Exchange extension tests - * - * @author Gaston Dombiak - */ -public class RosterExchangeTests { - - public static Test suite() { - TestSuite suite = new TestSuite("High and low level API tests for roster exchange extension"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(RosterExchangeManagerTest.class)); - suite.addTest(new TestSuite(RosterExchangeTest.class)); - //$JUnit-END$ - return suite; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/ServiceDiscoveryManagerTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/ServiceDiscoveryManagerTest.java deleted file mode 100644 index 2766925e8..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/ServiceDiscoveryManagerTest.java +++ /dev/null @@ -1,190 +0,0 @@ -/** -* $RCSfile$ -* $Revision$ -* $Date$ -* -* Copyright (C) 2002-2003 Jive Software. All rights reserved. -* ==================================================================== -* The Jive Software License (based on Apache Software License, Version 1.1) -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* -* 3. The end-user documentation included with the redistribution, -* if any, must include the following acknowledgment: -* "This product includes software developed by -* Jive Software (http://www.jivesoftware.com)." -* Alternately, this acknowledgment may appear in the software itself, -* if and wherever such third-party acknowledgments normally appear. -* -* 4. The names "Smack" and "Jive Software" must not be used to -* endorse or promote products derived from this software without -* prior written permission. For written permission, please -* contact webmaster@jivesoftware.com. -* -* 5. Products derived from this software may not be called "Smack", -* nor may "Smack" appear in their name, without prior written -* permission of Jive Software. -* -* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR -* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* ==================================================================== -*/ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - -import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.packet.DiscoverInfo; -import org.jivesoftware.smackx.packet.DiscoverItems; - - -/** - * Tests the service discovery functionality. - * - * @author Gaston Dombiak - */ -public class ServiceDiscoveryManagerTest extends SmackTestCase { - - /** - * Constructor for ServiceDiscoveryManagerTest. - * @param arg0 - */ - public ServiceDiscoveryManagerTest(String arg0) { - super(arg0); - } - - /** - * Tests info discovery of a Smack client. - */ - public void testSmackInfo() { - - ServiceDiscoveryManager discoManager = ServiceDiscoveryManager - .getInstanceFor(getConnection(0)); - try { - // Discover the information of another Smack client - DiscoverInfo info = discoManager.discoverInfo(getFullJID(1)); - // Check the identity of the Smack client - Iterator identities = info.getIdentities(); - assertTrue("No identities were found", identities.hasNext()); - DiscoverInfo.Identity identity = (DiscoverInfo.Identity)identities.next(); - assertEquals("Name in identity is wrong", ServiceDiscoveryManager.getIdentityName(), - identity.getName()); - assertEquals("Category in identity is wrong", "client", identity.getCategory()); - assertEquals("Type in identity is wrong", ServiceDiscoveryManager.getIdentityType(), - identity.getType()); - assertFalse("More identities were found", identities.hasNext()); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Tests that ensures that Smack answers a 404 error when the disco#info includes a node. - */ - public void testInfoWithNode() { - - ServiceDiscoveryManager discoManager = ServiceDiscoveryManager - .getInstanceFor(getConnection(0)); - try { - // Discover the information of another Smack client - discoManager.discoverInfo(getFullJID(1), "some node"); - // Check the identity of the Smack client - fail("Unexpected identities were returned instead of a 404 error"); - } - catch (XMPPException e) { - assertEquals("Incorrect error", 404, e.getXMPPError().getCode()); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Tests service discovery of XHTML support. - */ - public void testXHTMLFeature() { - // Check for local XHTML service support - // By default the XHTML service support is enabled in all the connections - assertTrue(XHTMLManager.isServiceEnabled(getConnection(0))); - assertTrue(XHTMLManager.isServiceEnabled(getConnection(1))); - // Check for XHTML support in connection1 from connection2 - // Must specify a full JID and not a bare JID. Ensure that the server is working ok. - assertFalse(XHTMLManager.isServiceEnabled(getConnection(1), getBareJID(0))); - // Using a full JID check that the other client supports XHTML. - assertTrue(XHTMLManager.isServiceEnabled(getConnection(1), getFullJID(0))); - - // Disable the XHTML Message support in connection1 - XHTMLManager.setServiceEnabled(getConnection(0), false); - // Check for local XHTML service support - assertFalse(XHTMLManager.isServiceEnabled(getConnection(0))); - assertTrue(XHTMLManager.isServiceEnabled(getConnection(1))); - // Check for XHTML support in connection1 from connection2 - assertFalse(XHTMLManager.isServiceEnabled(getConnection(1), getFullJID(0))); - } - - /** - * Tests support for publishing items to another entity. - */ - public void testDiscoverPublishItemsSupport() { - try { - boolean canPublish = ServiceDiscoveryManager.getInstanceFor(getConnection(0)) - .canPublishItems(getHost()); - assertFalse("Messenger does not support publishing...so far!!", canPublish); - } - catch (Exception e) { - fail(e.getMessage()); - } - - } - - /** - * Tests publishing items to another entity. - */ - /*public void testPublishItems() { - DiscoverItems itemsToPublish = new DiscoverItems(); - DiscoverItems.Item itemToPublish = new DiscoverItems.Item("pubsub.shakespeare.lit"); - itemToPublish.setName("Avatar"); - itemToPublish.setNode("romeo/avatar"); - itemToPublish.setAction(DiscoverItems.Item.UPDATE_ACTION); - itemsToPublish.addItem(itemToPublish); - - try { - ServiceDiscoveryManager.getInstanceFor(getConnection(0)).publishItems(getHost(), - itemsToPublish); - } - catch (Exception e) { - fail(e.getMessage()); - } - - }*/ - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/VCardTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/VCardTest.java deleted file mode 100644 index 3707070cd..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/VCardTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smackx.packet.VCard; - -/** - * Created by IntelliJ IDEA. - * User: Gaston - * Date: Jun 18, 2005 - * Time: 1:29:30 AM - * To change this template use File | Settings | File Templates. - */ -public class VCardTest extends SmackTestCase { - - public VCardTest(String arg0) { - super(arg0); - } - - public void testBigFunctional() { - VCard origVCard = new VCard(); - - origVCard.setFirstName("kir"); - origVCard.setLastName("max"); - origVCard.setEmailHome("foo@fee.bar"); - origVCard.setJabberId("jabber@id.org"); - origVCard.setOrganization("Jetbrains, s.r.o"); - origVCard.setNickName("KIR"); - - origVCard.setField("TITLE", "Mr"); - origVCard.setAddressFieldHome("STREET", "Some street"); - origVCard.setPhoneWork("FAX", "3443233"); - - origVCard.save(getConnection(0)); - - VCard loaded = new VCard(); - try { - loaded.load(getConnection(0)); - } catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - - assertEquals("Should load own VCard successfully", origVCard, loaded); - - loaded = new VCard(); - try { - loaded.load(getConnection(1), getBareJID(0)); - } catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - - assertEquals("Should load another user's VCard successfully", origVCard, loaded); - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/VersionTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/VersionTest.java deleted file mode 100644 index 824ff2919..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/VersionTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2003-2004 Jive Software. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.PacketCollector; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.filter.PacketIDFilter; -import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.packet.Version; - -/** - * Test case to ensure that Smack is able to get and parse correctly iq:version packets. - * - * @author Gaston Dombiak - */ -public class VersionTest extends SmackTestCase { - - public VersionTest(String arg0) { - super(arg0); - } - - /** - * Get the version of the server and make sure that all the required data is present - * - * Note: This test expects the server to answer an iq:version packet. - */ - public void testGetServerVersion() { - Version version = new Version(); - version.setType(IQ.Type.GET); - version.setTo(getHost()); - - // Create a packet collector to listen for a response. - PacketCollector collector = getConnection(0).createPacketCollector(new PacketIDFilter(version.getPacketID())); - - getConnection(0).sendPacket(version); - - // Wait up to 5 seconds for a result. - IQ result = (IQ)collector.nextResult(5000); - // Close the collector - collector.cancel(); - - assertNotNull("No result from the server", result); - - assertEquals("Incorrect result type", IQ.Type.RESULT, result.getType()); - assertNotNull("No name specified in the result", ((Version)result).getName()); - assertNotNull("No version specified in the result", ((Version)result).getVersion()); - } - - protected int getMaxConnections() { - return 1; - } - - protected void setUp() throws Exception { - XMPPConnection.DEBUG_ENABLED = false; - super.setUp(); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLManagerTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLManagerTest.java deleted file mode 100644 index cd9c65fdd..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLManagerTest.java +++ /dev/null @@ -1,284 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import java.util.Iterator; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * Test the XHTML extension using the high level API - * - * @author Gaston Dombiak - */ -public class XHTMLManagerTest extends SmackTestCase { - - private int bodiesSent; - private int bodiesReceived; - - /** - * Constructor for XHTMLManagerTest. - * @param name - */ - public XHTMLManagerTest(String name) { - super(name); - } - - /** - * High level API test. - * This is a simple test to use with a XMPP client and check if the client receives the message - * 1. User_1 will send a message with formatted text (XHTML) to user_2 - */ - public void testSendSimpleXHTMLMessage() { - // User1 creates a chat with user2 - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("Hey John, this is my new green!!!!"); - - // Create an XHTMLText to send with the message - XHTMLText xhtmlText = new XHTMLText(null, null); - xhtmlText.appendOpenParagraphTag("font-size:large"); - xhtmlText.append("Hey John, this is my new "); - xhtmlText.appendOpenSpanTag("color:green"); - xhtmlText.append("green"); - xhtmlText.appendCloseSpanTag(); - xhtmlText.appendOpenEmTag(); - xhtmlText.append("!!!!"); - xhtmlText.appendCloseEmTag(); - xhtmlText.appendCloseParagraphTag(); - // Add the XHTML text to the message - XHTMLManager.addBody(msg, xhtmlText.toString()); - - // User1 sends the message that contains the XHTML to user2 - try { - chat1.sendMessage(msg); - Thread.sleep(200); - } catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - } - - /** - * High level API test. - * 1. User_1 will send a message with XHTML to user_2 - * 2. User_2 will receive the message and iterate over the XHTML bodies to check if everything - * is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendSimpleXHTMLMessageAndDisplayReceivedXHTMLMessage() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a listener for the chat that will check if the received message includes - // an XHTML extension. Answer an ACK if everything is ok - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - assertTrue( - "The received message is not an XHTML Message", - XHTMLManager.isXHTMLMessage(message)); - try { - assertTrue( - "Message without XHTML bodies", - XHTMLManager.getBodies(message).hasNext()); - for (Iterator it = XHTMLManager.getBodies(message); it.hasNext();) { - String body = (String) it.next(); - System.out.println(body); - } - } catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - try { - chat2.sendMessage("ok"); - } catch (Exception e) { - fail("An error occured sending ack " + e.getMessage()); - } - } - }; - chat2.addMessageListener(packetListener); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("Hey John, this is my new green!!!!"); - - // Create an XHTMLText to send with the message - XHTMLText xhtmlText = new XHTMLText(null, null); - xhtmlText.appendOpenParagraphTag("font-size:large"); - xhtmlText.append("Hey John, this is my new "); - xhtmlText.appendOpenSpanTag("color:green"); - xhtmlText.append("green"); - xhtmlText.appendCloseSpanTag(); - xhtmlText.appendOpenEmTag(); - xhtmlText.append("!!!!"); - xhtmlText.appendCloseEmTag(); - xhtmlText.appendCloseParagraphTag(); - // Add the XHTML text to the message - XHTMLManager.addBody(msg, xhtmlText.toString()); - - // User1 sends the message that contains the XHTML to user2 - try { - chat1.sendMessage(msg); - } catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - // Wait for 1 second for a reply - msg = chat1.nextMessage(1000); - assertNotNull("No reply received", msg); - } - - /** - * Low level API test. Test a message with two XHTML bodies and several XHTML tags. - * 1. User_1 will send a message with XHTML to user_2 - * 2. User_2 will receive the message and iterate over the XHTML bodies to check if everything - * is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendComplexXHTMLMessageAndDisplayReceivedXHTMLMessage() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a listener for the chat that will check if the received message includes - // an XHTML extension. Answer an ACK if everything is ok - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - int received = 0; - Message message = (Message) packet; - assertTrue( - "The received message is not an XHTML Message", - XHTMLManager.isXHTMLMessage(message)); - try { - assertTrue( - "Message without XHTML bodies", - XHTMLManager.getBodies(message).hasNext()); - for (Iterator it = XHTMLManager.getBodies(message); it.hasNext();) { - received++; - String body = (String) it.next(); - System.out.println(body); - } - bodiesReceived = received; - } catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - } - }; - chat2.addMessageListener(packetListener); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody( - "awesome! As Emerson once said: A foolish consistency is the hobgoblin of little minds."); - - // Create an XHTMLText to send with the message (in Spanish) - XHTMLText xhtmlText = new XHTMLText(null, "es-ES"); - xhtmlText.appendOpenHeaderTag(1, null); - xhtmlText.append("impresionante!"); - xhtmlText.appendCloseHeaderTag(1); - xhtmlText.appendOpenParagraphTag(null); - xhtmlText.append("Como Emerson dijo una vez:"); - xhtmlText.appendCloseParagraphTag(); - xhtmlText.appendOpenBlockQuoteTag(null); - xhtmlText.appendOpenParagraphTag(null); - xhtmlText.append("Una consistencia ridícula es el espantajo de mentes pequeñas."); - xhtmlText.appendCloseParagraphTag(); - xhtmlText.appendCloseBlockQuoteTag(); - // Add the XHTML text to the message - XHTMLManager.addBody(msg, xhtmlText.toString()); - - // Create an XHTMLText to send with the message (in English) - xhtmlText = new XHTMLText(null, "en-US"); - xhtmlText.appendOpenHeaderTag(1, null); - xhtmlText.append("awesome!"); - xhtmlText.appendCloseHeaderTag(1); - xhtmlText.appendOpenParagraphTag(null); - xhtmlText.append("As Emerson once said:"); - xhtmlText.appendCloseParagraphTag(); - xhtmlText.appendOpenBlockQuoteTag(null); - xhtmlText.appendOpenParagraphTag(null); - xhtmlText.append("A foolish consistency is the hobgoblin of little minds."); - xhtmlText.appendCloseParagraphTag(); - xhtmlText.appendCloseBlockQuoteTag(); - // Add the XHTML text to the message - XHTMLManager.addBody(msg, xhtmlText.toString()); - - // User1 sends the message that contains the XHTML to user2 - try { - bodiesSent = 2; - bodiesReceived = 0; - chat1.sendMessage(msg); - // Wait half second so that the complete test can run - Thread.sleep(300); - } catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - assertEquals( - "Number of sent and received XHTMP bodies does not match", - bodiesSent, - bodiesReceived); - } - - protected int getMaxConnections() { - return 2; - } - -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLSupportTests.java b/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLSupportTests.java deleted file mode 100644 index e311f8631..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/XHTMLSupportTests.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx; - -import org.jivesoftware.smackx.packet.XHTMLExtensionTest; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * Test suite that runs all the XHTML support tests - * - * @author Gaston Dombiak - */ -public class XHTMLSupportTests { - - public static Test suite() { - TestSuite suite = new TestSuite("High and low level API tests for XHTML support"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(XHTMLManagerTest.class)); - suite.addTest(new TestSuite(XHTMLExtensionTest.class)); - //$JUnit-END$ - return suite; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatCreationTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatCreationTest.java deleted file mode 100644 index 7aa341fc3..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatCreationTest.java +++ /dev/null @@ -1,149 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ -package org.jivesoftware.smackx.muc; - -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.*; - -/** - * Tests creating new MUC rooms. - * - * @author Gaston Dombiak - */ -public class MultiUserChatCreationTest extends SmackTestCase { - - private String room; - - /** - * Constructor for MultiUserChatCreationTest. - * @param arg0 - */ - public MultiUserChatCreationTest(String arg0) { - super(arg0); - } - - /** - * Tests creating a new "Reserved Room". - */ - public void testCreateReservedRoom() { - MultiUserChat muc = new MultiUserChat(getConnection(0), room); - - try { - // Create the room - muc.create("testbot1"); - - // Get the the room's configuration form - Form form = muc.getConfigurationForm(); - assertNotNull("No room configuration form", form); - // Create a new form to submit based on the original form - Form submitForm = form.createAnswerForm(); - // Add default answers to the form to submit - for (Iterator fields = form.getFields(); fields.hasNext();) { - FormField field = (FormField) fields.next(); - if (!FormField.TYPE_HIDDEN.equals(field.getType()) - && field.getVariable() != null) { - // Sets the default value as the answer - submitForm.setDefaultAnswer(field.getVariable()); - } - } - List owners = new ArrayList(); - owners.add(getBareJID(0)); - submitForm.setAnswer("muc#roomconfig_roomowners", owners); - - // Update the new room's configuration - muc.sendConfigurationForm(submitForm); - - // Destroy the new room - muc.destroy("The room has almost no activity...", null); - - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Tests creating a new "Instant Room". - */ - public void testCreateInstantRoom() { - MultiUserChat muc = new MultiUserChat(getConnection(0), room); - - try { - // Create the room - muc.create("testbot"); - - // Send an empty room configuration form which indicates that we want - // an instant room - muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); - - // Destroy the new room - muc.destroy("The room has almost no activity...", null); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - protected int getMaxConnections() { - return 2; - } - - protected void setUp() throws Exception { - super.setUp(); - room = "fruta124@" + getMUCDomain(); - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java deleted file mode 100644 index 31c2cc94b..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java +++ /dev/null @@ -1,1810 +0,0 @@ -/** -* $RCSfile$ -* $Revision$ -* $Date$ -* -* Copyright (C) 2002-2003 Jive Software. All rights reserved. -* ==================================================================== -* The Jive Software License (based on Apache Software License, Version 1.1) -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* -* 3. The end-user documentation included with the redistribution, -* if any, must include the following acknowledgment: -* "This product includes software developed by -* Jive Software (http://www.jivesoftware.com)." -* Alternately, this acknowledgment may appear in the software itself, -* if and wherever such third-party acknowledgments normally appear. -* -* 4. The names "Smack" and "Jive Software" must not be used to -* endorse or promote products derived from this software without -* prior written permission. For written permission, please -* contact webmaster@jivesoftware.com. -* -* 5. Products derived from this software may not be called "Smack", -* nor may "Smack" appear in their name, without prior written -* permission of Jive Software. -* -* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR -* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* ==================================================================== -*/ - -package org.jivesoftware.smackx.muc; - -import java.util.*; -import java.text.SimpleDateFormat; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.Form; -import org.jivesoftware.smackx.packet.XHTMLExtension; -import org.jivesoftware.smackx.packet.DelayInformation; - -/** - * Tests the new MUC functionalities. - * - * @author Gaston Dombiak - */ -public class MultiUserChatTest extends SmackTestCase { - - private String room; - - private MultiUserChat muc; - - /** - * Constructor for MultiUserChatTest. - * @param arg0 - */ - public MultiUserChatTest(String arg0) { - super(arg0); - } - - /** - * Test the compatibility of the MUC service with clients that still use the old groupchat - * protocol. - */ - public void testGroupchatCompatibility() { - try { - Message message; - - GroupChat groupchat = new GroupChat(getConnection(1), room); - groupchat.join("testbot2"); - Thread.sleep(400); - - // User1 checks the presence of user2 in the room - Presence presence = muc.getOccupantPresence(room + "/testbot2"); - assertNotNull("Presence of user2 in room is missing", presence); - assertEquals( - "Presence mode of user2 is wrong", - Presence.Mode.AVAILABLE, - presence.getMode()); - - // User using old client send a message - groupchat.sendMessage("Hello"); - // Check that the rest of the occupants (that are support MUC) received the message - message = muc.nextMessage(1000); - assertNotNull("A MUC client didn't receive the message from an old client", message); - // User that supports MUC send a message - muc.sendMessage("Bye"); - // Check that the client the doesn't support MUC received the message - message = groupchat.nextMessage(1000); - assertNotNull("An old client didn't receive the message from a MUC client", message); - // User that doesn't support MUC leaves the room - groupchat.leave(); - Thread.sleep(300); - // User1 checks the that user2 is not present in the room - Occupant occupant = muc.getOccupant(room + "/testbot2"); - assertNull("Occupant testbot2 still exists", occupant); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testDiscussionHistory() { - try { - // User1 sends some messages to the room - muc.sendMessage("Message 1"); - muc.sendMessage("Message 2"); - // Wait 5 seconds before sending the last message - Thread.sleep(5000); - muc.sendMessage("Message 3"); - - // User2 joins the room requesting to receive the messages of the last 2 seconds. - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - DiscussionHistory history = new DiscussionHistory(); - history.setSeconds(2); - muc2.join("testbot2", null, history, SmackConfiguration.getPacketReplyTimeout()); - - Message msg; - // Get first historic message - msg = muc2.nextMessage(1000); - DelayInformation delay = (DelayInformation) msg.getExtension("x", "jabber:x:delay"); - SimpleDateFormat UTC_FORMAT = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); - UTC_FORMAT.setTimeZone(TimeZone.getDefault()); - System.out.println(UTC_FORMAT.format(delay.getStamp())); - - assertNotNull("First message is null", msg); - assertEquals("Body of first message is incorrect", "Message 3", msg.getBody()); - // Try to get second historic message - msg = muc2.nextMessage(1000); - assertNull("Second message is not null", msg); - - - // User3 joins the room requesting to receive the last 2 messages. - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - history = new DiscussionHistory(); - history.setMaxStanzas(2); - muc3.join("testbot3", null, history, SmackConfiguration.getPacketReplyTimeout()); - - // Get first historic message - msg = muc3.nextMessage(1000); - assertNotNull("First message is null", msg); - assertEquals("Body of first message is incorrect", "Message 2", msg.getBody()); - // Get second historic message - msg = muc3.nextMessage(1000); - assertNotNull("Second message is null", msg); - assertEquals("Body of second message is incorrect", "Message 3", msg.getBody()); - // Try to get third historic message - msg = muc3.nextMessage(1000); - assertNull("Third message is not null", msg); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testParticipantPresence() { - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - Thread.sleep(400); - - // User1 checks the presence of user2 in the room - Presence presence = muc.getOccupantPresence(room + "/testbot2"); - assertNotNull("Presence of user2 in room is missing", presence); - assertEquals( - "Presence mode of user2 is wrong", - Presence.Mode.AVAILABLE, - presence.getMode()); - - // User2 changes his availability to AWAY - muc2.changeAvailabilityStatus("Gone to have lunch", Presence.Mode.AWAY); - Thread.sleep(200); - // User1 checks the presence of user2 in the room - presence = muc.getOccupantPresence(room + "/testbot2"); - assertNotNull("Presence of user2 in room is missing", presence); - assertEquals("Presence mode of user2 is wrong", Presence.Mode.AWAY, presence.getMode()); - assertEquals( - "Presence status of user2 is wrong", - "Gone to have lunch", - presence.getStatus()); - - // User2 changes his nickname - muc2.changeNickname("testbotII"); - Thread.sleep(200); - // User1 checks the presence of user2 in the room - presence = muc.getOccupantPresence(room + "/testbot2"); - assertNull("Presence of participant testbot2 still exists", presence); - presence = muc.getOccupantPresence(room + "/testbotII"); - assertNotNull("Presence of participant testbotII does not exist", presence); - assertEquals( - "Presence of participant testbotII has a wrong from", - room + "/testbotII", - presence.getFrom()); - - // User2 leaves the room - muc2.leave(); - Thread.sleep(250); - // User1 checks the presence of user2 in the room - presence = muc.getOccupantPresence(room + "/testbotII"); - assertNull("Presence of participant testbotII still exists", presence); - - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testAnonymousParticipant() { - try { - // Anonymous user joins the new room - XMPPConnection anonConnection = new XMPPConnection(getHost(), getPort()); - anonConnection.loginAnonymously(); - MultiUserChat muc2 = new MultiUserChat(anonConnection, room); - muc2.join("testbot2"); - Thread.sleep(400); - - // User1 checks the presence of Anonymous user in the room - Presence presence = muc.getOccupantPresence(room + "/testbot2"); - assertNotNull("Presence of user2 in room is missing", presence); - assertEquals( - "Presence mode of user2 is wrong", - Presence.Mode.AVAILABLE, - presence.getMode()); - - // Anonymous user leaves the room - muc2.leave(); - anonConnection.close(); - Thread.sleep(250); - // User1 checks the presence of Anonymous user in the room - presence = muc.getOccupantPresence(room + "/testbot2"); - assertNull("Presence of participant testbotII still exists", presence); - - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testInvitation() { - final String[] answer = new String[2]; - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - - // User3 is listening to MUC invitations - MultiUserChat.addInvitationListener(getConnection(2), new InvitationListener() { - public void invitationReceived( - XMPPConnection conn, - String room, - String inviter, - String reason, - String password, - Message message) { - // Indicate that the invitation was received - answer[0] = reason; - // Reject the invitation - MultiUserChat.decline(conn, room, inviter, "I'm busy right now"); - } - }); - - // User2 is listening to invitation rejections - muc2.addInvitationRejectionListener(new InvitationRejectionListener() { - public void invitationDeclined(String invitee, String reason) { - // Indicate that the rejection was received - answer[1] = reason; - } - }); - - // User2 invites user3 to join to the room - muc2.invite(getFullJID(2), "Meet me in this excellent room"); - Thread.sleep(350); - - assertEquals( - "Invitation was not received", - "Meet me in this excellent room", - answer[0]); - assertEquals("Rejection was not received", "I'm busy right now", answer[1]); - - // User2 leaves the room - muc2.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testInvitationWithMessage() { - final String[] answer = new String[2]; - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - - // User3 is listening to MUC invitations - MultiUserChat.addInvitationListener(getConnection(2), new InvitationListener() { - public void invitationReceived( - XMPPConnection conn, - String room, - String inviter, - String reason, - String password, - Message message) { - // Indicate that the invitation was received - answer[0] = reason; - XHTMLExtension extension = (XHTMLExtension) message.getExtension("html", - "http://jabber.org/protocol/xhtml-im"); - assertNotNull("An extension was not found in the invitation", extension); - answer[1] = (String) extension.getBodies().next(); - } - }); - - // User2 invites user3 to join to the room - Message msg = new Message(); - XHTMLExtension xhtmlExtension = new XHTMLExtension(); - xhtmlExtension.addBody("Meet me in this excellent room"); - msg.addExtension(xhtmlExtension); - muc2.invite(msg , getFullJID(2), "Meet me in this excellent room"); - Thread.sleep(350); - - assertEquals( - "Invitation was not received", - "Meet me in this excellent room", - answer[0]); - assertEquals("Rejection was not received", - "Meet me in this excellent room", answer[1]); - - // User2 leaves the room - muc2.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testDiscoverJoinedRooms() { - try { - // Check that user1 has joined only to one room - Iterator joinedRooms = MultiUserChat.getJoinedRooms(getConnection(1), getFullJID(0)); - assertTrue("Joined rooms shouldn't be empty", joinedRooms.hasNext()); - assertEquals("Joined room is incorrect", joinedRooms.next(), room); - assertFalse("User has joined more than one room", joinedRooms.hasNext()); - - // Leave the new room - muc.leave(); - - // Check that user1 is not currently join any room - joinedRooms = MultiUserChat.getJoinedRooms(getConnection(1), getFullJID(0)); - assertFalse("Joined rooms should be empty", joinedRooms.hasNext()); - - muc.join("testbot"); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testDiscoverMUCSupport() { - // Discover user1 support of MUC - boolean supports = MultiUserChat.isServiceEnabled(getConnection(1), getFullJID(0)); - assertTrue("Couldn't detect that user1 supports MUC", supports); - } - - public void testDiscoverRoomInfo() { - try { - makeRoomModerated(); - - RoomInfo info = MultiUserChat.getRoomInfo(getConnection(1), room); - - assertFalse("Room is members-only", info.isMembersOnly()); - assertTrue("Room is moderated", info.isModerated()); - assertFalse("Room is Nonanonymous", info.isNonanonymous()); - assertFalse("Room is PasswordProtected", info.isPasswordProtected()); - assertFalse("Room is Persistent", info.isPersistent()); - assertEquals("Room's description is incorrect", "fruta124", info.getDescription()); - assertEquals("Room's subject is incorrect", "", info.getSubject()); - assertEquals("Number of occupants is incorrect", 1, info.getOccupantsCount()); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testDiscoverMUCService() { - try { - Collection services = MultiUserChat.getServiceNames(getConnection(1)); - assertFalse("No MUC service was found", services.isEmpty()); - - // Discover the hosted rooms by the chat service. - Collection rooms = MultiUserChat.getHostedRooms(getConnection(1), - (String) services.toArray()[0]); - // Check that we have discovered the room used by this test - assertFalse("No room was found", rooms.isEmpty()); - // Check that we have discovered the room used by this test - assertEquals("Wrong room JID found", room, ((HostedRoom)rooms.toArray()[0]).getJid()); - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testPrivateChat() { - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - - getConnection(0).addPacketListener(new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - Chat chat2 = new Chat(getConnection(0), message.getFrom(), message.getThread()); - assertEquals( - "Sender of chat is incorrect", - room + "/testbot2", - message.getFrom()); - try { - chat2.sendMessage("ACK"); - } - catch (XMPPException e) { - fail(e.getMessage()); - } - } - }, - new AndFilter( - new MessageTypeFilter(Message.Type.CHAT), - new PacketTypeFilter(Message.class))); - - // Start a private chat with another participant - Chat chat = muc2.createPrivateChat(room + "/testbot"); - chat.sendMessage("Hello there"); - - Message response = chat.nextMessage(2000); - assertEquals("Sender of response is incorrect", room + "/testbot", response.getFrom()); - assertEquals("Body of response is incorrect", "ACK", response.getBody()); - - // User2 leaves the room - muc2.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testReservedNickname() { - try { - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - // Check that user2 doesn't have a reserved nickname yet - String reservedNickname = muc2.getReservedNickname(); - assertNull("Reserved nickname is not null", reservedNickname); - - // User2 registers with the room and reserves a nickname - Form registrationForm = muc2.getRegistrationForm(); - Form answerForm = registrationForm.createAnswerForm(); - answerForm.setAnswer("muc#register_first", "MyFirstName"); - answerForm.setAnswer("muc#register_last", "MyLastName"); - answerForm.setAnswer("muc#register_roomnick", "MyNick"); - muc2.sendRegistrationForm(answerForm); - - // Check that user2 has a reserved nickname - reservedNickname = muc2.getReservedNickname(); - assertEquals("Reserved nickname is wrong", "MyNick", reservedNickname); - - // Check that user2 can join the room using his reserved nickname - muc2.join("MyNick"); - muc2.leave(); - - // Check that other users cannot join the room with user2's reserved nickname - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - try { - muc3.join("MyNick"); - fail("Other user was able to join with other user's reserved nickname"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull( - "No XMPPError was received when joining with other user's reserved nickname", - xmppError); - assertEquals( - "Different error code was received while joining with other user's reserved nickname", - 409, - xmppError.getCode()); - } - - // Check that user3 can join the room using his own nickname (not reserved) - muc3.join("MyNotReservedNick"); - muc3.leave(); - - // Check that another user cannot reserve an already reserved nickname - registrationForm = muc3.getRegistrationForm(); - answerForm = registrationForm.createAnswerForm(); - answerForm.setAnswer("muc#register_first", "MyFirstName 2"); - answerForm.setAnswer("muc#register_last", "MyLastName 2"); - answerForm.setAnswer("muc#register_roomnick", "MyNick"); - try { - muc3.sendRegistrationForm(answerForm); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull( - "No XMPPError was received when reserving an already reserved nickname", - xmppError); - assertEquals( - "Different error code was received while reserving an already reserved nickname", - 409, - xmppError.getCode()); - } - - // Check that another user can reserve a new nickname - registrationForm = muc3.getRegistrationForm(); - answerForm = registrationForm.createAnswerForm(); - answerForm.setAnswer("muc#register_first", "MyFirstName 2"); - answerForm.setAnswer("muc#register_last", "MyLastName 2"); - answerForm.setAnswer("muc#register_roomnick", "MyNick 2"); - muc3.sendRegistrationForm(answerForm); - - } - catch (XMPPException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testChangeSubject() { - final String[] answer = new String[2]; - try { - // User1 sets an initial subject - muc.changeSubject("Initial Subject"); - - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - - // User3 joins the new room - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - - // User3 wants to be notified every time the room's subject is changed. - muc3.addSubjectUpdatedListener(new SubjectUpdatedListener() { - public void subjectUpdated(String subject, String from) { - answer[0] = subject; - answer[1] = from; - } - }); - - // Check that a 403 error is received when a not allowed user tries to change the - // subject in a room - try { - muc2.changeSubject("New Subject2"); - fail("User2 was allowed to change the room's subject"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull( - "No XMPPError was received when changing the room's subject", - xmppError); - assertEquals( - "Different error code was received while changing the room's subject", - 403, - xmppError.getCode()); - } - - // Check that every MUC updates its subject when an allowed user changes the subject - // in a room - muc.changeSubject("New Subject1"); - Thread.sleep(300); - // Check that User2's MUC has updated its subject - assertEquals( - "User2 didn't receive the subject notification", - "New Subject1", - muc2.getSubject()); - // Check that SubjectUpdatedListener is working OK - assertEquals( - "User3 didn't receive the subject notification", - "New Subject1", - answer[0]); - assertEquals( - "User3 didn't receive the correct user that changed the subject", - room + "/testbot", - answer[1]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testKickParticipant() { - final String[] answer = new String[3]; - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will lister for his own "kicking" - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void kicked(String actor, String reason) { - super.kicked(actor, reason); - answer[0] = actor; - answer[1] = reason; - } - }); - - // User3 joins the new room - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's "kicking" - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void kicked(String participant) { - super.kicked(participant); - answer[2] = participant; - } - }); - - try { - // Check whether a simple participant can kick a room owner or not - muc2.kickParticipant("testbot", "Because I'm bad"); - fail("User2 was able to kick a room owner"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received when kicking a room owner", xmppError); - assertEquals( - "A simple participant was able to kick another participant from the room", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can kick a simple participant - muc.kickParticipant("testbot2", "Because I'm the owner"); - Thread.sleep(300); - - assertNull( - "User2 wasn't kicked from the room", - muc.getOccupant(room + "/testbot2")); - - assertFalse("User2 thinks that he's still in the room", muc2.isJoined()); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the correct initiator of the kick", - getBareJID(0), - answer[0]); - assertEquals( - "User2 didn't receive the correct reason for the kick", - "Because I'm the owner", - answer[1]); - - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive the correct kicked participant", - room + "/testbot2", - answer[2]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testBanUser() { - final String[] answer = new String[3]; - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will lister for his own "banning" - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void banned(String actor, String reason) { - super.banned(actor, reason); - answer[0] = actor; - answer[1] = reason; - } - }); - - // User3 joins the new room - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's "banning" - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void banned(String participant) { - super.banned(participant); - answer[2] = participant; - } - }); - - try { - // Check whether a simple participant can ban a room owner or not - muc2.banUser(getBareJID(0), "Because I'm bad"); - fail("User2 was able to ban a room owner"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received when banning a room owner", xmppError); - assertEquals( - "A simple participant was able to ban another participant from the room", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can ban a simple participant - muc.banUser(getBareJID(1), "Because I'm the owner"); - Thread.sleep(300); - - assertNull( - "User2 wasn't banned from the room", - muc.getOccupant(room + "/testbot2")); - - assertFalse("User2 thinks that he's still in the room", muc2.isJoined()); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the correct initiator of the ban", - getBareJID(0), - answer[0]); - assertEquals( - "User2 didn't receive the correct reason for the banning", - "Because I'm the owner", - answer[1]); - - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive the correct banned JID", - room + "/testbot2", - answer[2]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testVoice() { - final String[] answer = new String[4]; - try { - - makeRoomModerated(); - - // User2 joins the new room (as a visitor) - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will listen for his own "voice" - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void voiceGranted() { - super.voiceGranted(); - answer[0] = "canSpeak"; - } - public void voiceRevoked() { - super.voiceRevoked(); - answer[1] = "cannot speak"; - } - }); - - // User3 joins the new room (as a visitor) - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's "voice" - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void voiceGranted(String participant) { - super.voiceGranted(participant); - answer[2] = participant; - } - - public void voiceRevoked(String participant) { - super.voiceRevoked(participant); - answer[3] = participant; - } - }); - - try { - // Check whether a visitor can grant voice to another visitor - muc2.grantVoice("testbot3"); - fail("User2 was able to grant voice"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received granting voice", xmppError); - assertEquals( - "A visitor was able to grant voice to another visitor", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can grant voice to a participant - muc.grantVoice("testbot2"); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the grant voice notification", - "canSpeak", - answer[0]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's grant voice notification", - room + "/testbot2", - answer[2]); - - // Check that the room's owner can revoke voice from a participant - muc.revokeVoice("testbot2"); - Thread.sleep(300); - - assertEquals( - "User2 didn't receive the revoke voice notification", - "cannot speak", - answer[1]); - assertEquals( - "User3 didn't receive user2's revoke voice notification", - room + "/testbot2", - answer[3]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testModerator() { - final String[] answer = new String[8]; - try { - - makeRoomModerated(); - - // User2 joins the new room (as a visitor) - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will listen for moderator privileges - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void voiceGranted() { - super.voiceGranted(); - answer[0] = "canSpeak"; - } - public void voiceRevoked() { - super.voiceRevoked(); - answer[1] = "cannot speak"; - } - public void moderatorGranted() { - super.moderatorGranted(); - answer[4] = "I'm a moderator"; - } - public void moderatorRevoked() { - super.moderatorRevoked(); - answer[5] = "I'm not a moderator"; - } - }); - - // User3 joins the new room (as a visitor) - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's moderator privileges - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void voiceGranted(String participant) { - super.voiceGranted(participant); - answer[2] = participant; - } - public void voiceRevoked(String participant) { - super.voiceRevoked(participant); - answer[3] = participant; - } - public void moderatorGranted(String participant) { - super.moderatorGranted(participant); - answer[6] = participant; - } - public void moderatorRevoked(String participant) { - super.moderatorRevoked(participant); - answer[7] = participant; - } - }); - - try { - // Check whether a visitor can grant moderator privileges to another visitor - muc2.grantModerator("testbot3"); - fail("User2 was able to grant moderator privileges"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received granting moderator privileges", xmppError); - assertEquals( - "A visitor was able to grant moderator privileges to another visitor", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can grant moderator privileges to a visitor - muc.grantModerator("testbot2"); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the grant voice notification", - "canSpeak", - answer[0]); - assertEquals( - "User2 didn't receive the grant moderator privileges notification", - "I'm a moderator", - answer[4]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's grant voice notification", - room + "/testbot2", - answer[2]); - assertEquals( - "User3 didn't receive user2's grant moderator privileges notification", - room + "/testbot2", - answer[6]); - - // Check that the room's owner can revoke moderator privileges from a moderator - muc.revokeModerator("testbot2"); - Thread.sleep(300); - - assertNull("User2 received a false revoke voice notification", answer[1]); - assertNull("User3 received a false user2's voice privileges notification", answer[3]); - assertEquals( - "User2 didn't receive the revoke moderator privileges notification", - "I'm not a moderator", - answer[5]); - assertEquals( - "User3 didn't receive user2's revoke moderator privileges notification", - room + "/testbot2", - answer[7]); - - // Check that the room's owner can grant moderator privileges to a participant - clearAnswer(answer); - muc.grantModerator("testbot2"); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertNull("User2 received a false grant voice notification", answer[0]); - assertEquals( - "User2 didn't receive the grant moderator privileges notification", - "I'm a moderator", - answer[4]); - // Check that ParticipantStatusListener is working OK - assertNull("User3 received a false user2's grant voice notification", answer[2]); - assertEquals( - "User3 didn't receive user2's grant moderator privileges notification", - room + "/testbot2", - answer[6]); - - // Check that the room's owner can revoke voice from a moderator - clearAnswer(answer); - muc.revokeVoice("testbot2"); - Thread.sleep(300); - - assertEquals( - "User2 didn't receive the revoke voice notification", - "cannot speak", - answer[1]); - assertEquals( - "User3 didn't receive user2's revoke voice notification", - room + "/testbot2", - answer[3]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testMembership() { - final String[] answer = new String[4]; - try { - - makeRoomModerated(); - - // User2 joins the new room (as a visitor) - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will listen for membership privileges - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void membershipGranted() { - super.membershipGranted(); - answer[0] = "I'm a member"; - } - public void membershipRevoked() { - super.membershipRevoked(); - answer[1] = "I'm not a member"; - } - }); - - // User3 joins the new room (as a visitor) - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's membership privileges - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void membershipGranted(String participant) { - super.membershipGranted(participant); - answer[2] = participant; - } - public void membershipRevoked(String participant) { - super.membershipRevoked(participant); - answer[3] = participant; - } - }); - - try { - // Check whether a visitor can grant membership privileges to another visitor - muc2.grantMembership(getBareJID(2)); - fail("User2 was able to grant membership privileges"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull( - "No XMPPError was received granting membership privileges", - xmppError); - assertEquals( - "A visitor was able to grant membership privileges to another visitor", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can grant membership privileges to a visitor - muc.grantMembership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the grant membership notification", - "I'm a member", - answer[0]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's grant membership notification", - room + "/testbot2", - answer[2]); - - // Check that the room's owner can revoke membership privileges from a member - // and make the occupant a visitor - muc.revokeMembership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke membership notification", - "I'm not a member", - answer[1]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke membership notification", - room + "/testbot2", - answer[3]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testAdmin() { - final String[] answer = new String[8]; - try { - - makeRoomModerated(); - - // User2 joins the new room (as a visitor) - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will listen for admin privileges - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void membershipGranted() { - super.membershipGranted(); - answer[0] = "I'm a member"; - } - public void membershipRevoked() { - super.membershipRevoked(); - answer[1] = "I'm not a member"; - } - public void adminGranted() { - super.adminGranted(); - answer[2] = "I'm an admin"; - } - public void adminRevoked() { - super.adminRevoked(); - answer[3] = "I'm not an admin"; - } - }); - - // User3 joins the new room (as a visitor) - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's admin privileges - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void membershipGranted(String participant) { - super.membershipGranted(participant); - answer[4] = participant; - } - public void membershipRevoked(String participant) { - super.membershipRevoked(participant); - answer[5] = participant; - } - public void adminGranted(String participant) { - super.adminGranted(participant); - answer[6] = participant; - } - public void adminRevoked(String participant) { - super.adminRevoked(participant); - answer[7] = participant; - } - }); - - try { - // Check whether a visitor can grant admin privileges to another visitor - muc2.grantAdmin(getBareJID(2)); - fail("User2 was able to grant admin privileges"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received granting admin privileges", xmppError); - assertEquals( - "A visitor was able to grant admin privileges to another visitor", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can grant admin privileges to a visitor - muc.grantAdmin(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the grant admin notification", - "I'm an admin", - answer[2]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's grant admin notification", - room + "/testbot2", - answer[6]); - - // Check that the room's owner can revoke admin privileges from an admin - // and make the occupant a visitor - muc.revokeMembership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke admin notification", - "I'm not an admin", - answer[3]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke admin notification", - room + "/testbot2", - answer[7]); - - // Check that the room's owner can grant admin privileges to a member - clearAnswer(answer); - muc.grantMembership(getBareJID(1)); - Thread.sleep(300); - muc.grantAdmin(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke membership notification", - "I'm not a member", - answer[1]); - assertEquals( - "User2 didn't receive the grant admin notification", - "I'm an admin", - answer[2]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke membership notification", - room + "/testbot2", - answer[5]); - assertEquals( - "User3 didn't receive user2's grant admin notification", - room + "/testbot2", - answer[6]); - - // Check that the room's owner can revoke admin privileges from an admin - // and make the occupant a member - clearAnswer(answer); - muc.revokeAdmin(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke admin notification", - "I'm not an admin", - answer[3]); - assertEquals( - "User2 didn't receive the grant membership notification", - "I'm a member", - answer[0]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke admin notification", - room + "/testbot2", - answer[7]); - assertEquals( - "User3 didn't receive user2's grant membership notification", - room + "/testbot2", - answer[4]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testOwnership() { - final String[] answer = new String[12]; - try { - - makeRoomModerated(); - - // User2 joins the new room (as a visitor) - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - // User2 will listen for ownership privileges - muc2.addUserStatusListener(new DefaultUserStatusListener() { - public void membershipGranted() { - super.membershipGranted(); - answer[0] = "I'm a member"; - } - public void membershipRevoked() { - super.membershipRevoked(); - answer[1] = "I'm not a member"; - } - public void adminGranted() { - super.adminGranted(); - answer[2] = "I'm an admin"; - } - public void adminRevoked() { - super.adminRevoked(); - answer[3] = "I'm not an admin"; - } - public void ownershipGranted() { - super.ownershipGranted(); - answer[4] = "I'm an owner"; - } - public void ownershipRevoked() { - super.ownershipRevoked(); - answer[5] = "I'm not an owner"; - } - }); - - // User3 joins the new room (as a visitor) - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - // User3 will lister for user2's ownership privileges - muc3.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void membershipGranted(String participant) { - super.membershipGranted(participant); - answer[6] = participant; - } - public void membershipRevoked(String participant) { - super.membershipRevoked(participant); - answer[7] = participant; - } - public void adminGranted(String participant) { - super.adminGranted(participant); - answer[8] = participant; - } - public void adminRevoked(String participant) { - super.adminRevoked(participant); - answer[9] = participant; - } - public void ownershipGranted(String participant) { - super.ownershipGranted(participant); - answer[10] = participant; - } - public void ownershipRevoked(String participant) { - super.ownershipRevoked(participant); - answer[11] = participant; - } - }); - - try { - // Check whether a visitor can grant ownership privileges to another visitor - muc2.grantOwnership(getBareJID(2)); - fail("User2 was able to grant ownership privileges"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received granting ownership privileges", xmppError); - assertEquals( - "A visitor was able to grant ownership privileges to another visitor", - 403, - xmppError.getCode()); - } - - // Check that the room's owner can grant ownership privileges to a visitor - muc.grantOwnership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the grant ownership notification", - "I'm an owner", - answer[4]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's grant ownership notification", - room + "/testbot2", - answer[10]); - - // Check that the room's owner can revoke ownership privileges from an owner - // and make the occupant a visitor - muc.revokeMembership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke ownership notification", - "I'm not an owner", - answer[5]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke ownership notification", - room + "/testbot2", - answer[11]); - - // Check that the room's owner can grant ownership privileges to a member - clearAnswer(answer); - muc.grantMembership(getBareJID(1)); - Thread.sleep(300); - muc.grantOwnership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke membership notification", - "I'm not a member", - answer[1]); - assertEquals( - "User2 didn't receive the grant ownership notification", - "I'm an owner", - answer[4]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke membership notification", - room + "/testbot2", - answer[7]); - assertEquals( - "User3 didn't receive user2's grant ownership notification", - room + "/testbot2", - answer[10]); - - // Check that the room's owner can revoke ownership privileges from an owner - // and make the occupant a member - clearAnswer(answer); - muc.revokeAdmin(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke ownership notification", - "I'm not an owner", - answer[5]); - assertEquals( - "User2 didn't receive the grant membership notification", - "I'm a member", - answer[0]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke ownership notification", - room + "/testbot2", - answer[11]); - assertEquals( - "User3 didn't receive user2's grant membership notification", - room + "/testbot2", - answer[6]); - - // Check that the room's owner can grant ownership privileges to an admin - clearAnswer(answer); - muc.grantAdmin(getBareJID(1)); - Thread.sleep(300); - muc.grantOwnership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke admin notification", - "I'm not an admin", - answer[3]); - assertEquals( - "User2 didn't receive the grant ownership notification", - "I'm an owner", - answer[4]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke admin notification", - room + "/testbot2", - answer[9]); - assertEquals( - "User3 didn't receive user2's grant ownership notification", - room + "/testbot2", - answer[10]); - - // Check that the room's owner can revoke ownership privileges from an owner - // and make the occupant an admin - clearAnswer(answer); - muc.revokeOwnership(getBareJID(1)); - Thread.sleep(300); - - // Check that UserStatusListener is working OK - assertEquals( - "User2 didn't receive the revoke ownership notification", - "I'm not an owner", - answer[5]); - assertEquals( - "User2 didn't receive the grant admin notification", - "I'm an admin", - answer[2]); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User3 didn't receive user2's revoke ownership notification", - room + "/testbot2", - answer[11]); - assertEquals( - "User3 didn't receive user2's grant admin notification", - room + "/testbot2", - answer[8]); - - // User2 leaves the room - muc2.leave(); - // User3 leaves the room - muc3.leave(); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testGetAffiliationList() { - try { - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - muc2.join("testbot2"); - - // User3 joins the new room - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - - // Grant ownership privileges to user2 - muc.grantOwnership(getBareJID(1)); - // Grant moderator privileges to user3 - muc.grantModerator("testbot3"); - - // Check that the owner list is correct - Collection affiliates = muc.getOwners(); - assertEquals("Room does not have 2 owners", 2, affiliates.size()); - for (Iterator it =affiliates.iterator(); it.hasNext();) { - Affiliate affiliate = (Affiliate)it.next(); - if (getBareJID(0).equals(affiliate.getJid())) { - assertEquals("Wrong affiliation", "owner", affiliate.getAffiliation()); - assertEquals("Wrong role", "moderator", affiliate.getRole()); - assertEquals("Wrong nick", "testbot", affiliate.getNick()); - } - else if (getBareJID(1).equals(affiliate.getJid())) { - assertEquals("Wrong affiliation", "owner", affiliate.getAffiliation()); - assertEquals("Wrong role", "moderator", affiliate.getRole()); - assertEquals("Wrong nick", "testbot2", affiliate.getNick()); - } - else { - fail("Unknown owner " + affiliate.getJid()); - } - } - - // Check that the admin list is correct - affiliates = muc.getAdmins(); - assertEquals("Room has admins", 0, affiliates.size()); - - // Check that the members list is correct - affiliates = muc.getMembers(); - assertEquals("Room has admins", 0, affiliates.size()); - // Grant membership privileges to user2 - muc.grantMembership(getBareJID(1)); - // Check that the members list is correct - affiliates = muc.getMembers(); - assertEquals("Room has admins", 1, affiliates.size()); - Affiliate affiliate = (Affiliate) affiliates.iterator().next(); - assertEquals("Wrong member jid", getBareJID(1), affiliate.getJid()); - - // Check that the members list is correct - affiliates = muc.getOutcasts(); - assertEquals("Room has outcasts", 0, affiliates.size()); - - // Check that the moderator list is correct - Collection occupants = muc.getModerators(); - assertEquals("Room does not have 2 moderators", 2, occupants.size()); - for (Iterator it =occupants.iterator(); it.hasNext();) { - Occupant occupant = (Occupant)it.next(); - if (getFullJID(0).equals(occupant.getJid())) { - assertEquals("Wrong affiliation", "owner", occupant.getAffiliation()); - assertEquals("Wrong role", "moderator", occupant.getRole()); - assertEquals("Wrong nick", "testbot", occupant.getNick()); - } - else if (getFullJID(2).equals(occupant.getJid())) { - assertEquals("Wrong affiliation", "none", occupant.getAffiliation()); - assertEquals("Wrong role", "moderator", occupant.getRole()); - assertEquals("Wrong nick", "testbot3", occupant.getNick()); - } - else { - fail("Unknown moderator " + occupant.getJid()); - } - } - - // Check that the participants list is correct - occupants = muc.getParticipants(); - assertEquals("Room does not have 1 participant", 1, occupants.size()); - Occupant occupant = (Occupant) occupants.iterator().next(); - assertEquals("Wrong participant jid", getFullJID(1), occupant.getJid()); - - Thread.sleep(500); - - // Check that we can retrieve Occupant information of a given user - occupant = muc.getOccupant(room + "/testbot2"); - assertNotNull("Occupant was not found", occupant); - assertEquals("Wrong occupant jid", getFullJID(1), occupant.getJid()); - assertEquals("Wrong occupant affiliation", "member", occupant.getAffiliation()); - assertEquals("Wrong occupant role", "participant", occupant.getRole()); - assertEquals("Wrong occupant nick", "testbot2", occupant.getNick()); - - try { - // Check whether a member can get the list of owners - muc2.getOwners(); - fail("User2 was able to get the list of owners"); - } - catch (XMPPException e) { - XMPPError xmppError = e.getXMPPError(); - assertNotNull("No XMPPError was received getting the list of owners", xmppError); - assertEquals( - "A member was able to get the list of owners", - 403, - xmppError.getCode()); - } - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - /** - * Check that ParticipantStatusListener is receiving joining and leaving events correctly. - */ - public void testJoinLeftEvents() { - final String[] answer = new String[8]; - try { - // User1 will listen for occupants joining and leaving the room - muc.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void joined(String participant) { - super.joined(participant); - if ((room + "/testbot2").equals(participant)) { - answer[0] = participant; - } - else { - answer[1] = participant; - } - } - public void left(String participant) { - super.left(participant); - if ((room + "/testbot2").equals(participant)) { - answer[2] = participant; - } - // Skip unavailable presences of the same user - else if (!(room + "/testbot").equals(participant)) { - answer[3] = participant; - } - } - }); - - // User2 joins the new room - MultiUserChat muc2 = new MultiUserChat(getConnection(1), room); - // User2 will listen for User3 joining and leaving the room - muc2.addParticipantStatusListener(new DefaultParticipantStatusListener() { - public void joined(String participant) { - super.joined(participant); - if ((room + "/testbot").equals(participant)) { - answer[4] = participant; - } - else { - answer[5] = participant; - } - } - public void left(String participant) { - super.left(participant); - if ((room + "/testbot").equals(participant)) { - answer[6] = participant; - } - // Skip unavailable presences of the same user - else if (!(room + "/testbot2").equals(participant)){ - answer[7] = participant; - } - } - }); - muc2.join("testbot2"); - - // User3 joins the new room - MultiUserChat muc3 = new MultiUserChat(getConnection(2), room); - muc3.join("testbot3"); - - Thread.sleep(150); - - // User3 leaves the room - muc3.leave(); - - Thread.sleep(150); - // User2 leaves the room - muc2.leave(); - - Thread.sleep(250); - // Check that ParticipantStatusListener is working OK - assertEquals( - "User1 didn't receive the event of User2 joining the room", - room + "/testbot2", - answer[0]); - assertEquals( - "User1 didn't receive the event of User3 joining the room", - room + "/testbot3", - answer[1]); - assertEquals( - "User1 didn't receive the event of User2 leaving the room", - room + "/testbot2", - answer[2]); - assertEquals( - "User1 didn't receive the event of User3 leaving the room", - room + "/testbot3", - answer[3]); - assertEquals( - "User2 didn't receive the event of User1 joining the room", - room + "/testbot", - answer[4]); - assertEquals( - "User2 didn't receive the event of User3 joining the room", - room + "/testbot3", - answer[5]); - assertNull( - "User2 received the event of User1 leaving the room", - answer[6]); - assertEquals( - "User2 didn't receive the event of User3 leaving the room", - room + "/testbot3", - answer[7]); - } - catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - - public void testManyResources() { - try { - // Create 20 more connections for user2 - XMPPConnection[] conns = new XMPPConnection[20]; - for (int i = 0; i < conns.length; i++) { - conns[i] = new XMPPConnection(getHost()); - conns[i].login(getUsername(1), getUsername(1), "resource-" + i); - } - - // Join the 20 connections to the same room - MultiUserChat[] mucs = new MultiUserChat[20]; - for (int i = 0; i < mucs.length; i++) { - mucs[i] = new MultiUserChat(conns[i], room); - mucs[i].join("resource-" + i); - } - - Thread.sleep(200); - - // Each connection has something to say - for (int i = 0; i < mucs.length; i++) { - mucs[i].sendMessage("I'm resource-" + i); - } - - Thread.sleep(200); - - // Each connection leaves the room and closes the connection - for (int i = 0; i < mucs.length; i++) { - mucs[i].leave(); - conns[i].close(); - } - - } catch (Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - - } - - private void makeRoomModerated() throws XMPPException { - // User1 (which is the room owner) converts the instant room into a moderated room - Form form = muc.getConfigurationForm(); - Form answerForm = form.createAnswerForm(); - answerForm.setAnswer("muc#roomconfig_moderatedroom", true); - // Keep the room owner - try { - List owners = new ArrayList(); - owners.add(getBareJID(0)); - answerForm.setAnswer("muc#roomconfig_roomowners", owners); - } - catch (IllegalArgumentException e) { - // Do nothing - } - muc.sendConfigurationForm(answerForm); - } - - private void clearAnswer(String[] answer) { - for (int i = 0; i < answer.length; i++) { - answer[i] = null; - } - } - - protected void setUp() throws Exception { - XMPPConnection.DEBUG_ENABLED = false; - super.setUp(); - room = "fruta124@" + getMUCDomain(); - try { - // User1 creates the room - muc = new MultiUserChat(getConnection(0), room); - muc.create("testbot"); - - // User1 sends an empty room configuration form which indicates that we want - // an instant room - muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); - } - catch (Exception e) { - fail(e.getMessage()); - } - } - - protected void tearDown() throws Exception { - // Destroy the new room - muc.destroy("The room has almost no activity...", null); - - super.tearDown(); - } - - protected int getMaxConnections() { - return 3; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/packet/MessageEventTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/packet/MessageEventTest.java deleted file mode 100644 index 7dc4186ca..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/packet/MessageEventTest.java +++ /dev/null @@ -1,171 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx.packet; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * - * Test the MessageEvent extension using the low level API - * - * @author Gaston Dombiak - */ -public class MessageEventTest extends SmackTestCase { - - /** - * Constructor for MessageEventTest. - * @param name - */ - public MessageEventTest(String name) { - super(name); - } - - /** - * Low level API test. - * This is a simple test to use with a XMPP client and check if the client receives the - * message - * 1. User_1 will send a message to user_2 requesting to be notified when any of these events - * occurs: offline, composing, displayed or delivered - */ - public void testSendMessageEventRequest() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("An interesting body comes here..."); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setComposing(true); - messageEvent.setDelivered(true); - messageEvent.setDisplayed(true); - messageEvent.setOffline(true); - msg.addExtension(messageEvent); - - // Send the message that contains the notifications request - try { - chat1.sendMessage(msg); - // Wait half second so that the complete test can run - Thread.sleep(200); - } - catch (Exception e) { - fail("An error occured sending the message"); - } - } - - /** - * Low level API test. - * This is a simple test to use with a XMPP client, check if the client receives the - * message and display in the console any notification - * 1. User_1 will send a message to user_2 requesting to be notified when any of these events - * occurs: offline, composing, displayed or delivered - * 2. User_2 will use a XMPP client (like Exodus) to display the message and compose a reply - * 3. User_1 will display any notification that receives - */ - public void testSendMessageEventRequestAndDisplayNotifications() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // Create a Listener that listens for Messages with the extension "jabber:x:roster" - // This listener will listen on the conn2 and answer an ACK if everything is ok - PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:event"); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - try { - MessageEvent messageEvent = - (MessageEvent) message.getExtension("x", "jabber:x:event"); - assertNotNull("Message without extension \"jabber:x:event\"", messageEvent); - assertTrue( - "Message event is a request not a notification", - !messageEvent.isMessageEventRequest()); - System.out.println(messageEvent.toXML()); - } - catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - } - }; - getConnection(0).addPacketListener(packetListener, packetFilter); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("An interesting body comes here..."); - // Create a MessageEvent Package and add it to the message - MessageEvent messageEvent = new MessageEvent(); - messageEvent.setComposing(true); - messageEvent.setDelivered(true); - messageEvent.setDisplayed(true); - messageEvent.setOffline(true); - msg.addExtension(messageEvent); - - // Send the message that contains the notifications request - try { - chat1.sendMessage(msg); - // Wait half second so that the complete test can run - Thread.sleep(200); - } - catch (Exception e) { - fail("An error occured sending the message"); - } - } - - protected int getMaxConnections() { - return 2; - } -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/packet/RosterExchangeTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/packet/RosterExchangeTest.java deleted file mode 100644 index 5537d2f6a..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/packet/RosterExchangeTest.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Created on 01/08/2003 - * - */ -package org.jivesoftware.smackx.packet; - -import java.util.Iterator; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; -import org.jivesoftware.smackx.*; - -/** - * - * Test the Roster Exchange extension using the low level API - * - * @author Gaston Dombiak - */ -public class RosterExchangeTest extends SmackTestCase { - - /** - * Constructor for RosterExchangeTest. - * @param arg0 - */ - public RosterExchangeTest(String arg0) { - super(arg0); - } - - /** - * Low level API test. - * This is a simple test to use with a XMPP client and check if the client receives the message - * 1. User_1 will send his/her roster entries to user_2 - */ - public void testSendRosterEntries() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("This message contains roster items."); - // Create a RosterExchange Package and add it to the message - assertTrue("Roster has no entries", getConnection(0).getRoster().getEntryCount() > 0); - RosterExchange rosterExchange = new RosterExchange(getConnection(0).getRoster()); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - try { - chat1.sendMessage(msg); - } catch (Exception e) { - fail("An error occured sending the message with the roster"); - } - } - - /** - * Low level API test. - * 1. User_1 will send his/her roster entries to user_2 - * 2. User_2 will receive the entries and iterate over them to check if everything is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then something is wrong - */ - public void testSendAndReceiveRosterEntries() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a Listener that listens for Messages with the extension "jabber:x:roster" - // This listener will listen on the conn2 and answer an ACK if everything is ok - PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:roster"); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - assertNotNull("Body is null", message.getBody()); - try { - RosterExchange rosterExchange = - (RosterExchange) message.getExtension("x", "jabber:x:roster"); - assertNotNull("Message without extension \"jabber:x:roster\"", rosterExchange); - assertTrue( - "Roster without entries", - rosterExchange.getRosterEntries().hasNext()); - for (Iterator it = rosterExchange.getRosterEntries(); it.hasNext();) { - RemoteRosterEntry remoteRosterEntry = (RemoteRosterEntry) it.next(); - } - } catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - try { - chat2.sendMessage("ok"); - } catch (Exception e) { - fail("An error occured sending ack " + e.getMessage()); - } - } - }; - getConnection(1).addPacketListener(packetListener, packetFilter); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("This message contains roster items."); - // Create a RosterExchange Package and add it to the message - assertTrue("Roster has no entries", getConnection(0).getRoster().getEntryCount() > 0); - RosterExchange rosterExchange = new RosterExchange(getConnection(0).getRoster()); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - try { - chat1.sendMessage(msg); - } catch (Exception e) { - fail("An error occured sending the message with the roster"); - } - // Wait for 2 seconds for a reply - msg = chat1.nextMessage(2000); - assertNotNull("No reply received", msg); - } - - /** - * Low level API test. - * 1. User_1 will send his/her roster entries to user_2 - * 2. User_2 will automatically add the entries that receives to his/her roster in the corresponding group - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then something is wrong - */ - public void testSendAndAcceptRosterEntries() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a Listener that listens for Messages with the extension "jabber:x:roster" - // This listener will listen on the conn2, save the roster entries and answer an ACK if everything is ok - PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:roster"); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - assertNotNull("Body is null", message.getBody()); - try { - RosterExchange rosterExchange = - (RosterExchange) message.getExtension("x", "jabber:x:roster"); - assertNotNull("Message without extension \"jabber:x:roster\"", rosterExchange); - assertTrue( - "Roster without entries", - rosterExchange.getRosterEntries().hasNext()); - // Add the roster entries to user2's roster - for (Iterator it = rosterExchange.getRosterEntries(); it.hasNext();) { - RemoteRosterEntry remoteRosterEntry = (RemoteRosterEntry) it.next(); - getConnection(1).getRoster().createEntry( - remoteRosterEntry.getUser(), - remoteRosterEntry.getName(), - remoteRosterEntry.getGroupArrayNames()); - } - } catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } catch (Exception e) { - fail(e.toString()); - } - try { - chat2.sendMessage("ok"); - } catch (Exception e) { - fail("An error occured sending ack " + e.getMessage()); - } - } - }; - getConnection(1).addPacketListener(packetListener, packetFilter); - - // Create the message to send with the roster - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("This message contains roster items."); - // Create a RosterExchange Package and add it to the message - assertTrue("Roster has no entries", getConnection(0).getRoster().getEntryCount() > 0); - RosterExchange rosterExchange = new RosterExchange(getConnection(0).getRoster()); - msg.addExtension(rosterExchange); - - // Send the message that contains the roster - try { - chat1.sendMessage(msg); - } catch (Exception e) { - fail("An error occured sending the message with the roster"); - } - // Wait for 10 seconds for a reply - msg = chat1.nextMessage(5000); - assertNotNull("No reply received", msg); - try { - Thread.sleep(200); - } catch (Exception e) { - } - assertTrue("Roster2 has no entries", getConnection(1).getRoster().getEntryCount() > 0); - } - - protected void setUp() throws Exception { - super.setUp(); - try { - getConnection(0).getRoster().createEntry( - getBareJID(2), - "gato5", - new String[] { "Friends, Coworker" }); - getConnection(0).getRoster().createEntry(getBareJID(3), "gato6", null); - Thread.sleep(300); - - } catch (Exception e) { - fail(e.getMessage()); - } - } - - protected int getMaxConnections() { - return 4; - } - -} diff --git a/CopyOftrunk/test/org/jivesoftware/smackx/packet/XHTMLExtensionTest.java b/CopyOftrunk/test/org/jivesoftware/smackx/packet/XHTMLExtensionTest.java deleted file mode 100644 index b44e60d4d..000000000 --- a/CopyOftrunk/test/org/jivesoftware/smackx/packet/XHTMLExtensionTest.java +++ /dev/null @@ -1,259 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright (C) 2002-2003 Jive Software. All rights reserved. - * ==================================================================== - * The Jive Software License (based on Apache Software License, Version 1.1) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by - * Jive Software (http://www.jivesoftware.com)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Smack" and "Jive Software" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please - * contact webmaster@jivesoftware.com. - * - * 5. Products derived from this software may not be called "Smack", - * nor may "Smack" appear in their name, without prior written - * permission of Jive Software. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - */ - -package org.jivesoftware.smackx.packet; - -import java.util.*; - -import org.jivesoftware.smack.*; -import org.jivesoftware.smack.filter.*; -import org.jivesoftware.smack.packet.*; -import org.jivesoftware.smack.test.SmackTestCase; - -/** - * Test the XHTML extension using the low level API - * - * @author Gaston Dombiak - */ -public class XHTMLExtensionTest extends SmackTestCase { - - private int bodiesSent; - private int bodiesReceived; - - /** - * Constructor for XHTMLExtensionTest. - * @param name - */ - public XHTMLExtensionTest(String name) { - super(name); - } - - /** - * Low level API test. - * This is a simple test to use with a XMPP client and check if the client receives the message - * 1. User_1 will send a message with formatted text (XHTML) to user_2 - */ - public void testSendSimpleXHTMLMessage() { - // User1 creates a chat with user2 - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("Hey John, this is my new green!!!!"); - // Create a XHTMLExtension Package and add it to the message - XHTMLExtension xhtmlExtension = new XHTMLExtension(); - xhtmlExtension.addBody( - "

    Hey John, this is my new green!!!!

    "); - msg.addExtension(xhtmlExtension); - - // User1 sends the message that contains the XHTML to user2 - try { - chat1.sendMessage(msg); - Thread.sleep(200); - } - catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - } - - /** - * Low level API test. - * 1. User_1 will send a message with XHTML to user_2 - * 2. User_2 will receive the message and iterate over the XHTML bodies to check if everything - * is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendSimpleXHTMLMessageAndDisplayReceivedXHTMLMessage() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a Listener that listens for Messages with the extension - //"http://jabber.org/protocol/xhtml-im" - // This listener will listen on the conn2 and answer an ACK if everything is ok - PacketFilter packetFilter = - new PacketExtensionFilter("html", "http://jabber.org/protocol/xhtml-im"); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - Message message = (Message) packet; - assertNotNull("Body is null", message.getBody()); - try { - XHTMLExtension xhtmlExtension = - (XHTMLExtension) message.getExtension( - "html", - "http://jabber.org/protocol/xhtml-im"); - assertNotNull( - "Message without extension \"http://jabber.org/protocol/xhtml-im\"", - xhtmlExtension); - assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0); - for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) { - String body = (String) it.next(); - System.out.println(body); - } - } - catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - try { - chat2.sendMessage("ok"); - } - catch (Exception e) { - fail("An error occured sending ack " + e.getMessage()); - } - } - }; - getConnection(1).addPacketListener(packetListener, packetFilter); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody("Hey John, this is my new green!!!!"); - // Create a XHTMLExtension Package and add it to the message - XHTMLExtension xhtmlExtension = new XHTMLExtension(); - xhtmlExtension.addBody( - "

    Hey John, this is my new green!!!!

    "); - msg.addExtension(xhtmlExtension); - - // User1 sends the message that contains the XHTML to user2 - try { - chat1.sendMessage(msg); - } - catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - // Wait for 2 seconds for a reply - msg = chat1.nextMessage(1000); - assertNotNull("No reply received", msg); - } - - /** - * Low level API test. Test a message with two XHTML bodies and several XHTML tags. - * 1. User_1 will send a message with XHTML to user_2 - * 2. User_2 will receive the message and iterate over the XHTML bodies to check if everything - * is fine - * 3. User_1 will wait several seconds for an ACK from user_2, if none is received then - * something is wrong - */ - public void testSendComplexXHTMLMessageAndDisplayReceivedXHTMLMessage() { - // Create a chat for each connection - Chat chat1 = getConnection(0).createChat(getBareJID(1)); - final Chat chat2 = new Chat(getConnection(1), getBareJID(0), chat1.getThreadID()); - - // Create a Listener that listens for Messages with the extension - //"http://jabber.org/protocol/xhtml-im" - // This listener will listen on the conn2 and answer an ACK if everything is ok - PacketFilter packetFilter = - new PacketExtensionFilter("html", "http://jabber.org/protocol/xhtml-im"); - PacketListener packetListener = new PacketListener() { - public void processPacket(Packet packet) { - int received = 0; - Message message = (Message) packet; - assertNotNull("Body is null", message.getBody()); - try { - XHTMLExtension xhtmlExtension = - (XHTMLExtension) message.getExtension( - "html", - "http://jabber.org/protocol/xhtml-im"); - assertNotNull( - "Message without extension \"http://jabber.org/protocol/xhtml-im\"", - xhtmlExtension); - assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0); - for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) { - received++; - System.out.println((String) it.next()); - } - bodiesReceived = received; - } - catch (ClassCastException e) { - fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); - } - } - }; - getConnection(1).addPacketListener(packetListener, packetFilter); - - // User1 creates a message to send to user2 - Message msg = chat1.createMessage(); - msg.setSubject("Any subject you want"); - msg.setBody( - "awesome! As Emerson once said: A foolish consistency is the hobgoblin of little minds."); - // Create an XHTMLExtension and add it to the message - XHTMLExtension xhtmlExtension = new XHTMLExtension(); - xhtmlExtension.addBody( - "

    impresionante!

    Como Emerson dijo una vez:

    Una consistencia ridícula es el espantajo de mentes pequeñas.

    "); - xhtmlExtension.addBody( - "

    awesome!

    As Emerson once said:

    A foolish consistency is the hobgoblin of little minds.

    "); - msg.addExtension(xhtmlExtension); - - // User1 sends the message that contains the XHTML to user2 - try { - bodiesSent = xhtmlExtension.getBodiesCount(); - bodiesReceived = 0; - chat1.sendMessage(msg); - Thread.sleep(300); - } - catch (Exception e) { - fail("An error occured sending the message with XHTML"); - } - // Wait half second so that the complete test can run - assertEquals( - "Number of sent and received XHTMP bodies does not match", - bodiesSent, - bodiesReceived); - } - - protected int getMaxConnections() { - return 2; - } - -}