@Override public void presenceUnavailable(FullJid jid, Presence presence) { if (!jid.equals(conTwo.getUser())) { return; } offlineTriggered.signal(); } });
@Override public void iotScenario(XMPPTCPConnection dataThingConnection, XMPPTCPConnection readingThingConnection) throws TimeoutException, Exception { ThingState dataThingState = actAsDataThing(dataThingConnection); final SimpleResultSyncPoint syncPoint = new SimpleResultSyncPoint(); dataThingState.setThingStateChangeListener(new AbstractThingStateChangeListener() { @Override public void owned(BareJid jid) { syncPoint.signal(); } }); // Wait until the thing is owned. syncPoint.waitForResult(TIMEOUT); printStatus("OWNED - Thing now owned by " + dataThingState.getOwner()); // Make sure things are befriended. IoTProvisioningManager readingThingProvisioningManager = IoTProvisioningManager.getInstanceFor(readingThingConnection); readingThingProvisioningManager.sendFriendshipRequestIfRequired(dataThingConnection.getUser().asBareJid()); Roster dataThingRoster = Roster.getInstanceFor(dataThingConnection); RosterUtil.waitUntilOtherEntityIsSubscribed(dataThingRoster, readingThingConnection.getUser().asBareJid(), TIMEOUT); printStatus("FRIENDSHIP ACCEPTED - Trying to read out data"); IoTDataManager readingThingDataManager = IoTDataManager.getInstanceFor(readingThingConnection); List<IoTFieldsExtension> values = readingThingDataManager.requestMomentaryValuesReadOut(dataThingConnection.getUser()); if (values.size() != 1) { throw new IllegalStateException("Unexpected number of values returned: " + values.size()); } IoTFieldsExtension field = values.get(0); printStatus("DATA READ-OUT SUCCESS: " + field.toXML(null)); printStatus("IoT SCENARIO FINISHED SUCCESSFULLY"); } };
public static void deleteViaServiceAdministration(XMPPTCPConnection connection, Configuration config) { EntityBareJid accountToDelete = connection.getUser().asEntityBareJid(); final int maxAttempts = 3; int attempts; for (attempts = 0; attempts < maxAttempts; attempts++) { connection.disconnect(); try { connection.connect().login(config.adminAccountUsername, config.adminAccountPassword); } catch (XMPPException | SmackException | IOException | InterruptedException e) { LOGGER.log(Level.WARNING, "Exception deleting account for " + connection, e); continue; } ServiceAdministrationManager adminManager = ServiceAdministrationManager.getInstanceFor(connection); try { adminManager.deleteUser(accountToDelete); break; } catch (NoResponseException | XMPPErrorException | NotConnectedException | InterruptedException e) { LOGGER.log(Level.WARNING, "Exception deleting account for " + connection, e); continue; } } if (attempts > maxAttempts) { LOGGER.log(Level.SEVERE, "Could not delete account for connection: " + connection); } }
final BareJid dataThingBareJid = dataThingConnection.getUser().asBareJid(); final BareJid readingThingBareJid = readingThingConnection.getUser().asBareJid(); final ThingState dataThingState = actAsDataThing(dataThingConnection); .sendFriendshipRequestIfRequired(dataThingConnection.getUser().asBareJid()); friendshipApprovedSyncPoint.waitForResult(TIMEOUT); } finally {
@SmackIntegrationTest public void testPresenceEventListenersOffline(final XMPPTCPConnection conOne, final XMPPTCPConnection conTwo) throws TimeoutException, Exception { IntegrationTestRosterUtil.ensureBothAccountsAreNotInEachOthersRoster(conOne, conTwo); final Roster rosterOne = Roster.getInstanceFor(conOne); final Roster rosterTwo = Roster.getInstanceFor(conTwo); // TODO create Roster.createEntry() with boolean flag for subscribe or not. rosterOne.createEntry(conTwo.getUser().asBareJid(), "Con Two", null); rosterTwo.createEntry(conOne.getUser().asBareJid(), "Con One", null); // TODO Change timeout form '5000' to something configurable. final long timeout = 5000; IntegrationTestRosterUtil.ensureBothAccountsAreSubscribedToEachOther(conOne, conTwo, timeout); final SimpleResultSyncPoint offlineTriggered = new SimpleResultSyncPoint(); rosterOne.addPresenceEventListener(new AbstractPresenceEventListener() { @Override public void presenceUnavailable(FullJid jid, Presence presence) { if (!jid.equals(conTwo.getUser())) { return; } offlineTriggered.signal(); } }); // Disconnect conTwo, this should cause an 'unavailable' presence to be send from conTwo to // conOne. conTwo.disconnect(); Boolean result = offlineTriggered.waitForResult(timeout); if (!result) { throw new Exception("presenceUnavailable() was not called"); } }
@SmackIntegrationTest public void testStreamManagement(XMPPTCPConnection conOne, XMPPTCPConnection conTwo) throws InterruptedException, SmackException, IOException, XMPPException { final String body1 = "Hi, what's up? " + testRunId; final String body2 = "Hi, what's up? I've been just instantly shutdown" + testRunId; final String body3 = "Hi, what's up? I've been just resumed" + testRunId; final StanzaCollector collector = conTwo.createStanzaCollector(new AndFilter( MessageWithBodiesFilter.INSTANCE, FromMatchesFilter.createFull(conOne.getUser()))); try { send(body1, conOne, conTwo); assertMessageWithBodyReceived(body1, collector); conOne.instantShutdown(); send(body2, conOne, conTwo); // Reconnect with xep198 conOne.connect().login(); assertMessageWithBodyReceived(body2, collector); send(body3, conOne, conTwo); assertMessageWithBodyReceived(body3, collector); } finally { collector.cancel(); } }
@Override protected void onStop() { if (logger.isInfoEnabled()) { logger.info("Stopping XMPP receiver [" + connection.getUser() + "]"); } connection.removeAsyncStanzaListener(packetListener); packetListener = null; }
@Override protected void onStop() { if (logger.isInfoEnabled()) { logger.info("Stopping XMPP receiver [" + connection.getUser() + "]"); } connection.removeAsyncStanzaListener(packetListener); packetListener = null; }
@Override protected void onStop() { if (logger.isInfoEnabled()) { logger.info("Stopping XMPP receiver [" + connection.getUser() + "]"); } connection.removeAsyncStanzaListener(packetListener); packetListener = null; }
@Override protected void onShutdown() { if (logger.isInfoEnabled()) { logger.info("Shutting down XMPP receiver [" + connection.getUser() + "]"); } if (connection.isConnected()) { connection.disconnect(); } }
@Override protected void onShutdown() { if (logger.isInfoEnabled()) { logger.info("Shutting down XMPP receiver [" + connection.getUser() + "]"); } if (connection.isConnected()) { connection.disconnect(); } }
@Override protected void onShutdown() { if (logger.isInfoEnabled()) { logger.info("Shutting down XMPP receiver [" + connection.getUser() + "]"); } if (connection.isConnected()) { connection.disconnect(); } }
@Override protected void onStart() { if (logger.isInfoEnabled()) { logger.info("Starting XMPP receiver [" + connection.getUser() + "]"); } packetListener = new WebServicePacketListener(); StanzaFilter packetFilter = new StanzaTypeFilter(Message.class); connection.addAsyncStanzaListener(packetListener, packetFilter); }
@Override protected void onStart() { if (logger.isInfoEnabled()) { logger.info("Starting XMPP receiver [" + connection.getUser() + "]"); } packetListener = new WebServicePacketListener(); StanzaFilter packetFilter = new StanzaTypeFilter(Message.class); connection.addAsyncStanzaListener(packetListener, packetFilter); }
@Override protected void onStart() { if (logger.isInfoEnabled()) { logger.info("Starting XMPP receiver [" + connection.getUser() + "]"); } packetListener = new WebServicePacketListener(); StanzaFilter packetFilter = new StanzaTypeFilter(Message.class); connection.addAsyncStanzaListener(packetListener, packetFilter); }
private void getData() { multiUserChatManager = MultiUserChatManager.getInstanceFor(connection); try { String user = connection.getUser();
owners.add(connection.getUser());// 用户JID submitForm.setAnswer("muc#roomconfig_roomowners", owners);