From 4133eb175cf1d95b52aee7c539eb792d0e962b75 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 6 May 2019 22:06:13 +0200 Subject: [PATCH] Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3 Introducing Smack's own XmlPullParser interface which tries to stay as compatible as possible to XPP3. The interface is used to either wrap StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's XmlPullParser if Smack is used on on Android. Fixes SMACK-591. Also introduce JUnit 5 and non-strict javadoc projects. --- build.gradle | 57 ++- documentation/developer/provider.md | 9 +- documentation/providers.md | 27 +- resources/releasedocs/README.html | 12 +- settings.gradle | 5 +- smack-android/build.gradle | 1 + .../smack/bosh/XMPPBOSHConnection.java | 19 +- smack-core/build.gradle | 12 +- .../smack/packet/PrivacyProviderTest.java | 6 +- .../smack/test/SmackTestCase.java | 10 +- .../smack/util/XMPPErrorTest.java | 6 +- .../smack/AbstractXMPPConnection.java | 10 +- .../smack/SmackConfiguration.java | 2 + .../smack/SmackInitialization.java | 22 +- .../compress/provider/CompressedProvider.java | 2 +- .../compress/provider/FailureProvider.java | 11 +- .../AbstractXmppStateMachineConnection.java | 11 +- .../smack/packet/XmlEnvironment.java | 2 +- .../StandardExtensionElementProvider.java | 19 +- .../smack/provider/BindIQProvider.java | 13 +- .../smack/provider/BodyElementProvider.java | 4 +- .../provider/EmbeddedExtensionProvider.java | 10 +- .../smack/provider/IntrospectionProvider.java | 13 +- .../jivesoftware/smack/provider/Provider.java | 4 +- .../smack/provider/ProviderFileLoader.java | 15 +- .../smack/provider/TlsFailureProvider.java | 2 +- .../smack/provider/TlsProceedProvider.java | 2 +- .../smack/util/PacketParserUtils.java | 399 ++++++++---------- .../jivesoftware/smack/util/ParserUtils.java | 12 +- .../provider/FailureProviderTest.java | 4 +- .../smack/packet/StreamErrorTest.java | 78 ++-- .../smack/parsing/ParsingExceptionTest.java | 6 +- .../smack/provider/ProviderConfigTest.java | 2 +- .../smack/provider/ProviderManagerTest.java | 2 +- .../smack/sasl/DigestMd5SaslTest.java | 6 +- .../smack/test/util/SmackTestUtil.java | 165 ++++++++ .../smack/test/util/TestUtils.java | 32 +- .../smack/util/PacketParserUtilsTest.java | 58 ++- .../smack/xml/XmlPullParserTest.java | 231 ++++++++++ .../provider/CarbonManagerProvider.java | 11 +- .../chat_markers/ChatMarkersManager.java | 1 + .../element/ChatMarkersElements.java | 1 + .../filter/ChatMarkersFilter.java | 1 + .../filter/EligibleForChatMarkerFilter.java | 1 + .../provider/AcknowledgedProvider.java | 3 +- .../provider/DisplayedProvider.java | 3 +- .../provider/MarkableProvider.java | 3 +- .../provider/ReceivedProvider.java | 3 +- .../ClientStateIndicationFeatureProvider.java | 5 +- .../smackx/dox/DnsOverXmppManager.java | 1 + .../smackx/dox/provider/DnsIqProvider.java | 6 +- .../ExplicitMessageEncryptionProvider.java | 3 +- .../hashes/provider/HashElementProvider.java | 9 +- .../MessageProcessingHintProvider.java | 3 +- .../AbstractHttpOverXmppProvider.java | 45 +- .../provider/Base64BinaryChunkProvider.java | 11 +- .../provider/HttpOverXmppReqProvider.java | 5 +- .../provider/HttpOverXmppRespProvider.java | 6 +- .../provider/FileTooLargeErrorProvider.java | 14 +- .../httpfileupload/provider/SlotProvider.java | 23 +- .../provider/IoTSetRequestProvider.java | 14 +- .../provider/IoTSetResponseProvider.java | 3 +- .../IoTDataReadOutAcceptedProvider.java | 3 +- .../data/provider/IoTDataRequestProvider.java | 3 +- .../provider/IoTFieldsExtensionProvider.java | 31 +- .../provider/IoTClaimedProvider.java | 2 +- .../discovery/provider/IoTDisownProvider.java | 2 +- .../provider/IoTDisownedProvider.java | 3 +- .../provider/IoTRegisterProvider.java | 9 +- .../discovery/provider/IoTRemoveProvider.java | 2 +- .../provider/IoTRemovedProvider.java | 3 +- .../provider/IoTUnregisterProvider.java | 3 +- .../smackx/iot/parser/NodeInfoParser.java | 4 +- .../provider/ClearCacheProvider.java | 3 +- .../provider/ClearCacheResponseProvider.java | 3 +- .../provisioning/provider/FriendProvider.java | 2 +- .../provider/IoTIsFriendProvider.java | 2 +- .../provider/IoTIsFriendResponseProvider.java | 2 +- .../provider/UnfriendProvider.java | 2 +- .../jingle_filetransfer/element/Checksum.java | 1 + .../element/JingleFileTransferChild.java | 1 + .../jingle_filetransfer/element/Range.java | 16 +- .../provider/ChecksumProvider.java | 18 +- .../provider/JingleFileTransferProvider.java | 92 ++-- .../AbstractJsonExtensionProvider.java | 5 +- .../smackx/mam/provider/MamFinIQProvider.java | 14 +- .../mam/provider/MamPrefsIQProvider.java | 22 +- .../mam/provider/MamQueryIQProvider.java | 14 +- .../mam/provider/MamResultProvider.java | 14 +- .../provider/MarkupElementProvider.java | 19 +- .../MUCLightAffiliationsChangeProvider.java | 10 +- .../MUCLightAffiliationsIQProvider.java | 10 +- .../provider/MUCLightBlockingIQProvider.java | 10 +- .../MUCLightConfigurationIQProvider.java | 11 +- .../MUCLightConfigurationsChangeProvider.java | 11 +- .../provider/MUCLightInfoIQProvider.java | 20 +- .../provider/RemoteDisablingProvider.java | 10 +- .../smackx/reference/ReferenceManager.java | 1 + .../reference/element/ReferenceElement.java | 1 + .../reference/provider/ReferenceProvider.java | 12 +- .../sid/StableUniqueStanzaIdManager.java | 1 + .../smackx/sid/element/OriginIdElement.java | 1 + .../smackx/sid/element/StanzaIdElement.java | 1 + .../smackx/sid/provider/OriginIdProvider.java | 4 +- .../smackx/sid/provider/StanzaIdProvider.java | 4 +- .../smackx/spoiler/SpoilerManager.java | 1 + .../spoiler/element/SpoilerElement.java | 1 + .../spoiler/provider/SpoilerProvider.java | 18 +- .../smackx/ExperimentalInitializerTest.java | 4 +- .../smackx/carbons/CarbonTest.java | 28 +- .../AcknowledgedExtensionTest.java | 13 +- .../chat_markers/DisplayedExtensionTest.java | 13 +- .../chat_markers/MarkableExtensionTest.java | 13 +- .../chat_markers/ReceivedExtensionTest.java | 13 +- .../smackx/colors/ConsistentColorsTest.java | 2 +- .../ExplicitMessageEncryptionElementTest.java | 3 +- ...ExplicitMessageEncryptionProviderTest.java | 29 +- .../smackx/hashes/HashElementTest.java | 4 +- .../jivesoftware/smackx/hashes/HashTest.java | 2 +- .../AbstractHttpOverXmppProviderTest.java | 60 ++- .../Base64BinaryChunkProviderTest.java | 10 +- .../provider/HttpOverXmppReqProviderTest.java | 8 +- .../HttpOverXmppRespProviderTest.java | 10 +- .../FileTooLargeErrorCreateTest.java | 9 +- .../smackx/httpfileupload/SlotCreateTest.java | 8 +- .../httpfileupload/SlotRequestCreateTest.java | 27 +- .../FileTooLargeErrorProviderTest.java | 9 +- .../provider/SlotProviderTest.java | 4 +- .../jivesoftware/smackx/mam/FiltersTest.java | 4 +- .../smackx/mam/MamFinProviderTest.java | 32 +- .../smackx/mam/MamPrefIQProviderTest.java | 32 +- .../smackx/mam/MamQueryIQProviderTest.java | 39 +- .../smackx/mam/MamResultProviderTest.java | 31 +- .../org/jivesoftware/smackx/mam/MamTest.java | 12 +- .../jivesoftware/smackx/mam/PagingTest.java | 11 +- .../smackx/mam/PreferencesTest.java | 9 +- .../smackx/mam/QueryArchiveTest.java | 21 +- .../smackx/mam/ResultsLimitTest.java | 10 +- .../smackx/mam/RetrieveFormFieldsTest.java | 4 +- .../message_markup/MessageMarkupTest.java | 21 +- ...CLightAffiliationsChangeExtensionTest.java | 31 +- .../smackx/muclight/MUCLightBlockingTest.java | 23 +- .../MUCLightChangeAffiliationsIQTest.java | 15 +- ...ightConfigurationsChangeExtensionTest.java | 42 +- .../smackx/muclight/MUCLightCreateIQTest.java | 11 +- .../smackx/muclight/MUCLightDestroyTest.java | 7 +- .../muclight/MUCLightGetAffiliationsTest.java | 17 +- .../muclight/MUCLightGetConfigsTest.java | 26 +- .../smackx/muclight/MUCLightInfoTest.java | 21 +- .../muclight/MUCLightSetConfigsIQTest.java | 11 +- .../DisablePushNotificationsIQTest.java | 9 +- .../EnablePushNotificationsIQTest.java | 9 +- .../RemoteDisablingPushNotificationsTest.java | 16 +- .../smackx/reference/ReferenceTest.java | 24 +- .../smackx/sid/StableUniqueStanzaIdTest.java | 3 +- .../smackx/spoiler/SpoilerTest.java | 18 +- .../smackx/pubsub/CarExtensionProvider.java | 6 +- .../provider/MultipleAddressesProvider.java | 13 +- .../amp/provider/AMPExtensionProvider.java | 11 +- .../attention/packet/AttentionExtension.java | 3 +- .../provider/BlockContactsIQProvider.java | 15 +- .../provider/BlockListIQProvider.java | 15 +- .../BlockedErrorExtensionProvider.java | 3 +- .../provider/UnblockContactsIQProvider.java | 15 +- .../smackx/bob/provider/BoBIQProvider.java | 7 +- .../smackx/bookmarks/Bookmarks.java | 28 +- .../ibb/provider/CloseIQProvider.java | 3 +- .../ibb/provider/DataPacketProvider.java | 6 +- .../ibb/provider/OpenIQProvider.java | 5 +- .../bytestreams/socks5/Socks5Client.java | 1 + .../socks5/provider/BytestreamsProvider.java | 10 +- .../caps/provider/CapsExtensionProvider.java | 9 +- .../smackx/chatstates/ChatStateManager.java | 1 + .../provider/ChatStateExtensionProvider.java | 3 +- .../provider/AdHocCommandDataProvider.java | 11 +- .../AbstractDelayInformationProvider.java | 33 +- .../disco/provider/DiscoverInfoProvider.java | 11 +- .../disco/provider/DiscoverItemsProvider.java | 12 +- .../Socks5TransferNegotiator.java | 1 + .../forward/provider/ForwardedProvider.java | 14 +- .../geoloc/provider/GeoLocationProvider.java | 15 +- .../smackx/iqlast/packet/LastActivity.java | 4 +- .../smackx/iqprivate/PrivateDataManager.java | 33 +- .../provider/PrivateDataProvider.java | 6 +- .../provider/RegistrationProvider.java | 13 +- .../RegistrationStreamFeatureProvider.java | 3 +- .../iqversion/provider/VersionProvider.java | 15 +- .../smackx/jingle/JingleHandler.java | 1 + .../smackx/jingle/JingleManager.java | 1 + .../smackx/jingle/JingleSession.java | 1 + .../smackx/jingle/JingleSessionHandler.java | 1 + .../jingle/JingleTransportMethodManager.java | 1 + .../smackx/jingle/JingleUtil.java | 1 + .../JingleContentDescriptionProvider.java | 5 +- .../JingleContentTransportProvider.java | 5 +- .../jingle/provider/JingleErrorProvider.java | 3 +- .../jingle/provider/JingleProvider.java | 24 +- .../transports/JingleTransportManager.java | 1 + .../transports/JingleTransportSession.java | 1 + .../jingle_ibb/JingleIBBTransportManager.java | 1 + .../jingle_ibb/JingleIBBTransportSession.java | 1 + .../provider/JingleIBBTransportProvider.java | 4 +- .../jingle_s5b/JingleS5BTransportManager.java | 1 + .../jingle_s5b/JingleS5BTransportSession.java | 1 + .../elements/JingleS5BTransport.java | 1 + .../elements/JingleS5BTransportCandidate.java | 1 + .../elements/JingleS5BTransportInfo.java | 1 + .../provider/JingleS5BTransportProvider.java | 15 +- .../JivePropertiesExtensionProvider.java | 15 +- .../provider/IdleProvider.java | 3 +- .../provider/MessageCorrectProvider.java | 3 +- .../smackx/mood/MoodListener.java | 1 + .../jivesoftware/smackx/mood/MoodManager.java | 1 + .../smackx/mood/element/MoodElement.java | 1 + .../provider/MoodConcretisationProvider.java | 6 +- .../smackx/mood/provider/MoodProvider.java | 20 +- .../SimpleMoodConcretisationProvider.java | 6 +- .../muc/packet/GroupChatInvitation.java | 5 +- .../smackx/muc/provider/MUCAdminProvider.java | 11 +- .../smackx/muc/provider/MUCOwnerProvider.java | 11 +- .../smackx/muc/provider/MUCParserUtils.java | 22 +- .../smackx/muc/provider/MUCUserProvider.java | 23 +- .../smackx/nick/provider/NickProvider.java | 5 +- .../offline/packet/OfflineMessageInfo.java | 11 +- .../offline/packet/OfflineMessageRequest.java | 15 +- .../smackx/ping/provider/PingProvider.java | 5 +- .../privacy/provider/PrivacyProvider.java | 27 +- .../pubsub/EmbeddedPacketExtension.java | 2 +- .../smackx/pubsub/SimplePayload.java | 5 +- .../pubsub/provider/AffiliationProvider.java | 2 +- .../smackx/pubsub/provider/ItemProvider.java | 9 +- .../pubsub/provider/PubSubProvider.java | 14 +- .../pubsub/provider/SubscriptionProvider.java | 14 +- .../receipts/DeliveryReceiptRequest.java | 5 +- .../smackx/rsm/provider/RSMSetProvider.java | 17 +- .../smackx/search/SimpleUserSearch.java | 15 +- .../smackx/search/UserSearch.java | 22 +- .../sharedgroups/packet/SharedGroupsInfo.java | 11 +- .../smackx/shim/provider/HeaderProvider.java | 9 +- .../si/provider/StreamInitiationProvider.java | 11 +- .../vcardtemp/provider/VCardProvider.java | 52 +-- .../xdata/provider/DataFormProvider.java | 50 ++- .../provider/DataLayoutProvider.java | 19 +- .../provider/DataValidationProvider.java | 14 +- .../provider/XHTMLExtensionProvider.java | 13 +- .../smackx/amp/AMPExtensionTest.java | 16 +- .../smackx/blocking/BlockContactsIQTest.java | 9 +- .../blocking/BlockedErrorExtensionTest.java | 10 +- .../smackx/blocking/GetBlockingListTest.java | 13 +- .../blocking/UnblockContactsIQTest.java | 14 +- .../jivesoftware/smackx/bob/BoBIQTest.java | 17 +- .../ibb/provider/OpenIQProviderTest.java | 2 +- .../provider/CapsExtensionProviderTest.java | 14 +- .../delay/provider/DelayInformationTest.java | 8 +- .../smackx/forward/ForwardedTest.java | 6 +- .../smackx/jingle/JingleContentTest.java | 1 + .../smackx/jingle/JingleErrorTest.java | 1 + .../smackx/jingle/JingleUtilTest.java | 1 + .../JingleContentProviderManagerTest.java | 1 + .../jingle/provider/JingleProviderTest.java | 4 +- .../jingle_s5b/JingleS5BTransportTest.java | 2 +- .../smackx/last_interaction/IdleTest.java | 3 +- .../MessageCorrectExtensionTest.java | 7 +- .../smackx/mood/MoodConcretisationTest.java | 3 +- .../smackx/mood/MoodElementTest.java | 5 +- .../smackx/mood/MoodManagerTest.java | 1 + .../smackx/pubsub/ConfigureFormTest.java | 3 +- .../smackx/pubsub/ItemValidationTest.java | 2 +- .../smackx/pubsub/PubSubNodeTest.java | 2 +- .../pubsub/provider/PubSubProviderTest.java | 2 +- .../smackx/receipts/DeliveryReceiptTest.java | 2 +- .../shim/provider/HeadersProviderTest.java | 2 +- .../smackx/xdata/packet/DataFormTest.java | 2 +- .../xdatalayout/packet/DataLayoutTest.java | 9 +- .../provider/DataValidationTest.java | 17 +- .../provider/XHTMLExtensionProviderTest.java | 10 +- .../roster/provider/RosterPacketProvider.java | 23 +- .../RosterVerStreamFeatureProvider.java | 2 +- ...ptionPreApprovalStreamFeatureProvider.java | 2 +- .../rosterstore/DirectoryRosterStore.java | 4 +- .../jivesoftware/smack/roster/RosterTest.java | 2 +- smack-integration-test/build.gradle | 1 + .../inttest/XmppConnectionDescriptor.java | 7 +- .../smackx/jingleold/nat/RTPBridge.java | 11 +- .../smackx/jingleold/nat/STUN.java | 11 +- .../smackx/jingleold/nat/STUNResolver.java | 16 +- .../jingleold/nat/TransportCandidate.java | 1 + .../smackx/jingleold/packet/JingleError.java | 3 +- .../JingleContentDescriptionProvider.java | 11 +- .../provider/JingleContentInfoProvider.java | 3 +- .../provider/JingleContentProvider.java | 3 +- .../provider/JingleDescriptionProvider.java | 11 +- .../jingleold/provider/JingleProvider.java | 10 +- .../provider/JingleTransportProvider.java | 11 +- .../workgroup/agent/OfferConfirmation.java | 10 +- .../workgroup/ext/forms/WorkgroupForm.java | 11 +- .../ext/history/AgentChatHistory.java | 28 +- .../workgroup/ext/history/ChatMetadata.java | 11 +- .../smackx/workgroup/ext/macros/Macros.java | 36 +- .../smackx/workgroup/ext/notes/ChatNotes.java | 11 +- .../smackx/workgroup/packet/AgentInfo.java | 11 +- .../smackx/workgroup/packet/AgentStatus.java | 10 +- .../workgroup/packet/AgentStatusRequest.java | 16 +- .../workgroup/packet/AgentWorkgroups.java | 10 +- .../workgroup/packet/MetaDataProvider.java | 5 +- .../workgroup/packet/MonitorPacket.java | 11 +- .../workgroup/packet/OccupantsInfo.java | 21 +- .../packet/OfferRequestProvider.java | 12 +- .../workgroup/packet/OfferRevokeProvider.java | 14 +- .../smackx/workgroup/packet/QueueDetails.java | 15 +- .../workgroup/packet/QueueOverview.java | 13 +- .../smackx/workgroup/packet/QueueUpdate.java | 11 +- .../workgroup/packet/RoomInvitation.java | 8 +- .../smackx/workgroup/packet/RoomTransfer.java | 9 +- .../smackx/workgroup/packet/SessionID.java | 5 +- .../workgroup/packet/TranscriptProvider.java | 11 +- .../workgroup/packet/TranscriptSearch.java | 11 +- .../workgroup/packet/TranscriptsProvider.java | 22 +- .../smackx/workgroup/packet/UserID.java | 4 +- .../packet/WorkgroupInformation.java | 4 +- .../workgroup/settings/ChatSettings.java | 23 +- .../workgroup/settings/GenericSettings.java | 11 +- .../workgroup/settings/OfflineSettings.java | 17 +- .../workgroup/settings/SearchSettings.java | 13 +- .../workgroup/settings/SoundSettings.java | 13 +- .../settings/WorkgroupProperties.java | 15 +- .../smackx/workgroup/util/MetaDataUtils.java | 16 +- .../xevent/provider/MessageEventProvider.java | 11 +- .../provider/RosterExchangeProvider.java | 10 +- .../smackx/LegacyInitializerTest.java | 4 +- .../smackx/omemo/FileBasedOmemoStore.java | 1 + .../smackx/omemo/OmemoManager.java | 1 + .../smackx/omemo/OmemoMessage.java | 1 + .../smackx/omemo/OmemoRatchet.java | 2 + .../smackx/omemo/OmemoService.java | 2 + .../jivesoftware/smackx/omemo/OmemoStore.java | 1 + .../omemo/element/OmemoDeviceListElement.java | 1 + .../omemo/internal/CipherAndAuthTag.java | 1 + ...OmemoCarbonCopyStanzaReceivedListener.java | 1 + .../OmemoMessageStanzaReceivedListener.java | 1 + .../omemo/listener/OmemoMessageListener.java | 1 + .../listener/OmemoMucMessageListener.java | 1 + .../provider/OmemoBundleVAxolotlProvider.java | 21 +- .../OmemoDeviceListVAxolotlProvider.java | 16 +- .../omemo/provider/OmemoVAxolotlProvider.java | 17 +- .../omemo/util/MessageOrOmemoMessage.java | 1 + .../omemo/util/OmemoMessageBuilder.java | 2 + .../omemo/OmemoBundleVAxolotlElementTest.java | 3 +- .../OmemoDeviceListVAxolotlElementTest.java | 2 +- .../smackx/omemo/OmemoKeyUtilTest.java | 1 + .../smackx/omemo/OmemoServiceTest.java | 1 + .../omemo/OmemoVAxolotlElementTest.java | 1 + .../smackx/ox/OpenPgpContact.java | 1 + .../smackx/ox/OpenPgpManager.java | 3 +- .../smackx/ox/OpenPgpMessage.java | 3 +- .../ox/crypto/PainlessOpenPgpProvider.java | 1 + .../smackx/ox/element/OpenPgpElement.java | 1 + .../CryptElementReceivedListener.java | 1 + .../listener/SignElementReceivedListener.java | 1 + .../SigncryptElementReceivedListener.java | 1 + .../ox/provider/CryptElementProvider.java | 6 +- .../OpenPgpContentElementProvider.java | 29 +- .../ox/provider/OpenPgpElementProvider.java | 6 +- .../ox/provider/PubkeyElementProvider.java | 12 +- .../PublicKeysListElementProvider.java | 25 +- .../ox/provider/SecretkeyElementProvider.java | 6 +- .../ox/provider/SignElementProvider.java | 6 +- .../ox/provider/SigncryptElementProvider.java | 6 +- .../ox/store/abstr/AbstractOpenPgpStore.java | 1 + .../filebased/FileBasedOpenPgpKeyStore.java | 1 + .../FileBasedOpenPgpMetadataStore.java | 1 + .../filebased/FileBasedOpenPgpStore.java | 1 + .../filebased/FileBasedOpenPgpTrustStore.java | 1 + .../smackx/ox/util/OpenPgpPubSubUtil.java | 1 + .../smackx/ox/util/SecretKeyBackupHelper.java | 1 + .../ox_im/OXInstantMessagingManager.java | 3 +- .../smackx/ox_im/OxMessageListener.java | 1 + .../smackx/ox/OpenPgpElementTest.java | 13 +- .../smackx/ox/OpenPgpStoreTest.java | 12 +- .../ox/PainlessOpenPgpProviderTest.java | 5 +- .../smackx/ox/PubSubDelegateTest.java | 3 +- .../smackx/ox/PubkeyElementTest.java | 5 +- .../smackx/ox/PublicKeysListElementTest.java | 5 +- .../smackx/ox/SecretKeyBackupHelperTest.java | 3 +- .../smackx/ox/SecretkeyElementTest.java | 5 +- .../ox_im/OXInstantMessagingManagerTest.java | 5 +- .../DnsOverXmppMiniDnsResolverTest.java | 8 +- .../smack/sasl/javax/SASLDigestMD5Test.java | 2 +- .../sasl/provided/SASLDigestMD5Test.java | 4 +- .../sm/provider/ParseStreamManagement.java | 14 +- ...StreamManagementStreamFeatureProvider.java | 3 +- .../smack/tcp/XMPPTCPConnection.java | 18 +- .../smack/tcp/XmppNioTcpConnection.java | 4 +- .../provider/ParseStreamManagementTest.java | 41 +- .../smack/tcp/PacketWriterTest.java | 30 +- .../smack/tcp/TcpInitializerTest.java | 4 +- smack-xmlparser-stax/build.gradle | 7 + .../smack/xml/stax/StaxXmlPullParser.java | 301 +++++++++++++ .../xml/stax/StaxXmlPullParserFactory.java | 50 +++ .../smack/xml/stax/package-info.java | 23 + ...ivesoftware.smack.xml.XmlPullParserFactory | 1 + .../smack/xml/stax/StaxParserTest.java | 36 ++ smack-xmlparser-xpp3/build.gradle | 13 + .../smack/xml/xpp3/Xpp3XmlPullParser.java | 302 +++++++++++++ .../xml/xpp3/Xpp3XmlPullParserFactory.java | 86 ++++ .../smack/xml/xpp3/package-info.java | 23 + ...ivesoftware.smack.xml.XmlPullParserFactory | 1 + .../smack/xml/xpp3/Xpp3ParserTest.java | 36 ++ smack-xmlparser/build.gradle | 2 + .../smack/xml/SmackXmlParser.java | 57 +++ .../jivesoftware/smack/xml/XmlPullParser.java | 169 ++++++++ .../smack/xml/XmlPullParserException.java | 30 ++ .../smack/xml/XmlPullParserFactory.java | 25 ++ .../jivesoftware/smack/xml/package-info.java | 21 + 414 files changed, 3855 insertions(+), 2041 deletions(-) create mode 100644 smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java create mode 100644 smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java create mode 100644 smack-xmlparser-stax/build.gradle create mode 100644 smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java create mode 100644 smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java create mode 100644 smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java create mode 100644 smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory create mode 100644 smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java create mode 100644 smack-xmlparser-xpp3/build.gradle create mode 100644 smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java create mode 100644 smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java create mode 100644 smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java create mode 100644 smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory create mode 100644 smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java create mode 100644 smack-xmlparser/build.gradle create mode 100644 smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java create mode 100644 smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java create mode 100644 smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java create mode 100644 smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java create mode 100644 smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java diff --git a/build.gradle b/build.gradle index 5c997dcbb..4b01e13e4 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ apply from: 'version.gradle' allprojects { apply plugin: 'java' + apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'jacoco' @@ -80,6 +81,8 @@ allprojects { ':smack-omemo', ':smack-omemo-signal', ':smack-openpgp', + ':smack-xmlparser', + ':smack-xmlparser-xpp3', ].collect{ project(it) } androidBootClasspathProjects = [ ':smack-android', @@ -97,13 +100,37 @@ allprojects { ':smack-omemo-signal', ':smack-omemo-signal-integration-test', ].collect{ project(it) } + // When this list is empty, then move the according javadoc + // tool Werror option into the global configure section. + nonStrictJavadocProjects = [ + ':smack-bosh', + ':smack-core', + ':smack-experimental', + ':smack-extensions', + ':smack-im', + ':smack-integration-test', + ':smack-jingle-old', + ':smack-legacy', + ':smack-omemo', + ':smack-tcp', + ].collect{ project(it) } // Lazily evaluate the Android bootClasspath and offline // Javadoc using a closure, so that targets which do not // require it are still able to succeed without an Android // SDK. androidBootClasspath = { getAndroidRuntimeJar() } androidJavadocOffline = { getAndroidJavadocOffline() } - junitVersion = '5.2.0' + junit4Projects = [ + ':smack-core', + ':smack-extensions', + ':smack-im', + ':smack-integration-test', + ':smack-omemo', + ':smack-omemo-signal', + ':smack-openpgp', + ].collect { project(it) } + junitVersion = '5.4.2' + powerMockVersion = '1.7.3' } group = 'org.igniterealtime.smack' sourceCompatibility = JavaVersion.VERSION_1_8 @@ -114,6 +141,12 @@ allprojects { } test { + useJUnitPlatform() + + // Enable once the tests are fixed that sometimes break if + // they are executed in parallel (.e.g Socks5) + // maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 + // Enable full stacktraces of failed tests. Especially handy // for environments like Travis. testLogging { @@ -232,6 +265,10 @@ allprojects { } dependencies { + testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + errorprone 'com.google.errorprone:error_prone_core:2.3.2' errorproneJavac('com.google.errorprone:javac:9+181-r4173-1') } @@ -241,6 +278,15 @@ allprojects { test { dependsOn javadoc } } +configure (junit4Projects) { + dependencies { + testImplementation "org.junit.vintage:junit-vintage-engine:$junitVersion" + testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" + testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" + testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" + } +} + gradle.taskGraph.whenReady { taskGraph -> if (signingRequired && taskGraph.allTasks.any { it instanceof Sign }) { @@ -532,6 +578,15 @@ subprojects*.jar { } } +configure(subprojects - nonStrictJavadocProjects) { + tasks.withType(Javadoc) { + // Abort on javadoc warnings. + // See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363) + // for information about the -Xwerror option. + options.addStringOption('Xwerror', '-quiet') + } +} + configure(subprojects - gplLicensedProjects) { checkstyle { configProperties.checkstyleLicenseHeader = "header" diff --git a/documentation/developer/provider.md b/documentation/developer/provider.md index cd5255af5..465caeb32 100644 --- a/documentation/developer/provider.md +++ b/documentation/developer/provider.md @@ -27,11 +27,11 @@ public MyExtension parse(XmlPullParser parser, int initialDepth) { outerloop: while(true) { // Make sure to have already parse all attributes of the outermost element, // i.e. 'attrFoo' of 'myExtension' in this example. Then advance the parser - int event = parser.next(); + XmlPullParser.Event event = parser.next(); // Use switch/case of int instead of a if/else-if cascade switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: // Determine the name of the element which start tag we are seeing String name = parser.getName(); // We can use switch/case of Strings since Java7, make use of its advantages @@ -52,12 +52,15 @@ public MyExtension parse(XmlPullParser parser, int initialDepth) { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: // The abort condition with the break labeled loop statement if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/documentation/providers.md b/documentation/providers.md index 00457d5d9..f5e57e705 100644 --- a/documentation/providers.md +++ b/documentation/providers.md @@ -23,7 +23,7 @@ Whenever a packet extension is found in a packet, parsing will be passed to the correct provider. Each provider must extend the ExtensionElementProvider abstract class. Each extension provider is responsible for parsing the raw XML stream, via the -[XML Pull Parser](http://www.xmlpull.org/), to contruct an object. +Smack's `XmlPullParser` interface, to construct an object. You can also create an introspection provider (`provider.IntrospectionProvider.PacketExtensionIntrospectionProvider`). Here, @@ -161,9 +161,9 @@ public class MyIQProvider extends IQProvider { // Start parsing loop outerloop: while(true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch(eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "user": @@ -175,12 +175,15 @@ public class MyIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: // Abort condition: if the are on a end tag (closing element) of the same depth if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -225,9 +228,9 @@ _Disco Items IQProvider_ String node = ""; discoverItems.setNode(parser.getAttributeValue("", "node")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "item": @@ -239,7 +242,7 @@ _Disco Items IQProvider_ break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "item": @@ -295,17 +298,17 @@ _Subscription PacketExtensionProvider Implementation_ String state = parser.getAttributeValue(null, "subscription"); boolean isRequired = false; - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("subscribe-options")) { + if ((tag == XmlPullParser.START_ELEMENT) && parser.getName().equals("subscribe-options")) { tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("required")) + if ((tag == XmlPullParser.START_ELEMENT) && parser.getName().equals("required")) isRequired = true; - while (parser.next() != XmlPullParser.END_TAG && parser.getName() != "subscribe-options"); + while (parser.next() != XmlPullParser.END_ELEMENT && parser.getName() != "subscribe-options"); } - while (parser.getEventType() != XmlPullParser.END_TAG) parser.next(); + while (parser.getEventType() != XmlPullParser.END_ELEMENT) parser.next(); return new Subscription(jid, nodeId, subId, state == null ? null : Subscription.State.valueOf(state), isRequired); } } diff --git a/resources/releasedocs/README.html b/resources/releasedocs/README.html index 195858a8f..d25eaf624 100644 --- a/resources/releasedocs/README.html +++ b/resources/releasedocs/README.html @@ -169,14 +169,10 @@ recommended when using Smack.

-If you dont' use a -dependency resolution system, like gradle or maven, then you will need -to download at least -the Xml -Pull Parser 3rd Edition (XPP3) library or any other library that -implements the XmlPullParser interface -(like kXML) and the set of -jXMPP libraries. + Smack tries to depend on as few as possible libraries. The only + requirement is jXMPP. For DNS + resolution we recommend to + use MiniDNS.

diff --git a/settings.gradle b/settings.gradle index 6188d60b6..d3b53d80e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,4 +28,7 @@ include 'smack-core', 'smack-omemo-signal', 'smack-omemo-signal-integration-test', 'smack-repl', - 'smack-openpgp' + 'smack-openpgp', + 'smack-xmlparser', + 'smack-xmlparser-stax', + 'smack-xmlparser-xpp3' diff --git a/smack-android/build.gradle b/smack-android/build.gradle index 63fa35d2f..46827c09f 100644 --- a/smack-android/build.gradle +++ b/smack-android/build.gradle @@ -7,6 +7,7 @@ smack-extensions and smack-experimental.""" // Note that the test dependencies (junit, …) are inferred from the // sourceSet.test of the core subproject dependencies { + api project(':smack-xmlparser-xpp3') // Depend on minidns-android21 as optional dependency, even if may // not need it. Can't hurt to have it in the programm path with // the correct MiniDNS version as it won't hurt even if the diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java index 7e1d97122..592e0633c 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java @@ -20,7 +20,6 @@ package org.jivesoftware.smack.bosh; import java.io.IOException; import java.io.PipedReader; import java.io.PipedWriter; -import java.io.StringReader; import java.io.Writer; import java.util.Map; import java.util.logging.Level; @@ -44,6 +43,7 @@ import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.igniterealtime.jbosh.AbstractBody; import org.igniterealtime.jbosh.BOSHClient; @@ -56,11 +56,8 @@ import org.igniterealtime.jbosh.BOSHException; import org.igniterealtime.jbosh.BOSHMessageEvent; import org.igniterealtime.jbosh.BodyQName; import org.igniterealtime.jbosh.ComposableBody; - import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; /** * Creates a connection to an XMPP server via HTTP binding. @@ -479,14 +476,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { if (streamId == null) { streamId = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "authid")); } - final XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(new StringReader(body.toXML())); - int eventType = parser.getEventType(); + final XmlPullParser parser = PacketParserUtils.getParserFor(body.toXML()); + + XmlPullParser.Event eventType = parser.getEventType(); do { eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case Message.ELEMENT: @@ -528,9 +524,12 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { } } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); } catch (Exception e) { if (isConnected()) { diff --git a/smack-core/build.gradle b/smack-core/build.gradle index 69ee5d468..c2ce38504 100644 --- a/smack-core/build.gradle +++ b/smack-core/build.gradle @@ -2,23 +2,19 @@ description = """\ Smack core components.""" ext { - xmlUnitVersion = "2.6.0" - powerMockVersion = "1.7.3" + xmlUnitVersion = '2.6.2' } dependencies { - compile 'xpp3:xpp3:1.1.4c' + compile project(':smack-xmlparser') compile "org.jxmpp:jxmpp-core:$jxmppVersion" compile "org.jxmpp:jxmpp-jid:$jxmppVersion" compile "org.minidns:minidns-core:$miniDnsVersion" + testCompile project(':smack-xmlparser-stax') + testCompile project(':smack-xmlparser-xpp3') testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" - testCompile "org.junit.jupiter:junit-jupiter-api:$junitVersion" - testCompile "org.junit.vintage:junit-vintage-engine:$junitVersion" testCompile "org.xmlunit:xmlunit-core:$xmlUnitVersion" testCompile "org.xmlunit:xmlunit-legacy:$xmlUnitVersion" - testCompile "org.powermock:powermock-module-junit4:$powerMockVersion" - testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion" - testCompile "org.powermock:powermock-api-mockito2:$powerMockVersion" testCompile 'com.jamesmurty.utils:java-xmlbuilder:1.2' } diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java index e9261f516..ef7d5ee85 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java @@ -16,9 +16,9 @@ package org.jivesoftware.smack.packet; import org.jivesoftware.smack.provider.PrivacyProvider; import org.jivesoftware.smack.test.SmackTestCase; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import java.io.StringReader; diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java index e44c6e15a..9bceba3f7 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java @@ -32,8 +32,8 @@ import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.TCPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.util.ConnectionUtils; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; /** * Base class for all the test cases which provides a pre-configured execution context. This @@ -414,9 +414,9 @@ public abstract class SmackTestCase extends TestCase { XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); parser.setInput(systemStream, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == START_ELEMENT) { if (parser.getName().equals("host")) { host = parser.nextText(); } @@ -459,7 +459,7 @@ public abstract class SmackTestCase extends TestCase { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != END_DOCUMENT); parsedOK = true; } catch (Exception e) { diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java index a375e0d81..8d2a0df4f 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java @@ -20,9 +20,9 @@ import java.io.StringReader; import org.jivesoftware.smack.packet.XMPPError; import org.jivesoftware.smack.test.SmackTestCase; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class XMPPErrorTest extends SmackTestCase { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index e82ad15aa..632855ac2 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -121,6 +121,8 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.dns.HostAddress; import org.jivesoftware.smack.util.dns.SmackDaneProvider; import org.jivesoftware.smack.util.dns.SmackDaneVerifier; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.EntityFullJid; @@ -130,8 +132,6 @@ import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.util.XmppStringUtils; import org.minidns.dnsname.DnsName; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** @@ -1614,9 +1614,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { streamFeatures.clear(); final int initialDepth = parser.getDepth(); while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getDepth() == initialDepth + 1) { + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getDepth() == initialDepth + 1) { FullyQualifiedElement streamFeature = null; String name = parser.getName(); String namespace = parser.getNamespace(); @@ -1647,7 +1647,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { addStreamFeature(streamFeature); } } - else if (eventType == XmlPullParser.END_TAG && parser.getDepth() == initialDepth) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) { break; } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java index 10695df47..6f06e4d33 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java @@ -29,6 +29,7 @@ import javax.net.ssl.HostnameVerifier; import org.jivesoftware.smack.compression.XMPPInputOutputStream; import org.jivesoftware.smack.debugger.ReflectionDebuggerFactory; import org.jivesoftware.smack.debugger.SmackDebuggerFactory; +import org.jivesoftware.smack.parsing.ExceptionThrowingCallback; import org.jivesoftware.smack.parsing.ExceptionThrowingCallbackWithHint; import org.jivesoftware.smack.parsing.ParsingExceptionCallback; import org.jivesoftware.smack.util.Objects; @@ -380,4 +381,5 @@ public final class SmackConfiguration { public static int getDefaultConcurrencyLevelLimit() { return defaultConcurrencyLevelLimit; } + } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java index 701004696..56ce677ce 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java @@ -44,10 +44,10 @@ import org.jivesoftware.smack.sasl.core.SCRAMSHA1Mechanism; import org.jivesoftware.smack.sasl.core.ScramSha1PlusMechanism; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; +import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; public final class SmackInitialization { @@ -141,12 +141,10 @@ public final class SmackInitialization { public static void processConfigFile(InputStream cfgFileStream, Collection exceptions, ClassLoader classLoader) throws Exception { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(cfgFileStream, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser parser = PacketParserUtils.getParserFor(cfgFileStream); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("startupClasses")) { parseClassesToLoad(parser, false, exceptions, classLoader); } @@ -156,7 +154,7 @@ public final class SmackInitialization { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); CloseableUtil.maybeClose(cfgFileStream, LOGGER); } @@ -164,12 +162,10 @@ public final class SmackInitialization { Collection exceptions, ClassLoader classLoader) throws Exception { final String startName = parser.getName(); - int eventType; - String name; + XmlPullParser.Event eventType; outerloop: do { eventType = parser.next(); - name = parser.getName(); - if (eventType == XmlPullParser.START_TAG && "className".equals(name)) { + if (eventType == XmlPullParser.Event.START_ELEMENT && "className".equals(parser.getName())) { String classToLoad = parser.nextText(); if (SmackConfiguration.isDisabledSmackClass(classToLoad)) { continue outerloop; @@ -188,7 +184,7 @@ public final class SmackInitialization { } } } - while (!(eventType == XmlPullParser.END_TAG && startName.equals(name))); + while (!(eventType == XmlPullParser.Event.END_ELEMENT && startName.equals(parser.getName()))); } private static void loadSmackClass(String className, boolean optional, ClassLoader classLoader) throws Exception { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java index 8b02ef95b..fbed9abd3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.compress.packet.Compressed; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.NonzaProvider; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class CompressedProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java index eaa9a980d..cf90f594b 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java @@ -27,8 +27,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.NonzaProvider; import org.jivesoftware.smack.util.PacketParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public final class FailureProvider extends NonzaProvider { @@ -46,9 +46,9 @@ public final class FailureProvider extends NonzaProvider { XmlEnvironment failureXmlEnvironment = XmlEnvironment.from(parser, xmlEnvironment); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -72,11 +72,12 @@ public final class FailureProvider extends NonzaProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: // fall out } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java index 99c8ac6b6..3330202d3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java @@ -57,10 +57,10 @@ import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Challenge; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPConnection { @@ -310,10 +310,10 @@ public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPCon // Skip the enclosing stream open what is guaranteed to be there. parser.next(); - int event = parser.getEventType(); + XmlPullParser.Event event = parser.getEventType(); outerloop: while (true) { switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); // Note that we don't handle "stream" here as it's done in the splitter. switch (name) { @@ -353,8 +353,9 @@ public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPCon break; } break; - case XmlPullParser.END_DOCUMENT: + case END_DOCUMENT: break outerloop; + default: // fall out } event = parser.next(); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java index da69cb240..0e713a04c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.packet; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class XmlEnvironment { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java index 4b9f77acf..cceaf4216 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2015 Florian Schmaus. + * Copyright 2015-2019 Florian Schmaus. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,8 +26,8 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * The parser for {@link StandardExtensionElement}s. @@ -47,7 +47,7 @@ public class StandardExtensionElementProvider extends ExtensionElementProvider attributes = new LinkedHashMap<>(namespaceCount + attributeCount); for (int i = 0; i < namespaceCount; i++) { @@ -77,19 +77,22 @@ public class StandardExtensionElementProvider extends ExtensionElementProvider { @@ -34,9 +34,9 @@ public class BindIQProvider extends IQProvider { String name; Bind bind = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "resource": @@ -49,11 +49,14 @@ public class BindIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return bind; diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java index ad6cefdaf..df85d067c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java @@ -24,8 +24,8 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class BodyElementProvider extends ExtensionElementProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java index 6226d5d3d..f572d876d 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java @@ -27,8 +27,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.PacketParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * @@ -97,14 +97,14 @@ public abstract class EmbeddedExtensionProvider ext } List extensions = new ArrayList<>(); - int event; + XmlPullParser.Event event; do { event = parser.next(); - if (event == XmlPullParser.START_TAG) + if (event == XmlPullParser.Event.START_ELEMENT) PacketParserUtils.addExtensionElement(extensions, parser, xmlEnvironment); } - while (!(event == XmlPullParser.END_TAG && parser.getDepth() == initialDepth)); + while (!(event == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth)); return createReturnExtension(name, namespace, attMap, extensions); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java index 3c952bbf6..a4c58f406 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java @@ -24,8 +24,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class IntrospectionProvider{ @@ -81,9 +81,9 @@ public class IntrospectionProvider{ ParserUtils.assertAtStartTag(parser); Object object = objectClass.getConstructor().newInstance(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String stringValue = parser.nextText(); Class propertyType = object.getClass().getMethod( @@ -97,11 +97,14 @@ public class IntrospectionProvider{ propertyType).invoke(object, value); break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java index 46205fd6a..ef1a225d9 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java @@ -26,8 +26,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Smack provider are the parsers used to deserialize raw XMPP into the according Java {@link Element}s. diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java index c8b879306..e39f81d26 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java @@ -26,9 +26,8 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.IQ; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; +import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; /** * Loads the {@link IQProvider} and {@link ExtensionElementProvider} information from a standard provider file in preparation @@ -54,12 +53,10 @@ public class ProviderFileLoader implements ProviderLoader { public ProviderFileLoader(InputStream providerStream, ClassLoader classLoader) { // Load processing providers. try (InputStream is = providerStream) { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(is, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser parser = PacketParserUtils.getParserFor(is); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { final String typeName = parser.getName(); try { @@ -134,7 +131,7 @@ public class ProviderFileLoader implements ProviderLoader { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Unknown error occurred while parsing provider file", e); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java index 6211e6cc0..2509d89c8 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.provider; import org.jivesoftware.smack.packet.TlsProceed; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class TlsFailureProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java index 3be9f904f..f8e8b1158 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.provider; import org.jivesoftware.smack.packet.TlsFailure; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class TlsProceedProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java index dd065fe92..13ce501fb 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java @@ -17,18 +17,19 @@ package org.jivesoftware.smack.util; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.logging.Level; import java.util.logging.Logger; -import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.compress.packet.Compress; import org.jivesoftware.smack.packet.EmptyResultIQ; import org.jivesoftware.smack.packet.ErrorIQ; @@ -49,11 +50,11 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; /** * Utility class that helps to parse packets. Any parsing packets method that must be shared @@ -64,51 +65,27 @@ import org.xmlpull.v1.XmlPullParserFactory; public class PacketParserUtils { private static final Logger LOGGER = Logger.getLogger(PacketParserUtils.class.getName()); - public static final String FEATURE_XML_ROUNDTRIP = "http://xmlpull.org/v1/doc/features.html#xml-roundtrip"; - - private static final XmlPullParserFactory XML_PULL_PARSER_FACTORY; - - /** - * True if the XmlPullParser supports the XML_ROUNDTRIP feature. - */ - public static final boolean XML_PULL_PARSER_SUPPORTS_ROUNDTRIP; - - static { - // Ensure that Smack is initialized. - SmackConfiguration.getVersion(); - - XmlPullParser xmlPullParser; - boolean roundtrip = false; - try { - XML_PULL_PARSER_FACTORY = XmlPullParserFactory.newInstance(); - xmlPullParser = XML_PULL_PARSER_FACTORY.newPullParser(); - try { - xmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); - // We could successfully set the feature - roundtrip = true; - } catch (XmlPullParserException e) { - // Doesn't matter if FEATURE_XML_ROUNDTRIP isn't available - LOGGER.log(Level.FINEST, "XmlPullParser does not support XML_ROUNDTRIP", e); - } - } - catch (XmlPullParserException e) { - // Something really bad happened - throw new AssertionError(e); - } - XML_PULL_PARSER_SUPPORTS_ROUNDTRIP = roundtrip; - } - // TODO: Rename argument name from 'stanza' to 'element'. public static XmlPullParser getParserFor(String stanza) throws XmlPullParserException, IOException { return getParserFor(new StringReader(stanza)); } + public static XmlPullParser getParserFor(InputStream inputStream) throws XmlPullParserException { + InputStreamReader inputStreamReader; + try { + inputStreamReader = new InputStreamReader(inputStream, StringUtils.UTF8); + } catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + return SmackXmlParser.newXmlParser(inputStreamReader); + } + public static XmlPullParser getParserFor(Reader reader) throws XmlPullParserException, IOException { - XmlPullParser parser = newXmppParser(reader); + XmlPullParser parser = SmackXmlParser.newXmlParser(reader); // Wind the parser forward to the first start tag - int event = parser.getEventType(); - while (event != XmlPullParser.START_TAG) { - if (event == XmlPullParser.END_DOCUMENT) { + XmlPullParser.Event event = parser.getEventType(); + while (event != XmlPullParser.Event.START_ELEMENT) { + if (event == XmlPullParser.Event.END_DOCUMENT) { throw new IllegalArgumentException("Document contains no start tag"); } event = parser.next(); @@ -116,26 +93,6 @@ public class PacketParserUtils { return parser; } - public static XmlPullParser getParserFor(String stanza, String startTag) - throws XmlPullParserException, IOException { - XmlPullParser parser = getParserFor(stanza); - - while (true) { - int event = parser.getEventType(); - String name = parser.getName(); - if (event == XmlPullParser.START_TAG && name.equals(startTag)) { - break; - } - else if (event == XmlPullParser.END_DOCUMENT) { - throw new IllegalArgumentException("Could not find start tag '" + startTag - + "' in stanza: " + stanza); - } - parser.next(); - } - - return parser; - } - @SuppressWarnings("unchecked") public static S parseStanza(String stanza) throws Exception { return (S) parseStanza(getParserFor(stanza), null); @@ -166,53 +123,6 @@ public class PacketParserUtils { } } - /** - * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that - * FEATURE_PROCESS_NAMESPACES is enabled. - *

- * Note that not all XmlPullParser implementations will return a String on - * getText() if the parser is on START_TAG or END_TAG. So you must not rely on this - * behavior when using the parser. - *

- * - * @return A suitable XmlPullParser for XMPP parsing - * @throws XmlPullParserException - */ - public static XmlPullParser newXmppParser() throws XmlPullParserException { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - if (XML_PULL_PARSER_SUPPORTS_ROUNDTRIP) { - try { - parser.setFeature(FEATURE_XML_ROUNDTRIP, true); - } - catch (XmlPullParserException e) { - LOGGER.log(Level.SEVERE, - "XmlPullParser does not support XML_ROUNDTRIP, although it was first determined to be supported", - e); - } - } - return parser; - } - - /** - * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that - * FEATURE_PROCESS_NAMESPACES is enabled. - *

- * Note that not all XmlPullParser implementations will return a String on - * getText() if the parser is on START_TAG or END_TAG. So you must not rely on this - * behavior when using the parser. - *

- * - * @param reader - * @return A suitable XmlPullParser for XMPP parsing - * @throws XmlPullParserException - */ - public static XmlPullParser newXmppParser(Reader reader) throws XmlPullParserException { - XmlPullParser parser = newXmppParser(); - parser.setInput(reader); - return parser; - } - public static Message parseMessage(XmlPullParser parser) throws XmlPullParserException, IOException, SmackParsingException { return parseMessage(parser, null); } @@ -249,9 +159,9 @@ public class PacketParserUtils { // in arbitrary sub-elements. String thread = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -276,11 +186,12 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: // fall out } } @@ -295,9 +206,9 @@ public class PacketParserUtils { /** * Returns the textual content of an element as String. After this method returns the parser - * position will be END_TAG, following the established pull parser calling convention. + * position will be END_ELEMENT, following the established pull parser calling convention. *

- * The parser must be positioned on a START_TAG of an element which MUST NOT contain Mixed + * The parser must be positioned on a START_ELEMENT of an element which MUST NOT contain Mixed * Content (as defined in XML 3.2.2), or else an XmlPullParserException will be thrown. *

* This method is used for the parts where the XMPP specification requires elements that contain @@ -309,41 +220,36 @@ public class PacketParserUtils { * @throws IOException */ public static String parseElementText(XmlPullParser parser) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); String res; - if (parser.isEmptyElementTag()) { - res = ""; - } - else { - // Advance to the text of the Element - int event = parser.next(); - if (event != XmlPullParser.TEXT) { - if (event == XmlPullParser.END_TAG) { - // Assume this is the end tag of the start tag at the - // beginning of this method. Typical examples where this - // happens are body elements containing the empty string, - // ie. , which appears to be valid XMPP, or a - // least it's not explicitly forbidden by RFC 6121 5.2.3 - return ""; - } else { - throw new XmlPullParserException( - "Non-empty element tag not followed by text, while Mixed Content (XML 3.2.2) is disallowed"); - } - } - res = parser.getText(); - event = parser.next(); - if (event != XmlPullParser.END_TAG) { + // Advance to the text of the Element + XmlPullParser.Event event = parser.next(); + if (event != XmlPullParser.Event.TEXT_CHARACTERS) { + if (event == XmlPullParser.Event.END_ELEMENT) { + // Assume this is the end tag of the start tag at the + // beginning of this method. Typical examples where this + // happens are body elements containing the empty string, + // ie. , which appears to be valid XMPP, or a + // least it's not explicitly forbidden by RFC 6121 5.2.3 + return ""; + } else { throw new XmlPullParserException( - "Non-empty element tag contains child-elements, while Mixed Content (XML 3.2.2) is disallowed"); + "Non-empty element tag not followed by text, while Mixed Content (XML 3.2.2) is disallowed"); } } + res = parser.getText(); + event = parser.next(); + if (event != XmlPullParser.Event.END_ELEMENT) { + throw new XmlPullParserException( + "Non-empty element tag contains child-elements, while Mixed Content (XML 3.2.2) is disallowed"); + } return res; } /** * Returns the current element as string. *

- * The parser must be positioned on START_TAG. + * The parser must be positioned on START_ELEMENT. *

* Note that only the outermost namespace attributes ("xmlns") will be returned, not nested ones. * @@ -359,37 +265,10 @@ public class PacketParserUtils { public static CharSequence parseElement(XmlPullParser parser, boolean fullNamespaces) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); return parseContentDepth(parser, parser.getDepth(), fullNamespaces); } - /** - * Returns the content of a element. - *

- * The parser must be positioned on the START_TAG of the element which content is going to get - * returned. If the current element is the empty element, then the empty string is returned. If - * it is a element which contains just text, then just the text is returned. If it contains - * nested elements (and text), then everything from the current opening tag to the corresponding - * closing tag of the same depth is returned as String. - *

- * Note that only the outermost namespace attributes ("xmlns") will be returned, not nested ones. - * - * @param parser the XML pull parser - * @return the content of a tag - * @throws XmlPullParserException if parser encounters invalid XML - * @throws IOException if an IO error occurs - */ - public static CharSequence parseContent(XmlPullParser parser) - throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); - if (parser.isEmptyElementTag()) { - return ""; - } - // Advance the parser, since we want to parse the content of the current element - parser.next(); - return parseContentDepth(parser, parser.getDepth(), false); - } - public static CharSequence parseContentDepth(XmlPullParser parser, int depth) throws XmlPullParserException, IOException { return parseContentDepth(parser, depth, false); @@ -402,7 +281,7 @@ public class PacketParserUtils { * parent elements will be added to child elements that don't define a different namespace. *

* This method is able to parse the content with MX- and KXmlParser. KXmlParser does not support - * xml-roundtrip. i.e. return a String on getText() on START_TAG and END_TAG. We check for the + * xml-roundtrip. i.e. return a String on getText() on START_ELEMENT and END_ELEMENT. We check for the * XML_ROUNDTRIP feature. If it's not found we are required to work around this limitation, which * results in only partial support for XML namespaces ("xmlns"): Only the outermost namespace of * elements will be included in the resulting String, if fullNamespaces is set to false. @@ -419,7 +298,7 @@ public class PacketParserUtils { * @throws IOException */ public static CharSequence parseContentDepth(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { - if (parser.getFeature(FEATURE_XML_ROUNDTRIP)) { + if (parser.supportsRoundtrip()) { return parseContentDepthWithRoundtrip(parser, depth, fullNamespaces); } else { return parseContentDepthWithoutRoundtrip(parser, depth, fullNamespaces); @@ -429,15 +308,21 @@ public class PacketParserUtils { private static CharSequence parseContentDepthWithoutRoundtrip(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { XmlStringBuilder xml = new XmlStringBuilder(); - int event = parser.getEventType(); - boolean isEmptyElement = false; + XmlPullParser.Event event = parser.getEventType(); // XmlPullParser reports namespaces in nested elements even if *only* the outer ones defines // it. This 'flag' ensures that when a namespace is set for an element, it won't be set again // in a nested element. It's an ugly workaround that has the potential to break things. String namespaceElement = null; + boolean startElementJustSeen = false; outerloop: while (true) { switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: + if (startElementJustSeen) { + xml.rightAngleBracket(); + } + else { + startElementJustSeen = true; + } xml.halfOpenElement(parser.getName()); if (namespaceElement == null || fullNamespaces) { String namespace = parser.getNamespace(); @@ -449,18 +334,11 @@ public class PacketParserUtils { for (int i = 0; i < parser.getAttributeCount(); i++) { xml.attribute(parser.getAttributeName(i), parser.getAttributeValue(i)); } - if (parser.isEmptyElementTag()) { - xml.closeEmptyElement(); - isEmptyElement = true; - } - else { - xml.rightAngleBracket(); - } break; - case XmlPullParser.END_TAG: - if (isEmptyElement) { - // Do nothing as the element was already closed, just reset the flag - isEmptyElement = false; + case END_ELEMENT: + if (startElementJustSeen) { + xml.closeEmptyElement(); + startElementJustSeen = false; } else { xml.closeElement(parser.getName()); @@ -474,9 +352,16 @@ public class PacketParserUtils { break outerloop; } break; - case XmlPullParser.TEXT: + case TEXT_CHARACTERS: + if (startElementJustSeen) { + startElementJustSeen = false; + xml.rightAngleBracket(); + } xml.escape(parser.getText()); break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } event = parser.next(); } @@ -485,20 +370,39 @@ public class PacketParserUtils { private static CharSequence parseContentDepthWithRoundtrip(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { - StringBuilder sb = new StringBuilder(); - int event = parser.getEventType(); + XmlStringBuilder sb = new XmlStringBuilder(); + XmlPullParser.Event event = parser.getEventType(); + boolean startElementJustSeen = false; outerloop: while (true) { - // Only append the text if the parser is not on on an empty element' start tag. Empty elements are reported - // twice, so in order to prevent duplication we only add their text when we are on their end tag. - if (!(event == XmlPullParser.START_TAG && parser.isEmptyElementTag())) { + switch (event) { + case START_ELEMENT: + if (startElementJustSeen) { + sb.rightAngleBracket(); + } + startElementJustSeen = true; + break; + case END_ELEMENT: + boolean isEmptyElement = false; + if (startElementJustSeen) { + isEmptyElement = true; + startElementJustSeen = false; + } + if (!isEmptyElement) { + String text = parser.getText(); + sb.append(text); + } + if (parser.getDepth() <= depth) { + break outerloop; + } + break; + default: + startElementJustSeen = false; CharSequence text = parser.getText(); - if (event == XmlPullParser.TEXT) { - text = StringUtils.escapeForXmlText(text); + if (event == XmlPullParser.Event.TEXT_CHARACTERS) { + text = StringUtils.escapeForXml(text); } sb.append(text); - } - if (event == XmlPullParser.END_TAG && parser.getDepth() <= depth) { - break outerloop; + break; } event = parser.next(); } @@ -543,9 +447,9 @@ public class PacketParserUtils { // Parse sub-elements outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -587,11 +491,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return presence; @@ -622,10 +529,10 @@ public class PacketParserUtils { final IQ.Type type = IQ.Type.fromString(parser.getAttributeValue("", "type")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -640,7 +547,7 @@ public class PacketParserUtils { iqPacket = provider.parse(parser, outerXmlEnvironment); } // Note that if we reach this code, it is guranteed that the result IQ contained a child element - // (RFC 6120 § 8.2.3 6) because otherwhise we would have reached the END_TAG first. + // (RFC 6120 § 8.2.3 6) because otherwhise we would have reached the END_ELEMENT first. else { // No Provider found for the IQ stanza, parse it to an UnparsedIQ instance // so that the content of the IQ can be examined later on @@ -649,11 +556,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } // Decide what to do when an IQ packet was not understood @@ -694,15 +604,15 @@ public class PacketParserUtils { List mechanisms = new ArrayList(); boolean done = false; while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elementName = parser.getName(); if (elementName.equals("mechanism")) { mechanisms.add(parser.nextText()); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("mechanisms")) { done = true; } @@ -721,14 +631,14 @@ public class PacketParserUtils { */ public static Compress.Feature parseCompressionFeature(XmlPullParser parser) throws IOException, XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); String name; final int initialDepth = parser.getDepth(); List methods = new LinkedList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "method": @@ -736,7 +646,7 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: name = parser.getName(); switch (name) { case Compress.Feature.ELEMENT: @@ -744,9 +654,13 @@ public class PacketParserUtils { break outerloop; } } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); assert (parser.getDepth() == initialDepth); return new Compress.Feature(methods); } @@ -782,9 +696,9 @@ public class PacketParserUtils { String condition = null; Map descriptiveTexts = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if (name.equals("text")) { descriptiveTexts = parseDescriptiveTexts(parser, descriptiveTexts); @@ -794,11 +708,14 @@ public class PacketParserUtils { condition = parser.getName(); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new SASLFailure(condition, descriptiveTexts); @@ -826,9 +743,9 @@ public class PacketParserUtils { String conditionText = null; XmlEnvironment streamErrorXmlEnvironment = XmlEnvironment.from(parser, outerXmlEnvironment); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -841,8 +758,9 @@ public class PacketParserUtils { // If it's not a text element, that is qualified by the StreamError.NAMESPACE, // then it has to be the stream error code condition = StreamError.Condition.fromString(name); - if (!parser.isEmptyElementTag()) { - conditionText = parser.nextText(); + conditionText = parser.nextText(); + if (conditionText.isEmpty()) { + conditionText = null; } break; } @@ -852,11 +770,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new StreamError(condition, conditionText, descriptiveTexts, extensions); @@ -888,9 +809,9 @@ public class PacketParserUtils { builder.setErrorGenerator(parser.getAttributeValue("", "by")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -901,8 +822,9 @@ public class PacketParserUtils { break; default: builder.setCondition(StanzaError.Condition.fromString(name)); - if (!parser.isEmptyElementTag()) { - builder.setConditionText(parser.nextText()); + String conditionText = parser.nextText(); + if (!conditionText.isEmpty()) { + builder.setConditionText(conditionText); } break; } @@ -911,10 +833,14 @@ public class PacketParserUtils { PacketParserUtils.addExtensionElement(extensions, parser, name, namespace, stanzaErrorXmlEnvironment); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } builder.setExtensions(extensions).setDescriptiveTexts(descriptiveTexts); @@ -949,14 +875,14 @@ public class PacketParserUtils { public static StartTls parseStartTlsFeature(XmlPullParser parser) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); assert (parser.getNamespace().equals(StartTls.NAMESPACE)); int initalDepth = parser.getDepth(); boolean required = false; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "required": @@ -964,13 +890,17 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initalDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); return new StartTls(required); } @@ -978,14 +908,11 @@ public class PacketParserUtils { ParserUtils.assertAtStartTag(parser); final int initialDepth = parser.getDepth(); boolean optional = false; - if (parser.isEmptyElementTag()) { - return new Session.Feature(optional); - } outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case Session.Feature.OPTIONAL_ELEMENT: @@ -993,10 +920,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java index 2a06c9c3c..61a56e0f3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java @@ -29,6 +29,8 @@ import javax.xml.namespace.QName; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackUriSyntaxParsingException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityFullJid; @@ -38,8 +40,6 @@ import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class ParserUtils { @@ -49,7 +49,7 @@ public class ParserUtils { public static final String JID = "jid"; public static void assertAtStartTag(XmlPullParser parser) throws XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); } public static void assertAtStartTag(XmlPullParser parser, String name) throws XmlPullParserException { @@ -58,13 +58,13 @@ public class ParserUtils { } public static void assertAtEndTag(XmlPullParser parser) throws XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); } public static void forwardToEndTagOfDepth(XmlPullParser parser, int depth) throws XmlPullParserException, IOException { - int event = parser.getEventType(); - while (!(event == XmlPullParser.END_TAG && parser.getDepth() == depth)) { + XmlPullParser.Event event = parser.getEventType(); + while (!(event == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == depth)) { event = parser.next(); } } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java b/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java index 6e2c3a781..ee75ac468 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2018 Florian Schmaus + * Copyright 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,9 @@ import org.jivesoftware.smack.compress.packet.Failure; import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class FailureProviderTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java b/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java index 515053714..76682f07f 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java @@ -18,19 +18,25 @@ package org.jivesoftware.smack.packet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; + +import java.io.IOException; import org.jivesoftware.smack.packet.StreamError.Condition; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class StreamErrorTest { - @Test - public void testParsingOfSimpleStreamError() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfSimpleStreamError(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -39,19 +45,17 @@ public class StreamErrorTest { " +" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); } - @Test - public void testParsingOfStreamErrorWithText() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfStreamErrorWithText(SmackTestUtil.XmlPullParserKind parserKind) throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -63,20 +67,19 @@ public class StreamErrorTest { "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); assertEquals("Replaced by new connection", error.getDescriptiveText()); } - @Test - public void testParsingOfStreamErrorWithTextAndOptionalElement() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfStreamErrorWithTextAndOptionalElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -91,12 +94,10 @@ public class StreamErrorTest { "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); assertEquals("Replaced by new connection", error.getDescriptiveText()); @@ -104,21 +105,20 @@ public class StreamErrorTest { assertNotNull(appSpecificElement); } - @Test - public void testStreamErrorXmlNotWellFormed() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testStreamErrorXmlNotWellFormed(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.not_well_formed, error.getCondition()); } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java b/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java index db3283c3e..c8673bc0c 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java @@ -27,11 +27,11 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ParsingExceptionTest { @@ -39,6 +39,7 @@ public class ParsingExceptionTest { "" + "" + "" + + "text content" + "" + "" + ""; @@ -57,8 +58,7 @@ public class ParsingExceptionTest { public void consumeUnparsedInput() throws Exception { final String MESSAGE_EXCEPTION_ELEMENT = "<" + ThrowException.ELEMENT + " xmlns='" + ThrowException.NAMESPACE + "'>" + - "" + - "" + + "" + ""; XmlPullParser parser = TestUtils.getMessageParser( "" + diff --git a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java index 56da18453..b66024509 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java @@ -22,10 +22,10 @@ import java.util.Collection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.FileUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Assert; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ProviderConfigTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java index b3c5ebe9f..5210e6344 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java @@ -21,9 +21,9 @@ import static org.junit.Assert.assertTrue; import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ProviderManagerTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java index 0288a55c4..adf5b2bb5 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2017 Florian Schmaus + * Copyright © 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,8 @@ */ package org.jivesoftware.smack.sasl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.UnsupportedEncodingException; import java.util.HashMap; diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java b/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java new file mode 100644 index 000000000..cfa0b114e --- /dev/null +++ b/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java @@ -0,0 +1,165 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.test.util; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringReader; +import java.lang.reflect.InvocationTargetException; +import java.nio.charset.StandardCharsets; +import java.util.function.Predicate; + +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.packet.Element; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.provider.Provider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.stax.StaxXmlPullParserFactory; +import org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory; + +public class SmackTestUtil { + + @SuppressWarnings("ImmutableEnumChecker") + public enum XmlPullParserKind { + StAX(StaxXmlPullParserFactory.class), + XPP3(Xpp3XmlPullParserFactory.class), + ; + + public final XmlPullParserFactory factory; + + XmlPullParserKind(Class factoryClass) { + try { + factory = factoryClass.getDeclaredConstructor().newInstance(); + } + catch (InstantiationException | IllegalAccessException | IllegalArgumentException + | InvocationTargetException | NoSuchMethodException | SecurityException e) { + throw new AssertionError(e); + } + } + } + + public static > E parse(CharSequence xml, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(xml, provider, parserKind); + } + + public static > E parse(InputStream inputStream, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(inputStream, provider, parserKind); + } + + public static > E parse(Reader reader, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(reader, provider, parserKind); + } + + public static E parse(CharSequence xml, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + String xmlString = xml.toString(); + Reader reader = new StringReader(xmlString); + return parse(reader, provider, parserKind); + } + + public static E parse(InputStream inputStream, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + return parse(inputStreamReader, provider, parserKind); + } + + public static E parse(Reader reader, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + XmlPullParser parser = getParserFor(reader, parserKind); + E element = provider.parse(parser); + return element; + } + + public static XmlPullParser getParserFor(String xml, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + Reader reader = new StringReader(xml); + return getParserFor(reader, parserKind); + } + + public static XmlPullParser getParserFor(InputStream inputStream, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + return getParserFor(inputStreamReader, parserKind); + } + + public static XmlPullParser getParserFor(Reader reader, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + XmlPullParser parser = parserKind.factory.newXmlPullParser(reader); + forwardParserToStartElement(parser); + return parser; + } + + public static XmlPullParser getParserFor(String xml, QName startTagQName, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser = getParserFor(xml, parserKind); + forwardParserToStartElement(parser, (p) -> p.getQName().equals(startTagQName)); + return parser; + } + + public static XmlPullParser getParserFor(String xml, String startTagLocalpart, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser = getParserFor(xml, parserKind); + forwardParserToStartElement(parser, (p) -> p.getName().equals(startTagLocalpart)); + return parser; + } + + private static > P providerClassToProvider(Class

providerClass) { + P provider; + // TODO: Consider adding a shortcut in case there is a static INSTANCE field holding an instance of the + // requested provider. + try { + provider = providerClass.getDeclaredConstructor().newInstance(); + } + catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException + | NoSuchMethodException | SecurityException e) { + throw new AssertionError(e); + } + return provider; + } + + private static void forwardParserToStartElement(XmlPullParser parser) throws XmlPullParserException, IOException { + forwardParserToStartElement(parser, p -> true); + } + + private static void forwardParserToStartElement(XmlPullParser parser, + Predicate doneForwarding) throws XmlPullParserException, IOException { + outerloop: while (true) { + XmlPullParser.Event event = parser.getEventType(); + switch (event) { + case START_ELEMENT: + if (doneForwarding.test(parser)) { + break outerloop; + } + break; + case END_DOCUMENT: + throw new IllegalArgumentException("Not matching START_ELEMENT found"); + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + parser.next(); + } + } +} diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java b/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java index b6a94d2a9..a1ebdc9ac 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java @@ -20,14 +20,11 @@ import java.io.IOException; import java.io.Reader; import java.io.StringReader; -import org.jivesoftware.smack.packet.ExtensionElement; -import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smack.util.ParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; +// TODO: Remove this class and replace it with SmackTestUtil. public final class TestUtils { private TestUtils() { } @@ -52,12 +49,12 @@ public final class TestUtils { return getParser(new StringReader(string), startTag); } - public static XmlPullParser getParser(Reader reader, String startTag) { + private static XmlPullParser getParser(Reader reader, String startTag) { XmlPullParser parser; try { - parser = PacketParserUtils.newXmppParser(reader); + parser = SmackXmlParser.newXmlParser(reader); if (startTag == null) { - while (parser.getEventType() != XmlPullParser.START_TAG) { + while (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { parser.next(); } return parser; @@ -65,7 +62,7 @@ public final class TestUtils { boolean found = false; while (!found) { - if ((parser.next() == XmlPullParser.START_TAG) && parser.getName().equals(startTag)) + if ((parser.next() == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(startTag)) found = true; } @@ -79,17 +76,4 @@ public final class TestUtils { return parser; } - public static EE parseExtensionElement(String elementString) - throws Exception { - return parseExtensionElement(getParser(elementString), null); - } - - @SuppressWarnings("unchecked") - public static EE parseExtensionElement(XmlPullParser parser, XmlEnvironment outerXmlEnvironment) - throws Exception { - ParserUtils.assertAtStartTag(parser); - final String elementName = parser.getName(); - final String namespace = parser.getNamespace(); - return (EE) PacketParserUtils.parseExtensionElement(elementName, namespace, parser, outerXmlEnvironment); - } } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java index c2ed877f5..1f23eed5a 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java @@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Properties; +import java.util.function.Supplier; +import java.util.stream.Stream; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; @@ -42,15 +44,18 @@ import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.sasl.SASLError; import org.jivesoftware.smack.sasl.packet.SaslStreamElements; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.test.util.XmlUnitUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import com.jamesmurty.utils.XMLBuilder; import org.junit.Ignore; import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; import org.xml.sax.SAXException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class PacketParserUtilsTest { @@ -59,8 +64,9 @@ public class PacketParserUtilsTest { outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); } - @Test - public void singleMessageBodyTest() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void singleMessageBodyTest(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String defaultLanguage = Stanza.getDefaultLanguage(); String otherLanguage = determineNonDefaultLanguage(); @@ -79,7 +85,7 @@ public class PacketParserUtilsTest { .asString(outputProperties); Message message = PacketParserUtils - .parseMessage(PacketParserUtils.getParserFor(control)); + .parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(defaultLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -99,7 +105,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(otherLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -118,7 +124,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(defaultLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -138,7 +144,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -159,7 +165,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -181,7 +187,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -203,7 +209,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -708,13 +714,18 @@ public class PacketParserUtilsTest { .t("Good Message Body") .asString(outputProperties); + // XPP3 writes "end tag", StAX writes "end-tag". + Supplier> expectedContentOfExceptionMessage = () -> Stream.of("end tag", "end-tag"); + String invalidControl = validControl.replace("Good Message Body", "Bad Body"); try { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } invalidControl = validControl.replace("Good Message Body", "Bad Body"); @@ -723,7 +734,9 @@ public class PacketParserUtilsTest { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } invalidControl = validControl.replace("Good Message Body", "Bad Body"); @@ -732,9 +745,10 @@ public class PacketParserUtilsTest { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } - } @Test @@ -808,13 +822,13 @@ public class PacketParserUtilsTest { // CHECKSTYLE:ON } - @Test - public void parseContentDepthTest() throws Exception { - final String stanza = ""; - XmlPullParser parser = TestUtils.getParser(stanza, "iq"); - CharSequence content = PacketParserUtils.parseContent(parser); - assertEquals("", content.toString()); - } +// @Test +// public void parseContentDepthTest() throws Exception { +// final String stanza = ""; +// XmlPullParser parser = TestUtils.getParser(stanza, "iq"); +// CharSequence content = PacketParserUtils.parseContent(parser); +// assertEquals("", content.toString()); +// } @Test public void parseElementMultipleNamespace() diff --git a/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java b/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java new file mode 100644 index 000000000..ff82064c9 --- /dev/null +++ b/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java @@ -0,0 +1,231 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.stream.Stream; + +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.test.util.SmackTestUtil; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +public class XmlPullParserTest { + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testSimpleEmptyElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + Reader reader = new StringReader(""); + XmlPullParser parser = parserKind.factory.newXmlPullParser(reader); + + assertEquals(XmlPullParser.Event.START_DOCUMENT, parser.getEventType()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + QName qname = parser.getQName(); + assertEquals(qname.getLocalPart(), "empty-element"); + assertEquals(qname.getPrefix(), XMLConstants.DEFAULT_NS_PREFIX); + assertEquals(qname.getNamespaceURI(), XMLConstants.NULL_NS_URI); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.next()); + assertEquals(XmlPullParser.Event.END_DOCUMENT, parser.next()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testQNameSimpleElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String simpleElement = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(simpleElement, parserKind); + QName qname = parser.getQName(); + assertEquals("outer-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + qname = parser.getQName(); + assertEquals("inner-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testQNamePrefixElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String prefixElement = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(prefixElement, parserKind); + QName qname = parser.getQName(); + assertEquals("outer-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + qname = parser.getQName(); + assertEquals("inner-element", qname.getLocalPart()); + assertEquals("inner-namespace", qname.getNamespaceURI()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesElementWithOneAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String elementWithOneAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(elementWithOneAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "", ""); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesNamespacedElementWithOneAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String namespacedElementWithOneAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(namespacedElementWithOneAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "", ""); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesNamespacedElementWithOneNamespacedAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String namespacedElementWithOneNamespacedAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(namespacedElementWithOneNamespacedAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "attribute-namespace", "attribute-namespace-value"); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNamespacedAttributes(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertEquals(1, parser.getAttributeCount()); + + assertEquals("attributeOneName", parser.getAttributeName(0)); + assertEquals("attr", parser.getAttributePrefix(0)); + assertEquals("attribute-namespace", parser.getAttributeNamespace(0)); + QName attributeZeroQname = parser.getAttributeQName(0); + assertEquals("attributeOneName", attributeZeroQname.getLocalPart()); + assertEquals("attr", attributeZeroQname.getPrefix()); + assertEquals("attribute-namespace", attributeZeroQname.getNamespaceURI()); + + // Test how parser handle non-existent attributes. + assertNull(parser.getAttributeName(1)); + assertNull(parser.getAttributePrefix(1)); + assertNull(parser.getAttributeNamespace(1)); + QName attributeOneQname = parser.getAttributeQName(1); + assertNull(attributeOneQname); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributeType(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + + assertEquals("CDATA", parser.getAttributeType(0)); + + assertNull(parser.getAttributeType(1)); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextText(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser; + + String simpleElement = "Element text"; + parser = SmackTestUtil.getParserFor(simpleElement, parserKind); + assertEquals("Element text", parser.nextText()); + + String complexElement = "Element 1 ' textElement 2 text"; + parser = SmackTestUtil.getParserFor(complexElement, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + assertEquals("element1", parser.getName()); + assertEquals(0, parser.getAttributeCount()); + assertEquals("Element 1 ' text", parser.nextText()); + + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + assertEquals("element2", parser.getName()); + assertEquals(0, parser.getAttributeCount()); + assertEquals("Element 2 text", parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextMixedContent(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = "Mixed content element textInner element text"; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertThrows(XmlPullParserException.class, () -> parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextOnEndElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = "Element text"; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.getEventType()); + assertEquals(XmlPullParser.Event.TEXT_CHARACTERS, parser.next()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.next()); + assertThrows(XmlPullParserException.class, () -> parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextOnEmptyElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String[] emptyElementStream = Stream.of().toArray(String[]::new); + for (String emptyElement : emptyElementStream) { + XmlPullParser parser = SmackTestUtil.getParserFor(emptyElement, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.getEventType()); + assertEquals("", parser.nextText()); + } + } + + private static void assertAttributeHolds(XmlPullParser parser, int attributeIndex, String expectedLocalpart, + String expectedPrefix, String expectedNamespace) { + QName qname = parser.getAttributeQName(attributeIndex); + String qnameNamespaceUri = qname.getNamespaceURI(); + + assertEquals(expectedLocalpart, qname.getLocalPart()); + assertEquals(expectedPrefix, qname.getPrefix()); + assertEquals(expectedNamespace, qnameNamespaceUri); + + assertEquals(qname.getLocalPart(), parser.getAttributeName(attributeIndex)); + assertEquals(qname.getPrefix(), parser.getAttributePrefix(attributeIndex)); + + final String expectedGetAttributeNamespace; + if (qnameNamespaceUri.equals(XMLConstants.NULL_NS_URI)) { + expectedGetAttributeNamespace = null; + } + else { + expectedGetAttributeNamespace = qnameNamespaceUri; + } + assertEquals(expectedGetAttributeNamespace, parser.getAttributeNamespace(attributeIndex)); + } +} diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java index 1ccc1949e..e224d6e3d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java @@ -21,15 +21,14 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.carbons.packet.CarbonExtension; import org.jivesoftware.smackx.carbons.packet.CarbonExtension.Direction; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.forward.provider.ForwardedProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * This class implements the {@link ExtensionElementProvider} to parse * carbon copied messages from a packet. It will return a {@link CarbonExtension} stanza extension. @@ -48,11 +47,11 @@ public class CarbonManagerProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java index 634eab400..618cb1d67 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java @@ -33,6 +33,7 @@ import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.packet.StanzaError.Type; import org.jivesoftware.smack.util.RandomUtil; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.dox.element.DnsIq; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java index 3800060eb..6a02e12b1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java @@ -21,10 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smackx.dox.element.DnsIq; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.dox.element.DnsIq; public class DnsIqProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java index 17132703b..9d4d1185d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.eme.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; -import org.xmlpull.v1.XmlPullParser; - public class ExplicitMessageEncryptionProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java index e75d2ffe9..c20e06d8d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Paul Schaub + * Copyright © 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,18 +20,19 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hashes.HashManager; import org.jivesoftware.smackx.hashes.element.HashElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for HashElements. */ public class HashElementProvider extends ExtensionElementProvider { + public static final HashElementProvider INSTANCE = new HashElementProvider(); + @Override public HashElement parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String algo = parser.getAttributeValue(null, HashElement.ATTR_ALGO); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java index e4ee704ac..1b3a02adf 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.hints.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hints.element.MessageProcessingHint; -import org.xmlpull.v1.XmlPullParser; - public abstract class MessageProcessingHintProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java index a2d5a4c76..60fe19445 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java @@ -22,14 +22,13 @@ import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hoxt.packet.AbstractHttpOverXmpp; import org.jivesoftware.smackx.shim.packet.HeadersExtension; import org.jivesoftware.smackx.shim.provider.HeadersProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Abstract parent for Req and Resp stanza providers. * @@ -63,7 +62,7 @@ public abstract class AbstractHttpOverXmppProvider'); @@ -175,7 +174,7 @@ public abstract class AbstractHttpOverXmppProvider"); startClosed = true; } - } else if (eventType == XmlPullParser.TEXT) { + } else if (eventType == XmlPullParser.Event.TEXT_CHARACTERS) { if (!startClosed) { builder.append('>'); @@ -223,16 +222,16 @@ public abstract class AbstractHttpOverXmppProvider { PutElement_V0_4_Content putElementV04Content = null; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "put": { @@ -89,11 +88,14 @@ public class SlotProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -115,9 +117,9 @@ public class SlotProvider extends IQProvider { Map headers = null; outerloop: while (true) { - int next = parser.next(); + XmlPullParser.Event next = parser.next(); switch (next) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "header": @@ -132,11 +134,14 @@ public class SlotProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java index 16158cd51..029e1f15e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java @@ -22,6 +22,8 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iot.control.element.IoTSetRequest; import org.jivesoftware.smackx.iot.control.element.SetBoolData; @@ -30,19 +32,16 @@ import org.jivesoftware.smackx.iot.control.element.SetDoubleData; import org.jivesoftware.smackx.iot.control.element.SetIntData; import org.jivesoftware.smackx.iot.control.element.SetLongData; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class IoTSetRequestProvider extends IQProvider { @Override public IoTSetRequest parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List data = new ArrayList<>(4); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "bool": { String valueName = parser.getAttributeValue(null, "name"); @@ -74,11 +73,14 @@ public class IoTSetRequestProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new IoTSetRequest(data); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java index 7343651d1..8ed282fe1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.control.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.control.element.IoTSetResponse; -import org.xmlpull.v1.XmlPullParser; - public class IoTSetResponseProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java index d7e1d8802..a56b8ae8c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java @@ -21,11 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.data.element.IoTDataReadOutAccepted; -import org.xmlpull.v1.XmlPullParser; - public class IoTDataReadOutAcceptedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java index 863ee169c..8c41c072f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java @@ -21,11 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.data.element.IoTDataRequest; -import org.xmlpull.v1.XmlPullParser; - public class IoTDataRequestProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java index 84c47bf02..fbe9b2d7f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java @@ -28,6 +28,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iot.data.element.IoTDataField; import org.jivesoftware.smackx.iot.data.element.IoTFieldsExtension; @@ -37,8 +39,6 @@ import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class IoTFieldsExtensionProvider extends ExtensionElementProvider { @@ -50,10 +50,10 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider nodes = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case NodeElement.ELEMENT: NodeElement node = parseNode(parser); @@ -61,11 +61,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider timestampElements = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name){ case TimestampElement.ELEMENT: TimestampElement timestampElement = parseTimestampElement(parser); @@ -87,11 +90,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider fields = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: IoTDataField field = null; final String fieldName = parser.getAttributeValue(null, "name"); final String fieldValue = parser.getAttributeValue(null, "value"); @@ -134,11 +140,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java index 1500c1ba1..713eb1df1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTDisown; import org.jivesoftware.smackx.iot.element.NodeInfo; @@ -26,7 +27,6 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTDisownProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java index 2d2739d26..ed33c28ce 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTDisowned; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTDisownedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java index a30dca07d..1127115f1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java @@ -23,15 +23,14 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iot.discovery.element.IoTRegister; import org.jivesoftware.smackx.iot.discovery.element.Tag; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class IoTRegisterProvider extends IQProvider { @Override @@ -40,8 +39,8 @@ public class IoTRegisterProvider extends IQProvider { NodeInfo nodeInfo = NodeInfoParser.parse(parser); List tags = new ArrayList<>(); while (parser.getDepth() != initialDepth) { - int event = parser.next(); - if (event != XmlPullParser.START_TAG) { + XmlPullParser.Event event = parser.next(); + if (event != XmlPullParser.Event.START_ELEMENT) { continue; } final String element = parser.getName(); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java index 2590701e7..f0a201d32 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTRemove; import org.jivesoftware.smackx.iot.element.NodeInfo; @@ -28,7 +29,6 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; public class IoTRemoveProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java index c6a9c7eac..8faa40e7c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTRemoved; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTRemovedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java index a3f472f41..490d8034e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTUnregister; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTUnregisterProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java index bec0bc14a..21c729b01 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java @@ -18,9 +18,9 @@ package org.jivesoftware.smackx.iot.parser; import static org.jivesoftware.smack.util.StringUtils.isNullOrEmpty; -import org.jivesoftware.smackx.iot.element.NodeInfo; +import org.jivesoftware.smack.xml.XmlPullParser; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smackx.iot.element.NodeInfo; public class NodeInfoParser { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java index 070335fb1..ae6013496 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCache; -import org.xmlpull.v1.XmlPullParser; - public class ClearCacheProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java index 1f6a48bba..ecd8ddd79 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCacheResponse; -import org.xmlpull.v1.XmlPullParser; - public class ClearCacheResponseProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java index d00bdea61..95555246a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.Friend; import org.jxmpp.jid.BareJid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class FriendProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java index 0ba90db09..8d24f2811 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.IoTIsFriend; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTIsFriendProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java index 0e6fada1d..79a23836d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java @@ -19,13 +19,13 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.IoTIsFriendResponse; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTIsFriendResponseProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java index f80d5ed09..f8351993c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.Unfriend; import org.jxmpp.jid.BareJid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class UnfriendProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java index a6869e7c5..1f94c6927 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle_filetransfer.element; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.jingle.element.JingleContent; /** diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java index ffd3b51a5..2758f3c18 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java @@ -20,6 +20,7 @@ import java.io.File; import java.util.Date; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java index c0366695e..71a418818 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Paul Schaub + * Copyright © 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.jingle_filetransfer.element; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.hashes.element.HashElement; /** @@ -29,14 +30,14 @@ public class Range implements NamedElement { public static final String ATTR_OFFSET = "offset"; public static final String ATTR_LENGTH = "length"; - private final int offset, length; + private final Integer offset, length; private final HashElement hash; /** * Create a Range element with default values. */ public Range() { - this(0, -1, null); + this(null, null, null); } /** @@ -44,7 +45,7 @@ public class Range implements NamedElement { * @param length length of the transmitted data in bytes. */ public Range(int length) { - this(0, length, null); + this(null, length, null); } /** @@ -62,7 +63,7 @@ public class Range implements NamedElement { * @param length number of bytes that shall be transferred. * @param hash hash of the bytes in the specified range. */ - public Range(int offset, int length, HashElement hash) { + public Range(Integer offset, Integer length, HashElement hash) { this.offset = offset; this.length = length; this.hash = hash; @@ -102,10 +103,11 @@ public class Range implements NamedElement { public CharSequence toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) { XmlStringBuilder sb = new XmlStringBuilder(this); - if (offset > 0) { + // TODO: (Introduce and) use XmlStringBuilder.optXmlAttribute(name, Number). + if (offset != null) { sb.attribute(ATTR_OFFSET, offset); } - if (length > 0) { + if (length != null) { sb.attribute(ATTR_LENGTH, length); } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java index 023a04fab..c781cfbb5 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java @@ -16,14 +16,14 @@ */ package org.jivesoftware.smackx.jingle_filetransfer.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; import org.jivesoftware.smackx.jingle.element.JingleContent; @@ -31,9 +31,6 @@ import org.jivesoftware.smackx.jingle_filetransfer.element.Checksum; import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChild; import org.jivesoftware.smackx.jingle_filetransfer.element.Range; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for the Checksum element. */ @@ -54,10 +51,11 @@ public class ChecksumProvider extends ExtensionElementProvider { boolean go = true; while (go) { - int tag = parser.nextTag(); + XmlPullParser.TagEvent tag = parser.nextTag(); String n = parser.getText(); - if (tag == START_TAG) { + switch (tag) { + case START_ELEMENT: switch (n) { case HashElement.ELEMENT: hashElement = new HashElementProvider().parse(parser); @@ -70,7 +68,8 @@ public class ChecksumProvider extends ExtensionElementProvider { int l = length == null ? -1 : Integer.parseInt(length); range = new Range(o, l); } - } else if (tag == END_TAG) { + break; + case END_ELEMENT: switch (n) { case Range.ELEMENT: if (hashElement != null && range != null) { @@ -88,6 +87,7 @@ public class ChecksumProvider extends ExtensionElementProvider { } go = false; } + break; } } return new Checksum(creator, name, cb.build()); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java index a7ee806e3..1eba4075a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Paul Schaub + * Copyright 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +16,16 @@ */ package org.jivesoftware.smackx.jingle_filetransfer.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; @@ -34,8 +35,6 @@ import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChi import org.jivesoftware.smackx.jingle_filetransfer.element.Range; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Provider for JingleContentDescriptionFileTransfer elements. @@ -46,20 +45,18 @@ public class JingleFileTransferProvider @Override public JingleFileTransfer parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { ArrayList payloads = new ArrayList<>(); - boolean inRange = false; JingleFileTransferChild.Builder builder = JingleFileTransferChild.getBuilder(); - HashElement inRangeHash = null; - int offset = 0; - int length = -1; + String elementName; while (true) { - int tag = parser.nextTag(); - String elem = parser.getName(); + XmlPullParser.TagEvent tag = parser.nextTag(); - if (tag == START_TAG) { - switch (elem) { + switch (tag) { + case START_ELEMENT: + elementName = parser.getName(); + switch (elementName) { case JingleFileTransferChild.ELEM_DATE: try { builder.setDate(XmppDateTime.parseXEP0082Date(parser.nextText())); @@ -85,36 +82,20 @@ public class JingleFileTransferProvider break; case Range.ELEMENT: - inRange = true; - String offsetString = parser.getAttributeValue(null, Range.ATTR_OFFSET); - String lengthString = parser.getAttributeValue(null, Range.ATTR_LENGTH); - offset = (offsetString != null ? Integer.parseInt(offsetString) : 0); - length = (lengthString != null ? Integer.parseInt(lengthString) : -1); + Range range = parseRangeElement(parser); + builder.setRange(range); - if (parser.isEmptyElementTag()) { - inRange = false; - builder.setRange(new Range(offset, length)); - } break; case HashElement.ELEMENT: - if (inRange) { - inRangeHash = new HashElementProvider().parse(parser); - } else { - builder.setHash(new HashElementProvider().parse(parser)); - } + HashElement hashElement = HashElementProvider.INSTANCE.parse(parser); + builder.setHash(hashElement); break; } - - } else if (tag == END_TAG) { - switch (elem) { - - case Range.ELEMENT: - inRange = false; - builder.setRange(new Range(offset, length, inRangeHash)); - inRangeHash = null; - break; - + break; + case END_ELEMENT: + elementName = parser.getName(); + switch (elementName) { case JingleFileTransferChild.ELEMENT: payloads.add(builder.build()); builder = JingleFileTransferChild.getBuilder(); @@ -123,7 +104,42 @@ public class JingleFileTransferProvider case JingleFileTransfer.ELEMENT: return new JingleFileTransfer(payloads); } + break; } } } + + public static Range parseRangeElement(XmlPullParser parser) throws IOException, XmlPullParserException, SmackParsingException { + final int initialDepth = parser.getDepth(); + final Integer offset = ParserUtils.getIntegerAttribute(parser, Range.ATTR_OFFSET); + final Integer length = ParserUtils.getIntegerAttribute(parser, Range.ATTR_LENGTH); + + HashElement hashElement = null; + outerloop: while (true) { + String element; + XmlPullParser.Event event = parser.next(); + switch (event) { + case START_ELEMENT: + element = parser.getName(); + switch (element) { + case HashElement.ELEMENT: + hashElement = HashElementProvider.INSTANCE.parse(parser); + break; + } + break; + case END_ELEMENT: + element = parser.getName(); + if (element.equals(Range.ELEMENT) && parser.getDepth() == initialDepth) { + break outerloop; + } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + } + + return new Range(offset, length, hashElement); + } + } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java index deea55e21..5c5f2dc0f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.json.packet.AbstractJsonPacketExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class AbstractJsonExtensionProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java index a2f8ab42d..1af384165 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java @@ -22,14 +22,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.mam.element.MamFinIQ; import org.jivesoftware.smackx.rsm.packet.RSMSet; import org.jivesoftware.smackx.rsm.provider.RSMSetProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Fin IQ Provider class. * @@ -48,18 +47,21 @@ public class MamFinIQProvider extends IQProvider { RSMSet rsmSet = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals(RSMSet.ELEMENT)) { rsmSet = RSMSetProvider.INSTANCE.parse(parser); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java index 1cd3b3cfb..632ae4946 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java @@ -22,14 +22,14 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.element.MamPrefsIQ.DefaultBehavior; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * MAM Preferences IQ Provider class. @@ -58,10 +58,10 @@ public class MamPrefsIQProvider extends IQProvider { List neverJids = null; outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "always": alwaysJids = iterateJids(parser); @@ -71,11 +71,14 @@ public class MamPrefsIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -88,10 +91,10 @@ public class MamPrefsIQProvider extends IQProvider { int initialDepth = parser.getDepth(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "jid": parser.next(); @@ -99,11 +102,14 @@ public class MamPrefsIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java index 185165c90..853f199f4 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Query IQ Provider class. * @@ -47,22 +46,25 @@ public class MamQueryIQProvider extends IQProvider { String node = parser.getAttributeValue("", "node"); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case DataForm.ELEMENT: dataForm = DataFormProvider.INSTANCE.parse(parser); break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java index f3c502d0e..61d07edf2 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.forward.provider.ForwardedProvider; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Result Provider class. * @@ -46,21 +45,24 @@ public class MamResultProvider extends ExtensionElementProvider { @Override @@ -51,11 +48,11 @@ public class MarkupElementProvider extends ExtensionElementProvider lis = new ArrayList<>(); while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); int start, end; switch (tag) { - case START_TAG: + case START_ELEMENT: switch (name) { case BlockQuoteElement.ELEMENT: start = ParserUtils.getIntegerAttributeOrThrow(parser, BlockQuoteElement.ATTR_START, @@ -109,7 +106,7 @@ public class MarkupElementProvider extends ExtensionElementProvider occupants = new HashMap<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -58,7 +58,7 @@ public class MUCLightAffiliationsIQProvider extends IQProvider { HashMap users = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("room")) { rooms = parseBlocking(parser, rooms); @@ -57,7 +57,7 @@ public class MUCLightBlockingIQProvider extends IQProvider { users = parseBlocking(parser, users); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java index a69e2c691..b8eb5558a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java @@ -21,13 +21,12 @@ import java.util.HashMap; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muclight.MUCLightRoomConfiguration; import org.jivesoftware.smackx.muclight.element.MUCLightConfigurationIQ; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MUC Light configuration IQ provider class. * @@ -44,9 +43,9 @@ public class MUCLightConfigurationIQProvider extends IQProvider customConfigs = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -61,7 +60,7 @@ public class MUCLightConfigurationIQProvider extends IQProvider customConfigs = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("prev-version")) { prevVersion = parser.nextText(); @@ -63,7 +62,7 @@ public class MUCLightConfigurationsChangeProvider extends ExtensionElementProvid customConfigs.put(parser.getName(), parser.nextText()); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java index 8718e2141..5d62c5888 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java @@ -21,6 +21,8 @@ import java.util.HashMap; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muclight.MUCLightAffiliation; import org.jivesoftware.smackx.muclight.MUCLightRoomConfiguration; @@ -28,8 +30,6 @@ import org.jivesoftware.smackx.muclight.element.MUCLightInfoIQ; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * MUC Light info IQ provider class. @@ -48,9 +48,9 @@ public class MUCLightInfoIQProvider extends IQProvider { HashMap occupants = new HashMap<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -62,7 +62,7 @@ public class MUCLightInfoIQProvider extends IQProvider { outerloop2: while (true) { eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("roomname")) { roomName = parser.nextText(); } else if (parser.getName().equals("subject")) { @@ -74,7 +74,7 @@ public class MUCLightInfoIQProvider extends IQProvider { customConfigs.put(parser.getName(), parser.nextText()); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == depth) { break outerloop2; } @@ -86,7 +86,7 @@ public class MUCLightInfoIQProvider extends IQProvider { occupants = iterateOccupants(parser); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } @@ -101,14 +101,14 @@ public class MUCLightInfoIQProvider extends IQProvider { int depth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("user")) { MUCLightAffiliation affiliation = MUCLightAffiliation .fromString(parser.getAttributeValue("", "affiliation")); occupants.put(JidCreate.from(parser.nextText()), affiliation); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == depth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java index 6d4369b7b..a19e53cce 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java @@ -20,13 +20,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.push_notifications.element.PushNotificationsElements.RemoteDisablingExtension; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Push Notifications Remote Disabling Provider class. @@ -43,8 +43,8 @@ public class RemoteDisablingProvider extends ExtensionElementProvider { @@ -53,8 +53,8 @@ public class ReferenceProvider extends ExtensionElementProvider provider = ProviderManager.getExtensionProvider(elementName, namespace); @@ -62,7 +62,7 @@ public class ReferenceProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java index 6f336b55c..ce59799df 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java @@ -18,9 +18,9 @@ package org.jivesoftware.smackx.sid.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.sid.element.StanzaIdElement; +import org.jivesoftware.smack.xml.XmlPullParser; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smackx.sid.element.StanzaIdElement; public class StanzaIdProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java index fa5c8680b..a18654cc3 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java @@ -21,6 +21,7 @@ import java.util.WeakHashMap; import org.jivesoftware.smack.Manager; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; public final class SpoilerManager extends Manager { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java index 1b71b6dba..65bb14e4b 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java @@ -25,6 +25,7 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.spoiler.SpoilerManager; public class SpoilerElement implements ExtensionElement { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java index 28b7a0506..0755bd9f8 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java @@ -16,18 +16,15 @@ */ package org.jivesoftware.smackx.spoiler.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.TEXT; - import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; -import org.jivesoftware.smackx.spoiler.element.SpoilerElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.spoiler.element.SpoilerElement; public class SpoilerProvider extends ExtensionElementProvider { @@ -39,13 +36,16 @@ public class SpoilerProvider extends ExtensionElementProvider { String hint = null; outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); switch (tag) { - case TEXT: + case TEXT_CHARACTERS: hint = parser.getText(); break; - case END_TAG: + case END_ELEMENT: break outerloop; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new SpoilerElement(lang, hint); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java index dff548f50..363edca3f 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java @@ -16,13 +16,13 @@ */ package org.jivesoftware.smackx; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import org.jivesoftware.smack.experimental.ExperimentalInitializer; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExperimentalInitializerTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java index d0dbc2cf9..fb88f6e95 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.carbons; -import static org.jivesoftware.smack.test.util.CharSequenceEquals.equalsCharSequence; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import java.io.IOException; import java.util.Properties; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.ExperimentalInitializerTest; import org.jivesoftware.smackx.carbons.packet.CarbonExtension; @@ -30,8 +32,9 @@ import org.jivesoftware.smackx.carbons.provider.CarbonManagerProvider; import org.jivesoftware.smackx.forward.packet.Forwarded; import com.jamesmurty.utils.XMLBuilder; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class CarbonTest extends ExperimentalInitializerTest { @@ -65,10 +68,10 @@ public class CarbonTest extends ExperimentalInitializerTest { assertEquals(null, fwd.getDelayInformation()); // check message - assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); + assertEquals("romeo@montague.com", fwd.getForwardedStanza().getFrom().toString()); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("sent", parser.getName()); } @@ -91,20 +94,19 @@ public class CarbonTest extends ExperimentalInitializerTest { assertEquals(CarbonExtension.Direction.received, cc.getDirection()); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("received", parser.getName()); } - @Test(expected = Exception.class) - public void carbonEmptyTest() throws Exception { - XmlPullParser parser; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void carbonEmptyTest(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String control; control = XMLBuilder.create("sent") .a("xmlns", "urn:xmpp:forwarded:0") .asString(outputProperties); - parser = PacketParserUtils.getParserFor(control); - new CarbonManagerProvider().parse(parser); + assertThrows(IOException.class, () -> SmackTestUtil.parse(control, CarbonManagerProvider.class, parserKind)); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java index 383e3d441..ed8b4fbfa 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.AcknowledgedExtension; import org.jivesoftware.smackx.chat_markers.provider.AcknowledgedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class AcknowledgedExtensionTest { @@ -41,18 +42,18 @@ public class AcknowledgedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.AcknowledgedExtension("message-1")); - Assert.assertEquals(acknowledgedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(acknowledgedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkDisplayedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(acknowledgedExtension); AcknowledgedExtension acknowledgedExtension1 = new AcknowledgedProvider().parse(parser); - Assert.assertEquals("message-1", acknowledgedExtension1.getId()); + assertEquals("message-1", acknowledgedExtension1.getId()); Message message = PacketParserUtils.parseStanza(acknowledgedMessageStanza); AcknowledgedExtension acknowledgedExtension2 = AcknowledgedExtension.from(message); - Assert.assertEquals("message-1", acknowledgedExtension2.getId()); + assertEquals("message-1", acknowledgedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java index 7cf6daf9a..f4f1295e7 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.DisplayedExtension; import org.jivesoftware.smackx.chat_markers.provider.DisplayedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class DisplayedExtensionTest { @@ -41,18 +42,18 @@ public class DisplayedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.DisplayedExtension("message-1")); - Assert.assertEquals(displayedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(displayedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkDisplayedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(displayedExtension); DisplayedExtension displayedExtension1 = new DisplayedProvider().parse(parser); - Assert.assertEquals("message-1", displayedExtension1.getId()); + assertEquals("message-1", displayedExtension1.getId()); Message message = PacketParserUtils.parseStanza(displayedMessageStanza); DisplayedExtension displayedExtension2 = DisplayedExtension.from(message); - Assert.assertEquals("message-1", displayedExtension2.getId()); + assertEquals("message-1", displayedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java index 34b201b5e..91944acc1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java @@ -16,17 +16,18 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.MarkableExtension; import org.jivesoftware.smackx.chat_markers.provider.MarkableProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class MarkableExtensionTest { @@ -42,18 +43,18 @@ public class MarkableExtensionTest { message.setStanzaId("message-1"); message.setBody("My lord, dispatch; read o'er these articles."); message.addExtension(ChatMarkersElements.MarkableExtension.INSTANCE); - Assert.assertEquals(markableMessageStanza, message.toXML().toString()); + assertEquals(markableMessageStanza, message.toXML().toString()); } @Test public void checkMarkableProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(markableExtension); MarkableExtension markableExtension1 = new MarkableProvider().parse(parser); - Assert.assertEquals(markableExtension, markableExtension1.toXML().toString()); + assertEquals(markableExtension, markableExtension1.toXML().toString()); Message message = PacketParserUtils.parseStanza(markableMessageStanza); MarkableExtension markableExtension2 = MarkableExtension.from(message); - Assert.assertEquals(markableExtension, markableExtension2.toXML().toString()); + assertEquals(markableExtension, markableExtension2.toXML().toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java index 417c95471..be80449b9 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.ReceivedExtension; import org.jivesoftware.smackx.chat_markers.provider.ReceivedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class ReceivedExtensionTest { @@ -41,18 +42,18 @@ public class ReceivedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.ReceivedExtension("message-1")); - Assert.assertEquals(receivedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(receivedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkReceivedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(receivedExtension); ReceivedExtension receivedExtension1 = new ReceivedProvider().parse(parser); - Assert.assertEquals("message-1", receivedExtension1.getId()); + assertEquals("message-1", receivedExtension1.getId()); Message message = PacketParserUtils.parseStanza(receivedMessageStanza); ReceivedExtension receivedExtension2 = ReceivedExtension.from(message); - Assert.assertEquals("message-1", receivedExtension2.getId()); + assertEquals("message-1", receivedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java index debdfa0e7..c69150dc2 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java @@ -23,7 +23,7 @@ import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smackx.colors.ConsistentColor.Deficiency; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ConsistentColorsTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java index ed0aeec5b..684219a02 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java @@ -26,9 +26,10 @@ import java.util.List; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExplicitMessageEncryptionElementTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java index 3599924fd..1060dfc6e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Florian Schmaus + * Copyright 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,14 +16,19 @@ */ package org.jivesoftware.smackx.eme.provider; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.jivesoftware.smack.test.util.TestUtils; +import java.io.IOException; + +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement.ExplicitMessageEncryptionProtocol; -import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class ExplicitMessageEncryptionProviderTest { @@ -34,15 +39,19 @@ public class ExplicitMessageEncryptionProviderTest { private static final String UNKNOWN_EME_ELEMENT = ""; - @Test - public void testParseOxEmeElement() throws Exception { - ExplicitMessageEncryptionElement eme = TestUtils.parseExtensionElement(OX_EME_ELEMENT); + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParseOxEmeElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + ExplicitMessageEncryptionElement eme = SmackTestUtil.parse(OX_EME_ELEMENT, ExplicitMessageEncryptionProvider.class, parserKind); assertEquals(ExplicitMessageEncryptionProtocol.openpgpV0, eme.getProtocol()); } - @Test - public void testParseUnknownEmeElement() throws Exception { - ExplicitMessageEncryptionElement eme = TestUtils.parseExtensionElement(UNKNOWN_EME_ELEMENT); + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParseUnknownEmeElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + ExplicitMessageEncryptionElement eme = SmackTestUtil.parse(UNKNOWN_EME_ELEMENT, ExplicitMessageEncryptionProvider.class, parserKind); assertEquals(UNKNOWN_NAMESPACE, eme.getEncryptionNamespace()); assertEquals(UNKNOWN_NAME, eme.getName()); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java index e67342a9e..b85e32688 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java @@ -20,7 +20,7 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertTrue; import static org.jivesoftware.smackx.hashes.HashManager.ALGORITHM.SHA_256; -import static org.junit.Assert.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; @@ -29,7 +29,7 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test toXML and parse of HashElement and HashElementProvider. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java index 44ae4fdc5..e0d6bd65c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java @@ -21,7 +21,7 @@ import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test HashManager functionality. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java index 4155a6f48..5af9ff08c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java @@ -16,15 +16,20 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hoxt.packet.AbstractHttpOverXmpp; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq; @@ -32,8 +37,9 @@ import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppResp; import org.jivesoftware.smackx.shim.packet.Header; import org.jivesoftware.smackx.shim.packet.HeadersExtension; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; /** * Tests correct headers and data parsing in 'req' and 'resp' elements. @@ -84,8 +90,10 @@ public class AbstractHttpOverXmppProviderTest { checkHeaders(body.getHeaders(), expectedHeaders); } - @Test - public void isTextDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isTextDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String expectedText = "@prefix dc: ." + "@base ." + " dc:title \"HTTP over XMPP\";" @@ -103,12 +111,14 @@ public class AbstractHttpOverXmppProviderTest { + ""; AbstractHttpOverXmpp.Text text = (AbstractHttpOverXmpp.Text) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(expectedText, text.getText()); } - @Test - public void isXmlDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isXmlDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String expectedXml = "" // no xmlns here + "" + "" @@ -137,12 +147,14 @@ public class AbstractHttpOverXmppProviderTest { + encodedXml + ""; AbstractHttpOverXmpp.Xml xmlProviderValue = (AbstractHttpOverXmpp.Xml) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(expectedXml, xmlProviderValue.getText()); } - @Test - public void isBase64DataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isBase64DataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String base64Data = "iVBORw0KGgoAAAANSUhEUgAAASwAAAGQCAYAAAAUdV17AAAAAXNSR0 ... tVWJd+e+y1AAAAABJRU5ErkJggg=="; String string = "" + "

Clayster
" @@ -150,12 +162,14 @@ public class AbstractHttpOverXmppProviderTest { + base64Data + ""; AbstractHttpOverXmpp.Base64 base64ProviderValue = (AbstractHttpOverXmpp.Base64) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(base64Data, base64ProviderValue.getText()); } - @Test - public void isChunkedBase64DataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isChunkedBase64DataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String streamId = "Stream0001"; String chunkBase64Data = " "; String string = "" @@ -164,12 +178,14 @@ public class AbstractHttpOverXmppProviderTest { + chunkBase64Data + ""; AbstractHttpOverXmpp.ChunkedBase64 chunkedBase64Value = (AbstractHttpOverXmpp.ChunkedBase64) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(streamId, chunkedBase64Value.getStreamId()); } - @Test - public void isIbbDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isIbbDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String sid = "Stream0002"; String ibbData = " "; String string = "" @@ -178,14 +194,16 @@ public class AbstractHttpOverXmppProviderTest { + ibbData + ""; AbstractHttpOverXmpp.Ibb ibbValue = (AbstractHttpOverXmpp.Ibb) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(sid, ibbValue.getSid()); } // TODO The method name makes no sense after the HOXT re-design, change to parseHttpOverXmppResp() - private static HttpOverXmppResp parseAbstractBody(String string, String tag) throws Exception { + private static HttpOverXmppResp parseAbstractBody(String string, String tag, + SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); - XmlPullParser parser = PacketParserUtils.getParserFor(string, tag); + XmlPullParser parser = SmackTestUtil.getParserFor(string, tag, parserKind); IQ iq = provider.parse(parser); assertTrue(iq instanceof HttpOverXmppResp); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java index 9845e0ecc..f443db501 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.Base64BinaryChunk; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; /** * Tests correct parsing of 'chunk' elements in Message stanza. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java index d64427dde..e5d3e1e54 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.HttpMethod; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class HttpOverXmppReqProviderTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java index 3001eb844..d0a80ed14 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppResp; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; /** * Tests correct attribute parsing in 'resp' element. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java index eb7333b6d..566ca03c3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java @@ -16,10 +16,11 @@ */ package org.jivesoftware.smackx.httpfileupload; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smackx.httpfileupload.element.FileTooLargeError; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FileTooLargeErrorCreateTest { private static final String fileTooLargeErrorExtensionExample @@ -31,8 +32,8 @@ public class FileTooLargeErrorCreateTest { public void checkFileTooLargeErrorExtensionCreation() { FileTooLargeError fileTooLargeError = new FileTooLargeError(20000); - Assert.assertEquals(20000, fileTooLargeError.getMaxFileSize()); - Assert.assertEquals(fileTooLargeErrorExtensionExample, fileTooLargeError.toXML().toString()); + assertEquals(20000, fileTooLargeError.getMaxFileSize()); + assertEquals(fileTooLargeErrorExtensionExample, fileTooLargeError.toXML().toString()); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java index 73b71d93d..36bc6931f 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java @@ -17,14 +17,14 @@ package org.jivesoftware.smackx.httpfileupload; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.net.URL; import org.jivesoftware.smackx.httpfileupload.element.Slot; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; public class SlotCreateTest { @@ -39,9 +39,9 @@ public class SlotCreateTest { Slot slot = new Slot(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png")); - Assert.assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), + assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getPutUrl()); - Assert.assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), + assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getGetUrl()); assertXMLEqual(testSlot, slot.getChildElementXML().toString()); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java index d49ebee73..7a32fd2fe 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java @@ -17,13 +17,14 @@ package org.jivesoftware.smackx.httpfileupload; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import org.jivesoftware.smackx.httpfileupload.element.SlotRequest; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.JidTestUtil; import org.xml.sax.SAXException; @@ -46,9 +47,9 @@ public class SlotRequestCreateTest { public void checkSlotRequestCreation() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 23456, "image/jpeg"); - Assert.assertEquals("my_juliet.png", slotRequest.getFilename()); - Assert.assertEquals(23456, slotRequest.getSize()); - Assert.assertEquals("image/jpeg", slotRequest.getContentType()); + assertEquals("my_juliet.png", slotRequest.getFilename()); + assertEquals(23456, slotRequest.getSize()); + assertEquals("image/jpeg", slotRequest.getContentType()); assertXMLEqual(testRequest, slotRequest.getChildElementXML().toString()); } @@ -57,20 +58,22 @@ public class SlotRequestCreateTest { public void checkSlotRequestCreationWithoutContentType() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_romeo.png", 52523); - Assert.assertEquals("my_romeo.png", slotRequest.getFilename()); - Assert.assertEquals(52523, slotRequest.getSize()); - Assert.assertEquals(null, slotRequest.getContentType()); + assertEquals("my_romeo.png", slotRequest.getFilename()); + assertEquals(52523, slotRequest.getSize()); + assertEquals(null, slotRequest.getContentType()); assertXMLEqual(testRequestWithoutContentType, slotRequest.getChildElementXML().toString()); } - @Test(expected = IllegalArgumentException.class) + @Test public void checkSlotRequestCreationNegativeSize() { - new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", -23456, "image/jpeg"); + assertThrows(IllegalArgumentException.class, () -> + new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", -23456, "image/jpeg")); } - @Test(expected = IllegalArgumentException.class) + @Test public void checkSlotRequestCreationZeroSize() { - new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 0, "image/jpeg"); + assertThrows(IllegalArgumentException.class, () -> + new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 0, "image/jpeg")); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java index 5983baeec..8b8dce4f1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java @@ -16,13 +16,14 @@ */ package org.jivesoftware.smackx.httpfileupload.provider; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.httpfileupload.element.FileTooLargeError; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FileTooLargeErrorProviderTest { @@ -52,9 +53,9 @@ public class FileTooLargeErrorProviderTest { public void checkSlotErrorFileToLarge() throws Exception { IQ fileTooLargeErrorIQ = PacketParserUtils.parseStanza(slotErrorFileToLarge); - Assert.assertEquals(IQ.Type.error, fileTooLargeErrorIQ.getType()); + assertEquals(IQ.Type.error, fileTooLargeErrorIQ.getType()); FileTooLargeError fileTooLargeError = FileTooLargeError.from(fileTooLargeErrorIQ); - Assert.assertEquals(20000, fileTooLargeError.getMaxFileSize()); + assertEquals(20000, fileTooLargeError.getMaxFileSize()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java index 0cd8bc305..9ef246d1b 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java @@ -17,7 +17,7 @@ package org.jivesoftware.smackx.httpfileupload.provider; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.net.MalformedURLException; import java.net.URL; @@ -28,7 +28,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.httpfileupload.element.Slot; import org.jivesoftware.smackx.httpfileupload.element.Slot_V0_2; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SlotProviderTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java index 71aeb7e5b..738906053 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.mam; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.Date; @@ -26,7 +26,7 @@ import org.jivesoftware.smackx.mam.MamManager.MamQueryArgs; import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.util.XmppDateTime; diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java index fb8bbf95d..f0cd5df68 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java @@ -16,17 +16,21 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.mam.element.MamFinIQ; import org.jivesoftware.smackx.mam.provider.MamFinIQProvider; import org.jivesoftware.smackx.rsm.packet.RSMSet; -import org.junit.Assert; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MamFinProviderTest extends MamTest { @@ -39,13 +43,13 @@ public class MamFinProviderTest extends MamTest { XmlPullParser parser = PacketParserUtils.getParserFor(exmapleMamFinXml); MamFinIQ mamFinIQ = new MamFinIQProvider().parse(parser); - Assert.assertFalse(mamFinIQ.isComplete()); - Assert.assertTrue(mamFinIQ.isStable()); - Assert.assertNull(mamFinIQ.getQueryId()); + assertFalse(mamFinIQ.isComplete()); + assertTrue(mamFinIQ.isStable()); + assertNull(mamFinIQ.getQueryId()); RSMSet rsmSet = mamFinIQ.getRSMSet(); - Assert.assertEquals(rsmSet.getAfter(), "09af3-cc343-b409f"); - Assert.assertEquals(rsmSet.getMax(), 10); + assertEquals(rsmSet.getAfter(), "09af3-cc343-b409f"); + assertEquals(rsmSet.getMax(), 10); } @Test @@ -64,13 +68,13 @@ public class MamFinProviderTest extends MamTest { IQ iq = PacketParserUtils.parseStanza(IQ_LIMITED_RESULTS_EXAMPLE); MamFinIQ mamFinIQ = (MamFinIQ) iq; - Assert.assertEquals(mamFinIQ.getType(), Type.result); + assertEquals(mamFinIQ.getType(), Type.result); - Assert.assertTrue(mamFinIQ.isComplete()); - Assert.assertEquals(mamFinIQ.getRSMSet().getCount(), 16); - Assert.assertEquals(mamFinIQ.getRSMSet().getFirst(), "23452-4534-1"); - Assert.assertEquals(mamFinIQ.getRSMSet().getFirstIndex(), 0); - Assert.assertEquals(mamFinIQ.getRSMSet().getLast(), "390-2342-22"); + assertTrue(mamFinIQ.isComplete()); + assertEquals(mamFinIQ.getRSMSet().getCount(), 16); + assertEquals(mamFinIQ.getRSMSet().getFirst(), "23452-4534-1"); + assertEquals(mamFinIQ.getRSMSet().getFirstIndex(), 0); + assertEquals(mamFinIQ.getRSMSet().getLast(), "390-2342-22"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java index 0e89b9b69..1c0ff85f8 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java @@ -16,18 +16,20 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.provider.MamPrefsIQProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; public class MamPrefIQProviderTest extends MamTest { @@ -52,20 +54,20 @@ public class MamPrefIQProviderTest extends MamTest { XmlPullParser parser1 = PacketParserUtils.getParserFor(exampleMamPrefsIQ1); MamPrefsIQ mamPrefIQ1 = new MamPrefsIQProvider().parse(parser1); - Assert.assertEquals(IQ.Type.set, mamPrefIQ1.getType()); - Assert.assertEquals(mamPrefIQ1.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(mamPrefIQ1.getNeverJids().get(0).toString(), "montague@montague.lit"); + assertEquals(IQ.Type.set, mamPrefIQ1.getType()); + assertEquals(mamPrefIQ1.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); + assertEquals(mamPrefIQ1.getNeverJids().get(0).toString(), "montague@montague.lit"); XmlPullParser parser2 = PacketParserUtils.getParserFor(exampleMamPrefsIQ2); MamPrefsIQ mamPrefIQ2 = new MamPrefsIQProvider().parse(parser2); - Assert.assertEquals(IQ.Type.set, mamPrefIQ2.getType()); - Assert.assertEquals(mamPrefIQ2.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(mamPrefIQ2.getAlwaysJids().get(1).toString(), "montague@montague.lit"); - Assert.assertTrue(mamPrefIQ2.getNeverJids().isEmpty()); + assertEquals(IQ.Type.set, mamPrefIQ2.getType()); + assertEquals(mamPrefIQ2.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); + assertEquals(mamPrefIQ2.getAlwaysJids().get(1).toString(), "montague@montague.lit"); + assertTrue(mamPrefIQ2.getNeverJids().isEmpty()); XmlPullParser parser3 = PacketParserUtils.getParserFor(exampleMamPrefsIQ3); MamPrefsIQ mamPrefIQ3 = new MamPrefsIQProvider().parse(parser3); - Assert.assertEquals(IQ.Type.set, mamPrefIQ3.getType()); + assertEquals(IQ.Type.set, mamPrefIQ3.getType()); } @Test @@ -77,10 +79,10 @@ public class MamPrefIQProviderTest extends MamTest { List alwaysJids = mamPrefsIQ.getAlwaysJids(); List neverJids = mamPrefsIQ.getNeverJids(); - Assert.assertEquals(alwaysJids.size(), 1); - Assert.assertEquals(neverJids.size(), 2); - Assert.assertEquals(alwaysJids.get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(neverJids.get(1).toString(), "montague@montague.lit"); + assertEquals(alwaysJids.size(), 1); + assertEquals(neverJids.size(), 2); + assertEquals(alwaysJids.get(0).toString(), "romeo@montague.lit"); + assertEquals(neverJids.get(1).toString(), "montague@montague.lit"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java index e1d70b581..f39411a00 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java @@ -16,6 +16,10 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.ArrayList; import java.util.List; @@ -27,8 +31,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MamQueryIQProviderTest { @@ -54,35 +57,35 @@ public class MamQueryIQProviderTest { IQ iq1 = PacketParserUtils.parseStanza(exampleMamQueryIQ1); MamQueryIQ mamQueryIQ1 = (MamQueryIQ) iq1; - Assert.assertEquals(mamQueryIQ1.getType(), Type.set); - Assert.assertEquals(mamQueryIQ1.getQueryId(), "test"); + assertEquals(mamQueryIQ1.getType(), Type.set); + assertEquals(mamQueryIQ1.getQueryId(), "test"); DataForm dataForm1 = (DataForm) mamQueryIQ1.getExtension(DataForm.NAMESPACE); - Assert.assertEquals(dataForm1.getType(), DataForm.Type.submit); + assertEquals(dataForm1.getType(), DataForm.Type.submit); List fields1 = dataForm1.getFields(); - Assert.assertEquals(fields1.get(0).getType(), FormField.Type.hidden); - Assert.assertEquals(fields1.get(1).getType(), FormField.Type.text_single); - Assert.assertEquals(fields1.get(1).getValues().get(0).toString(), "Where arth thou, my Juliet?"); - Assert.assertEquals(fields1.get(2).getValues().get(0).toString(), "{http://jabber.org/protocol/mood}mood/lonely"); + assertEquals(fields1.get(0).getType(), FormField.Type.hidden); + assertEquals(fields1.get(1).getType(), FormField.Type.text_single); + assertEquals(fields1.get(1).getValues().get(0).toString(), "Where arth thou, my Juliet?"); + assertEquals(fields1.get(2).getValues().get(0).toString(), "{http://jabber.org/protocol/mood}mood/lonely"); // example2 IQ iq2 = PacketParserUtils.parseStanza(exampleMamQueryIQ2); MamQueryIQ mamQueryIQ2 = (MamQueryIQ) iq2; - Assert.assertEquals(mamQueryIQ2.getType(), Type.result); - Assert.assertNull(mamQueryIQ2.getQueryId()); + assertEquals(mamQueryIQ2.getType(), Type.result); + assertNull(mamQueryIQ2.getQueryId()); DataForm dataForm2 = (DataForm) mamQueryIQ2.getExtension(DataForm.NAMESPACE); - Assert.assertEquals(dataForm2.getType(), DataForm.Type.form); + assertEquals(dataForm2.getType(), DataForm.Type.form); List fields2 = dataForm2.getFields(); - Assert.assertEquals(fields2.get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); - Assert.assertTrue(fields2.get(0).getValues().size() == 1); - Assert.assertEquals(fields2.get(1).getType(), FormField.Type.jid_single); - Assert.assertEquals(fields2.get(2).getType(), FormField.Type.text_single); - Assert.assertEquals(fields2.get(2).getValues(), new ArrayList<>()); - Assert.assertEquals(fields2.get(4).getVariable(), "urn:example:xmpp:free-text-search"); + assertEquals(fields2.get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); + assertTrue(fields2.get(0).getValues().size() == 1); + assertEquals(fields2.get(1).getType(), FormField.Type.jid_single); + assertEquals(fields2.get(2).getType(), FormField.Type.text_single); + assertEquals(fields2.get(2).getValues(), new ArrayList<>()); + assertEquals(fields2.get(4).getVariable(), "urn:example:xmpp:free-text-search"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java index 2ab6526e8..7fbcd7c7e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java @@ -16,20 +16,21 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.provider.MamResultProvider; -import org.junit.Assert; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MamResultProviderTest { @@ -51,20 +52,20 @@ public class MamResultProviderTest { XmlPullParser parser = PacketParserUtils.getParserFor(exampleMamResultXml); MamResultExtension mamResultExtension = new MamResultProvider().parse(parser); - Assert.assertEquals(mamResultExtension.getQueryId(), "f27"); - Assert.assertEquals(mamResultExtension.getId(), "28482-98726-73623"); + assertEquals(mamResultExtension.getQueryId(), "f27"); + assertEquals(mamResultExtension.getId(), "28482-98726-73623"); GregorianCalendar calendar = new GregorianCalendar(2010, 7 - 1, 10, 23, 8, 25); calendar.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = calendar.getTime(); Forwarded forwarded = mamResultExtension.getForwarded(); - Assert.assertEquals(forwarded.getDelayInformation().getStamp(), date); + assertEquals(forwarded.getDelayInformation().getStamp(), date); Message message = (Message) forwarded.getForwardedStanza(); - Assert.assertEquals(message.getFrom().toString(), "romeo@montague.lit/orchard"); - Assert.assertEquals(message.getTo().toString(), "juliet@capulet.lit/balcony"); - Assert.assertEquals(message.getBody(), + assertEquals(message.getFrom().toString(), "romeo@montague.lit/orchard"); + assertEquals(message.getTo().toString(), "juliet@capulet.lit/balcony"); + assertEquals(message.getBody(), "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo."); } @@ -73,20 +74,20 @@ public class MamResultProviderTest { Message message = PacketParserUtils.parseStanza(exampleResultMessage); MamResultExtension mamResultExtension = MamResultExtension.from(message); - Assert.assertEquals(mamResultExtension.getQueryId(), "f27"); - Assert.assertEquals(mamResultExtension.getId(), "28482-98726-73623"); + assertEquals(mamResultExtension.getQueryId(), "f27"); + assertEquals(mamResultExtension.getId(), "28482-98726-73623"); GregorianCalendar calendar = new GregorianCalendar(2010, 7 - 1, 10, 23, 8, 25); calendar.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = calendar.getTime(); Forwarded forwarded = mamResultExtension.getForwarded(); - Assert.assertEquals(forwarded.getDelayInformation().getStamp(), date); + assertEquals(forwarded.getDelayInformation().getStamp(), date); Message forwardedMessage = (Message) forwarded.getForwardedStanza(); - Assert.assertEquals(forwardedMessage.getFrom().toString(), "witch@shakespeare.lit"); - Assert.assertEquals(forwardedMessage.getTo().toString(), "macbeth@shakespeare.lit"); - Assert.assertEquals(forwardedMessage.getBody(), "Hail to thee"); + assertEquals(forwardedMessage.getFrom().toString(), "witch@shakespeare.lit"); + assertEquals(forwardedMessage.getTo().toString(), "macbeth@shakespeare.lit"); + assertEquals(forwardedMessage.getBody(), "Hail to thee"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java index 494654a91..9c79c34e3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java @@ -25,16 +25,16 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Before; +import org.junit.jupiter.api.BeforeAll; public class MamTest extends InitExtensions { - protected XMPPConnection connection; - protected String queryId; - protected MamManager mamManager; + protected static XMPPConnection connection; + protected static String queryId; + protected static MamManager mamManager; - @Before - public void setup() { + @BeforeAll + public static void setup() { // mock connection connection = new DummyConnection(); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java index 635dcecb2..91487e62a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; @@ -23,8 +25,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.rsm.packet.RSMSet; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class PagingTest extends MamTest { @@ -44,9 +45,9 @@ public class PagingTest extends MamTest { mamQueryIQ.setType(IQ.Type.set); mamQueryIQ.addExtension(rsmSet); - Assert.assertEquals(mamQueryIQ.getDataForm(), dataForm); - Assert.assertEquals(mamQueryIQ.getDataForm().getFields().get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), pagingStanza); + assertEquals(mamQueryIQ.getDataForm(), dataForm); + assertEquals(mamQueryIQ.getDataForm().getFields().get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); + assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), pagingStanza); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java index c251492ff..2e80871bc 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.ArrayList; import java.util.List; @@ -25,8 +27,7 @@ import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.element.MamPrefsIQ.DefaultBehavior; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -43,7 +44,7 @@ public class PreferencesTest { public void checkRetrievePrefsStanza() throws Exception { MamPrefsIQ mamPrefIQ = new MamPrefsIQ(); mamPrefIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), retrievePrefsStanzaExample); + assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), retrievePrefsStanzaExample); } @Test @@ -57,7 +58,7 @@ public class PreferencesTest { MamPrefsIQ mamPrefIQ = new MamPrefsIQ(alwaysJids, neverJids, DefaultBehavior.roster); mamPrefIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), updatePrefsStanzaExample); + assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), updatePrefsStanzaExample); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java index 5af0bae2a..bcd4e00ab 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; @@ -32,8 +34,7 @@ import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class QueryArchiveTest extends MamTest { @@ -56,7 +57,7 @@ public class QueryArchiveTest extends MamTest { MamQueryIQ mamQueryIQ = new MamQueryIQ(queryId, dataForm); mamQueryIQ.setType(IQ.Type.set); mamQueryIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamSimpleQueryIQ); + assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamSimpleQueryIQ); } @Test @@ -82,18 +83,18 @@ public class QueryArchiveTest extends MamTest { message.addExtension(new MamResultExtension("g27", "34482-21985-73620", forwarded)); // FIXME: The order of assertEquals is reversed, fix it by switching it. - Assert.assertEquals(message.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamQueryResultExample); + assertEquals(message.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamQueryResultExample); MamResultExtension mamResultExtension = MamResultExtension.from(message); - Assert.assertEquals(mamResultExtension.getId(), "34482-21985-73620"); - Assert.assertEquals(mamResultExtension.getForwarded().getDelayInformation().getStamp(), date); + assertEquals(mamResultExtension.getId(), "34482-21985-73620"); + assertEquals(mamResultExtension.getForwarded().getDelayInformation().getStamp(), date); Message resultMessage = (Message) mamResultExtension.getForwarded().getForwardedStanza(); - Assert.assertEquals(resultMessage.getFrom(), JidCreate.from("coven@chat.shakespeare.lit/firstwitch")); - Assert.assertEquals(resultMessage.getStanzaId(), "162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2"); - Assert.assertEquals(resultMessage.getType(), Type.chat); - Assert.assertEquals(resultMessage.getBody(), "Thrice the brinded cat hath mew."); + assertEquals(resultMessage.getFrom(), JidCreate.from("coven@chat.shakespeare.lit/firstwitch")); + assertEquals(resultMessage.getStanzaId(), "162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2"); + assertEquals(resultMessage.getType(), Type.chat); + assertEquals(resultMessage.getBody(), "Thrice the brinded cat hath mew."); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java index 162d06564..9adebb3d5 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016 Fernando Ramirez, 2018 Florian Schmaus + * Copyright 2016 Fernando Ramirez, 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; @@ -24,8 +26,7 @@ import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ResultsLimitTest extends MamTest { @@ -36,7 +37,6 @@ public class ResultsLimitTest extends MamTest { @Test public void checkResultsLimit() throws Exception { - DataForm dataForm = getNewMamForm(); MamQueryIQ mamQueryIQ = new MamQueryIQ(queryId, dataForm); mamQueryIQ.setType(IQ.Type.set); @@ -44,7 +44,7 @@ public class ResultsLimitTest extends MamTest { MamQueryArgs mamQueryArgs = MamQueryArgs.builder().setResultPageSize(10).build(); mamQueryArgs.maybeAddRsmSet(mamQueryIQ); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), resultsLimitStanza); + assertEquals(resultsLimitStanza, mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java index dad68bc0f..ca6859eee 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java @@ -17,7 +17,7 @@ package org.jivesoftware.smackx.mam; import static org.jivesoftware.smack.test.util.XmlUnitUtils.assertXmlSimilar; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.jivesoftware.smack.packet.StreamOpen; @@ -27,7 +27,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RetrieveFormFieldsTest extends MamTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java index 7afcdc6e7..9a7ee1189 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java @@ -18,11 +18,14 @@ package org.jivesoftware.smackx.message_markup; import static junit.framework.TestCase.assertEquals; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.List; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.message_markup.element.BlockQuoteElement; import org.jivesoftware.smackx.message_markup.element.CodeBlockElement; import org.jivesoftware.smackx.message_markup.element.ListElement; @@ -30,8 +33,7 @@ import org.jivesoftware.smackx.message_markup.element.MarkupElement; import org.jivesoftware.smackx.message_markup.element.SpanElement; import org.jivesoftware.smackx.message_markup.provider.MarkupElementProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MessageMarkupTest extends SmackTestSuite { @@ -107,16 +109,18 @@ public class MessageMarkupTest extends SmackTestSuite { assertEquals(SpanElement.SpanStyle.deleted, spanElement.getStyles().iterator().next()); } - @Test(expected = IllegalArgumentException.class) + @Test public void wrongStartEndTest() { - MarkupElement.getBuilder().setEmphasis(12, 10); + assertThrows(IllegalArgumentException.class, () -> + MarkupElement.getBuilder().setEmphasis(12, 10)); } - @Test(expected = IllegalArgumentException.class) + @Test public void overlappingSpansTest() { MarkupElement.Builder m = MarkupElement.getBuilder(); m.setEmphasis(0, 10); - m.setDeleted(5, 15); + assertThrows(IllegalArgumentException.class, () -> + m.setDeleted(5, 15)); } @Test @@ -172,10 +176,11 @@ public class MessageMarkupTest extends SmackTestSuite { assertEquals(47, list.getEntries().get(1).getStart()); } - @Test(expected = IllegalArgumentException.class) + @Test public void listWrongSecondEntryTest() { MarkupElement.Builder m = MarkupElement.getBuilder(); - m.beginList().addEntry(0,1).addEntry(3,4); + assertThrows(IllegalArgumentException.class, () -> + m.beginList().addEntry(0,1).addEntry(3,4)); } @Test diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java index a95e244ae..a07577748 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.Message; @@ -23,8 +25,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightElements.AffiliationsChangeExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -55,10 +56,10 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 3); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(affiliations.size(), 3); + assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); } @Test @@ -68,11 +69,11 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 2); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(affiliations.size(), 2); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); - Assert.assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); + assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); } @Test @@ -83,12 +84,12 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 2); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.size(), 2); + assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliationsChangeExtension.getPrevVersion(), "njiokm"); - Assert.assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); + assertEquals(affiliationsChangeExtension.getPrevVersion(), "njiokm"); + assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java index 1da29f0ca..d6d899a31 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightBlockingIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -62,7 +63,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setStanzaId("getblock1"); mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); - Assert.assertEquals(getBlockingListIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getBlockingListIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -70,12 +71,12 @@ public class MUCLightBlockingTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getBlockingListIQResponse); MUCLightBlockingIQ mucLightBlockingIQ = (MUCLightBlockingIQ) iqInfoResult; - Assert.assertEquals(2, mucLightBlockingIQ.getRooms().size()); - Assert.assertEquals(1, mucLightBlockingIQ.getUsers().size()); - Assert.assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("coven@muclight.shakespeare.lit"))); - Assert.assertEquals(false, + assertEquals(2, mucLightBlockingIQ.getRooms().size()); + assertEquals(1, mucLightBlockingIQ.getUsers().size()); + assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("coven@muclight.shakespeare.lit"))); + assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("sarasa@muclight.shakespeare.lit"))); - Assert.assertEquals(false, mucLightBlockingIQ.getUsers().get(JidCreate.from("hag77@shakespeare.lit"))); + assertEquals(false, mucLightBlockingIQ.getUsers().get(JidCreate.from("hag77@shakespeare.lit"))); } @Test @@ -89,7 +90,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("block1"); - Assert.assertEquals(blockingRoomsIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(blockingRoomsIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -103,7 +104,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("block2"); - Assert.assertEquals(blockingUsersIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(blockingUsersIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -119,7 +120,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("unblock1"); - Assert.assertEquals(unblockingUsersAndRoomsExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(unblockingUsersAndRoomsExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java index 44a9e067d..5d4351d0c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smackx.muclight.element.MUCLightChangeAffiliationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -46,13 +47,13 @@ public class MUCLightChangeAffiliationsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), affiliations); mucLightChangeAffiliationsIQ.setStanzaId("member1"); - Assert.assertEquals(mucLightChangeAffiliationsIQ.getTo(), "coven@muclight.shakespeare.lit"); - Assert.assertEquals(mucLightChangeAffiliationsIQ.getType(), IQ.Type.set); + assertEquals(mucLightChangeAffiliationsIQ.getTo(), "coven@muclight.shakespeare.lit"); + assertEquals(mucLightChangeAffiliationsIQ.getType(), IQ.Type.set); HashMap iqAffiliations = mucLightChangeAffiliationsIQ.getAffiliations(); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java index f03152bd1..90ba7aa3e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightElements.ConfigurationsChangeExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MUCLightConfigurationsChangeExtensionTest { @@ -46,12 +48,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("asdfghj000", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("asdfghj", configurationsChangeExtension.getVersion()); - Assert.assertEquals("To be or not to be?", configurationsChangeExtension.getSubject()); - Assert.assertNull(configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getCustomConfigs()); - Assert.assertEquals(messageWithSubjectChangeExample, configurationsMessage.toXML().toString()); + assertEquals("asdfghj000", configurationsChangeExtension.getPrevVersion()); + assertEquals("asdfghj", configurationsChangeExtension.getVersion()); + assertEquals("To be or not to be?", configurationsChangeExtension.getSubject()); + assertNull(configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getCustomConfigs()); + assertEquals(messageWithSubjectChangeExample, configurationsMessage.toXML().toString()); } @Test @@ -60,12 +62,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); - Assert.assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getSubject()); - Assert.assertNull(configurationsChangeExtension.getCustomConfigs()); - Assert.assertEquals(messageWithRoomNameChangeExample, configurationsMessage.toXML().toString()); + assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); + assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); + assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getSubject()); + assertNull(configurationsChangeExtension.getCustomConfigs()); + assertEquals(messageWithRoomNameChangeExample, configurationsMessage.toXML().toString()); } @Test @@ -74,12 +76,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); - Assert.assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getSubject()); - Assert.assertEquals("blue", configurationsChangeExtension.getCustomConfigs().get("color")); - Assert.assertEquals(messageWithConfigsChangeExample, configurationsMessage.toXML().toString()); + assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); + assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); + assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getSubject()); + assertEquals("blue", configurationsChangeExtension.getCustomConfigs().get("color")); + assertEquals(messageWithConfigsChangeExample, configurationsMessage.toXML().toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java index 036d3ad7c..971663f9e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.jivesoftware.smackx.muclight.element.MUCLightCreateIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -45,11 +46,11 @@ public class MUCLightCreateIQTest { "test", occupants); mucLightCreateIQ.setStanzaId("1c72W-50"); - Assert.assertEquals(mucLightCreateIQ.getConfiguration().getRoomName(), "test"); + assertEquals(mucLightCreateIQ.getConfiguration().getRoomName(), "test"); HashMap iqOccupants = mucLightCreateIQ.getOccupants(); - Assert.assertEquals(iqOccupants.get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); - Assert.assertEquals(iqOccupants.get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); + assertEquals(iqOccupants.get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); + assertEquals(iqOccupants.get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java index 737ada8ec..092bfee8a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.muclight.element.MUCLightDestroyIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightDestroyTest { @@ -33,7 +34,7 @@ public class MUCLightDestroyTest { public void checkDestroyMUCLightStanza() throws Exception { MUCLightDestroyIQ mucLightDestroyIQ = new MUCLightDestroyIQ(JidCreate.from("coven@muclight.shakespeare.lit")); mucLightDestroyIQ.setStanzaId("destroy1"); - Assert.assertEquals(mucLightDestroyIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), stanza); + assertEquals(mucLightDestroyIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), stanza); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java index ef543e424..782171ae1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightAffiliationsIQ; import org.jivesoftware.smackx.muclight.element.MUCLightGetAffiliationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -46,7 +47,7 @@ public class MUCLightGetAffiliationsTest { MUCLightGetAffiliationsIQ mucLightGetAffiliationsIQ = new MUCLightGetAffiliationsIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetAffiliationsIQ.setStanzaId("getmembers"); - Assert.assertEquals(getAffiliationsIQExample, mucLightGetAffiliationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getAffiliationsIQExample, mucLightGetAffiliationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -54,13 +55,13 @@ public class MUCLightGetAffiliationsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getAffiliationsResponseExample); MUCLightAffiliationsIQ mucLightAffiliationsIQ = (MUCLightAffiliationsIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightAffiliationsIQ.getVersion()); + assertEquals("123456", mucLightAffiliationsIQ.getVersion()); HashMap affiliations = mucLightAffiliationsIQ.getAffiliations(); - Assert.assertEquals(3, affiliations.size()); - Assert.assertEquals(MUCLightAffiliation.owner, affiliations.get(JidCreate.from("user1@shakespeare.lit"))); - Assert.assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user2@shakespeare.lit"))); - Assert.assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user3@shakespeare.lit"))); + assertEquals(3, affiliations.size()); + assertEquals(MUCLightAffiliation.owner, affiliations.get(JidCreate.from("user1@shakespeare.lit"))); + assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user2@shakespeare.lit"))); + assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user3@shakespeare.lit"))); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java index 3b77c8da3..8c295ab0e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java @@ -16,6 +16,9 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +28,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightConfigurationIQ; import org.jivesoftware.smackx.muclight.element.MUCLightGetConfigsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightGetConfigsTest { @@ -49,7 +51,7 @@ public class MUCLightGetConfigsTest { MUCLightGetConfigsIQ mucLightGetConfigsIQ = new MUCLightGetConfigsIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetConfigsIQ.setStanzaId("config0"); - Assert.assertEquals(getConfigsIQExample, mucLightGetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getConfigsIQExample, mucLightGetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -57,10 +59,10 @@ public class MUCLightGetConfigsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getConfigsResponseExample); MUCLightConfigurationIQ mucLightConfigurationIQ = (MUCLightConfigurationIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightConfigurationIQ.getVersion()); - Assert.assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); - Assert.assertEquals("A subject", mucLightConfigurationIQ.getConfiguration().getSubject()); - Assert.assertNull(mucLightConfigurationIQ.getConfiguration().getCustomConfigs()); + assertEquals("123456", mucLightConfigurationIQ.getVersion()); + assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); + assertEquals("A subject", mucLightConfigurationIQ.getConfiguration().getSubject()); + assertNull(mucLightConfigurationIQ.getConfiguration().getCustomConfigs()); } @Test @@ -68,13 +70,13 @@ public class MUCLightGetConfigsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getConfigsResponseExampleWithCustomConfigs); MUCLightConfigurationIQ mucLightConfigurationIQ = (MUCLightConfigurationIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightConfigurationIQ.getVersion()); - Assert.assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); - Assert.assertNull(mucLightConfigurationIQ.getConfiguration().getSubject()); + assertEquals("123456", mucLightConfigurationIQ.getVersion()); + assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); + assertNull(mucLightConfigurationIQ.getConfiguration().getSubject()); HashMap customConfigs = mucLightConfigurationIQ.getConfiguration().getCustomConfigs(); - Assert.assertEquals("blue", customConfigs.get("color")); - Assert.assertEquals("20", customConfigs.get("size")); + assertEquals("blue", customConfigs.get("color")); + assertEquals("20", customConfigs.get("size")); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java index adc6d4701..0f8581b38 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; @@ -23,8 +25,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightGetInfoIQ; import org.jivesoftware.smackx.muclight.element.MUCLightInfoIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightInfoTest { @@ -46,7 +47,7 @@ public class MUCLightInfoTest { MUCLightGetInfoIQ mucLightGetInfoIQWithVersion = new MUCLightGetInfoIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetInfoIQWithVersion.setStanzaId("getinfo1"); - Assert.assertEquals(mucLightGetInfoIQWithVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithVersion); + assertEquals(mucLightGetInfoIQWithVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithVersion); } @Test @@ -54,21 +55,21 @@ public class MUCLightInfoTest { MUCLightGetInfoIQ mucLightGetInfoIQWithoutVersion = new MUCLightGetInfoIQ( JidCreate.from("coven@muclight.shakespeare.lit"), null); mucLightGetInfoIQWithoutVersion.setStanzaId("getinfo1"); - Assert.assertEquals(mucLightGetInfoIQWithoutVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithoutVersion); + assertEquals(mucLightGetInfoIQWithoutVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithoutVersion); } @Test public void checkMUCLightInfoResult() throws Exception { IQ iqInfoResult = PacketParserUtils.parseStanza(exampleInfoResult); MUCLightInfoIQ mucLightInfoResponseIQ = (MUCLightInfoIQ) iqInfoResult; - Assert.assertEquals(mucLightInfoResponseIQ.getVersion(), "123456"); - Assert.assertEquals(mucLightInfoResponseIQ.getConfiguration().getRoomName(), "test"); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().size(), 3); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("john@test.com")), + assertEquals(mucLightInfoResponseIQ.getVersion(), "123456"); + assertEquals(mucLightInfoResponseIQ.getConfiguration().getRoomName(), "test"); + assertEquals(mucLightInfoResponseIQ.getOccupants().size(), 3); + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("john@test.com")), MUCLightAffiliation.owner); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("charlie@test.com")), + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("pep@test.com")), + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java index 41828c29b..4ca2a0586 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.muclight.element.MUCLightSetConfigsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightSetConfigsIQTest { @@ -49,7 +50,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), "A Darker Cave", customConfigs); mucLightSetConfigsIQ.setStanzaId("conf1"); - Assert.assertEquals(setConfigsIQExample, mucLightSetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(setConfigsIQExample, mucLightSetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -58,7 +59,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), "A Darker Cave", null); mucLightChangeRoomNameIQ.setStanzaId("roomName1"); - Assert.assertEquals(changeRoomNameIQExample, mucLightChangeRoomNameIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(changeRoomNameIQExample, mucLightChangeRoomNameIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -67,7 +68,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), null, "To be or not to be?", null); mucLightChangeSubjectIQ.setStanzaId("subject1"); - Assert.assertEquals(changeSubjectIQExample, mucLightChangeSubjectIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(changeSubjectIQExample, mucLightChangeSubjectIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java index ddd9f8b61..984babcde 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.push_notifications.element.DisablePushNotificationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class DisablePushNotificationsIQTest { @@ -38,7 +39,7 @@ public class DisablePushNotificationsIQTest { DisablePushNotificationsIQ disablePushNotificationsIQ = new DisablePushNotificationsIQ( JidCreate.from("push-5.client.example")); disablePushNotificationsIQ.setStanzaId("x97"); - Assert.assertEquals(disableAllNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(disableAllNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -46,7 +47,7 @@ public class DisablePushNotificationsIQTest { DisablePushNotificationsIQ disablePushNotificationsIQ = new DisablePushNotificationsIQ( JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo"); disablePushNotificationsIQ.setStanzaId("x97"); - Assert.assertEquals(disableNodeNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(disableNodeNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java index 3fe872ab5..d4d771fc3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.push_notifications.element.EnablePushNotificationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class EnablePushNotificationsIQTest { @@ -43,7 +44,7 @@ public class EnablePushNotificationsIQTest { EnablePushNotificationsIQ enablePushNotificationsIQ = new EnablePushNotificationsIQ( JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo"); enablePushNotificationsIQ.setStanzaId("x42"); - Assert.assertEquals(exampleEnableIQ, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(exampleEnableIQ, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -55,7 +56,7 @@ public class EnablePushNotificationsIQTest { JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo", publishOptions); enablePushNotificationsIQ.setStanzaId("x42"); - Assert.assertEquals(exampleEnableIQWithPublishOptions, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(exampleEnableIQWithPublishOptions, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java index 96d3ee64d..7589eb0fe 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.push_notifications.element.PushNotificationsElements.RemoteDisablingExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class RemoteDisablingPushNotificationsTest { @@ -47,23 +49,23 @@ public class RemoteDisablingPushNotificationsTest { Message message = PacketParserUtils.parseStanza(remoteDisablingExample); RemoteDisablingExtension remoteDisablingExtension = RemoteDisablingExtension.from(message); - Assert.assertEquals("yxs32uqsflafdk3iuqo", remoteDisablingExtension.getNode()); - Assert.assertEquals(JidCreate.from("user@example.com"), remoteDisablingExtension.getUserJid()); + assertEquals("yxs32uqsflafdk3iuqo", remoteDisablingExtension.getNode()); + assertEquals(JidCreate.from("user@example.com"), remoteDisablingExtension.getUserJid()); } @Test public void checkWrongRemoteDisablighPushNotifications() throws Exception { Message message1 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension1 = RemoteDisablingExtension.from(message1); - Assert.assertNull(remoteDisablingExtension1); + assertNull(remoteDisablingExtension1); Message message2 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension2 = RemoteDisablingExtension.from(message2); - Assert.assertNull(remoteDisablingExtension2); + assertNull(remoteDisablingExtension2); Message message3 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension3 = RemoteDisablingExtension.from(message3); - Assert.assertNull(remoteDisablingExtension3); + assertNull(remoteDisablingExtension3); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java index 1e1eb6158..af67ce062 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java @@ -19,16 +19,18 @@ package org.jivesoftware.smackx.reference; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.net.URI; import java.net.URISyntaxException; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.reference.element.ReferenceElement; import org.jivesoftware.smackx.reference.provider.ReferenceProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ReferenceTest extends SmackTestSuite { @@ -76,24 +78,28 @@ public class ReferenceTest extends SmackTestSuite { assertXMLEqual(xml, parsed.toXML().toString()); } - @Test(expected = IllegalArgumentException.class) + @Test public void beginGreaterEndIllegalTest() throws URISyntaxException { - new ReferenceElement(100, 10, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(100, 10, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void beginSmallerZeroTest() throws URISyntaxException { - new ReferenceElement(-1, 12, ReferenceElement.Type.data, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(-1, 12, ReferenceElement.Type.data, null, new URI("xmpp:test@test.test"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void endSmallerZeroTest() throws URISyntaxException { - new ReferenceElement(12, -2, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(12, -2, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test"))); } - @Test(expected = NullPointerException.class) + @Test public void typeArgumentNullTest() throws URISyntaxException { - new ReferenceElement(1, 2, null, null, new URI("xmpp:test@test.test")); + assertThrows(NullPointerException.class, () -> + new ReferenceElement(1, 2, null, null, new URI("xmpp:test@test.test"))); } /* diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java index 5e65ba408..4a3538343 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java @@ -26,12 +26,13 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; + import org.jivesoftware.smackx.sid.element.OriginIdElement; import org.jivesoftware.smackx.sid.element.StanzaIdElement; import org.jivesoftware.smackx.sid.provider.OriginIdProvider; import org.jivesoftware.smackx.sid.provider.StanzaIdProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StableUniqueStanzaIdTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java index d20ad6082..550650975 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java @@ -20,17 +20,19 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Map; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.spoiler.element.SpoilerElement; import org.jivesoftware.smackx.spoiler.provider.SpoilerProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class SpoilerTest extends SmackTestSuite { @@ -114,15 +116,15 @@ public class SpoilerTest extends SmackTestSuite { assertEquals(spoilerText, spoilers.get("de")); } - @Test(expected = IllegalArgumentException.class) + @Test public void spoilerCheckArgumentsNullTest() { - @SuppressWarnings("unused") - SpoilerElement spoilerElement = new SpoilerElement("de", null); + assertThrows(IllegalArgumentException.class, () -> + new SpoilerElement("de", null)); } - @Test(expected = IllegalArgumentException.class) + @Test public void spoilerCheckArgumentsEmptyTest() { - @SuppressWarnings("unused") - SpoilerElement spoilerElement = new SpoilerElement("de", ""); + assertThrows(IllegalArgumentException.class, () -> + new SpoilerElement("de", "")); } } diff --git a/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java b/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java index 795dad80d..719eaf709 100644 --- a/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java +++ b/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java @@ -18,7 +18,7 @@ package org.jivesoftware.smackx.pubsub; import org.jivesoftware.smack.packet.PacketExtension; import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; /** * @@ -35,7 +35,7 @@ public class CarExtensionProvider extends PacketExtensionProvider for (int i=0; i<2; i++) { - while (parser.next() != XmlPullParser.START_TAG); + while (parser.next() != START_ELEMENT); if (parser.getName().equals("paint")) { @@ -46,7 +46,7 @@ public class CarExtensionProvider extends PacketExtensionProvider numTires = Integer.parseInt(parser.getAttributeValue(0)); } } - while (parser.next() != XmlPullParser.END_TAG); + while (parser.next() != END_ELEMENT); return new CarExtension(color, numTires); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java index 92a569856..1b58e45b1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java @@ -22,13 +22,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.address.packet.MultipleAddresses; import org.jivesoftware.smackx.address.packet.MultipleAddresses.Type; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The MultipleAddressesProvider parses {@link MultipleAddresses} packets. @@ -43,9 +43,9 @@ public class MultipleAddressesProvider extends ExtensionElementProvider { private static final Logger LOGGER = Logger.getLogger(AMPExtensionProvider.class.getName()); @@ -67,8 +66,8 @@ public class AMPExtensionProvider extends ExtensionElementProvider boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals(AMPExtension.Rule.ELEMENT)) { String actionString = parser.getAttributeValue(null, AMPExtension.Action.ATTRIBUTE_NAME); String conditionName = parser.getAttributeValue(null, AMPExtension.Condition.ATTRIBUTE_NAME); @@ -91,7 +90,7 @@ public class AMPExtensionProvider extends ExtensionElementProvider ampExtension.addRule(rule); } } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(AMPExtension.ELEMENT)) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java index 9afb75d30..cdc47d2cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java @@ -19,8 +19,7 @@ package org.jivesoftware.smackx.attention.packet; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; /** * A PacketExtension that implements XEP-0224: Attention diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java index dcfa17d31..9f8b68a3a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java @@ -23,12 +23,12 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.blocking.element.BlockContactsIQ; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Block contact IQ provider class. @@ -44,23 +44,24 @@ public class BlockContactsIQProvider extends IQProvider { List jids = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { Jid jid = ParserUtils.getJidAttribute(parser); jids.add(jid); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java index 617d6f02b..1cf859609 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java @@ -24,12 +24,12 @@ import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.blocking.element.BlockListIQ; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Block list IQ provider class. @@ -45,11 +45,9 @@ public class BlockListIQProvider extends IQProvider { List jids = null; outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { if (jids == null) { jids = new ArrayList<>(); @@ -59,12 +57,15 @@ public class BlockListIQProvider extends IQProvider { } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java index 6192a90bc..51e88edc4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.blocking.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.blocking.element.BlockedErrorExtension; -import org.xmlpull.v1.XmlPullParser; - /** * Blocked error extension class. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java index 37fac82fa..afee9f93a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java @@ -22,13 +22,13 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.blocking.element.UnblockContactsIQ; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Unblock contact IQ provider class. @@ -44,11 +44,9 @@ public class UnblockContactsIQProvider extends IQProvider { List jids = null; outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { if (jids == null) { jids = new ArrayList<>(); @@ -57,12 +55,15 @@ public class UnblockContactsIQProvider extends IQProvider { } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java index 0b79ffada..36f820256 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Florian Schmaus + * Copyright 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.bob.BoBData; import org.jivesoftware.smackx.bob.BoBHash; import org.jivesoftware.smackx.bob.element.BoBIQ; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Bits of Binary IQ provider class. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java index f89e40f49..ddea3dfec 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java @@ -22,14 +22,14 @@ import java.util.List; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.XmlStringBuilder; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqprivate.packet.PrivateData; import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Bookmarks is used for storing and retrieving URLS and Conference rooms. @@ -224,19 +224,19 @@ public class Bookmarks implements PrivateData { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "url".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "url".equals(parser.getName())) { final BookmarkedURL urlStorage = getURLStorage(parser); if (urlStorage != null) { storage.addBookmarkedURL(urlStorage); } } - else if (eventType == XmlPullParser.START_TAG && + else if (eventType == XmlPullParser.Event.START_ELEMENT && "conference".equals(parser.getName())) { final BookmarkedConference conference = getConferenceStorage(parser); storage.addBookmarkedConference(conference); } - else if (eventType == XmlPullParser.END_TAG && "storage".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "storage".equals(parser.getName())) { done = true; } } @@ -255,12 +255,12 @@ public class Bookmarks implements PrivateData { BookmarkedURL urlStore = new BookmarkedURL(url, name, rss); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "shared_bookmark".equals(parser.getName())) { urlStore.setShared(true); } - else if (eventType == XmlPullParser.END_TAG && "url".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "url".equals(parser.getName())) { done = true; } } @@ -279,19 +279,19 @@ public class Bookmarks implements PrivateData { // Check for nickname boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "nick".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "nick".equals(parser.getName())) { String nickString = parser.nextText(); conf.setNickname(Resourcepart.from(nickString)); } - else if (eventType == XmlPullParser.START_TAG && "password".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "password".equals(parser.getName())) { conf.setPassword(parser.nextText()); } - else if (eventType == XmlPullParser.START_TAG + else if (eventType == XmlPullParser.Event.START_ELEMENT && "shared_bookmark".equals(parser.getName())) { conf.setShared(true); } - else if (eventType == XmlPullParser.END_TAG && "conference".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "conference".equals(parser.getName())) { done = true; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java index 68e36908a..f6fbf0a69 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.bytestreams.ibb.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; -import org.xmlpull.v1.XmlPullParser; - /** * Parses a close In-Band Bytestream packet. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java index f459aa671..6db9ed434 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java @@ -20,12 +20,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.bytestreams.ibb.packet.Data; import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an In-Band Bytestream data stanza which can be a stanza extension of * either an IQ stanza or a message stanza. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java index 77e1dc769..bcb10dbb8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java @@ -21,13 +21,12 @@ import java.util.Locale; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an In-Band Bytestream open packet. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java index 5ffecf1c3..1aa534dc4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java @@ -38,6 +38,7 @@ import org.jivesoftware.smack.SmackException.SmackMessageException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.StringUtils; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java index e1d236d5a..92aba36c0 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java @@ -21,13 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.Mode; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Parses a bytestream packet. @@ -51,12 +51,12 @@ public class BytestreamsProvider extends IQProvider { String host = null; String port = null; - int eventType; + XmlPullParser.Event eventType; String elementName; while (!done) { eventType = parser.next(); elementName = parser.getName(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (elementName.equals(Bytestream.StreamHost.ELEMENTNAME)) { JID = ParserUtils.getJidAttribute(parser); host = parser.getAttributeValue("", "host"); @@ -69,7 +69,7 @@ public class BytestreamsProvider extends IQProvider { toReturn.setToActivate(ParserUtils.getJidAttribute(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (elementName.equals("streamhost")) { if (port == null) { toReturn.addStreamHost(JID, host); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java index 134a45d18..c00b87dd2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java @@ -20,19 +20,18 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.caps.EntityCapsManager; import org.jivesoftware.smackx.caps.packet.CapsExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class CapsExtensionProvider extends ExtensionElementProvider { @Override public CapsExtension parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String hash, version, node; - if (parser.getEventType() == XmlPullParser.START_TAG + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && parser.getName().equalsIgnoreCase(EntityCapsManager.ELEMENT)) { hash = parser.getAttributeValue(null, "hash"); version = parser.getAttributeValue(null, "ver"); @@ -44,7 +43,7 @@ public class CapsExtensionProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java index fcfb0beaa..22d7f7498 100755 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java @@ -25,6 +25,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.commands.AdHocCommand; import org.jivesoftware.smackx.commands.AdHocCommand.Action; @@ -32,9 +34,6 @@ import org.jivesoftware.smackx.commands.AdHocCommandNote; import org.jivesoftware.smackx.commands.packet.AdHocCommandData; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The AdHocCommandDataProvider parses AdHocCommandData packets. * @@ -48,7 +47,7 @@ public class AdHocCommandDataProvider extends IQProvider { AdHocCommandData adHocCommandData = new AdHocCommandData(); DataFormProvider dataFormProvider = new DataFormProvider(); - int eventType; + XmlPullParser.Event eventType; String elementName; String namespace; adHocCommandData.setSessionID(parser.getAttributeValue("", "sessionid")); @@ -81,7 +80,7 @@ public class AdHocCommandDataProvider extends IQProvider { eventType = parser.next(); elementName = parser.getName(); namespace = parser.getNamespace(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("actions")) { String execute = parser.getAttributeValue("", "execute"); if (execute != null) { @@ -117,7 +116,7 @@ public class AdHocCommandDataProvider extends IQProvider { adHocCommandData.setError(error); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("command")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java index 280d3d0a2..39a32ec56 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java @@ -22,12 +22,11 @@ import java.util.Date; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.delay.packet.DelayInformation; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class AbstractDelayInformationProvider extends ExtensionElementProvider { @Override @@ -36,23 +35,19 @@ public abstract class AbstractDelayInformationProvider extends ExtensionElementP IOException, SmackTextParseException { String stampString = (parser.getAttributeValue("", "stamp")); String from = parser.getAttributeValue("", "from"); - String reason = null; - if (!parser.isEmptyElementTag()) { - int event = parser.next(); - switch (event) { - case XmlPullParser.TEXT: - reason = parser.getText(); - parser.next(); - break; - case XmlPullParser.END_TAG: - reason = ""; - break; - default: - // TODO: Should be SmackParseException. - throw new IOException("Unexpected event: " + event); - } - } else { + final String reason; + XmlPullParser.Event event = parser.next(); + switch (event) { + case TEXT_CHARACTERS: + reason = parser.getText(); parser.next(); + break; + case END_ELEMENT: + reason = null; + break; + default: + // TODO: Should be SmackParseException. + throw new IOException("Unexpected event: " + event); } Date stamp = parseDate(stampString); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java index 16d244066..561e41038 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java @@ -23,12 +23,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The DiscoverInfoProvider parses Service Discovery information packets. * @@ -48,8 +47,8 @@ public class DiscoverInfoProvider extends IQProvider { String lang = ""; discoverInfo.setNode(parser.getAttributeValue("", "node")); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { final String name = parser.getName(); final String namespace = parser.getNamespace(); if (namespace.equals(DiscoverInfo.NAMESPACE)) { @@ -71,7 +70,7 @@ public class DiscoverInfoProvider extends IQProvider { else { PacketParserUtils.addExtensionElement(discoverInfo, parser, xmlEnvironment); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("identity")) { // Create a new identity and add it to the discovered info. identity = new DiscoverInfo.Identity(category, type, identityName, lang); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java index bc9a8f3db..ed687c19d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java @@ -22,12 +22,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.disco.packet.DiscoverItems; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The DiscoverInfoProvider parses Service Discovery items packets. @@ -48,16 +48,16 @@ public class DiscoverItemsProvider extends IQProvider { String node = ""; discoverItems.setNode(parser.getAttributeValue("", "node")); while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "item".equals(parser.getName())) { + if (eventType == XmlPullParser.Event.START_ELEMENT && "item".equals(parser.getName())) { // Initialize the variables from the parsed XML jid = ParserUtils.getJidAttribute(parser); name = parser.getAttributeValue("", "name"); node = parser.getAttributeValue("", "node"); action = parser.getAttributeValue("", "action"); } - else if (eventType == XmlPullParser.END_TAG && "item".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "item".equals(parser.getName())) { // Create a new Item and add it to DiscoverItems. item = new DiscoverItems.Item(jid); item.setName(name); @@ -65,7 +65,7 @@ public class DiscoverItemsProvider extends IQProvider { item.setAction(action); discoverItems.addItem(item); } - else if (eventType == XmlPullParser.END_TAG && "query".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "query".equals(parser.getName())) { done = true; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java index 9bc29ea6a..a29130469 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java @@ -26,6 +26,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.Stanza; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager; import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest; import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java index 919f0dae5..e8bd8b4fe 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java @@ -25,14 +25,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.delay.packet.DelayInformation; import org.jivesoftware.smackx.delay.provider.DelayInformationProvider; import org.jivesoftware.smackx.forward.packet.Forwarded; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * This class implements the {@link ExtensionElementProvider} to parse * forwarded messages from a packet. It will return a {@link Forwarded} stanza extension. @@ -51,9 +50,9 @@ public class ForwardedProvider extends ExtensionElementProvider { Stanza packet = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -72,11 +71,14 @@ public class ForwardedProvider extends ExtensionElementProvider { LOGGER.warning("Unsupported forwarded packet type: " + name); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java index 782c70ac8..5bdb2b41b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java @@ -23,12 +23,11 @@ import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseExcept import org.jivesoftware.smack.parsing.SmackParsingException.SmackUriSyntaxParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.geoloc.packet.GeoLocation; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class GeoLocationProvider extends ExtensionElementProvider { @Override @@ -38,9 +37,9 @@ public class GeoLocationProvider extends ExtensionElementProvider { GeoLocation.Builder builder = GeoLocation.builder(); outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "accuracy": @@ -117,10 +116,14 @@ public class GeoLocationProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java index ddb067f54..80c4bfc28 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java @@ -22,10 +22,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * A last activity IQ for retrieving information about the last activity associated with a Jabber ID. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java index 792fb6a8f..13fcbfcd2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java @@ -31,6 +31,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqprivate.packet.DefaultPrivateData; import org.jivesoftware.smackx.iqprivate.packet.PrivateData; @@ -38,8 +40,6 @@ import org.jivesoftware.smackx.iqprivate.packet.PrivateDataIQ; import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; import org.jxmpp.util.XmppStringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Manages private data, which is a mechanism to allow users to store arbitrary XML @@ -241,8 +241,8 @@ public final class PrivateDataManager extends Manager { PrivateData privateData = null; boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elementName = parser.getName(); String namespace = parser.getNamespace(); // See if any objects are registered to handle this private data type. @@ -256,23 +256,20 @@ public final class PrivateDataManager extends Manager { DefaultPrivateData data = new DefaultPrivateData(elementName, namespace); boolean finished = false; while (!finished) { - int event = parser.next(); - if (event == XmlPullParser.START_TAG) { + XmlPullParser.Event event = parser.next(); + if (event == XmlPullParser.Event.START_ELEMENT) { String name = parser.getName(); - // If an empty element, set the value with the empty string. - if (parser.isEmptyElementTag()) { + event = parser.next(); + if (event == XmlPullParser.Event.TEXT_CHARACTERS) { + String value = parser.getText(); + data.setValue(name, value); + } + else if (event == XmlPullParser.Event.END_ELEMENT) { + // If an empty element, set the value with the empty string. 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) { + else if (event == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(elementName)) { finished = true; } @@ -281,7 +278,7 @@ public final class PrivateDataManager extends Manager { privateData = data; } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java index a4332d667..6c8f72d3e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java @@ -19,10 +19,10 @@ package org.jivesoftware.smackx.iqprivate.provider; import java.io.IOException; -import org.jivesoftware.smackx.iqprivate.packet.PrivateData; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.iqprivate.packet.PrivateData; /** * An interface for parsing custom private data. Each PrivateDataProvider must diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java index ffcd08b7d..33bbed247 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java @@ -28,12 +28,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqregister.packet.Registration; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class RegistrationProvider extends IQProvider { @Override @@ -43,15 +42,15 @@ public class RegistrationProvider extends IQProvider { List packetExtensions = new LinkedList<>(); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // Any element that's in the jabber:iq:register namespace, // attempt to parse it if it's in the form value. if (parser.getNamespace().equals(Registration.NAMESPACE)) { String name = parser.getName(); String value = ""; - if (parser.next() == XmlPullParser.TEXT) { + if (parser.next() == XmlPullParser.Event.TEXT_CHARACTERS) { value = parser.getText(); } // Ignore instructions, but anything else should be added to the map. @@ -67,7 +66,7 @@ public class RegistrationProvider extends IQProvider { PacketParserUtils.addExtensionElement(packetExtensions, parser, xmlEnvironment); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(IQ.QUERY_ELEMENT)) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java index 3700b1596..51b5b505b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iqregister.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iqregister.packet.Registration; -import org.xmlpull.v1.XmlPullParser; - public class RegistrationStreamFeatureProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java index 851621777..328cdfccf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java @@ -22,12 +22,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqversion.packet.Version; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class VersionProvider extends IQProvider { @Override @@ -35,9 +34,9 @@ public class VersionProvider extends IQProvider { String name = null, version = null, os = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); switch (tagName) { case "name": @@ -51,10 +50,14 @@ public class VersionProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth && parser.getName().equals(IQ.QUERY_ELEMENT)) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } if (name == null && version == null && os == null) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java index 2322a06ac..b74a1d6e9 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; public interface JingleHandler { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java index 5f74e70a3..71efc73e6 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java @@ -31,6 +31,7 @@ import org.jivesoftware.smack.iqrequest.IQRequestHandler.Mode; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.util.StringUtils; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java index 1ae4ac650..79d6cfe70 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java @@ -23,6 +23,7 @@ import java.util.concurrent.Future; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; import org.jivesoftware.smackx.jingle.transports.JingleTransportSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java index a57ede3ff..b20ddfede 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; public interface JingleSessionHandler { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java index 9a9941a07..661abbe0f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java @@ -23,6 +23,7 @@ import java.util.WeakHashMap; import org.jivesoftware.smack.Manager; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java index e2292ee0b..4e5c6eddf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java @@ -21,6 +21,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java index f4e348e77..fd4da5c19 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.JingleContentDescription; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class JingleContentDescriptionProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java index 249ec52d9..11d2df73b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java @@ -20,12 +20,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class JingleContentTransportProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java index c588e4f61..f6b052bcb 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.jingle.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.jingle.element.JingleError; -import org.xmlpull.v1.XmlPullParser; - public class JingleErrorProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java index 0d7a4e46e..8ff1e269b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java @@ -25,6 +25,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.StandardExtensionElementProvider; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; @@ -37,8 +39,6 @@ import org.jivesoftware.smackx.jingle.element.UnknownJingleContentDescription; import org.jivesoftware.smackx.jingle.element.UnknownJingleContentTransport; import org.jxmpp.jid.FullJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class JingleProvider extends IQProvider { @@ -65,9 +65,9 @@ public class JingleProvider extends IQProvider { outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); switch (tagName) { case JingleContent.ELEMENT: @@ -92,10 +92,14 @@ public class JingleProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -123,9 +127,9 @@ public class JingleProvider extends IQProvider { } outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); String namespace = parser.getNamespace(); switch (tagName) { @@ -160,10 +164,14 @@ public class JingleProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java index 96fd3b54a..bfc0d1a5d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.jingle.transports; import org.jivesoftware.smack.AbstractConnectionListener; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java index 004379f8e..a90fb020f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle.transports; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java index 63dada1ae..ccc30f80d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle.transports.jingle_ibb; import java.util.WeakHashMap; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.provider.JingleContentProviderManager; import org.jivesoftware.smackx.jingle.transports.JingleTransportManager; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java index 1254f33b4..87ca1fd13 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java @@ -22,6 +22,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.BytestreamListener; import org.jivesoftware.smackx.bytestreams.BytestreamRequest; import org.jivesoftware.smackx.bytestreams.BytestreamSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java index c45bc46f0..061ac0b0e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java @@ -17,11 +17,11 @@ package org.jivesoftware.smackx.jingle.transports.jingle_ibb.provider; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.jingle.provider.JingleContentTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; -import org.xmlpull.v1.XmlPullParser; - /** * Parse JingleByteStreamTransport elements. */ diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java index 52c4289a6..60b1e9f88 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java @@ -27,6 +27,7 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Proxy; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java index 578f2ae22..3f907b0cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java @@ -27,6 +27,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamSession; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Client; import org.jivesoftware.smackx.bytestreams.socks5.Socks5ClientForInitiator; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java index 407b6ad88..18d58639e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java @@ -21,6 +21,7 @@ import java.util.List; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.jivesoftware.smackx.jingle.element.JingleContentTransportCandidate; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java index 67f5562ee..3adbf9f4c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java @@ -21,6 +21,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.element.JingleContentTransportCandidate; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java index 8ca592144..e21cd77bf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.jingle.element.JingleContentTransportInfo; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java index 943be425e..153fee447 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java @@ -24,12 +24,13 @@ import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.Jing import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_PORT; import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_PRIORITY; import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_TYPE; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.jivesoftware.smackx.jingle.provider.JingleContentTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; @@ -37,9 +38,6 @@ import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTr import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportInfo; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportInfo.JingleS5BCandidateTransportInfo; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for JingleSocks5BytestreamTransport elements. */ @@ -62,10 +60,10 @@ public class JingleS5BTransportProvider extends JingleContentTransportProvider { private static final Logger LOGGER = Logger.getLogger(JivePropertiesExtensionProvider.class.getName()); @@ -58,8 +57,8 @@ public class JivePropertiesExtensionProvider extends ExtensionElementProvider properties = new HashMap<>(); while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("property")) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("property")) { // Parse a property boolean done = false; String name = null; @@ -68,7 +67,7 @@ public class JivePropertiesExtensionProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java index da79bd948..ce7366447 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.message_correct.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension; -import org.xmlpull.v1.XmlPullParser; - /** * A ExtensionElementProvider for the MessageCorrectExtension. As * MessageCorrection elements have only the ID of the message to replace. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java index 2abe9af10..cc644bd07 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.mood; import org.jivesoftware.smack.packet.Message; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.jxmpp.jid.BareJid; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java index d8cdd1678..a341bffcc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java @@ -28,6 +28,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.provider.ProviderManager; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java index 5db5f4784..192865faf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java @@ -21,6 +21,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.mood.Mood; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java index 42632a639..dfcedfef3 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java @@ -20,10 +20,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.mood.element.MoodConcretisation; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.mood.element.MoodConcretisation; public abstract class MoodConcretisationProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java index 3f3158e65..c9814b091 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java @@ -16,9 +16,6 @@ */ package org.jivesoftware.smackx.mood.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -27,13 +24,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.mood.Mood; import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class MoodProvider extends ExtensionElementProvider { private static final Logger LOGGER = Logger.getLogger(MoodProvider.class.getName()); @@ -47,12 +44,12 @@ public class MoodProvider extends ExtensionElementProvider { MoodConcretisation concretisation = null; outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); String namespace = parser.getNamespace(); switch (tag) { - case START_TAG: + case START_ELEMENT: if (MoodElement.ELEM_TEXT.equals(name)) { text = parser.nextText(); continue outerloop; @@ -76,12 +73,17 @@ public class MoodProvider extends ExtensionElementProvider { throw new XmlPullParserException("Unknown mood value: " + name + " encountered."); } - case END_TAG: + case END_ELEMENT: if (MoodElement.ELEMENT.equals(name)) { MoodElement.MoodSubjectElement subjectElement = (mood == null && concretisation == null) ? null : new MoodElement.MoodSubjectElement(mood, concretisation); return new MoodElement(subjectElement, text); } + break; + + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java index 1fd7d40a4..bc59b24ea 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java @@ -19,10 +19,10 @@ package org.jivesoftware.smackx.mood.provider; import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smackx.mood.element.MoodConcretisation; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.mood.element.MoodConcretisation; /** * Simple {@link MoodConcretisationProvider} implementation, suitable for really simple {@link MoodConcretisation}s, diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java index 12f882adc..6d870ba17 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * A group chat invitation stanza extension, which is used to invite other diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java index 7e3671772..615a21589 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.packet.MUCAdmin; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The MUCAdminProvider parses MUCAdmin packets. (@see MUCAdmin) * @@ -40,13 +39,13 @@ public class MUCAdminProvider extends IQProvider { MUCAdmin mucAdmin = new MUCAdmin(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { mucAdmin.addItem(MUCParserUtils.parseItem(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java index df58a271b..4acdbd5f6 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java @@ -23,12 +23,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.packet.MUCOwner; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The MUCOwnerProvider parses MUCOwner packets. (@see MUCOwner) * @@ -41,8 +40,8 @@ public class MUCOwnerProvider extends IQProvider { MUCOwner mucOwner = new MUCOwner(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { mucOwner.addItem(MUCParserUtils.parseItem(parser)); } @@ -54,7 +53,7 @@ public class MUCOwnerProvider extends IQProvider { PacketParserUtils.addExtensionElement(mucOwner, parser, xmlEnvironment); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java index 4dff7f255..897fc131b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java @@ -19,6 +19,8 @@ package org.jivesoftware.smackx.muc.provider; import java.io.IOException; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.MUCAffiliation; import org.jivesoftware.smackx.muc.MUCRole; @@ -28,8 +30,6 @@ import org.jivesoftware.smackx.muc.packet.MUCItem; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class MUCParserUtils { public static MUCItem parseItem(XmlPullParser parser) throws XmlPullParserException, IOException { @@ -42,9 +42,9 @@ public class MUCParserUtils { Resourcepart actorNick = null; String reason = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "actor": @@ -62,11 +62,14 @@ public class MUCParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new MUCItem(affiliation, role, actor, reason, jid, nick, actorNick); @@ -77,9 +80,9 @@ public class MUCParserUtils { final EntityBareJid jid = ParserUtils.getBareJidAttribute(parser); String reason = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); switch (name) { case "reason": @@ -87,11 +90,14 @@ public class MUCParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (initialDepth == parser.getDepth()) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new Destroy(jid, reason); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java index c702f00c0..d96f1fc42 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java @@ -22,13 +22,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.packet.MUCUser; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The MUCUserProvider parses packets with extended presence information about @@ -51,7 +51,7 @@ public class MUCUserProvider extends ExtensionElementProvider { MUCUser mucUser = new MUCUser(); outerloop: while (true) { switch (parser.next()) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (parser.getName()) { case "invite": mucUser.setInvite(parseInvite(parser)); @@ -74,11 +74,14 @@ public class MUCUserProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -91,13 +94,13 @@ public class MUCUserProvider extends ExtensionElementProvider { EntityJid from = ParserUtils.getEntityJidAttribute(parser, "from"); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("reason")) { reason = parser.nextText(); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("invite")) { break outerloop; } @@ -112,13 +115,13 @@ public class MUCUserProvider extends ExtensionElementProvider { EntityBareJid from = ParserUtils.getBareJidAttribute(parser, "from"); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("reason")) { reason = parser.nextText(); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("decline")) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java index 495ba586b..0a46d91d4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java @@ -20,12 +20,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.nick.packet.Nick; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class NickProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java index f1b866bc8..0bbb078ba 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * OfflineMessageInfo is an extension included in the retrieved offline messages requested by @@ -110,11 +109,11 @@ public class OfflineMessageInfo implements ExtensionElement { OfflineMessageInfo info = new OfflineMessageInfo(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) info.setNode(parser.getAttributeValue("", "node")); - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("offline")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java index 889c3563b..f534f7d62 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java @@ -25,9 +25,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Represents a request to get some or all the offline messages of a user. This class can also @@ -205,8 +204,8 @@ public class OfflineMessageRequest extends IQ { OfflineMessageRequest request = new OfflineMessageRequest(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { request.addItem(parseItem(parser)); } @@ -216,7 +215,7 @@ public class OfflineMessageRequest extends IQ { else if (parser.getName().equals("fetch")) { request.setFetch(true); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("offline")) { done = true; } @@ -233,8 +232,8 @@ public class OfflineMessageRequest extends IQ { item.setAction(parser.getAttributeValue("", "action")); item.setJid(parser.getAttributeValue("", "jid")); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.END_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("item")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java index 9086720d0..6e032bf2e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java @@ -20,12 +20,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.ping.packet.Ping; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class PingProvider extends IQProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java index 411042e3f..28d6f957e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java @@ -22,13 +22,12 @@ import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.privacy.packet.Privacy; import org.jivesoftware.smackx.privacy.packet.PrivacyItem; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The PrivacyProvider parses {@link Privacy} packets. {@link Privacy} * Parses the query sub-document and creates an instance of {@link Privacy}. @@ -45,8 +44,8 @@ public class PrivacyProvider extends IQProvider { Privacy privacy = new Privacy(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // CHECKSTYLE:OFF if (parser.getName().equals("active")) { String activeName = parser.getAttributeValue("", "name"); @@ -69,7 +68,7 @@ public class PrivacyProvider extends IQProvider { parseList(parser, privacy); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } @@ -85,15 +84,15 @@ public class PrivacyProvider extends IQProvider { String listName = parser.getAttributeValue("", "name"); ArrayList items = new ArrayList<>(); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { // CHECKSTYLE:OFF items.add(parseItem(parser)); // CHECKSTYLE:ON } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("list")) { done = true; } @@ -152,9 +151,9 @@ public class PrivacyProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "iq": @@ -171,10 +170,14 @@ public class PrivacyProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java index 0fec92dfe..9bdaaef15 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java @@ -27,7 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; * extensions. This effectively extends the idea of an extension within one of the * top level {@link Stanza} types to consider any embedded element to be an extension * of its parent. This more easily enables the usage of some of Smacks parsing - * utilities such as {@link PacketParserUtils#parseExtensionElement(String, String, org.xmlpull.v1.XmlPullParser, org.jivesoftware.smack.packet.XmlEnvironment)} to be used + * utilities such as {@link PacketParserUtils#parseExtensionElement(String, String, org.jivesoftware.smack.xml.XmlPullParser, org.jivesoftware.smack.packet.XmlEnvironment)} to be used * to parse any element of the XML being parsed. * *

Top level extensions have only one element, but they can have multiple children, or diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java index 529ff1fa1..5459a91d1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * The default payload representation for {@link PayloadItem#getPayload()}. It simply diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java index fdf612902..ecdb5deb1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java @@ -21,12 +21,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.Affiliation; import org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace; import org.jxmpp.jid.BareJid; -import org.xmlpull.v1.XmlPullParser; /** * Parses the affiliation element out of the reply stanza from the server diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java index 89319c8d9..4c7d0e7ce 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java @@ -24,6 +24,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.pubsub.Item; import org.jivesoftware.smackx.pubsub.Item.ItemNamespace; @@ -31,9 +33,6 @@ import org.jivesoftware.smackx.pubsub.PayloadItem; import org.jivesoftware.smackx.pubsub.SimplePayload; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an item element as is defined in both the {@link PubSubNamespace#basic} and * {@link PubSubNamespace#event} namespaces. To parse the item contents, it will use whatever @@ -51,9 +50,9 @@ public class ItemProvider extends ExtensionElementProvider { String xmlns = parser.getNamespace(); ItemNamespace itemNamespace = ItemNamespace.fromXmlns(xmlns); - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if (tag == XmlPullParser.END_TAG) { + if (tag == XmlPullParser.Event.END_ELEMENT) { return new Item(itemNamespace, id, node); } else { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java index 2435b3c29..1faf9ea59 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java @@ -23,13 +23,12 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses the root PubSub stanza extensions of the {@link IQ} stanza and returns * a {@link PubSub} instance. @@ -44,16 +43,19 @@ public class PubSubProvider extends IQProvider { PubSub pubsub = new PubSub(pubSubNamespace); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: PacketParserUtils.addExtensionElement(pubsub, parser, xmlEnvironment); break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return pubsub; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java index 306258503..88f3c2e82 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java @@ -21,12 +21,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.pubsub.Subscription; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Parses the subscription element out of the PubSub IQ message from @@ -44,17 +44,17 @@ public class SubscriptionProvider extends ExtensionElementProvider String state = parser.getAttributeValue(null, "subscription"); boolean isRequired = false; - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("subscribe-options")) { + if ((tag == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("subscribe-options")) { tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("required")) + if ((tag == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("required")) isRequired = true; - while (tag != XmlPullParser.END_TAG && !parser.getName().equals("subscribe-options")) tag = parser.next(); + while (tag != XmlPullParser.Event.END_ELEMENT && !parser.getName().equals("subscribe-options")) tag = parser.next(); } - while (parser.getEventType() != XmlPullParser.END_TAG) parser.next(); + while (parser.getEventType() != XmlPullParser.Event.END_ELEMENT) parser.next(); return new Subscription(jid, nodeId, subId, (state == null ? null : Subscription.State.valueOf(state)), isRequired); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java index 4d867a9d9..0ecef64f7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.packet.id.StanzaIdUtil; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Represents a message delivery receipt request entry as specified by diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java index 0ee24acfe..521810a45 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2016 Florian Schmaus + * Copyright © 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.rsm.packet.RSMSet; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class RSMSetProvider extends ExtensionElementProvider { public static final RSMSetProvider INSTANCE = new RSMSetProvider(); @@ -44,9 +43,9 @@ public class RSMSetProvider extends ExtensionElementProvider { int firstIndex = -1; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "after": @@ -74,10 +73,14 @@ public class RSMSetProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new RSMSet(after, before, count, index, last, max, firstString, diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java index 90879e415..702e494ea 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java @@ -21,13 +21,12 @@ import java.util.ArrayList; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.Form; import org.jivesoftware.smackx.xdata.FormField; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * SimpleUserSearch is used to support the non-dataform type of XEP 55. This provides * the mechanism for allowing always type ReportedData to be returned by any search result, @@ -109,16 +108,16 @@ class SimpleUserSearch extends IQ { fields.add(field); } - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("item")) { + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("item")) { fields = new ArrayList<>(); } - else if (eventType == XmlPullParser.END_TAG && parser.getName().equals("item")) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getName().equals("item")) { ReportedData.Row row = new ReportedData.Row(fields); data.addRow(row); } - else if (eventType == XmlPullParser.START_TAG) { + else if (eventType == XmlPullParser.Event.START_ELEMENT) { String name = parser.getName(); String value = parser.nextText(); @@ -141,7 +140,7 @@ class SimpleUserSearch extends IQ { data.addColumn(column); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java index a8921b772..c99cb6c1a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java @@ -28,14 +28,14 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.Form; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jxmpp.jid.DomainBareJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Implements the protocol currently used to search information repositories on the Jabber network. To date, the jabber:iq:search protocol @@ -136,21 +136,21 @@ public class UserSearch extends SimpleIQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("instructions")) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("instructions")) { buildDataForm(simpleUserSearch, parser.nextText(), parser, xmlEnvironment); return simpleUserSearch; } - else if (eventType == XmlPullParser.START_TAG && parser.getName().equals("item")) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("item")) { simpleUserSearch.parseItems(parser); return simpleUserSearch; } - else if (eventType == XmlPullParser.START_TAG && parser.getNamespace().equals("jabber:x:data")) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getNamespace().equals("jabber:x:data")) { // Otherwise, it must be a packet extension. search = new UserSearch(); PacketParserUtils.addExtensionElement(search, parser, xmlEnvironment); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } @@ -171,9 +171,9 @@ public class UserSearch extends SimpleIQ { dataForm.setTitle("User Search"); dataForm.addInstruction(instructions); while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && !parser.getNamespace().equals("jabber:x:data")) { + if (eventType == XmlPullParser.Event.START_ELEMENT && !parser.getNamespace().equals("jabber:x:data")) { String name = parser.getName(); FormField field = new FormField(name); @@ -194,12 +194,12 @@ public class UserSearch extends SimpleIQ { field.setType(FormField.Type.text_single); dataForm.addField(field); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } } - else if (eventType == XmlPullParser.START_TAG && parser.getNamespace().equals("jabber:x:data")) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getNamespace().equals("jabber:x:data")) { PacketParserUtils.addExtensionElement(search, parser, xmlEnvironment); done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java index 6427d46e3..82517631c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java @@ -23,9 +23,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * IQ stanza used for discovering the user's shared groups and for getting the answer back @@ -77,11 +76,11 @@ public class SharedGroupsInfo extends IQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("group")) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("group")) { groupsInfo.getGroups().add(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("sharedgroup")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java index d145a7aa6..a0e2cf452 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java @@ -20,12 +20,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.shim.packet.Header; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses the header element as defined in Stanza Headers and Internet Metadata (SHIM). * @@ -39,11 +38,11 @@ public class HeaderProvider extends ExtensionElementProvider

{ parser.next(); - if (parser.getEventType() == XmlPullParser.TEXT) { + if (parser.getEventType() == XmlPullParser.Event.TEXT_CHARACTERS) { value = parser.getText(); } - while (parser.getEventType() != XmlPullParser.END_TAG) { + while (parser.getEventType() != XmlPullParser.Event.END_ELEMENT) { parser.next(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java index b724e93da..f1719682c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java @@ -25,6 +25,8 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.si.packet.StreamInitiation; import org.jivesoftware.smackx.si.packet.StreamInitiation.File; @@ -32,8 +34,6 @@ import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The StreamInitiationProvider parses StreamInitiation packets. @@ -66,14 +66,13 @@ public class StreamInitiationProvider extends IQProvider { DataForm form = null; DataFormProvider dataFormProvider = new DataFormProvider(); - int eventType; String elementName; String namespace; while (!done) { - eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); elementName = parser.getName(); namespace = parser.getNamespace(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (elementName.equals("file")) { name = parser.getAttributeValue("", "name"); size = parser.getAttributeValue("", "size"); @@ -87,7 +86,7 @@ public class StreamInitiationProvider extends IQProvider { && namespace.equals("jabber:x:data")) { form = dataFormProvider.parse(parser); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (elementName.equals("si")) { done = true; } else if (elementName.equals("file")) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java index a45aa6db5..6aa7140f8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.vcardtemp.packet.VCard; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * vCard provider. * @@ -74,9 +73,9 @@ public class VCardProvider extends IQProvider { String name = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "N": @@ -107,12 +106,13 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.TEXT: + case TEXT_CHARACTERS: if (initialDepth + 1 == parser.getDepth()) { - vCard.setField(name, parser.getText()); + String text = parser.getText(); + vCard.setField(name, text); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -129,9 +129,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); boolean isWork = true; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if ("HOME".equals(name)) { isWork = false; @@ -149,7 +149,7 @@ public class VCardProvider extends IQProvider { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -166,9 +166,9 @@ public class VCardProvider extends IQProvider { String telLabel = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if ("HOME".equals(name)) { isWork = false; @@ -196,7 +196,7 @@ public class VCardProvider extends IQProvider { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -211,9 +211,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "ORGNAME": @@ -226,7 +226,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -242,9 +242,9 @@ public class VCardProvider extends IQProvider { boolean isWork = false; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "WORK": @@ -262,7 +262,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -277,9 +277,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "FAMILY": @@ -301,7 +301,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -319,9 +319,9 @@ public class VCardProvider extends IQProvider { String mimetype = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "BINVAL": @@ -334,7 +334,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java index 502277661..cdf95ddfc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java @@ -26,6 +26,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.RosterPacket; import org.jivesoftware.smack.roster.provider.RosterPacketProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; @@ -34,9 +36,6 @@ import org.jivesoftware.smackx.xdatalayout.provider.DataLayoutProvider; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.provider.DataValidationProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The DataFormProvider parses DataForm packets. * @@ -51,9 +50,9 @@ public class DataFormProvider extends ExtensionElementProvider { DataForm.Type dataFormType = DataForm.Type.fromString(parser.getAttributeValue("", "type")); DataForm dataForm = new DataForm(dataFormType); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -86,11 +85,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return dataForm; @@ -111,9 +113,9 @@ public class DataFormProvider extends ExtensionElementProvider { formField.setLabel(parser.getAttributeValue("", "label")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -137,11 +139,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return formField; @@ -151,9 +156,9 @@ public class DataFormProvider extends ExtensionElementProvider { final int initialDepth = parser.getDepth(); List fields = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "field": @@ -161,11 +166,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new DataForm.Item(fields); @@ -175,9 +183,9 @@ public class DataFormProvider extends ExtensionElementProvider { final int initialDepth = parser.getDepth(); List fields = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "field": @@ -185,11 +193,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new DataForm.ReportedData(fields); @@ -200,9 +211,9 @@ public class DataFormProvider extends ExtensionElementProvider { FormField.Option option = null; String label = parser.getAttributeValue("", "label"); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "value": @@ -210,11 +221,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return option; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java index f66b23689..ff4bef1d7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java @@ -19,6 +19,9 @@ package org.jivesoftware.smackx.xdatalayout.provider; import java.io.IOException; import java.util.List; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.xdatalayout.packet.DataLayout; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.DataFormLayoutElement; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Fieldref; @@ -26,9 +29,6 @@ import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Reportedref; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Section; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Text; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Extension Provider for Page layout of forms. * @@ -52,9 +52,9 @@ public class DataLayoutProvider { private static void parseLayout(List layout, XmlPullParser parser) throws XmlPullParserException, IOException { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (parser.getName()) { case Text.ELEMENT: layout.add(new Text(parser.nextText())); @@ -72,11 +72,14 @@ public class DataLayoutProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } @@ -85,8 +88,8 @@ public class DataLayoutProvider { final int initialDepth = parser.getDepth(); Fieldref fieldref = new Fieldref(parser.getAttributeValue("", "var")); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.END_TAG && parser.getDepth() == initialDepth) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) { break outerloop; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java index 67b82447a..82f636125 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java @@ -20,6 +20,8 @@ import java.io.IOException; import java.util.logging.Logger; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; @@ -28,9 +30,6 @@ import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.OpenValida import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RegexValidateElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Extension Provider for Data validation of forms. * @@ -47,9 +46,9 @@ public class DataValidationProvider { ListRange listRange = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case OpenValidateElement.METHOD: @@ -80,7 +79,7 @@ public class DataValidationProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { if (dataValidation == null) { // XEP-122 § 3.2 states that "If no validation method is specified, @@ -91,6 +90,9 @@ public class DataValidationProvider { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return dataValidation; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java index 6335daedb..71f15fe53 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software, 2014 Florian Schmaus + * Copyright 2003-2007 Jive Software, 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,11 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xhtmlim.packet.XHTMLExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The XHTMLExtensionProvider parses XHTML packets. * @@ -40,13 +39,13 @@ public class XHTMLExtensionProvider extends ExtensionElementProvider"; // @formatter:on - CapsExtension capsExtension = TestUtils.parseExtensionElement(capsExtensionString); + CapsExtension capsExtension = SmackTestUtil.parse(capsExtensionString, CapsExtensionProvider.class, parserKind); assertNotNull(capsExtension); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java index 7a4c6756c..5b4b0eba0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java @@ -32,6 +32,8 @@ import javax.xml.parsers.FactoryConfigurationError; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.delay.DelayInformationManager; @@ -40,8 +42,6 @@ import org.jivesoftware.smackx.delay.packet.DelayInformation; import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class DelayInformationTest extends InitExtensions { @@ -76,7 +76,7 @@ public class DelayInformationTest extends InitExtensions { assertEquals(date, delayInfo.getStamp()); assertEquals("Offline Storage", delayInfo.getReason()); - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("x", parser.getName()); control = XMLBuilder.create("x") @@ -92,7 +92,7 @@ public class DelayInformationTest extends InitExtensions { assertEquals(date, delayInfo.getStamp()); assertNull(delayInfo.getReason()); - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("x", parser.getName()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java index e24ad2ef4..59e8b42f4 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertThat; import java.util.Properties; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.delay.packet.DelayInformation; import org.jivesoftware.smackx.forward.packet.Forwarded; @@ -31,7 +32,6 @@ import org.jivesoftware.smackx.forward.provider.ForwardedProvider; import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ForwardedTest { @@ -62,7 +62,7 @@ public class ForwardedTest { assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("forwarded", parser.getName()); } @@ -90,7 +90,7 @@ public class ForwardedTest { assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("forwarded", parser.getName()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java index bd1a430a8..a1277f86e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java @@ -22,6 +22,7 @@ import static junit.framework.TestCase.assertNotSame; import static junit.framework.TestCase.assertNull; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.element.JingleContent; import org.junit.Test; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java index 6ca6d88a9..3cd884199 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java @@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.jingle.element.JingleError; import org.jivesoftware.smackx.jingle.provider.JingleErrorProvider; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java index e10a879f2..c70c9f9ec 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java index 4655a621b..6faa9bdc0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java @@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; import org.jivesoftware.smackx.jingle.transports.jingle_ibb.provider.JingleIBBTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java index 68eb4ab57..294e37768 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java @@ -21,14 +21,14 @@ import static org.junit.Assert.assertEquals; import java.io.IOException; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContentDescription; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class JingleProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java index 68ca37f06..c049d27cc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java @@ -23,8 +23,8 @@ import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import org.jivesoftware.smack.test.util.SmackTestSuite; - import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java index 59bee0cf0..02baa5bd9 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java @@ -25,12 +25,13 @@ import java.util.Date; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.last_interaction.element.IdleElement; import org.jivesoftware.smackx.last_interaction.provider.IdleProvider; import org.junit.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; public class IdleTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java index 5d6247e28..86b63780e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.message_correct; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension; -import org.junit.Assert; import org.junit.Test; public class MessageCorrectExtensionTest { @@ -42,11 +43,11 @@ public class MessageCorrectExtensionTest { Message initialMessage = PacketParserUtils.parseStanza(initialMessageXml); MessageCorrectExtension messageCorrectExtension = new MessageCorrectExtension(idInitialMessage); - Assert.assertEquals(messageCorrectExtension.toXML().toString(), messageCorrectionXml.toString()); + assertEquals(messageCorrectExtension.toXML().toString(), messageCorrectionXml.toString()); initialMessage.addExtension(messageCorrectExtension); - Assert.assertEquals(initialMessage.toXML().toString(), expectedXml.toString()); + assertEquals(initialMessage.toXML().toString(), expectedXml.toString()); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java index 346b990bf..8bfaf9d8a 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java @@ -24,13 +24,14 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; import org.jivesoftware.smackx.mood.provider.MoodProvider; import org.jivesoftware.smackx.mood.provider.SimpleMoodConcretisationProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * This test checks, if extending XEP-0107: User Mood using custom mood concretisations works. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java index 9916cfaf1..2d68cc52e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java @@ -23,12 +23,13 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.jivesoftware.smackx.mood.provider.MoodProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class MoodElementTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java index 943371b12..a650bc7b5 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java @@ -23,6 +23,7 @@ import static junit.framework.TestCase.assertTrue; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.junit.Test; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java index 729e2a12d..96034f920 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java @@ -36,7 +36,6 @@ import org.jivesoftware.smackx.disco.packet.DiscoverInfo.Identity; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; import org.junit.Test; /** @@ -77,7 +76,7 @@ public class ConfigureFormTest extends InitExtensions { fail(); } catch (XMPPErrorException e) { - Assert.assertEquals(StanzaError.Type.AUTH, e.getStanzaError().getType()); + assertEquals(StanzaError.Type.AUTH, e.getStanzaError().getType()); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java index 1d81bf4c9..1f36293fc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java @@ -25,6 +25,7 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; @@ -32,7 +33,6 @@ import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * Item validation test. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java index 3d2341a9b..cb518220d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java @@ -30,6 +30,7 @@ import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace; import org.jivesoftware.smackx.pubsub.packet.PubSub; @@ -40,7 +41,6 @@ import org.jivesoftware.util.Protocol; import org.junit.Test; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class PubSubNodeTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java index 865b185fb..59f33e43d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java @@ -24,6 +24,7 @@ import java.util.List; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.PubSubElementType; import org.jivesoftware.smackx.pubsub.Subscription; @@ -31,7 +32,6 @@ import org.jivesoftware.smackx.pubsub.SubscriptionsExtension; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class PubSubProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java index b1b06a982..645b54271 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java @@ -30,6 +30,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.test.util.WaitForPacketListener; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.receipts.DeliveryReceiptManager.AutoReceiptMode; @@ -38,7 +39,6 @@ import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class DeliveryReceiptTest extends InitExtensions { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java index ab9c66350..7a5c2ab55 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java @@ -21,12 +21,12 @@ import static org.junit.Assert.assertEquals; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.shim.packet.Header; import org.jivesoftware.smackx.shim.packet.HeadersExtension; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class HeadersProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java index 5500125e9..67a3b64ae 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertNotNull; import org.jivesoftware.smack.packet.Element; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.FormField.Type; @@ -33,7 +34,6 @@ import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * Unit tests for DataForm reading and parsing. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java index 08820fc2f..ea36db948 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.io.InputStreamReader; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; @@ -33,8 +35,6 @@ import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Text; import org.jivesoftware.smackx.xdatalayout.provider.DataLayoutProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Unit tests for DataForm reading and parsing. @@ -143,9 +143,8 @@ public class DataLayoutTest { public void testLayoutFromFile() throws Exception { DataFormProvider pr = new DataFormProvider(); - XmlPullParser parser = PacketParserUtils.newXmppParser(); - parser.setInput(new InputStreamReader(this.getClass().getResourceAsStream(TEST_INPUT_1), "UTF-8")); - parser.next(); + InputStreamReader inputStreamReader = new InputStreamReader(this.getClass().getResourceAsStream(TEST_INPUT_1), "UTF-8"); + XmlPullParser parser = PacketParserUtils.getParserFor(inputStreamReader); DataForm form = pr.parse(parser); assertNotNull(form); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java index e8e272d05..53484f7b6 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Anno van Vliet, 2018 Florian Schmaus + * Copyright 2014 Anno van Vliet, 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,18 +22,22 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; +import org.jivesoftware.smackx.xdata.provider.DataFormProvider; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; /** * Data validation test. @@ -132,8 +136,9 @@ public class DataValidationTest { DataValidationProvider.parse(parser); } - @Test - public void testNamespacePrefix() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNamespacePrefix(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String formFieldUsingNamespacePrefix = "" + ""; - DataForm dataForm = TestUtils.parseExtensionElement(formFieldUsingNamespacePrefix); + DataForm dataForm = SmackTestUtil.parse(formFieldUsingNamespacePrefix, DataFormProvider.class, parserKind); assertEquals("Sample Form", dataForm.getTitle()); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java index dc422ff59..41acbece8 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java @@ -21,24 +21,24 @@ import static org.jivesoftware.smack.test.util.CharSequenceEquals.equalsCharSequ import static org.junit.Assert.assertThat; import java.io.IOException; +import java.io.InputStream; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xhtmlim.packet.XHTMLExtension; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class XHTMLExtensionProviderTest { public static final String XHTML_EXTENSION_SAMPLE_RESOURCE_NAME = "xhtml.xml"; @Test public void parsesWell() throws IOException, XmlPullParserException { - XmlPullParser parser = PacketParserUtils.newXmppParser(); - parser.setInput(getClass().getResourceAsStream(XHTML_EXTENSION_SAMPLE_RESOURCE_NAME), "UTF-8"); + InputStream inputStream = getClass().getResourceAsStream(XHTML_EXTENSION_SAMPLE_RESOURCE_NAME); + XmlPullParser parser = PacketParserUtils.getParserFor(inputStream); parser.next(); XHTMLExtensionProvider provider = new XHTMLExtensionProvider(); diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java index 5513015af..47a08f1fb 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java @@ -23,11 +23,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.roster.packet.RosterPacket; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class RosterPacketProvider extends IQProvider { @@ -40,9 +40,9 @@ public class RosterPacketProvider extends IQProvider { roster.setVersion(version); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String startTag = parser.getName(); switch (startTag) { case "item": @@ -51,7 +51,7 @@ public class RosterPacketProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: String endTag = parser.getName(); switch (endTag) { case IQ.QUERY_ELEMENT: @@ -59,6 +59,10 @@ public class RosterPacketProvider extends IQProvider { break outerloop; } } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return roster; @@ -85,9 +89,9 @@ public class RosterPacketProvider extends IQProvider { item.setApproved(approved); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case RosterPacket.Item.GROUP: @@ -98,11 +102,14 @@ public class RosterPacketProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java index 0c0d1fefd..0f71fafea 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.RosterVer; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class RosterVerStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java index 4016a5040..422ced505 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.SubscriptionPreApproval; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class SubscriptionPreApprovalStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java index 473777569..3dd4fde6a 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java @@ -34,10 +34,10 @@ import org.jivesoftware.smack.roster.provider.RosterPacketProvider; import org.jivesoftware.smack.util.FileUtils; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.stringencoder.Base32; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Stores roster entries as specified by RFC 6121 for roster versioning diff --git a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java index 85d0457d6..1af4f574c 100644 --- a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java +++ b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java @@ -45,6 +45,7 @@ import org.jivesoftware.smack.roster.packet.RosterPacket.ItemType; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.test.util.WaitForPacketListener; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.After; import org.junit.Before; @@ -53,7 +54,6 @@ import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; /** * Tests that verifies the correct behavior of the {@link Roster} implementation. diff --git a/smack-integration-test/build.gradle b/smack-integration-test/build.gradle index ab813a5d4..aa6ade5ed 100644 --- a/smack-integration-test/build.gradle +++ b/smack-integration-test/build.gradle @@ -22,6 +22,7 @@ dependencies { // junit:junit:4.12, which we currently need in sinttest, since it // (ab)uses @Before from org.junit compile "org.junit.vintage:junit-vintage-engine:$junitVersion" + compile 'junit:junit:4.12' testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" } diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java index 5ff5fb369..29a24aecc 100644 --- a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java @@ -71,7 +71,12 @@ public class XmppConnectionDescriptor { JingleTransportProvider jtpIce = new JingleTransportProvider.Ice(); ExtensionElementProvider jmipAudio = new JingleContentInfoProvider.Audio(); - int eventType; + XmlPullParser.Event eventType; String elementName; String namespace; @@ -87,7 +87,7 @@ public class JingleProvider extends IQProvider { elementName = parser.getName(); namespace = parser.getNamespace(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { // Parse some well know subelements, depending on the namespaces // and element names... @@ -119,7 +119,7 @@ public class JingleProvider extends IQProvider { + elementName + "\" in Jingle packet."); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(Jingle.getElementName())) { done = true; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java index da7c67779..ee3d78e48 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java @@ -20,15 +20,14 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingleold.nat.ICECandidate; import org.jivesoftware.smackx.jingleold.nat.TransportCandidate; import org.jivesoftware.smackx.jingleold.packet.JingleTransport; import org.jivesoftware.smackx.jingleold.packet.JingleTransport.JingleTransportCandidate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for a Jingle transport element. * @@ -59,10 +58,10 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider { @Override public OfferRequestPacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); String sessionID = null; int timeout = -1; OfferContent content = null; boolean done = false; Map> metaData = new HashMap<>(); - if (eventType != XmlPullParser.START_TAG) { + if (eventType != XmlPullParser.Event.START_ELEMENT) { // throw exception } @@ -71,7 +71,7 @@ public class OfferRequestProvider extends IQProvider { while (!done) { eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elemName = parser.getName(); if ("timeout".equals(elemName)) { @@ -101,7 +101,7 @@ public class OfferRequestProvider extends IQProvider { content = new TransferRequest(transfer.getInviter(), transfer.getRoom(), transfer.getReason()); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if ("offer".equals(parser.getName())) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java index 131c33159..8cc0ad482 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * An IQProvider class which has savvy about the offer-revoke tag.
@@ -46,20 +46,20 @@ public class OfferRevokeProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if ((eventType == XmlPullParser.START_TAG) && parser.getName().equals("reason")) { + if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("reason")) { reason = parser.nextText(); } - else if ((eventType == XmlPullParser.START_TAG) + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(SessionID.ELEMENT_NAME)) { sessionID = parser.getAttributeValue("", "id"); } - else if ((eventType == XmlPullParser.START_TAG) + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(UserID.ELEMENT_NAME)) { userID = ParserUtils.getJidAttribute(parser, "id"); } - else if ((eventType == XmlPullParser.END_TAG) && parser.getName().equals( + else if ((eventType == XmlPullParser.Event.END_ELEMENT) && parser.getName().equals( "offer-revoke")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java index c2b95091d..85cefb51c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java @@ -31,12 +31,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.workgroup.QueueUser; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Queue details stanza extension, which contains details about the users * currently in a queue. @@ -153,11 +152,11 @@ public final class QueueDetails implements ExtensionElement { SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); QueueDetails queueDetails = new QueueDetails(); - int eventType = parser.getEventType(); - while (eventType != XmlPullParser.END_TAG && + XmlPullParser.Event eventType = parser.getEventType(); + while (eventType != XmlPullParser.Event.END_ELEMENT && "notify-queue-details".equals(parser.getName())) { eventType = parser.next(); - while ((eventType == XmlPullParser.START_TAG) && "user".equals(parser.getName())) { + while ((eventType == XmlPullParser.Event.START_ELEMENT) && "user".equals(parser.getName())) { String uid; int position = -1; int time = -1; @@ -170,7 +169,7 @@ public final class QueueDetails implements ExtensionElement { } eventType = parser.next(); - while (eventType != XmlPullParser.END_TAG + while (eventType != XmlPullParser.Event.END_ELEMENT || !"user".equals(parser.getName())) { if ("position".equals(parser.getName())) { position = Integer.parseInt(parser.nextText()); @@ -197,7 +196,7 @@ public final class QueueDetails implements ExtensionElement { eventType = parser.next(); - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java index a8cc1ffa9..68709d4de 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java @@ -27,12 +27,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.workgroup.agent.WorkgroupQueue; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class QueueOverview implements ExtensionElement { /** @@ -130,12 +129,12 @@ public class QueueOverview implements ExtensionElement { public QueueOverview parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackTextParseException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); QueueOverview queueOverview = new QueueOverview(); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); eventType = parser.next(); - while (eventType != XmlPullParser.END_TAG + while (eventType != XmlPullParser.Event.END_ELEMENT || !ELEMENT_NAME.equals(parser.getName())) { if ("count".equals(parser.getName())) { queueOverview.setUserCount(Integer.parseInt(parser.nextText())); @@ -156,12 +155,12 @@ public class QueueOverview implements ExtensionElement { eventType = parser.next(); - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } } - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java index 1b3cd9123..27b2461cf 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * An IQ stanza that encapsulates both types of workgroup queue @@ -106,21 +105,21 @@ public class QueueUpdate implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG && "position".equals(elementName)) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "position".equals(elementName)) { try { position = Integer.parseInt(parser.nextText()); } catch (NumberFormatException nfe) { } } - else if (parser.getEventType() == XmlPullParser.START_TAG && "time".equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "time".equals(elementName)) { try { timeRemaining = Integer.parseInt(parser.nextText()); } catch (NumberFormatException nfe) { } } - else if (parser.getEventType() == XmlPullParser.END_TAG && "queue-status".equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "queue-status".equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java index 91932c20e..e2786ca9b 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java @@ -25,13 +25,13 @@ import org.jivesoftware.smack.packet.IQ.IQChildElementXmlStringBuilder; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Stanza extension for {@link org.jivesoftware.smackx.workgroup.agent.InvitationRequest}. @@ -179,7 +179,7 @@ public class RoomInvitation implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) { if ("session".equals(elementName)) { invitation.sessionID = parser.getAttributeValue("", "id"); } @@ -199,7 +199,7 @@ public class RoomInvitation implements ExtensionElement { invitation.room = JidCreate.entityBareFrom(roomString); } } - else if (parser.getEventType() == XmlPullParser.END_TAG && ELEMENT_NAME.equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java index 619141fa4..7bfb1067f 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java @@ -25,9 +25,8 @@ import org.jivesoftware.smack.packet.IQ.IQChildElementXmlStringBuilder; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Stanza extension for {@link org.jivesoftware.smackx.workgroup.agent.TransferRequest}. @@ -175,7 +174,7 @@ public class RoomTransfer implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) { if ("session".equals(elementName)) { invitation.sessionID = parser.getAttributeValue("", "id"); } @@ -192,7 +191,7 @@ public class RoomTransfer implements ExtensionElement { invitation.room = parser.nextText(); } } - else if (parser.getEventType() == XmlPullParser.END_TAG && ELEMENT_NAME.equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java index e3c7cd562..4600573f1 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SessionID implements ExtensionElement { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java index 6b7b73066..d16872862 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java @@ -26,9 +26,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * An IQProvider for transcripts. @@ -44,8 +43,8 @@ public class TranscriptProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("message")) { packets.add(PacketParserUtils.parseMessage(parser)); } @@ -53,7 +52,7 @@ public class TranscriptProvider extends IQProvider { packets.add(PacketParserUtils.parsePresence(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcript")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java index e6a4c1a5a..4d750ec7a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.PacketParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * IQ stanza for retrieving the transcript search form, submitting the completed search form @@ -63,12 +62,12 @@ public class TranscriptSearch extends SimpleIQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // Parse the packet extension PacketParserUtils.addExtensionElement(answer, parser, xmlEnvironment); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(ELEMENT_NAME)) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java index a8341cd02..eb701ee68 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java @@ -28,10 +28,10 @@ import java.util.TimeZone; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * An IQProvider for transcripts summaries. @@ -53,13 +53,13 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("transcript")) { summaries.add(parseSummary(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcripts")) { done = true; } @@ -78,8 +78,8 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("joinTime")) { try { synchronized (UTC_FORMAT) { @@ -98,7 +98,7 @@ public class TranscriptsProvider extends IQProvider { agents = parseAgents(parser); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcript")) { done = true; } @@ -116,8 +116,8 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("agentJID")) { agentJID = parser.nextText(); } @@ -141,7 +141,7 @@ public class TranscriptsProvider extends IQProvider { leftTime = null; } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("agents")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java index 74854307a..806128c56 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class UserID implements ExtensionElement { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java index 422e17c2d..4fe2fe750 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * A stanza extension that contains information about the user and agent in a diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java index db52078cd..534ddbbed 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java @@ -26,9 +26,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class ChatSettings extends IQ { @@ -128,7 +127,7 @@ public class ChatSettings extends IQ { @Override public ChatSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { - if (parser.getEventType() != XmlPullParser.START_TAG) { + if (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { throw new IllegalStateException("Parser not in proper position, or bad XML."); } @@ -136,12 +135,12 @@ public class ChatSettings extends IQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "chat-setting".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "chat-setting".equals(parser.getName())) { chatSettings.addSetting(parseChatSetting(parser)); } - else if (eventType == XmlPullParser.END_TAG && ELEMENT_NAME.equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(parser.getName())) { done = true; } } @@ -156,17 +155,17 @@ public class ChatSettings extends IQ { int type = 0; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "key".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "key".equals(parser.getName())) { key = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "value".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "value".equals(parser.getName())) { value = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "type".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "type".equals(parser.getName())) { type = Integer.parseInt(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "chat-setting".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "chat-setting".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java index 0530bec32..d9f9e405c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java @@ -25,9 +25,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class GenericSettings extends IQ { @@ -88,15 +87,15 @@ public class GenericSettings extends IQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "entry".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "entry".equals(parser.getName())) { eventType = parser.next(); String name = parser.nextText(); eventType = parser.next(); String value = parser.nextText(); setting.getMap().put(name, value); } - else if (eventType == XmlPullParser.END_TAG && ELEMENT_NAME.equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java index 7da5a6459..10c570a45 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class OfflineSettings extends SimpleIQ { private String redirectURL; @@ -118,20 +117,20 @@ public class OfflineSettings extends SimpleIQ { String emailAddress = null; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "redirectPage".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "redirectPage".equals(parser.getName())) { redirectPage = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "subject".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "subject".equals(parser.getName())) { subject = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "offlineText".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "offlineText".equals(parser.getName())) { offlineText = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "emailAddress".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "emailAddress".equals(parser.getName())) { emailAddress = parser.nextText(); } - else if (eventType == XmlPullParser.END_TAG && "offline-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "offline-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java index d2a329bf0..5c688c959 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java @@ -22,9 +22,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SearchSettings extends SimpleIQ { private String forumsLocation; @@ -87,14 +86,14 @@ public class SearchSettings extends SimpleIQ { String forums = null; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "forums".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "forums".equals(parser.getName())) { forums = parser.nextText(); } - else if ((eventType == XmlPullParser.START_TAG) && "kb".equals(parser.getName())) { + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && "kb".equals(parser.getName())) { kb = parser.nextText(); } - else if (eventType == XmlPullParser.END_TAG && "search-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "search-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java index deb7fc4dd..a7bcf0f49 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.stringencoder.Base64; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SoundSettings extends SimpleIQ { private String outgoingSound; @@ -76,14 +75,14 @@ public class SoundSettings extends SimpleIQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "outgoingSound".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "outgoingSound".equals(parser.getName())) { soundSettings.setOutgoingSound(parser.nextText()); } - else if ((eventType == XmlPullParser.START_TAG) && "incomingSound".equals(parser.getName())) { + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && "incomingSound".equals(parser.getName())) { soundSettings.setIncomingSound(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "sound-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "sound-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java index 0603d6bf9..74c42bda1 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class WorkgroupProperties extends IQ { @@ -103,19 +102,19 @@ public class WorkgroupProperties extends IQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "authRequired".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "authRequired".equals(parser.getName())) { // CHECKSTYLE:OFF props.setAuthRequired(Boolean.valueOf(parser.nextText()).booleanValue()); // CHECKSTYLE:ON } - else if (eventType == XmlPullParser.START_TAG && "email".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "email".equals(parser.getName())) { props.setEmail(parser.nextText()); } - else if (eventType == XmlPullParser.START_TAG && "name".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "name".equals(parser.getName())) { props.setFullName(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "workgroup-properties".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "workgroup-properties".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java index b17da1211..1d68c396c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java @@ -24,10 +24,10 @@ import java.util.List; import java.util.Map; import org.jivesoftware.smack.util.StringUtils; -import org.jivesoftware.smackx.workgroup.MetaData; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.workgroup.MetaData; /** * Utility class for meta-data parsing and writing. @@ -46,18 +46,18 @@ public class MetaDataUtils { * @throws IOException if an error occurs while parsing the XML. */ public static Map> parseMetaData(XmlPullParser parser) throws XmlPullParserException, IOException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); // If correctly positioned on an opening meta-data tag, parse meta-data. - if ((eventType == XmlPullParser.START_TAG) + if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(MetaData.ELEMENT_NAME) && parser.getNamespace().equals(MetaData.NAMESPACE)) { Map> metaData = new Hashtable<>(); - eventType = parser.nextTag(); + eventType = parser.next(); // Keep parsing until we've gotten to end of meta-data. - while ((eventType != XmlPullParser.END_TAG) + while ((eventType != XmlPullParser.Event.END_ELEMENT) || !parser.getName().equals(MetaData.ELEMENT_NAME)) { String name = parser.getAttributeValue(0); String value = parser.nextText(); @@ -72,7 +72,7 @@ public class MetaDataUtils { metaData.put(name, values); } - eventType = parser.nextTag(); + eventType = parser.next(); } return metaData; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java index 719bbe5bf..a2af202a2 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xevent.packet.MessageEvent; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * * The MessageEventProvider parses Message Event packets. @@ -49,8 +48,8 @@ public class MessageEventProvider extends ExtensionElementProvider MessageEvent messageEvent = new MessageEvent(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("id")) messageEvent.setStanzaId(parser.nextText()); if (parser.getName().equals(MessageEvent.COMPOSING)) @@ -61,7 +60,7 @@ public class MessageEventProvider extends ExtensionElementProvider messageEvent.setDisplayed(true); if (parser.getName().equals(MessageEvent.OFFLINE)) messageEvent.setOffline(true); - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("x")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java index f5e7b2cc0..d471e0357 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java @@ -23,13 +23,13 @@ import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xroster.RemoteRosterEntry; import org.jivesoftware.smackx.xroster.packet.RosterExchange; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * @@ -58,8 +58,8 @@ public class RosterExchangeProvider extends ExtensionElementProvider groupsName = new ArrayList<>(); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { // Reset this variable since they are optional for each item groupsName = new ArrayList<>(); @@ -70,7 +70,7 @@ public class RosterExchangeProvider extends ExtensionElementProvider preKeys = new HashMap<>(); while (!stop) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: + final int attributeCount = parser.getAttributeCount(); // if (name.equals(SIGNED_PRE_KEY_PUB)) { - for (int i = 0; i < parser.getAttributeCount(); i++) { + for (int i = 0; i < attributeCount; i++) { if (parser.getAttributeName(i).equals(SIGNED_PRE_KEY_ID)) { int id = Integer.parseInt(parser.getAttributeValue(i)); signedPreKey = parser.nextText(); @@ -84,7 +82,7 @@ public class OmemoBundleVAxolotlProvider extends ExtensionElementProvider else if (inPreKeys && name.equals(PRE_KEY_PUB)) { - for (int i = 0; i < parser.getAttributeCount(); i++) { + for (int i = 0; i < attributeCount; i++) { if (parser.getAttributeName(i).equals(PRE_KEY_ID)) { preKeys.put(Integer.parseInt(parser.getAttributeValue(i)), parser.nextText()); @@ -92,11 +90,14 @@ public class OmemoBundleVAxolotlProvider extends ExtensionElementProvider deviceListIds = new HashSet<>(); boolean stop = false; while (!stop) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: if (name.equals(DEVICE)) { for (int i = 0; i < parser.getAttributeCount(); i++) { if (parser.getAttributeName(i).equals(ID)) { @@ -59,11 +56,14 @@ public class OmemoDeviceListVAxolotlProvider extends ExtensionElementProvider payload = new LinkedList<>(); outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: switch (name) { case OpenPgpContentElement.ELEM_TIME: @@ -112,12 +110,11 @@ public abstract class OpenPgpContentElementProvider provider = ProviderManager.getExtensionProvider(pname, pns); if (provider == null) { @@ -127,15 +124,19 @@ public abstract class OpenPgpContentElementProvider { @@ -43,12 +41,12 @@ public final class PublicKeysListElementProvider extends ExtensionElementProvide while (true) { - int tag = parser.nextTag(); - String name = parser.getName(); + XmlPullParser.TagEvent tag = parser.nextTag(); + String name; switch (tag) { - case START_TAG: - + case START_ELEMENT: + name = parser.getName(); if (PublicKeysListElement.PubkeyMetadataElement.ELEMENT.equals(name)) { String finger = parser.getAttributeValue(null, PublicKeysListElement.PubkeyMetadataElement.ATTR_V4_FINGERPRINT); @@ -60,11 +58,16 @@ public final class PublicKeysListElementProvider extends ExtensionElementProvide } break; - case END_TAG: - + case END_ELEMENT: + name = parser.getName(); if (name.equals(PublicKeysListElement.ELEMENT)) { return builder.build(); } + break; + + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java index 138da4e3a..6f702131e 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java @@ -21,10 +21,10 @@ import java.nio.charset.Charset; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.ox.element.SecretkeyElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SecretkeyElement; /** * {@link ExtensionElementProvider} implementation for the {@link SecretkeyElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java index 8a0c6d5df..4f971af39 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java @@ -22,10 +22,10 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.StringUtils; -import org.jivesoftware.smackx.ox.element.SignElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SignElement; /** * {@link org.jivesoftware.smack.provider.ExtensionElementProvider} implementation for the {@link SignElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java index 3187e0473..74ebc9b88 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java @@ -20,10 +20,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smackx.ox.element.SigncryptElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SigncryptElement; /** * {@link org.jivesoftware.smack.provider.ExtensionElementProvider} implementation for the {@link SigncryptElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java index 158ea7368..61f91cb7c 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Observable; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.callback.SecretKeyPassphraseCallback; import org.jivesoftware.smackx.ox.exception.MissingUserIdOnKeyException; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java index 3935dd44a..6e8f69ea3 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java @@ -26,6 +26,7 @@ import java.util.Map; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpKeyStore; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java index 1a1655601..9d20e2cfa 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java @@ -33,6 +33,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpMetadataStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpMetadataStore; import org.jivesoftware.smackx.ox.util.Util; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java index e92c5153f..20bcfee39 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.ox.store.filebased; import java.io.File; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java index 38c56e95e..433cd8d95 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java @@ -30,6 +30,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpTrustStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore; import org.jivesoftware.smackx.ox.util.Util; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java index 9880facf1..b19257ac6 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java @@ -29,6 +29,7 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.StanzaError; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.ox.OpenPgpManager; import org.jivesoftware.smackx.ox.element.PubkeyElement; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java index 13fe39a59..4681f0be9 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java @@ -22,6 +22,7 @@ import java.security.SecureRandom; import java.util.Set; import org.jivesoftware.smack.util.stringencoder.Base64; + import org.jivesoftware.smackx.ox.crypto.OpenPgpProvider; import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.exception.InvalidBackupCodeException; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java index 591ead494..987473648 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java @@ -31,6 +31,8 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.chat2.ChatManager; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.hints.element.StoreHint; @@ -48,7 +50,6 @@ import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.pgpainless.decryption_verification.OpenPgpMetadata; import org.pgpainless.key.OpenPgpV4Fingerprint; -import org.xmlpull.v1.XmlPullParserException; /** * Entry point of Smacks API for XEP-0374: OpenPGP for XMPP: Instant Messaging. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java index 55dd9c2fd..42362979a 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.ox_im; import org.jivesoftware.smack.packet.Message; + import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.element.OpenPgpElement; import org.jivesoftware.smackx.ox.element.SigncryptElement; diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java index 2db1c50de..9d42f57fa 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.ox; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNotNull; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import java.util.ArrayList; @@ -32,6 +33,9 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.ox.element.CryptElement; import org.jivesoftware.smackx.ox.element.OpenPgpElement; import org.jivesoftware.smackx.ox.element.SignElement; @@ -39,12 +43,10 @@ import org.jivesoftware.smackx.ox.element.SigncryptElement; import org.jivesoftware.smackx.ox.provider.OpenPgpContentElementProvider; import org.jivesoftware.smackx.ox.provider.OpenPgpElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class OpenPgpElementTest extends SmackTestSuite { @@ -174,12 +176,13 @@ public class OpenPgpElementTest extends SmackTestSuite { assertEquals(payload.get(0), element.getExtension(Message.Body.ELEMENT, Message.Body.NAMESPACE)); } - @Test(expected = XmlPullParserException.class) + @Test public void openPgpContentElementProvider_invalidElementTest() throws IOException, XmlPullParserException { String invalidElementXML = "" + "This is a secret message." + ""; - OpenPgpContentElementProvider.parseOpenPgpContentElement(invalidElementXML); + assertThrows(XmlPullParserException.class, () -> + OpenPgpContentElementProvider.parseOpenPgpContentElement(invalidElementXML)); } } diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java index efe7ca23f..6be88ac0f 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java @@ -21,6 +21,7 @@ import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.IOException; @@ -37,6 +38,7 @@ import java.util.Map; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.callback.SecretKeyPassphraseCallback; import org.jivesoftware.smackx.ox.exception.MissingUserIdOnKeyException; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; @@ -199,18 +201,20 @@ public class OpenPgpStoreTest extends SmackTestSuite { openPgpStoreInstance1.deleteSecretKeyRing(alice, fingerprint); } - @Test(expected = MissingUserIdOnKeyException.class) + @Test public void t04_key_wrongBareJidOnSecretKeyImportTest() throws PGPException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException, IOException, MissingUserIdOnKeyException { PGPSecretKeyRing secretKeys = openPgpStoreInstance1.generateKeyRing(alice).getSecretKeys(); - openPgpStoreInstance1.importSecretKey(bob, secretKeys); + assertThrows(MissingUserIdOnKeyException.class, () -> + openPgpStoreInstance1.importSecretKey(bob, secretKeys)); } - @Test(expected = MissingUserIdOnKeyException.class) + @Test public void t05_key_wrongBareJidOnPublicKeyImportTest() throws PGPException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException, IOException, MissingUserIdOnKeyException { PGPPublicKeyRing publicKeys = openPgpStoreInstance1.generateKeyRing(alice).getPublicKeys(); - openPgpStoreInstance1.importPublicKey(bob, publicKeys); + assertThrows(MissingUserIdOnKeyException.class, () -> + openPgpStoreInstance1.importPublicKey(bob, publicKeys)); } @Test diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java index f7fdc7fd9..65c639971 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java @@ -34,6 +34,8 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.ox.crypto.OpenPgpElementAndMetadata; import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.CryptElement; @@ -46,14 +48,13 @@ import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; import org.bouncycastle.openpgp.PGPException; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.pgpainless.key.OpenPgpV4Fingerprint; import org.pgpainless.key.collection.PGPKeyRing; import org.pgpainless.key.protection.UnprotectedKeysProtector; -import org.xmlpull.v1.XmlPullParserException; public class PainlessOpenPgpProviderTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java index 9581abb41..3a42a8d28 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java @@ -19,10 +19,11 @@ package org.jivesoftware.smackx.ox; import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; import org.bouncycastle.openpgp.PGPException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.pgpainless.key.OpenPgpV4Fingerprint; public class PubSubDelegateTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java index 1d1bb6837..f619d5c4a 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java @@ -26,12 +26,13 @@ import java.util.Date; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.PubkeyElement; import org.jivesoftware.smackx.ox.provider.PubkeyElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; public class PubkeyElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java index fc5364071..0b99d7edd 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java @@ -23,14 +23,15 @@ import java.util.Date; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.PublicKeysListElement; import org.jivesoftware.smackx.ox.provider.PublicKeysListElementProvider; import org.bouncycastle.openpgp.PGPException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; import org.pgpainless.key.OpenPgpV4Fingerprint; -import org.xmlpull.v1.XmlPullParser; public class PublicKeysListElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java index efc2b5712..92d8ad92e 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java @@ -30,6 +30,7 @@ import java.util.Collections; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.exception.InvalidBackupCodeException; @@ -42,7 +43,7 @@ import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPSecretKeyRing; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.impl.JidCreate; import org.pgpainless.PGPainless; diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java index 5eddd9109..f6d1edb77 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java @@ -24,11 +24,12 @@ import java.util.Arrays; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.provider.SecretkeyElementProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class SecretkeyElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java index 28f09646c..c9733dc12 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java @@ -37,6 +37,8 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.OpenPgpManager; @@ -51,11 +53,10 @@ import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; import org.bouncycastle.openpgp.PGPException; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.JidTestUtil; import org.pgpainless.decryption_verification.OpenPgpMetadata; -import org.xmlpull.v1.XmlPullParserException; public class OXInstantMessagingManagerTest extends SmackTestSuite { diff --git a/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java b/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java index e9d91f6ef..d98b2fdeb 100644 --- a/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java +++ b/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java @@ -16,15 +16,15 @@ */ package org.jivesoftware.smackx.dox.resolver.minidns; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.net.InetAddress; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.minidns.DnsCache; import org.minidns.DnsClient; import org.minidns.MiniDnsFuture; diff --git a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java index 2fd6feaac..b0aa9c170 100644 --- a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java +++ b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java @@ -21,7 +21,7 @@ import java.io.UnsupportedEncodingException; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class SASLDigestMD5Test extends DigestMd5SaslTest { diff --git a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java index 7933aff63..6ca64849b 100644 --- a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java +++ b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Florian Schmaus + * Copyright 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import java.io.UnsupportedEncodingException; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class SASLDigestMD5Test extends DigestMd5SaslTest { diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java index eff90c7ea..747e1420e 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java @@ -29,9 +29,8 @@ import org.jivesoftware.smack.sm.packet.StreamManagement.Enabled; import org.jivesoftware.smack.sm.packet.StreamManagement.Failed; import org.jivesoftware.smack.sm.packet.StreamManagement.Resumed; import org.jivesoftware.smack.util.ParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class ParseStreamManagement { @@ -53,9 +52,9 @@ public class ParseStreamManagement { List textElements = new ArrayList<>(4); outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); String namespace = parser.getNamespace(); if (StanzaError.ERROR_CONDITION_AND_TEXT_NAMESPACE.equals(namespace)) { @@ -69,12 +68,15 @@ public class ParseStreamManagement { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: name = parser.getName(); if (Failed.ELEMENT.equals(name)) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java index 27ad71d1f..66f3349be 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java @@ -19,8 +19,7 @@ package org.jivesoftware.smack.sm.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.sm.packet.StreamManagement.StreamManagementFeature; - -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class StreamManagementStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java index a44aa7a0a..77499c68b 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java @@ -117,12 +117,13 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.TLSUtils; import org.jivesoftware.smack.util.XmlStringBuilder; import org.jivesoftware.smack.util.dns.HostAddress; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Creates a socket connection to an XMPP server. This is the default connection @@ -851,7 +852,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { */ void openStream() throws SmackException, InterruptedException, XmlPullParserException { sendStreamOpen(); - packetReader.parser = PacketParserUtils.newXmppParser(reader); + packetReader.parser = SmackXmlParser.newXmlParser(reader); } protected class PacketReader { @@ -898,10 +899,10 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { try { openStream(); initialStreamOpenSend = true; - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); while (!done) { switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); switch (name) { case Message.ELEMENT: @@ -1069,7 +1070,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: final String endTagName = parser.getName(); if ("stream".equals(endTagName)) { if (!parser.getNamespace().equals("http://etherx.jabber.org/streams")) { @@ -1105,11 +1106,14 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { } } break; - case XmlPullParser.END_DOCUMENT: + case END_DOCUMENT: // END_DOCUMENT only happens in an error case, as otherwise we would see a // closing stream element before. throw new SmackException.SmackMessageException( "Parser got END_DOCUMENT event. This could happen e.g. if the server closed the connection without sending a closing stream element"); + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } eventType = parser.next(); } diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java index 8dcdd63fa..55e950bdd 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java @@ -91,6 +91,8 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.UTF8; import org.jivesoftware.smack.util.XmlStringBuilder; import org.jivesoftware.smack.util.dns.HostAddress; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.Jid; @@ -102,8 +104,6 @@ import org.jxmpp.xml.splitter.XmlPrettyPrinter; import org.jxmpp.xml.splitter.XmlPrinter; import org.jxmpp.xml.splitter.XmppElementCallback; import org.jxmpp.xml.splitter.XmppXmlSplitter; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Represents and manages a client connection to an XMPP server via TCP. diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java index 59dcd0203..e984dd7f2 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Vyacheslav Blinov, 2017-2018 Florian Schmaus + * Copyright 2014 Vyacheslav Blinov, 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,9 @@ */ package org.jivesoftware.smack.sm.provider; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.List; @@ -31,11 +28,11 @@ import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaErrorTextElement; import org.jivesoftware.smack.sm.packet.StreamManagement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import com.jamesmurty.utils.XMLBuilder; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.junit.jupiter.api.Test; public class ParseStreamManagementTest { private static final Properties outputProperties = initOutputProperties(); @@ -58,11 +55,11 @@ public class ParseStreamManagementTest { StreamManagement.Enabled enabledPacket = ParseStreamManagement.enabled( PacketParserUtils.getParserFor(enabledStanza)); - assertThat(enabledPacket, is(notNullValue())); - assertThat(enabledPacket.getId(), equalTo(stanzaID)); - assertThat(enabledPacket.getLocation(), equalTo(location)); - assertThat(enabledPacket.isResumeSet(), equalTo(resume)); - assertThat(enabledPacket.getMaxResumptionTime(), equalTo(max)); + assertNotNull(enabledPacket); + assertEquals(enabledPacket.getId(), stanzaID); + assertEquals(location, enabledPacket.getLocation()); + assertEquals(resume, enabledPacket.isResumeSet()); + assertEquals(max, enabledPacket.getMaxResumptionTime()); } @@ -84,7 +81,7 @@ public class ParseStreamManagementTest { StreamManagement.Failed failedPacket = ParseStreamManagement.failed( PacketParserUtils.getParserFor(failedStanza)); - assertThat(failedPacket, is(notNullValue())); + assertNotNull(failedPacket); assertTrue(failedPacket.getStanzaErrorCondition() == null); } @@ -100,7 +97,7 @@ public class ParseStreamManagementTest { StreamManagement.Failed failedPacket = ParseStreamManagement.failed( PacketParserUtils.getParserFor(failedStanza)); - assertThat(failedPacket, is(notNullValue())); + assertNotNull(failedPacket); assertTrue(failedPacket.getStanzaErrorCondition() == errorCondition); } @@ -142,9 +139,9 @@ public class ParseStreamManagementTest { StreamManagement.Resumed resumedPacket = ParseStreamManagement.resumed( PacketParserUtils.getParserFor(resumedStanza)); - assertThat(resumedPacket, is(notNullValue())); - assertThat(resumedPacket.getHandledCount(), equalTo(handledPackets)); - assertThat(resumedPacket.getPrevId(), equalTo(previousID)); + assertNotNull(resumedPacket); + assertEquals(handledPackets, resumedPacket.getHandledCount()); + assertEquals(previousID, resumedPacket.getPrevId()); } @Test @@ -159,8 +156,8 @@ public class ParseStreamManagementTest { StreamManagement.AckAnswer acknowledgementPacket = ParseStreamManagement.ackAnswer( PacketParserUtils.getParserFor(ackStanza)); - assertThat(acknowledgementPacket, is(notNullValue())); - assertThat(acknowledgementPacket.getHandledCount(), equalTo(handledPackets)); + assertNotNull(acknowledgementPacket); + assertEquals(handledPackets, acknowledgementPacket.getHandledCount()); } private static Properties initOutputProperties() { diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java index 1053f2645..59f25f40d 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java @@ -16,24 +16,31 @@ */ package org.jivesoftware.smack.tcp; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; import java.io.Writer; +import java.lang.reflect.Field; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.atomic.AtomicReference; +import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.tcp.XMPPTCPConnection.PacketWriter; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class PacketWriterTest { + + private static final Reader DUMMY_READER = new StringReader(""); + private volatile boolean shutdown; private volatile boolean prematureUnblocked; @@ -47,10 +54,22 @@ public class PacketWriterTest { * @throws BrokenBarrierException * @throws NotConnectedException * @throws XmppStringprepException + * @throws SecurityException + * @throws NoSuchFieldException + * @throws IllegalAccessException + * @throws IllegalArgumentException */ @Test - public void shouldBlockAndUnblockTest() throws InterruptedException, BrokenBarrierException, NotConnectedException, XmppStringprepException { + public void shouldBlockAndUnblockTest() throws InterruptedException, BrokenBarrierException, NotConnectedException, XmppStringprepException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { XMPPTCPConnection connection = new XMPPTCPConnection("user", "pass", "example.org"); + + // Get the protected "Reader reader" field from AbstractXMPPConnection and set it to a dummy Reader, + // as otherwise it will be null when we perform the writer threads init() which will make the StAX parser + // to throw an exception. + Field readerField = AbstractXMPPConnection.class.getDeclaredField("reader"); + readerField.setAccessible(true); + readerField.set(connection, DUMMY_READER); + final PacketWriter pw = connection.packetWriter; BlockingStringWriter blockingStringWriter = new BlockingStringWriter(); connection.setWriter(blockingStringWriter); @@ -85,6 +104,7 @@ public class PacketWriterTest { } catch (BrokenBarrierException | InterruptedException e) { unexpectedThreadExceptionReference.set(e); + } try { @@ -126,7 +146,7 @@ public class PacketWriterTest { fail("Unexpected thread exception: " + unexpectedThreadException); } - assertNotNull("Did not encounter expected exception on sendStreamElement()", expectedThreadExceptionReference.get()); + assertNotNull(expectedThreadExceptionReference.get(), "Did not encounter expected exception on sendStreamElement()"); } finally { blockingStringWriter.unblock(); diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java index 1b56187e6..478e4a691 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java @@ -16,11 +16,11 @@ */ package org.jivesoftware.smack.tcp; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TcpInitializerTest { diff --git a/smack-xmlparser-stax/build.gradle b/smack-xmlparser-stax/build.gradle new file mode 100644 index 000000000..03c727630 --- /dev/null +++ b/smack-xmlparser-stax/build.gradle @@ -0,0 +1,7 @@ +description = """\ +Smack XML parser using Stax.""" + +dependencies { + compile project(':smack-xmlparser') + testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java new file mode 100644 index 000000000..56542fc97 --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java @@ -0,0 +1,301 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.stax; + +import java.io.IOException; + +import javax.xml.XMLConstants; +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.Location; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +public final class StaxXmlPullParser implements XmlPullParser { + + private final XMLStreamReader xmlStreamReader; + + private int depth; + + StaxXmlPullParser(XMLStreamReader xmlStreamReader) { + this.xmlStreamReader = xmlStreamReader; + } + + @Override + public Object getProperty(String name) { + return xmlStreamReader.getProperty(name); + } + + @Override + public String getInputEncoding() { + return xmlStreamReader.getEncoding(); + } + + @Override + public int getNamespaceCount() { + return xmlStreamReader.getNamespaceCount(); + } + + @Override + public String getNamespacePrefix(int pos) { + return xmlStreamReader.getNamespacePrefix(pos); + } + + @Override + public String getNamespaceUri(int pos) { + return xmlStreamReader.getNamespaceURI(pos); + } + + @Override + public String getNamespace(String prefix) { + if (prefix == null) { + prefix = XMLConstants.DEFAULT_NS_PREFIX; + } + NamespaceContext namespaceContext = xmlStreamReader.getNamespaceContext(); + return namespaceContext.getNamespaceURI(prefix); + } + + @Override + public int getDepth() { + return depth; + } + + @Override + public String getPositionDescription() { + Location location = xmlStreamReader.getLocation(); + return location.toString(); + } + + @Override + public int getLineNumber() { + Location location = xmlStreamReader.getLocation(); + return location.getLineNumber(); + } + + @Override + public int getColumnNumber() { + Location location = xmlStreamReader.getLocation(); + return location.getColumnNumber(); + } + + @Override + public boolean isWhiteSpace() { + return xmlStreamReader.isWhiteSpace(); + } + + @Override + public String getText() { + return xmlStreamReader.getText(); + } + + @Override + public String getNamespace() { + NamespaceContext namespaceContext = xmlStreamReader.getNamespaceContext(); + String prefix = getPrefix(); + return namespaceContext.getNamespaceURI(prefix); + } + + @Override + public String getName() { + QName qname = getQName(); + return qname.getLocalPart(); + } + + @Override + public QName getQName() { + return xmlStreamReader.getName(); + } + + @Override + public String getPrefix() { + return xmlStreamReader.getPrefix(); + } + + @Override + public int getAttributeCount() { + return xmlStreamReader.getAttributeCount(); + } + + @Override + public String getAttributeNamespace(int index) { + return xmlStreamReader.getAttributeNamespace(index); + } + + @Override + public String getAttributeName(int index) { + QName qname = getAttributeQName(index); + if (qname == null) { + return null; + } + return qname.getLocalPart(); + } + + @Override + public QName getAttributeQName(int index) { + return xmlStreamReader.getAttributeName(index); + } + + @Override + public String getAttributePrefix(int index) { + return xmlStreamReader.getAttributePrefix(index); + } + + @Override + public String getAttributeType(int index) { + return xmlStreamReader.getAttributeType(index); + } + + @Override + public String getAttributeValue(int index) { + return xmlStreamReader.getAttributeValue(index); + } + + @Override + public String getAttributeValue(String namespace, String name) { + String namespaceURI = namespace; + String localName = name; + return xmlStreamReader.getAttributeValue(namespaceURI, localName); + } + + @Override + public Event getEventType() { + int staxEventInt = xmlStreamReader.getEventType(); + return staxEventIntegerToEvent(staxEventInt); + } + + private boolean delayedDepthDecrement; + + @Override + public Event next() throws XmlPullParserException { + preNextEvent(); + + int staxEventInt; + try { + staxEventInt = xmlStreamReader.next(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + Event event = staxEventIntegerToEvent(staxEventInt); + switch (event) { + case START_ELEMENT: + depth++; + break; + case END_ELEMENT: + delayedDepthDecrement = true; + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + return event; + } + + @Override + public String nextText() throws IOException, XmlPullParserException { + final String nextText; + try { + nextText = xmlStreamReader.getElementText(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + // XMLStreamReader.getElementText() will forward to the next END_ELEMENT, hence we need to set + // delayedDepthDecrement to true. + delayedDepthDecrement = true; + + return nextText; + } + + @Override + public TagEvent nextTag() throws IOException, XmlPullParserException { + preNextEvent(); + + int staxEventInt; + try { + staxEventInt = xmlStreamReader.nextTag(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + switch (staxEventInt) { + case XMLStreamConstants.START_ELEMENT: + depth++; + return TagEvent.START_ELEMENT; + case XMLStreamConstants.END_ELEMENT: + delayedDepthDecrement = true; + return TagEvent.END_ELEMENT; + default: + throw new AssertionError(); + } + } + + private void preNextEvent() { + if (delayedDepthDecrement) { + depth--; + delayedDepthDecrement = false; + assert depth >= 0; + } + } + + private static Event staxEventIntegerToEvent(int staxEventInt) { + switch (staxEventInt) { + case XMLStreamConstants.START_ELEMENT: + return Event.START_ELEMENT; + case XMLStreamConstants.END_ELEMENT: + return Event.END_ELEMENT; + case XMLStreamConstants.PROCESSING_INSTRUCTION: + return Event.PROCESSING_INSTRUCTION; + case XMLStreamConstants.CHARACTERS: + return Event.TEXT_CHARACTERS; + case XMLStreamConstants.COMMENT: + return Event.COMMENT; + case XMLStreamConstants.SPACE: + return Event.IGNORABLE_WHITESPACE; + case XMLStreamConstants.START_DOCUMENT: + return Event.START_DOCUMENT; + case XMLStreamConstants.END_DOCUMENT: + return Event.END_DOCUMENT; + case XMLStreamConstants.ENTITY_REFERENCE: + return Event.ENTITY_REFERENCE; + case XMLStreamConstants.ATTRIBUTE: + return Event.OTHER; + case XMLStreamConstants.DTD: + return Event.OTHER; + case XMLStreamConstants.CDATA: + return Event.OTHER; + case XMLStreamConstants.NAMESPACE: + return Event.OTHER; + case XMLStreamConstants.NOTATION_DECLARATION: + return Event.OTHER; + case XMLStreamConstants.ENTITY_DECLARATION: + return Event.OTHER; + default: + throw new IllegalArgumentException("Unknown Stax event integer: " + staxEventInt); + } + } + + @Override + public boolean supportsRoundtrip() { + // TODO: Is there a StAX parser implementation which does support roundtrip? + return false; + } +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java new file mode 100644 index 000000000..1806bbbee --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java @@ -0,0 +1,50 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.stax; + +import java.io.Reader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; + +public class StaxXmlPullParserFactory implements XmlPullParserFactory { + + private static final XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory(); + + static { + // XPP3 appears to coalescing hence we need to configure our StAX parser to also return all available text on + // getText(). + xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, true); + // Internal and external entity references are prohibited in XMPP (RFC 6120 § 11.1). + xmlInputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false); + } + + @Override + public StaxXmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException { + XMLStreamReader xmlStreamReader; + try { + xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + return new StaxXmlPullParser(xmlStreamReader); + } +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java new file mode 100644 index 000000000..23131b25d --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java @@ -0,0 +1,23 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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. + */ + +/** + * Classes for XML handling using StAX (Streaming API for XML, JSR 173). + * + * @see Streaming API for XML + */ +package org.jivesoftware.smack.xml.stax; diff --git a/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory b/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory new file mode 100644 index 000000000..b61383e2b --- /dev/null +++ b/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory @@ -0,0 +1 @@ +org.jivesoftware.smack.xml.stax.StaxXmlPullParserFactory diff --git a/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java b/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java new file mode 100644 index 000000000..21cc355f2 --- /dev/null +++ b/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java @@ -0,0 +1,36 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.stax; + +import java.io.IOException; +import java.io.StringReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +import org.junit.jupiter.api.Test; + +public class StaxParserTest { + + @Test + public void factoryTest() throws XmlPullParserException, IOException { + StaxXmlPullParserFactory staxXmlPullParserFactory = new StaxXmlPullParserFactory(); + XmlPullParser parser = staxXmlPullParserFactory.newXmlPullParser(new StringReader("")); + parser.next(); + } + +} diff --git a/smack-xmlparser-xpp3/build.gradle b/smack-xmlparser-xpp3/build.gradle new file mode 100644 index 000000000..fb647f0bc --- /dev/null +++ b/smack-xmlparser-xpp3/build.gradle @@ -0,0 +1,13 @@ +description = """\ +Smack XML parser using XPP3.""" + +ext { + xpp3Version = "1.1.4c" +} + +dependencies { + api "xpp3:xpp3_min:$xpp3Version" + implementation "xpp3:xpp3:$xpp3Version" + api project(':smack-xmlparser') + testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java new file mode 100644 index 000000000..a343276bf --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java @@ -0,0 +1,302 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.xpp3; + +import java.io.IOException; + +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +public final class Xpp3XmlPullParser implements XmlPullParser { + + private final org.xmlpull.v1.XmlPullParser xpp3XmlPullParser; + + public Xpp3XmlPullParser(org.xmlpull.v1.XmlPullParser xpp3XmlPullParser) { + this.xpp3XmlPullParser = xpp3XmlPullParser; + } + + @Override + public Object getProperty(String name) { + return xpp3XmlPullParser.getProperty(name); + } + + @Override + public String getInputEncoding() { + return xpp3XmlPullParser.getInputEncoding(); + } + + @Override + public int getNamespaceCount() throws XmlPullParserException { + int depth = xpp3XmlPullParser.getDepth(); + try { + return xpp3XmlPullParser.getNamespaceCount(depth); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespacePrefix(int pos) throws XmlPullParserException { + try { + return xpp3XmlPullParser.getNamespacePrefix(pos); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespaceUri(int pos) throws XmlPullParserException { + try { + return xpp3XmlPullParser.getNamespaceUri(pos); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespace(String prefix) { + return xpp3XmlPullParser.getNamespace(prefix); + } + + @Override + public int getDepth() { + return xpp3XmlPullParser.getDepth(); + } + + @Override + public String getPositionDescription() { + return xpp3XmlPullParser.getPositionDescription(); + } + + @Override + public int getLineNumber() { + return xpp3XmlPullParser.getLineNumber(); + } + + @Override + public int getColumnNumber() { + return xpp3XmlPullParser.getColumnNumber(); + } + + @Override + public boolean isWhiteSpace() throws XmlPullParserException { + try { + return xpp3XmlPullParser.isWhitespace(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getText() { + return xpp3XmlPullParser.getText(); + } + + @Override + public String getNamespace() { + return xpp3XmlPullParser.getNamespace(); + } + + @Override + public String getName() { + return xpp3XmlPullParser.getName(); + } + + @Override + public QName getQName() { + String localpart = xpp3XmlPullParser.getName(); + String prefix = xpp3XmlPullParser.getPrefix(); + prefix = nullValueToDefaultPrefix(prefix); + String namespace = xpp3XmlPullParser.getNamespace(); + + return new QName(namespace, localpart, prefix); + } + + @Override + public String getPrefix() { + return xpp3XmlPullParser.getPrefix(); + } + + @Override + public int getAttributeCount() { + return xpp3XmlPullParser.getAttributeCount(); + } + + @Override + public String getAttributeNamespace(int index) { + String namespace; + try { + namespace = xpp3XmlPullParser.getAttributeNamespace(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + + if (XMLConstants.NULL_NS_URI.equals(namespace)) { + namespace = null; + } + return namespace; + } + + @Override + public String getAttributeName(int index) { + try { + return xpp3XmlPullParser.getAttributeName(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + } + + @Override + public QName getAttributeQName(int index) { + String localpart = getAttributeName(index); + if (localpart == null) { + return null; + } + String prefix = getAttributePrefix(index); + prefix = nullValueToDefaultPrefix(prefix); + String namespace = getAttributeNamespace(index); + return new QName(namespace, localpart, prefix); + } + + @Override + public String getAttributePrefix(int index) { + String prefix; + try { + prefix = xpp3XmlPullParser.getAttributePrefix(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + prefix = nullValueToDefaultPrefix(prefix); + return prefix; + } + + @Override + public String getAttributeType(int index) { + try { + return xpp3XmlPullParser.getAttributeType(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + } + + @Override + public String getAttributeValue(int index) { + return xpp3XmlPullParser.getAttributeValue(index); + } + + @Override + public String getAttributeValue(String namespace, String name) { + return xpp3XmlPullParser.getAttributeValue(namespace, name); + } + + @Override + public Event getEventType() throws XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.getEventType(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + return xpp3EventIntegerToEvent(xpp3EventInt); + } + + @Override + public Event next() throws IOException, XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.next(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + return xpp3EventIntegerToEvent(xpp3EventInt); + } + + @Override + public String nextText() throws IOException, XmlPullParserException { + try { + return xpp3XmlPullParser.nextText(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public TagEvent nextTag() throws IOException, XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.nextTag(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + switch (xpp3EventInt) { + case org.xmlpull.v1.XmlPullParser.START_TAG: + return TagEvent.START_ELEMENT; + case org.xmlpull.v1.XmlPullParser.END_TAG: + return TagEvent.END_ELEMENT; + default: + throw new AssertionError(); + } + } + + @Override + public boolean supportsRoundtrip() { + return xpp3XmlPullParser.getFeature(Xpp3XmlPullParserFactory.FEATURE_XML_ROUNDTRIP); + } + + private static Event xpp3EventIntegerToEvent(int xpp3EventInt) { + switch (xpp3EventInt) { + case org.xmlpull.v1.XmlPullParser.START_DOCUMENT: + return Event.START_DOCUMENT; + case org.xmlpull.v1.XmlPullParser.END_DOCUMENT: + return Event.END_DOCUMENT; + case org.xmlpull.v1.XmlPullParser.START_TAG: + return Event.START_ELEMENT; + case org.xmlpull.v1.XmlPullParser.END_TAG: + return Event.END_ELEMENT; + case org.xmlpull.v1.XmlPullParser.TEXT: + return Event.TEXT_CHARACTERS; + case org.xmlpull.v1.XmlPullParser.CDSECT: + return Event.OTHER; + case org.xmlpull.v1.XmlPullParser.ENTITY_REF: + return Event.ENTITY_REFERENCE; + case org.xmlpull.v1.XmlPullParser.IGNORABLE_WHITESPACE: + return Event.IGNORABLE_WHITESPACE; + case org.xmlpull.v1.XmlPullParser.PROCESSING_INSTRUCTION: + return Event.PROCESSING_INSTRUCTION; + case org.xmlpull.v1.XmlPullParser.COMMENT: + return Event.COMMENT; + case org.xmlpull.v1.XmlPullParser.DOCDECL: + return Event.OTHER; + default: + throw new IllegalArgumentException("Unknown XPP3 event integer: " + xpp3EventInt); + } + } + + private static String nullValueToDefaultPrefix(String prefix) { + if (prefix != null) { + return prefix; + } + return XMLConstants.DEFAULT_NS_PREFIX; + } +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java new file mode 100644 index 000000000..b3f413593 --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java @@ -0,0 +1,86 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.xpp3; + +import java.io.Reader; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; + +public class Xpp3XmlPullParserFactory implements XmlPullParserFactory { + + private static final Logger LOGGER = Logger.getLogger(Xpp3XmlPullParserFactory.class.getName()); + + private static final org.xmlpull.v1.XmlPullParserFactory XPP3_XML_PULL_PARSER_FACTORY; + + public static final String FEATURE_XML_ROUNDTRIP = "http://xmlpull.org/v1/doc/features.html#xml-roundtrip"; + + /** + * True if the XmlPullParser supports the XML_ROUNDTRIP feature. + */ + public static final boolean XML_PULL_PARSER_SUPPORTS_ROUNDTRIP; + + static { + org.xmlpull.v1.XmlPullParser xmlPullParser; + boolean roundtrip = false; + try { + XPP3_XML_PULL_PARSER_FACTORY = org.xmlpull.v1.XmlPullParserFactory.newInstance(); + xmlPullParser = XPP3_XML_PULL_PARSER_FACTORY.newPullParser(); + try { + xmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); + // We could successfully set the feature + roundtrip = true; + } catch (org.xmlpull.v1.XmlPullParserException e) { + // Doesn't matter if FEATURE_XML_ROUNDTRIP isn't available + LOGGER.log(Level.FINEST, "XmlPullParser does not support XML_ROUNDTRIP", e); + } + } + catch (org.xmlpull.v1.XmlPullParserException e) { + // Something really bad happened + throw new AssertionError(e); + } + XML_PULL_PARSER_SUPPORTS_ROUNDTRIP = roundtrip; + } + + @Override + public Xpp3XmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException { + org.xmlpull.v1.XmlPullParser xpp3XmlPullParser; + try { + xpp3XmlPullParser = XPP3_XML_PULL_PARSER_FACTORY.newPullParser(); + xpp3XmlPullParser.setFeature(org.xmlpull.v1.XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); + xpp3XmlPullParser.setInput(reader); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + + if (XML_PULL_PARSER_SUPPORTS_ROUNDTRIP) { + try { + xpp3XmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); + } + catch (org.xmlpull.v1.XmlPullParserException e) { + LOGGER.log(Level.SEVERE, + "XmlPullParser does not support XML_ROUNDTRIP, although it was first determined to be supported", + e); + } + } + + return new Xpp3XmlPullParser(xpp3XmlPullParser); + } + +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java new file mode 100644 index 000000000..afed2224b --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java @@ -0,0 +1,23 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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. + */ + +/** + * Classes for XML handling using XPP3 (XML Pull Parser 3). + * + * @see XML Pull Parser + */ +package org.jivesoftware.smack.xml.xpp3; diff --git a/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory b/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory new file mode 100644 index 000000000..899ae3288 --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory @@ -0,0 +1 @@ +org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory diff --git a/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java b/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java new file mode 100644 index 000000000..ceb750467 --- /dev/null +++ b/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java @@ -0,0 +1,36 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * 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.xml.xpp3; + +import java.io.IOException; +import java.io.StringReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +import org.junit.jupiter.api.Test; + +public class Xpp3ParserTest { + + @Test + public void factoryTest() throws XmlPullParserException, IOException { + Xpp3XmlPullParserFactory xpp3XmlPullParserFactory = new Xpp3XmlPullParserFactory(); + XmlPullParser parser = xpp3XmlPullParserFactory.newXmlPullParser(new StringReader("")); + parser.next(); + } + +} diff --git a/smack-xmlparser/build.gradle b/smack-xmlparser/build.gradle new file mode 100644 index 000000000..46318a504 --- /dev/null +++ b/smack-xmlparser/build.gradle @@ -0,0 +1,2 @@ +description = """\ +Smack XML parser fundamentals""" diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java new file mode 100644 index 000000000..16f61e732 --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java @@ -0,0 +1,57 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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.xml; + +import java.io.Reader; +import java.util.Iterator; +import java.util.ServiceLoader; + +public class SmackXmlParser { + + private static final ServiceLoader xmlPullParserFactoryServiceLoader; + + static { + xmlPullParserFactoryServiceLoader = ServiceLoader.load(XmlPullParserFactory.class); + } + + public static XmlPullParserFactory getXmlPullParserFactory() { + Iterator iterator = xmlPullParserFactoryServiceLoader.iterator(); + if (!iterator.hasNext()) { + throw new IllegalStateException("Could not load a XmlPullParserFactory via Service Provider Interface (SPI)"); + } + return iterator.next(); + } + + /** + * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that + * FEATURE_PROCESS_NAMESPACES is enabled. + *

+ * Note that not all XmlPullParser implementations will return a String on + * getText() if the parser is on START_ELEMENT or END_ELEMENT. So you must not rely on this + * behavior when using the parser. + *

+ * + * @param reader a reader to read the XML data from. + * @return A suitable XmlPullParser for XMPP parsing. + * @throws XmlPullParserException in case of an XmlPullParserException. + */ + public static XmlPullParser newXmlParser(Reader reader) throws XmlPullParserException { + XmlPullParserFactory xmlPullParserFactory = getXmlPullParserFactory(); + return xmlPullParserFactory.newXmlPullParser(reader); + } + +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java new file mode 100644 index 000000000..503ae3eda --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java @@ -0,0 +1,169 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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.xml; + +import java.io.IOException; + +import javax.xml.namespace.QName; + +/** + * Smack's interface for XML pull parsers. The main XML parser implementations are "Xml Pull Parser 3" (XPP3) on Android and "Streaming API for XML" (StAX, JSR 173) on Java. + * + *

+ * Differences from StAX's XMLStreamReader are: + *

+ *
    + *
  • {@link #getName()} and {@link #getAttributeName(int)} return localname, there is {@link #getQName()} and {@link #getAttributeQName(int)} to retrieve the qualified name ({@link javax.xml.namespace.QName QName}).
  • + *
  • {@link #nextText()} instead of {@code XMLStreamReader.getElementText()}. + *
+ *

+ * Differences from XPP3's XmlPullParser are: + *

+ *
    + *
  • Methods taking an attribute, like {@link #getAttributeName(int)} index return null instead of throwing an exception if no attribute with the given index exists.
  • + *
+ * + *

Developer Information

+ *

+ * The following table shows the mapping of Smack's XmlPullParser events to StAX and XPP3 events: + *

+ * + * + * + * + * + * + * + * + * + * + * + * + *
Smack's {@link XmlPullParser.Event}StAX EventXPP3 Event
{@link XmlPullParser.Event#START_DOCUMENT}START_DOCUMENT (7)START_DOCUMENT (0)
{@link XmlPullParser.Event#END_DOCUMENT}END_DOCUMENT (8)END_DOCUMENT (1)
{@link XmlPullParser.Event#START_ELEMENT}START_ELEMENT (1)START_TAG (2)
{@link XmlPullParser.Event#END_ELEMENT}END_ELEMENT (2)END_TAG (3)
{@link XmlPullParser.Event#TEXT_CHARACTERS}CHARACTERS (4)TEXT (4)
{@link XmlPullParser.Event#PROCESSING_INSTRUCTION}PROCESSING_INSTRUCTION (3)PROCESSING_INSTRUCTION (8)
{@link XmlPullParser.Event#COMMENT}COMMENT (5)COMMENT (9)
{@link XmlPullParser.Event#IGNORABLE_WHITESPACE}SPACE (6)IGNORABLE_WHITESPACE (7)
{@link XmlPullParser.Event#ENTITY_REFERENCE}ENTITY_REFERENCE (9)ENTITY_REF (6)
{@link XmlPullParser.Event#OTHER}ENTITY_REFERENCE (9)ENTITY_REF (6)
+ *

{@link XmlPullParser.Event#OTHER} includes + * in case of StAX: ATTRIBUTE (10), DTD (11), CDATA (12), NAMESPACE (13), NOTATION_DECLARATION (14) and ENTITY_DECLRATION (15), + * in case of XPP3: CDSECT (5), DOCDECL (10). + *

+ * + */ +public interface XmlPullParser { + + Object getProperty(String name); + + String getInputEncoding(); + + int getNamespaceCount() throws XmlPullParserException; + + String getNamespacePrefix(int pos) throws XmlPullParserException; + + String getNamespaceUri(int pos) throws XmlPullParserException; + + String getNamespace(String prefix); + + int getDepth(); + + String getPositionDescription(); + + int getLineNumber(); + + int getColumnNumber(); + + boolean isWhiteSpace() throws XmlPullParserException; + + String getText(); + + String getNamespace(); + + /** + * Return the name for the current START_ELEMENT or END_ELEMENT event. This method must only be called if the + * current event is START_ELEMENT or END_ELEMENT. + * + * @return the name for the current START_ELEMETN or END_ELEMENT event. + */ + String getName(); + + QName getQName(); + + String getPrefix(); + + int getAttributeCount(); + + String getAttributeNamespace(int index); + + /** + * Returns the loacalpart of the attribute's name or null in case the index does not refer to an + * attribute. + * + * @param index the attribute index. + * @return the localpart of the attribute's name or null. + */ + String getAttributeName(int index); + + QName getAttributeQName(int index); + + String getAttributePrefix(int index); + + String getAttributeType(int index); + + String getAttributeValue(int index); + + String getAttributeValue(String namespace, String name); + + Event getEventType() throws XmlPullParserException; + + Event next() throws IOException, XmlPullParserException; + + /** + * Reads the content of a text-only element, an exception is thrown if this is + * not a text-only element. + *
    + *
  • Precondition: the current event is START_ELEMENT.
  • + *
  • Postcondition: the current event is the corresponding END_ELEMENT.
  • + *
+ * + * @return the textual content of the current element. + * @throws IOException in case of an IO error. + * @throws XmlPullParserException in case of an XML pull parser error. + */ + String nextText() throws IOException, XmlPullParserException; + + TagEvent nextTag() throws IOException, XmlPullParserException; + + enum TagEvent { + START_ELEMENT, + END_ELEMENT, + } + + enum Event { + START_DOCUMENT, + END_DOCUMENT, + START_ELEMENT, + END_ELEMENT, + + /** + * Replaces TEXT from XPP3. + */ + TEXT_CHARACTERS, + PROCESSING_INSTRUCTION, + COMMENT, + IGNORABLE_WHITESPACE, + ENTITY_REFERENCE, + OTHER, + } + + boolean supportsRoundtrip(); +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java new file mode 100644 index 000000000..66cc7d5ac --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java @@ -0,0 +1,30 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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.xml; + +public class XmlPullParserException extends Exception { + + private static final long serialVersionUID = 1L; + + public XmlPullParserException(Exception wrapped) { + super(wrapped); + } + + public XmlPullParserException(String message) { + super(message); + } +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java new file mode 100644 index 000000000..42877584e --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java @@ -0,0 +1,25 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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.xml; + +import java.io.Reader; + +public interface XmlPullParserFactory { + + XmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException; + +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java new file mode 100644 index 000000000..434d2829c --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java @@ -0,0 +1,21 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * 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. + */ + +/** + * Classes for XML handling. Especially tailored for XMPP. + */ +package org.jivesoftware.smack.xml;